Files
windmill/frontend/static/workers/editorWorker-es.js
Ruben Fiszel 6b9a55b0a3 fix: update monaco (#2616)
* update monaco

* update monaco

* update monaco

* update monaco

* update monaco

* update monaco

* update monaco

* update monaco
2023-11-12 21:26:44 +01:00

7369 lines
286 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
class Hr {
constructor() {
this.listeners = [], this.unexpectedErrorHandler = function(t) {
setTimeout(() => {
throw t.stack ? Be.isErrorNoTelemetry(t) ? new Be(t.message + `
` + t.stack) : new Error(t.message + `
` + t.stack) : t;
}, 0);
};
}
emit(t) {
this.listeners.forEach((n) => {
n(t);
});
}
onUnexpectedError(t) {
this.unexpectedErrorHandler(t), this.emit(t);
}
// For external errors, we don't want the listeners to be called
onUnexpectedExternalError(t) {
this.unexpectedErrorHandler(t);
}
}
const Wr = new Hr();
function pr(e) {
zr(e) || Wr.onUnexpectedError(e);
}
function Zt(e) {
if (e instanceof Error) {
const { name: t, message: n } = e, r = e.stacktrace || e.stack;
return {
$isError: !0,
name: t,
message: n,
stack: r,
noTelemetry: Be.isErrorNoTelemetry(e)
};
}
return e;
}
const Ct = "Canceled";
function zr(e) {
return e instanceof $r ? !0 : e instanceof Error && e.name === Ct && e.message === Ct;
}
class $r extends Error {
constructor() {
super(Ct), this.name = this.message;
}
}
class Be extends Error {
constructor(t) {
super(t), this.name = "CodeExpectedError";
}
static fromError(t) {
if (t instanceof Be)
return t;
const n = new Be();
return n.message = t.message, n.stack = t.stack, n;
}
static isErrorNoTelemetry(t) {
return t.name === "CodeExpectedError";
}
}
class xe extends Error {
constructor(t) {
super(t || "An unexpected bug occurred."), Object.setPrototypeOf(this, xe.prototype);
}
}
function Or(e) {
const t = this;
let n = !1, r;
return function() {
return n || (n = !0, r = e.apply(t, arguments)), r;
};
}
var ct;
(function(e) {
function t(_) {
return _ && typeof _ == "object" && typeof _[Symbol.iterator] == "function";
}
e.is = t;
const n = Object.freeze([]);
function r() {
return n;
}
e.empty = r;
function* s(_) {
yield _;
}
e.single = s;
function i(_) {
return t(_) ? _ : s(_);
}
e.wrap = i;
function a(_) {
return _ || n;
}
e.from = a;
function* o(_) {
for (let x = _.length - 1; x >= 0; x--)
yield _[x];
}
e.reverse = o;
function c(_) {
return !_ || _[Symbol.iterator]().next().done === !0;
}
e.isEmpty = c;
function u(_) {
return _[Symbol.iterator]().next().value;
}
e.first = u;
function h(_, x) {
for (const S of _)
if (x(S))
return !0;
return !1;
}
e.some = h;
function f(_, x) {
for (const S of _)
if (x(S))
return S;
}
e.find = f;
function* m(_, x) {
for (const S of _)
x(S) && (yield S);
}
e.filter = m;
function* d(_, x) {
let S = 0;
for (const N of _)
yield x(N, S++);
}
e.map = d;
function* g(..._) {
for (const x of _)
for (const S of x)
yield S;
}
e.concat = g;
function b(_, x, S) {
let N = S;
for (const R of _)
N = x(N, R);
return N;
}
e.reduce = b;
function* w(_, x, S = _.length) {
for (x < 0 && (x += _.length), S < 0 ? S += _.length : S > _.length && (S = _.length); x < S; x++)
yield _[x];
}
e.slice = w;
function L(_, x = Number.POSITIVE_INFINITY) {
const S = [];
if (x === 0)
return [S, _];
const N = _[Symbol.iterator]();
for (let R = 0; R < x; R++) {
const M = N.next();
if (M.done)
return [S, e.empty()];
S.push(M.value);
}
return [S, { [Symbol.iterator]() {
return N;
} }];
}
e.consume = L;
})(ct || (ct = {}));
function vr(e) {
if (ct.is(e)) {
const t = [];
for (const n of e)
if (n)
try {
n.dispose();
} catch (r) {
t.push(r);
}
if (t.length === 1)
throw t[0];
if (t.length > 1)
throw new AggregateError(t, "Encountered errors while disposing of store");
return Array.isArray(e) ? [] : e;
} else if (e)
return e.dispose(), e;
}
function Gr(...e) {
return Ge(() => vr(e));
}
function Ge(e) {
return {
dispose: Or(() => {
e();
})
};
}
class He {
constructor() {
this._toDispose = /* @__PURE__ */ new Set(), this._isDisposed = !1;
}
/**
* 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() {
this._isDisposed || (this._isDisposed = !0, 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)
try {
vr(this._toDispose);
} finally {
this._toDispose.clear();
}
}
/**
* Add a new {@link IDisposable disposable} to the collection.
*/
add(t) {
if (!t)
return t;
if (t === this)
throw new Error("Cannot register a disposable on itself!");
return this._isDisposed ? He.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(t), t;
}
/**
* Deletes the value from the store, but does not dispose it.
*/
deleteAndLeak(t) {
t && this._toDispose.has(t) && this._toDispose.delete(t);
}
}
He.DISABLE_DISPOSED_WARNING = !1;
class je {
constructor() {
this._store = new He(), this._store;
}
dispose() {
this._store.dispose();
}
/**
* Adds `o` to the collection of disposables managed by this object.
*/
_register(t) {
if (t === this)
throw new Error("Cannot register a disposable on itself!");
return this._store.add(t);
}
}
je.None = Object.freeze({ dispose() {
} });
class H {
constructor(t) {
this.element = t, this.next = H.Undefined, this.prev = H.Undefined;
}
}
H.Undefined = new H(void 0);
class jr {
constructor() {
this._first = H.Undefined, this._last = H.Undefined, this._size = 0;
}
get size() {
return this._size;
}
isEmpty() {
return this._first === H.Undefined;
}
clear() {
let t = this._first;
for (; t !== H.Undefined; ) {
const n = t.next;
t.prev = H.Undefined, t.next = H.Undefined, t = n;
}
this._first = H.Undefined, this._last = H.Undefined, this._size = 0;
}
unshift(t) {
return this._insert(t, !1);
}
push(t) {
return this._insert(t, !0);
}
_insert(t, n) {
const r = new H(t);
if (this._first === H.Undefined)
this._first = r, this._last = r;
else if (n) {
const i = this._last;
this._last = r, r.prev = i, i.next = r;
} else {
const i = this._first;
this._first = r, r.next = i, i.prev = r;
}
this._size += 1;
let s = !1;
return () => {
s || (s = !0, this._remove(r));
};
}
shift() {
if (this._first !== H.Undefined) {
const t = this._first.element;
return this._remove(this._first), t;
}
}
pop() {
if (this._last !== H.Undefined) {
const t = this._last.element;
return this._remove(this._last), t;
}
}
_remove(t) {
if (t.prev !== H.Undefined && t.next !== H.Undefined) {
const n = t.prev;
n.next = t.next, t.next.prev = n;
} else
t.prev === H.Undefined && t.next === H.Undefined ? (this._first = H.Undefined, this._last = H.Undefined) : t.next === H.Undefined ? (this._last = this._last.prev, this._last.next = H.Undefined) : t.prev === H.Undefined && (this._first = this._first.next, this._first.prev = H.Undefined);
this._size -= 1;
}
*[Symbol.iterator]() {
let t = this._first;
for (; t !== H.Undefined; )
yield t.element, t = t.next;
}
}
const Qr = globalThis.performance && typeof globalThis.performance.now == "function";
class _t {
static create(t) {
return new _t(t);
}
constructor(t) {
this._now = Qr && t === !1 ? Date.now : globalThis.performance.now.bind(globalThis.performance), this._startTime = this._now(), this._stopTime = -1;
}
stop() {
this._stopTime = this._now();
}
elapsed() {
return this._stopTime !== -1 ? this._stopTime - this._startTime : this._now() - this._startTime;
}
}
var At;
(function(e) {
e.None = () => je.None;
function t(p, v) {
return f(p, () => {
}, 0, void 0, !0, void 0, v);
}
e.defer = t;
function n(p) {
return (v, C = null, A) => {
let k = !1, F;
return F = p((U) => {
if (!k)
return F ? F.dispose() : k = !0, v.call(C, U);
}, null, A), k && F.dispose(), F;
};
}
e.once = n;
function r(p, v, C) {
return u((A, k = null, F) => p((U) => A.call(k, v(U)), null, F), C);
}
e.map = r;
function s(p, v, C) {
return u((A, k = null, F) => p((U) => {
v(U), A.call(k, U);
}, null, F), C);
}
e.forEach = s;
function i(p, v, C) {
return u((A, k = null, F) => p((U) => v(U) && A.call(k, U), null, F), C);
}
e.filter = i;
function a(p) {
return p;
}
e.signal = a;
function o(...p) {
return (v, C = null, A) => {
const k = Gr(...p.map((F) => F((U) => v.call(C, U))));
return h(k, A);
};
}
e.any = o;
function c(p, v, C, A) {
let k = C;
return r(p, (F) => (k = v(k, F), k), A);
}
e.reduce = c;
function u(p, v) {
let C;
const A = {
onWillAddFirstListener() {
C = p(k.fire, k);
},
onDidRemoveLastListener() {
C == null || C.dispose();
}
}, k = new ie(A);
return v == null || v.add(k), k.event;
}
function h(p, v) {
return v instanceof Array ? v.push(p) : v && v.add(p), p;
}
function f(p, v, C = 100, A = !1, k = !1, F, U) {
let K, Y, ye, tt = 0, Se;
const qr = {
leakWarningThreshold: F,
onWillAddFirstListener() {
K = p((Ir) => {
tt++, Y = v(Y, Ir), A && !ye && (nt.fire(Y), Y = void 0), Se = () => {
const Ur = Y;
Y = void 0, ye = void 0, (!A || tt > 1) && nt.fire(Ur), tt = 0;
}, typeof C == "number" ? (clearTimeout(ye), ye = setTimeout(Se, C)) : ye === void 0 && (ye = 0, queueMicrotask(Se));
});
},
onWillRemoveListener() {
k && tt > 0 && (Se == null || Se());
},
onDidRemoveLastListener() {
Se = void 0, K.dispose();
}
}, nt = new ie(qr);
return U == null || U.add(nt), nt.event;
}
e.debounce = f;
function m(p, v = 0, C) {
return e.debounce(p, (A, k) => A ? (A.push(k), A) : [k], v, void 0, !0, void 0, C);
}
e.accumulate = m;
function d(p, v = (A, k) => A === k, C) {
let A = !0, k;
return i(p, (F) => {
const U = A || !v(F, k);
return A = !1, k = F, U;
}, C);
}
e.latch = d;
function g(p, v, C) {
return [
e.filter(p, v, C),
e.filter(p, (A) => !v(A), C)
];
}
e.split = g;
function b(p, v = !1, C = [], A) {
let k = C.slice(), F = p((Y) => {
k ? k.push(Y) : K.fire(Y);
});
A && A.add(F);
const U = () => {
k == null || k.forEach((Y) => K.fire(Y)), k = null;
}, K = new ie({
onWillAddFirstListener() {
F || (F = p((Y) => K.fire(Y)), A && A.add(F));
},
onDidAddFirstListener() {
k && (v ? setTimeout(U) : U());
},
onDidRemoveLastListener() {
F && F.dispose(), F = null;
}
});
return A && A.add(K), K.event;
}
e.buffer = b;
function w(p, v) {
return (A, k, F) => {
const U = v(new _());
return p(function(K) {
const Y = U.evaluate(K);
Y !== L && A.call(k, Y);
}, void 0, F);
};
}
e.chain = w;
const L = Symbol("HaltChainable");
class _ {
constructor() {
this.steps = [];
}
map(v) {
return this.steps.push(v), this;
}
forEach(v) {
return this.steps.push((C) => (v(C), C)), this;
}
filter(v) {
return this.steps.push((C) => v(C) ? C : L), this;
}
reduce(v, C) {
let A = C;
return this.steps.push((k) => (A = v(A, k), A)), this;
}
latch(v = (C, A) => C === A) {
let C = !0, A;
return this.steps.push((k) => {
const F = C || !v(k, A);
return C = !1, A = k, F ? k : L;
}), this;
}
evaluate(v) {
for (const C of this.steps)
if (v = C(v), v === L)
break;
return v;
}
}
function x(p, v, C = (A) => A) {
const A = (...K) => U.fire(C(...K)), k = () => p.on(v, A), F = () => p.removeListener(v, A), U = new ie({ onWillAddFirstListener: k, onDidRemoveLastListener: F });
return U.event;
}
e.fromNodeEventEmitter = x;
function S(p, v, C = (A) => A) {
const A = (...K) => U.fire(C(...K)), k = () => p.addEventListener(v, A), F = () => p.removeEventListener(v, A), U = new ie({ onWillAddFirstListener: k, onDidRemoveLastListener: F });
return U.event;
}
e.fromDOMEventEmitter = S;
function N(p) {
return new Promise((v) => n(p)(v));
}
e.toPromise = N;
function R(p) {
const v = new ie();
return p.then((C) => {
v.fire(C);
}, () => {
v.fire(void 0);
}).finally(() => {
v.dispose();
}), v.event;
}
e.fromPromise = R;
function M(p, v) {
return v(void 0), p((C) => v(C));
}
e.runAndSubscribe = M;
function E(p, v) {
let C = null;
function A(F) {
C == null || C.dispose(), C = new He(), v(F, C);
}
A(void 0);
const k = p((F) => A(F));
return Ge(() => {
k.dispose(), C == null || C.dispose();
});
}
e.runAndSubscribeWithStore = E;
class I {
constructor(v, C) {
this._observable = v, this._counter = 0, this._hasChanged = !1;
const A = {
onWillAddFirstListener: () => {
v.addObserver(this);
},
onDidRemoveLastListener: () => {
v.removeObserver(this);
}
};
this.emitter = new ie(A), C && C.add(this.emitter);
}
beginUpdate(v) {
this._counter++;
}
handlePossibleChange(v) {
}
handleChange(v, C) {
this._hasChanged = !0;
}
endUpdate(v) {
this._counter--, this._counter === 0 && (this._observable.reportChanges(), this._hasChanged && (this._hasChanged = !1, this.emitter.fire(this._observable.get())));
}
}
function G(p, v) {
return new I(p, v).emitter.event;
}
e.fromObservable = G;
function B(p) {
return (v) => {
let C = 0, A = !1;
const k = {
beginUpdate() {
C++;
},
endUpdate() {
C--, C === 0 && (p.reportChanges(), A && (A = !1, v()));
},
handlePossibleChange() {
},
handleChange() {
A = !0;
}
};
return p.addObserver(k), p.reportChanges(), {
dispose() {
p.removeObserver(k);
}
};
};
}
e.fromObservableLight = B;
})(At || (At = {}));
class qe {
constructor(t) {
this.listenerCount = 0, this.invocationCount = 0, this.elapsedOverall = 0, this.durations = [], this.name = `${t}_${qe._idPool++}`, qe.all.add(this);
}
start(t) {
this._stopWatch = new _t(), this.listenerCount = t;
}
stop() {
if (this._stopWatch) {
const t = this._stopWatch.elapsed();
this.durations.push(t), this.elapsedOverall += t, this.invocationCount += 1, this._stopWatch = void 0;
}
}
}
qe.all = /* @__PURE__ */ new Set();
qe._idPool = 0;
let Xr = -1;
class Jr {
constructor(t, n = Math.random().toString(18).slice(2, 5)) {
this.threshold = t, this.name = n, this._warnCountdown = 0;
}
dispose() {
var t;
(t = this._stacks) === null || t === void 0 || t.clear();
}
check(t, n) {
const r = this.threshold;
if (r <= 0 || n < r)
return;
this._stacks || (this._stacks = /* @__PURE__ */ new Map());
const s = this._stacks.get(t.value) || 0;
if (this._stacks.set(t.value, s + 1), this._warnCountdown -= 1, this._warnCountdown <= 0) {
this._warnCountdown = r * 0.5;
let i, a = 0;
for (const [o, c] of this._stacks)
(!i || a < c) && (i = o, a = c);
console.warn(`[${this.name}] potential listener LEAK detected, having ${n} listeners already. MOST frequent listener (${a}):`), console.warn(i);
}
return () => {
const i = this._stacks.get(t.value) || 0;
this._stacks.set(t.value, i - 1);
};
}
}
class jt {
static create() {
var t;
return new jt((t = new Error().stack) !== null && t !== void 0 ? t : "");
}
constructor(t) {
this.value = t;
}
print() {
console.warn(this.value.split(`
`).slice(2).join(`
`));
}
}
class xt {
constructor(t) {
this.value = t;
}
}
const Yr = 2;
class ie {
constructor(t) {
var n, r, s, i, a;
this._size = 0, this._options = t, this._leakageMon = !((n = this._options) === null || n === void 0) && n.leakWarningThreshold ? new Jr((s = (r = this._options) === null || r === void 0 ? void 0 : r.leakWarningThreshold) !== null && s !== void 0 ? s : Xr) : void 0, this._perfMon = !((i = this._options) === null || i === void 0) && i._profName ? new qe(this._options._profName) : void 0, this._deliveryQueue = (a = this._options) === null || a === void 0 ? void 0 : a.deliveryQueue;
}
dispose() {
var t, n, r, s;
this._disposed || (this._disposed = !0, ((t = this._deliveryQueue) === null || t === void 0 ? void 0 : t.current) === this && this._deliveryQueue.reset(), this._listeners && (this._listeners = void 0, this._size = 0), (r = (n = this._options) === null || n === void 0 ? void 0 : n.onDidRemoveLastListener) === null || r === void 0 || r.call(n), (s = this._leakageMon) === null || s === void 0 || s.dispose());
}
/**
* For the public to allow to subscribe
* to events from this Emitter
*/
get event() {
var t;
return (t = this._event) !== null && t !== void 0 || (this._event = (n, r, s) => {
var i, a, o, c, u;
if (this._leakageMon && this._size > this._leakageMon.threshold * 3)
return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`), je.None;
if (this._disposed)
return je.None;
r && (n = n.bind(r));
const h = new xt(n);
let f;
this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2) && (h.stack = jt.create(), f = this._leakageMon.check(h.stack, this._size + 1)), this._listeners ? this._listeners instanceof xt ? ((u = this._deliveryQueue) !== null && u !== void 0 || (this._deliveryQueue = new Zr()), this._listeners = [this._listeners, h]) : this._listeners.push(h) : ((a = (i = this._options) === null || i === void 0 ? void 0 : i.onWillAddFirstListener) === null || a === void 0 || a.call(i, this), this._listeners = h, (c = (o = this._options) === null || o === void 0 ? void 0 : o.onDidAddFirstListener) === null || c === void 0 || c.call(o, this)), this._size++;
const m = Ge(() => {
f == null || f(), this._removeListener(h);
});
return s instanceof He ? s.add(m) : Array.isArray(s) && s.push(m), m;
}), this._event;
}
_removeListener(t) {
var n, r, s, i;
if ((r = (n = this._options) === null || n === void 0 ? void 0 : n.onWillRemoveListener) === null || r === void 0 || r.call(n, this), !this._listeners)
return;
if (this._size === 1) {
this._listeners = void 0, (i = (s = this._options) === null || s === void 0 ? void 0 : s.onDidRemoveLastListener) === null || i === void 0 || i.call(s, this), this._size = 0;
return;
}
const a = this._listeners, o = a.indexOf(t);
if (o === -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--, a[o] = void 0;
const c = this._deliveryQueue.current === this;
if (this._size * Yr <= a.length) {
let u = 0;
for (let h = 0; h < a.length; h++)
a[h] ? a[u++] = a[h] : c && (this._deliveryQueue.end--, u < this._deliveryQueue.i && this._deliveryQueue.i--);
a.length = u;
}
}
_deliver(t, n) {
var r;
if (!t)
return;
const s = ((r = this._options) === null || r === void 0 ? void 0 : r.onListenerError) || pr;
if (!s) {
t.value(n);
return;
}
try {
t.value(n);
} catch (i) {
s(i);
}
}
/** Delivers items in the queue. Assumes the queue is ready to go. */
_deliverQueue(t) {
const n = t.current._listeners;
for (; t.i < t.end; )
this._deliver(n[t.i++], t.value);
t.reset();
}
/**
* To be kept private to fire an event to
* subscribers
*/
fire(t) {
var n, r, s, i;
if (!((n = this._deliveryQueue) === null || n === void 0) && n.current && (this._deliverQueue(this._deliveryQueue), (r = this._perfMon) === null || r === void 0 || r.stop()), (s = this._perfMon) === null || s === void 0 || s.start(this._size), this._listeners)
if (this._listeners instanceof xt)
this._deliver(this._listeners, t);
else {
const a = this._deliveryQueue;
a.enqueue(this, t, this._listeners.length), this._deliverQueue(a);
}
(i = this._perfMon) === null || i === void 0 || i.stop();
}
hasListeners() {
return this._size > 0;
}
}
class Zr {
constructor() {
this.i = -1, this.end = 0;
}
enqueue(t, n, r) {
this.i = 0, this.end = r, this.current = t, this.value = n;
}
reset() {
this.i = this.end, this.current = void 0, this.value = void 0;
}
}
function Kr(e) {
return typeof e == "string";
}
function es(e) {
let t = [];
for (; Object.prototype !== e; )
t = t.concat(Object.getOwnPropertyNames(e)), e = Object.getPrototypeOf(e);
return t;
}
function Rt(e) {
const t = [];
for (const n of es(e))
typeof e[n] == "function" && t.push(n);
return t;
}
function ts(e, t) {
const n = (s) => function() {
const i = Array.prototype.slice.call(arguments, 0);
return t(s, i);
}, r = {};
for (const s of e)
r[s] = n(s);
return r;
}
globalThis && globalThis.__awaiter;
let ns = typeof document < "u" && document.location && document.location.hash.indexOf("pseudo=true") >= 0;
function rs(e, t) {
let n;
return t.length === 0 ? n = e : n = e.replace(/\{(\d+)\}/g, (r, s) => {
const i = s[0], a = t[i];
let o = r;
return typeof a == "string" ? o = a : (typeof a == "number" || typeof a == "boolean" || a === void 0 || a === null) && (o = String(a)), o;
}), ns && (n = "" + n.replace(/[aouei]/g, "$&$&") + ""), n;
}
function z(e, t, ...n) {
return rs(t, n);
}
var pt;
const Fe = "en";
let yt = !1, Mt = !1, vt = !1, wr = !1, rt, wt = Fe, Kt = Fe, ss, se;
const le = typeof self == "object" ? self : typeof global == "object" ? global : {};
let X;
typeof le.vscode < "u" && typeof le.vscode.process < "u" ? X = le.vscode.process : typeof process < "u" && (X = process);
const is = typeof ((pt = X == null ? void 0 : X.versions) === null || pt === void 0 ? void 0 : pt.electron) == "string", as = is && (X == null ? void 0 : X.type) === "renderer";
if (typeof navigator == "object" && !as)
se = navigator.userAgent, yt = se.indexOf("Windows") >= 0, Mt = se.indexOf("Macintosh") >= 0, (se.indexOf("Macintosh") >= 0 || se.indexOf("iPad") >= 0 || se.indexOf("iPhone") >= 0) && navigator.maxTouchPoints && navigator.maxTouchPoints > 0, vt = se.indexOf("Linux") >= 0, (se == null ? void 0 : se.indexOf("Mobi")) >= 0, wr = !0, // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale`
// to ensure that the NLS AMD Loader plugin has been loaded and configured.
// This is because the loader plugin decides what the default locale is based on
// how it's able to resolve the strings.
z({ key: "ensureLoaderPluginIsLoaded", comment: ["{Locked}"] }, "_"), rt = Fe, wt = rt, Kt = navigator.language;
else if (typeof X == "object") {
yt = X.platform === "win32", Mt = X.platform === "darwin", vt = X.platform === "linux", vt && X.env.SNAP && X.env.SNAP_REVISION, X.env.CI || X.env.BUILD_ARTIFACTSTAGINGDIRECTORY, rt = Fe, wt = Fe;
const e = X.env.VSCODE_NLS_CONFIG;
if (e)
try {
const t = JSON.parse(e), n = t.availableLanguages["*"];
rt = t.locale, Kt = t.osLocale, wt = n || Fe, ss = t._translationsConfigFile;
} catch {
}
} else
console.error("Unable to resolve platform.");
const Qe = yt, ls = Mt;
wr && le.importScripts;
const ce = se, os = typeof le.postMessage == "function" && !le.importScripts;
(() => {
if (os) {
const e = [];
le.addEventListener("message", (n) => {
if (n.data && n.data.vscodeScheduleAsyncWork)
for (let r = 0, s = e.length; r < s; r++) {
const i = e[r];
if (i.id === n.data.vscodeScheduleAsyncWork) {
e.splice(r, 1), i.callback();
return;
}
}
});
let t = 0;
return (n) => {
const r = ++t;
e.push({
id: r,
callback: n
}), le.postMessage({ vscodeScheduleAsyncWork: r }, "*");
};
}
return (e) => setTimeout(e);
})();
const us = !!(ce && ce.indexOf("Chrome") >= 0);
ce && ce.indexOf("Firefox") >= 0;
!us && ce && ce.indexOf("Safari") >= 0;
ce && ce.indexOf("Edg/") >= 0;
ce && ce.indexOf("Android") >= 0;
class cs {
constructor(t) {
this.fn = t, this.lastCache = void 0, this.lastArgKey = void 0;
}
get(t) {
const n = JSON.stringify(t);
return this.lastArgKey !== n && (this.lastArgKey = n, this.lastCache = this.fn(t)), this.lastCache;
}
}
class Lr {
constructor(t) {
this.executor = t, this._didRun = !1;
}
/**
* 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 (t) {
this._error = t;
} finally {
this._didRun = !0;
}
if (this._error)
throw this._error;
return this._value;
}
/**
* Get the wrapped value without forcing evaluation.
*/
get rawValue() {
return this._value;
}
}
var Ie;
function hs(e) {
return e.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g, "\\$&");
}
function fs(e) {
return e.split(/\r\n|\r|\n/);
}
function ds(e) {
for (let t = 0, n = e.length; t < n; t++) {
const r = e.charCodeAt(t);
if (r !== 32 && r !== 9)
return t;
}
return -1;
}
function ms(e, t = e.length - 1) {
for (let n = t; n >= 0; n--) {
const r = e.charCodeAt(n);
if (r !== 32 && r !== 9)
return n;
}
return -1;
}
function Nr(e) {
return e >= 65 && e <= 90;
}
function Et(e) {
return 55296 <= e && e <= 56319;
}
function gs(e) {
return 56320 <= e && e <= 57343;
}
function bs(e, t) {
return (e - 55296 << 10) + (t - 56320) + 65536;
}
function _s(e, t, n) {
const r = e.charCodeAt(n);
if (Et(r) && n + 1 < t) {
const s = e.charCodeAt(n + 1);
if (gs(s))
return bs(r, s);
}
return r;
}
const xs = /^[\t\n\r\x20-\x7E]*$/;
function ps(e) {
return xs.test(e);
}
class Re {
static getInstance(t) {
return Ie.cache.get(Array.from(t));
}
static getLocales() {
return Ie._locales.value;
}
constructor(t) {
this.confusableDictionary = t;
}
isAmbiguous(t) {
return this.confusableDictionary.has(t);
}
/**
* 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(t) {
return this.confusableDictionary.get(t);
}
getConfusableCodePoints() {
return new Set(this.confusableDictionary.keys());
}
}
Ie = Re;
Re.ambiguousCharacterData = new Lr(() => 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]}'));
Re.cache = new cs((e) => {
function t(u) {
const h = /* @__PURE__ */ new Map();
for (let f = 0; f < u.length; f += 2)
h.set(u[f], u[f + 1]);
return h;
}
function n(u, h) {
const f = new Map(u);
for (const [m, d] of h)
f.set(m, d);
return f;
}
function r(u, h) {
if (!u)
return h;
const f = /* @__PURE__ */ new Map();
for (const [m, d] of u)
h.has(m) && f.set(m, d);
return f;
}
const s = Ie.ambiguousCharacterData.value;
let i = e.filter((u) => !u.startsWith("_") && u in s);
i.length === 0 && (i = ["_default"]);
let a;
for (const u of i) {
const h = t(s[u]);
a = r(a, h);
}
const o = t(s._common), c = n(o, a);
return new Ie(c);
});
Re._locales = new Lr(() => Object.keys(Ie.ambiguousCharacterData.value).filter((e) => !e.startsWith("_")));
class pe {
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(pe.getRawData())), this._data;
}
static isInvisibleCharacter(t) {
return pe.getData().has(t);
}
static get codePoints() {
return pe.getData();
}
}
pe._data = void 0;
const vs = "$initialize";
class ws {
constructor(t, n, r, s) {
this.vsWorker = t, this.req = n, this.method = r, this.args = s, this.type = 0;
}
}
class en {
constructor(t, n, r, s) {
this.vsWorker = t, this.seq = n, this.res = r, this.err = s, this.type = 1;
}
}
class Ls {
constructor(t, n, r, s) {
this.vsWorker = t, this.req = n, this.eventName = r, this.arg = s, this.type = 2;
}
}
class Ns {
constructor(t, n, r) {
this.vsWorker = t, this.req = n, this.event = r, this.type = 3;
}
}
class Ss {
constructor(t, n) {
this.vsWorker = t, this.req = n, this.type = 4;
}
}
class Cs {
constructor(t) {
this._workerId = -1, this._handler = t, this._lastSentReq = 0, this._pendingReplies = /* @__PURE__ */ Object.create(null), this._pendingEmitters = /* @__PURE__ */ new Map(), this._pendingEvents = /* @__PURE__ */ new Map();
}
setWorkerId(t) {
this._workerId = t;
}
sendMessage(t, n) {
const r = String(++this._lastSentReq);
return new Promise((s, i) => {
this._pendingReplies[r] = {
resolve: s,
reject: i
}, this._send(new ws(this._workerId, r, t, n));
});
}
listen(t, n) {
let r = null;
const s = new ie({
onWillAddFirstListener: () => {
r = String(++this._lastSentReq), this._pendingEmitters.set(r, s), this._send(new Ls(this._workerId, r, t, n));
},
onDidRemoveLastListener: () => {
this._pendingEmitters.delete(r), this._send(new Ss(this._workerId, r)), r = null;
}
});
return s.event;
}
handleMessage(t) {
!t || !t.vsWorker || this._workerId !== -1 && t.vsWorker !== this._workerId || this._handleMessage(t);
}
_handleMessage(t) {
switch (t.type) {
case 1:
return this._handleReplyMessage(t);
case 0:
return this._handleRequestMessage(t);
case 2:
return this._handleSubscribeEventMessage(t);
case 3:
return this._handleEventMessage(t);
case 4:
return this._handleUnsubscribeEventMessage(t);
}
}
_handleReplyMessage(t) {
if (!this._pendingReplies[t.seq]) {
console.warn("Got reply to unknown seq");
return;
}
const n = this._pendingReplies[t.seq];
if (delete this._pendingReplies[t.seq], t.err) {
let r = t.err;
t.err.$isError && (r = new Error(), r.name = t.err.name, r.message = t.err.message, r.stack = t.err.stack), n.reject(r);
return;
}
n.resolve(t.res);
}
_handleRequestMessage(t) {
const n = t.req;
this._handler.handleMessage(t.method, t.args).then((s) => {
this._send(new en(this._workerId, n, s, void 0));
}, (s) => {
s.detail instanceof Error && (s.detail = Zt(s.detail)), this._send(new en(this._workerId, n, void 0, Zt(s)));
});
}
_handleSubscribeEventMessage(t) {
const n = t.req, r = this._handler.handleEvent(t.eventName, t.arg)((s) => {
this._send(new Ns(this._workerId, n, s));
});
this._pendingEvents.set(n, r);
}
_handleEventMessage(t) {
if (!this._pendingEmitters.has(t.req)) {
console.warn("Got event for unknown req");
return;
}
this._pendingEmitters.get(t.req).fire(t.event);
}
_handleUnsubscribeEventMessage(t) {
if (!this._pendingEvents.has(t.req)) {
console.warn("Got unsubscribe for unknown req");
return;
}
this._pendingEvents.get(t.req).dispose(), this._pendingEvents.delete(t.req);
}
_send(t) {
const n = [];
if (t.type === 0)
for (let r = 0; r < t.args.length; r++)
t.args[r] instanceof ArrayBuffer && n.push(t.args[r]);
else
t.type === 1 && t.res instanceof ArrayBuffer && n.push(t.res);
this._handler.sendMessage(t, n);
}
}
function Sr(e) {
return e[0] === "o" && e[1] === "n" && Nr(e.charCodeAt(2));
}
function Cr(e) {
return /^onDynamic/.test(e) && Nr(e.charCodeAt(9));
}
function As(e, t, n) {
const r = (a) => function() {
const o = Array.prototype.slice.call(arguments, 0);
return t(a, o);
}, s = (a) => function(o) {
return n(a, o);
}, i = {};
for (const a of e) {
if (Cr(a)) {
i[a] = s(a);
continue;
}
if (Sr(a)) {
i[a] = n(a, void 0);
continue;
}
i[a] = r(a);
}
return i;
}
class Rs {
constructor(t, n) {
this._requestHandlerFactory = n, this._requestHandler = null, this._protocol = new Cs({
sendMessage: (r, s) => {
t(r, s);
},
handleMessage: (r, s) => this._handleMessage(r, s),
handleEvent: (r, s) => this._handleEvent(r, s)
});
}
onmessage(t) {
this._protocol.handleMessage(t);
}
_handleMessage(t, n) {
if (t === vs)
return this.initialize(n[0], n[1], n[2], n[3]);
if (!this._requestHandler || typeof this._requestHandler[t] != "function")
return Promise.reject(new Error("Missing requestHandler or method: " + t));
try {
return Promise.resolve(this._requestHandler[t].apply(this._requestHandler, n));
} catch (r) {
return Promise.reject(r);
}
}
_handleEvent(t, n) {
if (!this._requestHandler)
throw new Error("Missing requestHandler");
if (Cr(t)) {
const r = this._requestHandler[t].call(this._requestHandler, n);
if (typeof r != "function")
throw new Error(`Missing dynamic event ${t} on request handler.`);
return r;
}
if (Sr(t)) {
const r = this._requestHandler[t];
if (typeof r != "function")
throw new Error(`Missing event ${t} on request handler.`);
return r;
}
throw new Error(`Malformed event name ${t}`);
}
initialize(t, n, r, s) {
this._protocol.setWorkerId(t);
const o = As(s, (c, u) => this._protocol.sendMessage(c, u), (c, u) => this._protocol.listen(c, u));
return this._requestHandlerFactory ? (this._requestHandler = this._requestHandlerFactory(o), Promise.resolve(Rt(this._requestHandler))) : (n && (typeof n.baseUrl < "u" && delete n.baseUrl, typeof n.paths < "u" && typeof n.paths.vs < "u" && delete n.paths.vs, typeof n.trustedTypesPolicy !== void 0 && delete n.trustedTypesPolicy, n.catchError = !0, globalThis.require.config(n)), new Promise((c, u) => {
const h = globalThis.require;
h([r], (f) => {
if (this._requestHandler = f.create(o), !this._requestHandler) {
u(new Error("No RequestHandler!"));
return;
}
c(Rt(this._requestHandler));
}, u);
}));
}
}
class be {
/**
* Constructs a new DiffChange with the given sequence information
* and content.
*/
constructor(t, n, r, s) {
this.originalStart = t, this.originalLength = n, this.modifiedStart = r, this.modifiedLength = s;
}
/**
* 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;
}
}
function tn(e, t) {
return (t << 5) - t + e | 0;
}
function ys(e, t) {
t = tn(149417, t);
for (let n = 0, r = e.length; n < r; n++)
t = tn(e.charCodeAt(n), t);
return t;
}
class nn {
constructor(t) {
this.source = t;
}
getElements() {
const t = this.source, n = new Int32Array(t.length);
for (let r = 0, s = t.length; r < s; r++)
n[r] = t.charCodeAt(r);
return n;
}
}
function Ms(e, t, n) {
return new _e(new nn(e), new nn(t)).ComputeDiff(n).changes;
}
class Me {
static Assert(t, n) {
if (!t)
throw new Error(n);
}
}
class Ee {
/**
* 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(t, n, r, s, i) {
for (let a = 0; a < i; a++)
r[s + a] = t[n + a];
}
static Copy2(t, n, r, s, i) {
for (let a = 0; a < i; a++)
r[s + a] = t[n + a];
}
}
class rn {
/**
* Constructs a new DiffChangeHelper for the given DiffSequences.
*/
constructor() {
this.m_changes = [], this.m_originalStart = 1073741824, this.m_modifiedStart = 1073741824, this.m_originalCount = 0, this.m_modifiedCount = 0;
}
/**
* Marks the beginning of the next change in the set of differences.
*/
MarkNextChange() {
(this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.m_changes.push(new be(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;
}
/**
* 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(t, n) {
this.m_originalStart = Math.min(this.m_originalStart, t), this.m_modifiedStart = Math.min(this.m_modifiedStart, n), 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(t, n) {
this.m_originalStart = Math.min(this.m_originalStart, t), this.m_modifiedStart = Math.min(this.m_modifiedStart, n), this.m_modifiedCount++;
}
/**
* Retrieves all of the changes marked by the class.
*/
getChanges() {
return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes;
}
/**
* Retrieves all of the changes marked by the class in the reverse order
*/
getReverseChanges() {
return (this.m_originalCount > 0 || this.m_modifiedCount > 0) && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes;
}
}
class _e {
/**
* Constructs the DiffFinder
*/
constructor(t, n, r = null) {
this.ContinueProcessingPredicate = r, this._originalSequence = t, this._modifiedSequence = n;
const [s, i, a] = _e._getElements(t), [o, c, u] = _e._getElements(n);
this._hasStrings = a && u, this._originalStringElements = s, this._originalElementsOrHash = i, this._modifiedStringElements = o, this._modifiedElementsOrHash = c, this.m_forwardHistory = [], this.m_reverseHistory = [];
}
static _isStringArray(t) {
return t.length > 0 && typeof t[0] == "string";
}
static _getElements(t) {
const n = t.getElements();
if (_e._isStringArray(n)) {
const r = new Int32Array(n.length);
for (let s = 0, i = n.length; s < i; s++)
r[s] = ys(n[s], 0);
return [n, r, !0];
}
return n instanceof Int32Array ? [[], n, !1] : [[], new Int32Array(n), !1];
}
ElementsAreEqual(t, n) {
return this._originalElementsOrHash[t] !== this._modifiedElementsOrHash[n] ? !1 : this._hasStrings ? this._originalStringElements[t] === this._modifiedStringElements[n] : !0;
}
ElementsAreStrictEqual(t, n) {
if (!this.ElementsAreEqual(t, n))
return !1;
const r = _e._getStrictElement(this._originalSequence, t), s = _e._getStrictElement(this._modifiedSequence, n);
return r === s;
}
static _getStrictElement(t, n) {
return typeof t.getStrictElement == "function" ? t.getStrictElement(n) : null;
}
OriginalElementsAreEqual(t, n) {
return this._originalElementsOrHash[t] !== this._originalElementsOrHash[n] ? !1 : this._hasStrings ? this._originalStringElements[t] === this._originalStringElements[n] : !0;
}
ModifiedElementsAreEqual(t, n) {
return this._modifiedElementsOrHash[t] !== this._modifiedElementsOrHash[n] ? !1 : this._hasStrings ? this._modifiedStringElements[t] === this._modifiedStringElements[n] : !0;
}
ComputeDiff(t) {
return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, t);
}
/**
* 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(t, n, r, s, i) {
const a = [!1];
let o = this.ComputeDiffRecursive(t, n, r, s, a);
return i && (o = this.PrettifyChanges(o)), {
quitEarly: a[0],
changes: o
};
}
/**
* Private helper method which computes the differences on the bounded range
* recursively.
* @returns An array of the differences between the two input sequences.
*/
ComputeDiffRecursive(t, n, r, s, i) {
for (i[0] = !1; t <= n && r <= s && this.ElementsAreEqual(t, r); )
t++, r++;
for (; n >= t && s >= r && this.ElementsAreEqual(n, s); )
n--, s--;
if (t > n || r > s) {
let f;
return r <= s ? (Me.Assert(t === n + 1, "originalStart should only be one more than originalEnd"), f = [
new be(t, 0, r, s - r + 1)
]) : t <= n ? (Me.Assert(r === s + 1, "modifiedStart should only be one more than modifiedEnd"), f = [
new be(t, n - t + 1, r, 0)
]) : (Me.Assert(t === n + 1, "originalStart should only be one more than originalEnd"), Me.Assert(r === s + 1, "modifiedStart should only be one more than modifiedEnd"), f = []), f;
}
const a = [0], o = [0], c = this.ComputeRecursionPoint(t, n, r, s, a, o, i), u = a[0], h = o[0];
if (c !== null)
return c;
if (!i[0]) {
const f = this.ComputeDiffRecursive(t, u, r, h, i);
let m = [];
return i[0] ? m = [
new be(u + 1, n - (u + 1) + 1, h + 1, s - (h + 1) + 1)
] : m = this.ComputeDiffRecursive(u + 1, n, h + 1, s, i), this.ConcatenateChanges(f, m);
}
return [
new be(t, n - t + 1, r, s - r + 1)
];
}
WALKTRACE(t, n, r, s, i, a, o, c, u, h, f, m, d, g, b, w, L, _) {
let x = null, S = null, N = new rn(), R = n, M = r, E = d[0] - w[0] - s, I = -1073741824, G = this.m_forwardHistory.length - 1;
do {
const B = E + t;
B === R || B < M && u[B - 1] < u[B + 1] ? (f = u[B + 1], g = f - E - s, f < I && N.MarkNextChange(), I = f, N.AddModifiedElement(f + 1, g), E = B + 1 - t) : (f = u[B - 1] + 1, g = f - E - s, f < I && N.MarkNextChange(), I = f - 1, N.AddOriginalElement(f, g + 1), E = B - 1 - t), G >= 0 && (u = this.m_forwardHistory[G], t = u[0], R = 1, M = u.length - 1);
} while (--G >= -1);
if (x = N.getReverseChanges(), _[0]) {
let B = d[0] + 1, p = w[0] + 1;
if (x !== null && x.length > 0) {
const v = x[x.length - 1];
B = Math.max(B, v.getOriginalEnd()), p = Math.max(p, v.getModifiedEnd());
}
S = [
new be(B, m - B + 1, p, b - p + 1)
];
} else {
N = new rn(), R = a, M = o, E = d[0] - w[0] - c, I = 1073741824, G = L ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;
do {
const B = E + i;
B === R || B < M && h[B - 1] >= h[B + 1] ? (f = h[B + 1] - 1, g = f - E - c, f > I && N.MarkNextChange(), I = f + 1, N.AddOriginalElement(f + 1, g + 1), E = B + 1 - i) : (f = h[B - 1], g = f - E - c, f > I && N.MarkNextChange(), I = f, N.AddModifiedElement(f + 1, g + 1), E = B - 1 - i), G >= 0 && (h = this.m_reverseHistory[G], i = h[0], R = 1, M = h.length - 1);
} while (--G >= -1);
S = N.getChanges();
}
return this.ConcatenateChanges(x, S);
}
/**
* 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(t, n, r, s, i, a, o) {
let c = 0, u = 0, h = 0, f = 0, m = 0, d = 0;
t--, r--, i[0] = 0, a[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];
const g = n - t + (s - r), b = g + 1, w = new Int32Array(b), L = new Int32Array(b), _ = s - r, x = n - t, S = t - r, N = n - s, M = (x - _) % 2 === 0;
w[_] = t, L[x] = n, o[0] = !1;
for (let E = 1; E <= g / 2 + 1; E++) {
let I = 0, G = 0;
h = this.ClipDiagonalBound(_ - E, E, _, b), f = this.ClipDiagonalBound(_ + E, E, _, b);
for (let p = h; p <= f; p += 2) {
p === h || p < f && w[p - 1] < w[p + 1] ? c = w[p + 1] : c = w[p - 1] + 1, u = c - (p - _) - S;
const v = c;
for (; c < n && u < s && this.ElementsAreEqual(c + 1, u + 1); )
c++, u++;
if (w[p] = c, c + u > I + G && (I = c, G = u), !M && Math.abs(p - x) <= E - 1 && c >= L[p])
return i[0] = c, a[0] = u, v <= L[p] && 1447 > 0 && E <= 1447 + 1 ? this.WALKTRACE(_, h, f, S, x, m, d, N, w, L, c, n, i, u, s, a, M, o) : null;
}
const B = (I - t + (G - r) - E) / 2;
if (this.ContinueProcessingPredicate !== null && !this.ContinueProcessingPredicate(I, B))
return o[0] = !0, i[0] = I, a[0] = G, B > 0 && 1447 > 0 && E <= 1447 + 1 ? this.WALKTRACE(_, h, f, S, x, m, d, N, w, L, c, n, i, u, s, a, M, o) : (t++, r++, [
new be(t, n - t + 1, r, s - r + 1)
]);
m = this.ClipDiagonalBound(x - E, E, x, b), d = this.ClipDiagonalBound(x + E, E, x, b);
for (let p = m; p <= d; p += 2) {
p === m || p < d && L[p - 1] >= L[p + 1] ? c = L[p + 1] - 1 : c = L[p - 1], u = c - (p - x) - N;
const v = c;
for (; c > t && u > r && this.ElementsAreEqual(c, u); )
c--, u--;
if (L[p] = c, M && Math.abs(p - _) <= E && c <= w[p])
return i[0] = c, a[0] = u, v >= w[p] && 1447 > 0 && E <= 1447 + 1 ? this.WALKTRACE(_, h, f, S, x, m, d, N, w, L, c, n, i, u, s, a, M, o) : null;
}
if (E <= 1447) {
let p = new Int32Array(f - h + 2);
p[0] = _ - h + 1, Ee.Copy2(w, h, p, 1, f - h + 1), this.m_forwardHistory.push(p), p = new Int32Array(d - m + 2), p[0] = x - m + 1, Ee.Copy2(L, m, p, 1, d - m + 1), this.m_reverseHistory.push(p);
}
}
return this.WALKTRACE(_, h, f, S, x, m, d, N, w, L, c, n, i, u, s, a, M, o);
}
/**
* 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(t) {
for (let n = 0; n < t.length; n++) {
const r = t[n], s = n < t.length - 1 ? t[n + 1].originalStart : this._originalElementsOrHash.length, i = n < t.length - 1 ? t[n + 1].modifiedStart : this._modifiedElementsOrHash.length, a = r.originalLength > 0, o = r.modifiedLength > 0;
for (; r.originalStart + r.originalLength < s && r.modifiedStart + r.modifiedLength < i && (!a || this.OriginalElementsAreEqual(r.originalStart, r.originalStart + r.originalLength)) && (!o || this.ModifiedElementsAreEqual(r.modifiedStart, r.modifiedStart + r.modifiedLength)); ) {
const u = this.ElementsAreStrictEqual(r.originalStart, r.modifiedStart);
if (this.ElementsAreStrictEqual(r.originalStart + r.originalLength, r.modifiedStart + r.modifiedLength) && !u)
break;
r.originalStart++, r.modifiedStart++;
}
const c = [null];
if (n < t.length - 1 && this.ChangesOverlap(t[n], t[n + 1], c)) {
t[n] = c[0], t.splice(n + 1, 1), n--;
continue;
}
}
for (let n = t.length - 1; n >= 0; n--) {
const r = t[n];
let s = 0, i = 0;
if (n > 0) {
const f = t[n - 1];
s = f.originalStart + f.originalLength, i = f.modifiedStart + f.modifiedLength;
}
const a = r.originalLength > 0, o = r.modifiedLength > 0;
let c = 0, u = this._boundaryScore(r.originalStart, r.originalLength, r.modifiedStart, r.modifiedLength);
for (let f = 1; ; f++) {
const m = r.originalStart - f, d = r.modifiedStart - f;
if (m < s || d < i || a && !this.OriginalElementsAreEqual(m, m + r.originalLength) || o && !this.ModifiedElementsAreEqual(d, d + r.modifiedLength))
break;
const b = (m === s && d === i ? 5 : 0) + this._boundaryScore(m, r.originalLength, d, r.modifiedLength);
b > u && (u = b, c = f);
}
r.originalStart -= c, r.modifiedStart -= c;
const h = [null];
if (n > 0 && this.ChangesOverlap(t[n - 1], t[n], h)) {
t[n - 1] = h[0], t.splice(n, 1), n++;
continue;
}
}
if (this._hasStrings)
for (let n = 1, r = t.length; n < r; n++) {
const s = t[n - 1], i = t[n], a = i.originalStart - s.originalStart - s.originalLength, o = s.originalStart, c = i.originalStart + i.originalLength, u = c - o, h = s.modifiedStart, f = i.modifiedStart + i.modifiedLength, m = f - h;
if (a < 5 && u < 20 && m < 20) {
const d = this._findBetterContiguousSequence(o, u, h, m, a);
if (d) {
const [g, b] = d;
(g !== s.originalStart + s.originalLength || b !== s.modifiedStart + s.modifiedLength) && (s.originalLength = g - s.originalStart, s.modifiedLength = b - s.modifiedStart, i.originalStart = g + a, i.modifiedStart = b + a, i.originalLength = c - i.originalStart, i.modifiedLength = f - i.modifiedStart);
}
}
}
return t;
}
_findBetterContiguousSequence(t, n, r, s, i) {
if (n < i || s < i)
return null;
const a = t + n - i + 1, o = r + s - i + 1;
let c = 0, u = 0, h = 0;
for (let f = t; f < a; f++)
for (let m = r; m < o; m++) {
const d = this._contiguousSequenceScore(f, m, i);
d > 0 && d > c && (c = d, u = f, h = m);
}
return c > 0 ? [u, h] : null;
}
_contiguousSequenceScore(t, n, r) {
let s = 0;
for (let i = 0; i < r; i++) {
if (!this.ElementsAreEqual(t + i, n + i))
return 0;
s += this._originalStringElements[t + i].length;
}
return s;
}
_OriginalIsBoundary(t) {
return t <= 0 || t >= this._originalElementsOrHash.length - 1 ? !0 : this._hasStrings && /^\s*$/.test(this._originalStringElements[t]);
}
_OriginalRegionIsBoundary(t, n) {
if (this._OriginalIsBoundary(t) || this._OriginalIsBoundary(t - 1))
return !0;
if (n > 0) {
const r = t + n;
if (this._OriginalIsBoundary(r - 1) || this._OriginalIsBoundary(r))
return !0;
}
return !1;
}
_ModifiedIsBoundary(t) {
return t <= 0 || t >= this._modifiedElementsOrHash.length - 1 ? !0 : this._hasStrings && /^\s*$/.test(this._modifiedStringElements[t]);
}
_ModifiedRegionIsBoundary(t, n) {
if (this._ModifiedIsBoundary(t) || this._ModifiedIsBoundary(t - 1))
return !0;
if (n > 0) {
const r = t + n;
if (this._ModifiedIsBoundary(r - 1) || this._ModifiedIsBoundary(r))
return !0;
}
return !1;
}
_boundaryScore(t, n, r, s) {
const i = this._OriginalRegionIsBoundary(t, n) ? 1 : 0, a = this._ModifiedRegionIsBoundary(r, s) ? 1 : 0;
return i + a;
}
/**
* Concatenates the two input DiffChange lists and returns the resulting
* list.
* @param The left changes
* @param The right changes
* @returns The concatenated list
*/
ConcatenateChanges(t, n) {
const r = [];
if (t.length === 0 || n.length === 0)
return n.length > 0 ? n : t;
if (this.ChangesOverlap(t[t.length - 1], n[0], r)) {
const s = new Array(t.length + n.length - 1);
return Ee.Copy(t, 0, s, 0, t.length - 1), s[t.length - 1] = r[0], Ee.Copy(n, 1, s, t.length, n.length - 1), s;
} else {
const s = new Array(t.length + n.length);
return Ee.Copy(t, 0, s, 0, t.length), Ee.Copy(n, 0, s, t.length, n.length), s;
}
}
/**
* 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(t, n, r) {
if (Me.Assert(t.originalStart <= n.originalStart, "Left change is not less than or equal to right change"), Me.Assert(t.modifiedStart <= n.modifiedStart, "Left change is not less than or equal to right change"), t.originalStart + t.originalLength >= n.originalStart || t.modifiedStart + t.modifiedLength >= n.modifiedStart) {
const s = t.originalStart;
let i = t.originalLength;
const a = t.modifiedStart;
let o = t.modifiedLength;
return t.originalStart + t.originalLength >= n.originalStart && (i = n.originalStart + n.originalLength - t.originalStart), t.modifiedStart + t.modifiedLength >= n.modifiedStart && (o = n.modifiedStart + n.modifiedLength - t.modifiedStart), r[0] = new be(s, i, a, o), !0;
} else
return r[0] = null, !1;
}
/**
* 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(t, n, r, s) {
if (t >= 0 && t < s)
return t;
const i = r, a = s - r - 1, o = n % 2 === 0;
if (t < 0) {
const c = i % 2 === 0;
return o === c ? 0 : 1;
} else {
const c = a % 2 === 0;
return o === c ? s - 1 : s - 2;
}
}
}
let Te;
if (typeof le.vscode < "u" && typeof le.vscode.process < "u") {
const e = le.vscode.process;
Te = {
get platform() {
return e.platform;
},
get arch() {
return e.arch;
},
get env() {
return e.env;
},
cwd() {
return e.cwd();
}
};
} else
typeof process < "u" ? Te = {
get platform() {
return process.platform;
},
get arch() {
return process.arch;
},
get env() {
return process.env;
},
cwd() {
return process.env.VSCODE_CWD || process.cwd();
}
} : Te = {
// Supported
get platform() {
return Qe ? "win32" : ls ? "darwin" : "linux";
},
get arch() {
},
// Unsupported
get env() {
return {};
},
cwd() {
return "/";
}
};
const ht = Te.cwd, Es = Te.env, ks = Te.platform, Ps = 65, Fs = 97, Ds = 90, Ts = 122, ve = 46, Q = 47, ee = 92, de = 58, Vs = 63;
class Ar extends Error {
constructor(t, n, r) {
let s;
typeof n == "string" && n.indexOf("not ") === 0 ? (s = "must not be", n = n.replace(/^not /, "")) : s = "must be";
const i = t.indexOf(".") !== -1 ? "property" : "argument";
let a = `The "${t}" ${i} ${s} of type ${n}`;
a += `. Received type ${typeof r}`, super(a), this.code = "ERR_INVALID_ARG_TYPE";
}
}
function Bs(e, t) {
if (e === null || typeof e != "object")
throw new Ar(t, "Object", e);
}
function $(e, t) {
if (typeof e != "string")
throw new Ar(t, "string", e);
}
const Ne = ks === "win32";
function P(e) {
return e === Q || e === ee;
}
function kt(e) {
return e === Q;
}
function me(e) {
return e >= Ps && e <= Ds || e >= Fs && e <= Ts;
}
function ft(e, t, n, r) {
let s = "", i = 0, a = -1, o = 0, c = 0;
for (let u = 0; u <= e.length; ++u) {
if (u < e.length)
c = e.charCodeAt(u);
else {
if (r(c))
break;
c = Q;
}
if (r(c)) {
if (!(a === u - 1 || o === 1))
if (o === 2) {
if (s.length < 2 || i !== 2 || s.charCodeAt(s.length - 1) !== ve || s.charCodeAt(s.length - 2) !== ve) {
if (s.length > 2) {
const h = s.lastIndexOf(n);
h === -1 ? (s = "", i = 0) : (s = s.slice(0, h), i = s.length - 1 - s.lastIndexOf(n)), a = u, o = 0;
continue;
} else if (s.length !== 0) {
s = "", i = 0, a = u, o = 0;
continue;
}
}
t && (s += s.length > 0 ? `${n}..` : "..", i = 2);
} else
s.length > 0 ? s += `${n}${e.slice(a + 1, u)}` : s = e.slice(a + 1, u), i = u - a - 1;
a = u, o = 0;
} else
c === ve && o !== -1 ? ++o : o = -1;
}
return s;
}
function Rr(e, t) {
Bs(t, "pathObject");
const n = t.dir || t.root, r = t.base || `${t.name || ""}${t.ext || ""}`;
return n ? n === t.root ? `${n}${r}` : `${n}${e}${r}` : r;
}
const Z = {
// path.resolve([from ...], to)
resolve(...e) {
let t = "", n = "", r = !1;
for (let s = e.length - 1; s >= -1; s--) {
let i;
if (s >= 0) {
if (i = e[s], $(i, "path"), i.length === 0)
continue;
} else
t.length === 0 ? i = ht() : (i = Es[`=${t}`] || ht(), (i === void 0 || i.slice(0, 2).toLowerCase() !== t.toLowerCase() && i.charCodeAt(2) === ee) && (i = `${t}\\`));
const a = i.length;
let o = 0, c = "", u = !1;
const h = i.charCodeAt(0);
if (a === 1)
P(h) && (o = 1, u = !0);
else if (P(h))
if (u = !0, P(i.charCodeAt(1))) {
let f = 2, m = f;
for (; f < a && !P(i.charCodeAt(f)); )
f++;
if (f < a && f !== m) {
const d = i.slice(m, f);
for (m = f; f < a && P(i.charCodeAt(f)); )
f++;
if (f < a && f !== m) {
for (m = f; f < a && !P(i.charCodeAt(f)); )
f++;
(f === a || f !== m) && (c = `\\\\${d}\\${i.slice(m, f)}`, o = f);
}
}
} else
o = 1;
else
me(h) && i.charCodeAt(1) === de && (c = i.slice(0, 2), o = 2, a > 2 && P(i.charCodeAt(2)) && (u = !0, o = 3));
if (c.length > 0)
if (t.length > 0) {
if (c.toLowerCase() !== t.toLowerCase())
continue;
} else
t = c;
if (r) {
if (t.length > 0)
break;
} else if (n = `${i.slice(o)}\\${n}`, r = u, u && t.length > 0)
break;
}
return n = ft(n, !r, "\\", P), r ? `${t}\\${n}` : `${t}${n}` || ".";
},
normalize(e) {
$(e, "path");
const t = e.length;
if (t === 0)
return ".";
let n = 0, r, s = !1;
const i = e.charCodeAt(0);
if (t === 1)
return kt(i) ? "\\" : e;
if (P(i))
if (s = !0, P(e.charCodeAt(1))) {
let o = 2, c = o;
for (; o < t && !P(e.charCodeAt(o)); )
o++;
if (o < t && o !== c) {
const u = e.slice(c, o);
for (c = o; o < t && P(e.charCodeAt(o)); )
o++;
if (o < t && o !== c) {
for (c = o; o < t && !P(e.charCodeAt(o)); )
o++;
if (o === t)
return `\\\\${u}\\${e.slice(c)}\\`;
o !== c && (r = `\\\\${u}\\${e.slice(c, o)}`, n = o);
}
}
} else
n = 1;
else
me(i) && e.charCodeAt(1) === de && (r = e.slice(0, 2), n = 2, t > 2 && P(e.charCodeAt(2)) && (s = !0, n = 3));
let a = n < t ? ft(e.slice(n), !s, "\\", P) : "";
return a.length === 0 && !s && (a = "."), a.length > 0 && P(e.charCodeAt(t - 1)) && (a += "\\"), r === void 0 ? s ? `\\${a}` : a : s ? `${r}\\${a}` : `${r}${a}`;
},
isAbsolute(e) {
$(e, "path");
const t = e.length;
if (t === 0)
return !1;
const n = e.charCodeAt(0);
return P(n) || // Possible device root
t > 2 && me(n) && e.charCodeAt(1) === de && P(e.charCodeAt(2));
},
join(...e) {
if (e.length === 0)
return ".";
let t, n;
for (let i = 0; i < e.length; ++i) {
const a = e[i];
$(a, "path"), a.length > 0 && (t === void 0 ? t = n = a : t += `\\${a}`);
}
if (t === void 0)
return ".";
let r = !0, s = 0;
if (typeof n == "string" && P(n.charCodeAt(0))) {
++s;
const i = n.length;
i > 1 && P(n.charCodeAt(1)) && (++s, i > 2 && (P(n.charCodeAt(2)) ? ++s : r = !1));
}
if (r) {
for (; s < t.length && P(t.charCodeAt(s)); )
s++;
s >= 2 && (t = `\\${t.slice(s)}`);
}
return Z.normalize(t);
},
// 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(e, t) {
if ($(e, "from"), $(t, "to"), e === t)
return "";
const n = Z.resolve(e), r = Z.resolve(t);
if (n === r || (e = n.toLowerCase(), t = r.toLowerCase(), e === t))
return "";
let s = 0;
for (; s < e.length && e.charCodeAt(s) === ee; )
s++;
let i = e.length;
for (; i - 1 > s && e.charCodeAt(i - 1) === ee; )
i--;
const a = i - s;
let o = 0;
for (; o < t.length && t.charCodeAt(o) === ee; )
o++;
let c = t.length;
for (; c - 1 > o && t.charCodeAt(c - 1) === ee; )
c--;
const u = c - o, h = a < u ? a : u;
let f = -1, m = 0;
for (; m < h; m++) {
const g = e.charCodeAt(s + m);
if (g !== t.charCodeAt(o + m))
break;
g === ee && (f = m);
}
if (m !== h) {
if (f === -1)
return r;
} else {
if (u > h) {
if (t.charCodeAt(o + m) === ee)
return r.slice(o + m + 1);
if (m === 2)
return r.slice(o + m);
}
a > h && (e.charCodeAt(s + m) === ee ? f = m : m === 2 && (f = 3)), f === -1 && (f = 0);
}
let d = "";
for (m = s + f + 1; m <= i; ++m)
(m === i || e.charCodeAt(m) === ee) && (d += d.length === 0 ? ".." : "\\..");
return o += f, d.length > 0 ? `${d}${r.slice(o, c)}` : (r.charCodeAt(o) === ee && ++o, r.slice(o, c));
},
toNamespacedPath(e) {
if (typeof e != "string" || e.length === 0)
return e;
const t = Z.resolve(e);
if (t.length <= 2)
return e;
if (t.charCodeAt(0) === ee) {
if (t.charCodeAt(1) === ee) {
const n = t.charCodeAt(2);
if (n !== Vs && n !== ve)
return `\\\\?\\UNC\\${t.slice(2)}`;
}
} else if (me(t.charCodeAt(0)) && t.charCodeAt(1) === de && t.charCodeAt(2) === ee)
return `\\\\?\\${t}`;
return e;
},
dirname(e) {
$(e, "path");
const t = e.length;
if (t === 0)
return ".";
let n = -1, r = 0;
const s = e.charCodeAt(0);
if (t === 1)
return P(s) ? e : ".";
if (P(s)) {
if (n = r = 1, P(e.charCodeAt(1))) {
let o = 2, c = o;
for (; o < t && !P(e.charCodeAt(o)); )
o++;
if (o < t && o !== c) {
for (c = o; o < t && P(e.charCodeAt(o)); )
o++;
if (o < t && o !== c) {
for (c = o; o < t && !P(e.charCodeAt(o)); )
o++;
if (o === t)
return e;
o !== c && (n = r = o + 1);
}
}
}
} else
me(s) && e.charCodeAt(1) === de && (n = t > 2 && P(e.charCodeAt(2)) ? 3 : 2, r = n);
let i = -1, a = !0;
for (let o = t - 1; o >= r; --o)
if (P(e.charCodeAt(o))) {
if (!a) {
i = o;
break;
}
} else
a = !1;
if (i === -1) {
if (n === -1)
return ".";
i = n;
}
return e.slice(0, i);
},
basename(e, t) {
t !== void 0 && $(t, "ext"), $(e, "path");
let n = 0, r = -1, s = !0, i;
if (e.length >= 2 && me(e.charCodeAt(0)) && e.charCodeAt(1) === de && (n = 2), t !== void 0 && t.length > 0 && t.length <= e.length) {
if (t === e)
return "";
let a = t.length - 1, o = -1;
for (i = e.length - 1; i >= n; --i) {
const c = e.charCodeAt(i);
if (P(c)) {
if (!s) {
n = i + 1;
break;
}
} else
o === -1 && (s = !1, o = i + 1), a >= 0 && (c === t.charCodeAt(a) ? --a === -1 && (r = i) : (a = -1, r = o));
}
return n === r ? r = o : r === -1 && (r = e.length), e.slice(n, r);
}
for (i = e.length - 1; i >= n; --i)
if (P(e.charCodeAt(i))) {
if (!s) {
n = i + 1;
break;
}
} else
r === -1 && (s = !1, r = i + 1);
return r === -1 ? "" : e.slice(n, r);
},
extname(e) {
$(e, "path");
let t = 0, n = -1, r = 0, s = -1, i = !0, a = 0;
e.length >= 2 && e.charCodeAt(1) === de && me(e.charCodeAt(0)) && (t = r = 2);
for (let o = e.length - 1; o >= t; --o) {
const c = e.charCodeAt(o);
if (P(c)) {
if (!i) {
r = o + 1;
break;
}
continue;
}
s === -1 && (i = !1, s = o + 1), c === ve ? n === -1 ? n = o : a !== 1 && (a = 1) : n !== -1 && (a = -1);
}
return n === -1 || s === -1 || // We saw a non-dot character immediately before the dot
a === 0 || // The (right-most) trimmed path component is exactly '..'
a === 1 && n === s - 1 && n === r + 1 ? "" : e.slice(n, s);
},
format: Rr.bind(null, "\\"),
parse(e) {
$(e, "path");
const t = { root: "", dir: "", base: "", ext: "", name: "" };
if (e.length === 0)
return t;
const n = e.length;
let r = 0, s = e.charCodeAt(0);
if (n === 1)
return P(s) ? (t.root = t.dir = e, t) : (t.base = t.name = e, t);
if (P(s)) {
if (r = 1, P(e.charCodeAt(1))) {
let f = 2, m = f;
for (; f < n && !P(e.charCodeAt(f)); )
f++;
if (f < n && f !== m) {
for (m = f; f < n && P(e.charCodeAt(f)); )
f++;
if (f < n && f !== m) {
for (m = f; f < n && !P(e.charCodeAt(f)); )
f++;
f === n ? r = f : f !== m && (r = f + 1);
}
}
}
} else if (me(s) && e.charCodeAt(1) === de) {
if (n <= 2)
return t.root = t.dir = e, t;
if (r = 2, P(e.charCodeAt(2))) {
if (n === 3)
return t.root = t.dir = e, t;
r = 3;
}
}
r > 0 && (t.root = e.slice(0, r));
let i = -1, a = r, o = -1, c = !0, u = e.length - 1, h = 0;
for (; u >= r; --u) {
if (s = e.charCodeAt(u), P(s)) {
if (!c) {
a = u + 1;
break;
}
continue;
}
o === -1 && (c = !1, o = u + 1), s === ve ? i === -1 ? i = u : h !== 1 && (h = 1) : i !== -1 && (h = -1);
}
return o !== -1 && (i === -1 || // We saw a non-dot character immediately before the dot
h === 0 || // The (right-most) trimmed path component is exactly '..'
h === 1 && i === o - 1 && i === a + 1 ? t.base = t.name = e.slice(a, o) : (t.name = e.slice(a, i), t.base = e.slice(a, o), t.ext = e.slice(i, o))), a > 0 && a !== r ? t.dir = e.slice(0, a - 1) : t.dir = t.root, t;
},
sep: "\\",
delimiter: ";",
win32: null,
posix: null
}, qs = (() => {
if (Ne) {
const e = /\\/g;
return () => {
const t = ht().replace(e, "/");
return t.slice(t.indexOf("/"));
};
}
return () => ht();
})(), te = {
// path.resolve([from ...], to)
resolve(...e) {
let t = "", n = !1;
for (let r = e.length - 1; r >= -1 && !n; r--) {
const s = r >= 0 ? e[r] : qs();
$(s, "path"), s.length !== 0 && (t = `${s}/${t}`, n = s.charCodeAt(0) === Q);
}
return t = ft(t, !n, "/", kt), n ? `/${t}` : t.length > 0 ? t : ".";
},
normalize(e) {
if ($(e, "path"), e.length === 0)
return ".";
const t = e.charCodeAt(0) === Q, n = e.charCodeAt(e.length - 1) === Q;
return e = ft(e, !t, "/", kt), e.length === 0 ? t ? "/" : n ? "./" : "." : (n && (e += "/"), t ? `/${e}` : e);
},
isAbsolute(e) {
return $(e, "path"), e.length > 0 && e.charCodeAt(0) === Q;
},
join(...e) {
if (e.length === 0)
return ".";
let t;
for (let n = 0; n < e.length; ++n) {
const r = e[n];
$(r, "path"), r.length > 0 && (t === void 0 ? t = r : t += `/${r}`);
}
return t === void 0 ? "." : te.normalize(t);
},
relative(e, t) {
if ($(e, "from"), $(t, "to"), e === t || (e = te.resolve(e), t = te.resolve(t), e === t))
return "";
const n = 1, r = e.length, s = r - n, i = 1, a = t.length - i, o = s < a ? s : a;
let c = -1, u = 0;
for (; u < o; u++) {
const f = e.charCodeAt(n + u);
if (f !== t.charCodeAt(i + u))
break;
f === Q && (c = u);
}
if (u === o)
if (a > o) {
if (t.charCodeAt(i + u) === Q)
return t.slice(i + u + 1);
if (u === 0)
return t.slice(i + u);
} else
s > o && (e.charCodeAt(n + u) === Q ? c = u : u === 0 && (c = 0));
let h = "";
for (u = n + c + 1; u <= r; ++u)
(u === r || e.charCodeAt(u) === Q) && (h += h.length === 0 ? ".." : "/..");
return `${h}${t.slice(i + c)}`;
},
toNamespacedPath(e) {
return e;
},
dirname(e) {
if ($(e, "path"), e.length === 0)
return ".";
const t = e.charCodeAt(0) === Q;
let n = -1, r = !0;
for (let s = e.length - 1; s >= 1; --s)
if (e.charCodeAt(s) === Q) {
if (!r) {
n = s;
break;
}
} else
r = !1;
return n === -1 ? t ? "/" : "." : t && n === 1 ? "//" : e.slice(0, n);
},
basename(e, t) {
t !== void 0 && $(t, "ext"), $(e, "path");
let n = 0, r = -1, s = !0, i;
if (t !== void 0 && t.length > 0 && t.length <= e.length) {
if (t === e)
return "";
let a = t.length - 1, o = -1;
for (i = e.length - 1; i >= 0; --i) {
const c = e.charCodeAt(i);
if (c === Q) {
if (!s) {
n = i + 1;
break;
}
} else
o === -1 && (s = !1, o = i + 1), a >= 0 && (c === t.charCodeAt(a) ? --a === -1 && (r = i) : (a = -1, r = o));
}
return n === r ? r = o : r === -1 && (r = e.length), e.slice(n, r);
}
for (i = e.length - 1; i >= 0; --i)
if (e.charCodeAt(i) === Q) {
if (!s) {
n = i + 1;
break;
}
} else
r === -1 && (s = !1, r = i + 1);
return r === -1 ? "" : e.slice(n, r);
},
extname(e) {
$(e, "path");
let t = -1, n = 0, r = -1, s = !0, i = 0;
for (let a = e.length - 1; a >= 0; --a) {
const o = e.charCodeAt(a);
if (o === Q) {
if (!s) {
n = a + 1;
break;
}
continue;
}
r === -1 && (s = !1, r = a + 1), o === ve ? t === -1 ? t = a : i !== 1 && (i = 1) : t !== -1 && (i = -1);
}
return t === -1 || r === -1 || // We saw a non-dot character immediately before the dot
i === 0 || // The (right-most) trimmed path component is exactly '..'
i === 1 && t === r - 1 && t === n + 1 ? "" : e.slice(t, r);
},
format: Rr.bind(null, "/"),
parse(e) {
$(e, "path");
const t = { root: "", dir: "", base: "", ext: "", name: "" };
if (e.length === 0)
return t;
const n = e.charCodeAt(0) === Q;
let r;
n ? (t.root = "/", r = 1) : r = 0;
let s = -1, i = 0, a = -1, o = !0, c = e.length - 1, u = 0;
for (; c >= r; --c) {
const h = e.charCodeAt(c);
if (h === Q) {
if (!o) {
i = c + 1;
break;
}
continue;
}
a === -1 && (o = !1, a = c + 1), h === ve ? s === -1 ? s = c : u !== 1 && (u = 1) : s !== -1 && (u = -1);
}
if (a !== -1) {
const h = i === 0 && n ? 1 : i;
s === -1 || // We saw a non-dot character immediately before the dot
u === 0 || // The (right-most) trimmed path component is exactly '..'
u === 1 && s === a - 1 && s === i + 1 ? t.base = t.name = e.slice(h, a) : (t.name = e.slice(h, s), t.base = e.slice(h, a), t.ext = e.slice(s, a));
}
return i > 0 ? t.dir = e.slice(0, i - 1) : n && (t.dir = "/"), t;
},
sep: "/",
delimiter: ":",
win32: null,
posix: null
};
te.win32 = Z.win32 = Z;
te.posix = Z.posix = te;
Ne ? Z.normalize : te.normalize;
Ne ? Z.resolve : te.resolve;
Ne ? Z.relative : te.relative;
Ne ? Z.dirname : te.dirname;
Ne ? Z.basename : te.basename;
Ne ? Z.extname : te.extname;
Ne ? Z.sep : te.sep;
const Is = /^\w[\w\d+.-]*$/, Us = /^\//, Hs = /^\/\//;
function Ws(e, t) {
if (!e.scheme && t)
throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);
if (e.scheme && !Is.test(e.scheme))
throw new Error("[UriError]: Scheme contains illegal characters.");
if (e.path) {
if (e.authority) {
if (!Us.test(e.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 (Hs.test(e.path))
throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
}
}
function zs(e, t) {
return !e && !t ? "file" : e;
}
function $s(e, t) {
switch (e) {
case "https":
case "http":
case "file":
t ? t[0] !== ae && (t = ae + t) : t = ae;
break;
}
return t;
}
const W = "", ae = "/", Os = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
class Ce {
static isUri(t) {
return t instanceof Ce ? !0 : 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" : !1;
}
/**
* @internal
*/
constructor(t, n, r, s, i, a = !1) {
typeof t == "object" ? (this.scheme = t.scheme || W, this.authority = t.authority || W, this.path = t.path || W, this.query = t.query || W, this.fragment = t.fragment || W) : (this.scheme = zs(t, a), this.authority = n || W, this.path = $s(this.scheme, r || W), this.query = s || W, this.fragment = i || W, Ws(this, a));
}
// ---- 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() {
return Pt(this, !1);
}
// ---- modify to new -------------------------
with(t) {
if (!t)
return this;
let { scheme: n, authority: r, path: s, query: i, fragment: a } = t;
return n === void 0 ? n = this.scheme : n === null && (n = W), r === void 0 ? r = this.authority : r === null && (r = W), s === void 0 ? s = this.path : s === null && (s = W), i === void 0 ? i = this.query : i === null && (i = W), a === void 0 ? a = this.fragment : a === null && (a = W), n === this.scheme && r === this.authority && s === this.path && i === this.query && a === this.fragment ? this : new ke(n, r, s, i, a);
}
// ---- 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(t, n = !1) {
const r = Os.exec(t);
return r ? new ke(r[2] || W, st(r[4] || W), st(r[5] || W), st(r[7] || W), st(r[9] || W), n) : new ke(W, W, W, W, W);
}
/**
* 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(t) {
let n = W;
if (Qe && (t = t.replace(/\\/g, ae)), t[0] === ae && t[1] === ae) {
const r = t.indexOf(ae, 2);
r === -1 ? (n = t.substring(2), t = ae) : (n = t.substring(2, r), t = t.substring(r) || ae);
}
return new ke("file", n, t, W, W);
}
/**
* 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(t, n) {
return new ke(t.scheme, t.authority, t.path, t.query, t.fragment, n);
}
/**
* 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(t, ...n) {
if (!t.path)
throw new Error("[UriError]: cannot call joinPath on URI without path");
let r;
return Qe && t.scheme === "file" ? r = Ce.file(Z.join(Pt(t, !0), ...n)).path : r = te.join(t.path, ...n), t.with({ path: r });
}
// ---- 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(t = !1) {
return Ft(this, t);
}
toJSON() {
return this;
}
static revive(t) {
var n, r;
if (t) {
if (t instanceof Ce)
return t;
{
const s = new ke(t);
return s._formatted = (n = t.external) !== null && n !== void 0 ? n : null, s._fsPath = t._sep === yr && (r = t.fsPath) !== null && r !== void 0 ? r : null, s;
}
} else
return t;
}
}
const yr = Qe ? 1 : void 0;
class ke extends Ce {
constructor() {
super(...arguments), this._formatted = null, this._fsPath = null;
}
get fsPath() {
return this._fsPath || (this._fsPath = Pt(this, !1)), this._fsPath;
}
toString(t = !1) {
return t ? Ft(this, !0) : (this._formatted || (this._formatted = Ft(this, !1)), this._formatted);
}
toJSON() {
const t = {
$mid: 1
/* MarshalledId.Uri */
};
return this._fsPath && (t.fsPath = this._fsPath, t._sep = yr), 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 Mr = {
58: "%3A",
// gen-delims
47: "%2F",
63: "%3F",
35: "%23",
91: "%5B",
93: "%5D",
64: "%40",
33: "%21",
// sub-delims
36: "%24",
38: "%26",
39: "%27",
40: "%28",
41: "%29",
42: "%2A",
43: "%2B",
44: "%2C",
59: "%3B",
61: "%3D",
32: "%20"
};
function sn(e, t, n) {
let r, s = -1;
for (let i = 0; i < e.length; i++) {
const a = e.charCodeAt(i);
if (a >= 97 && a <= 122 || a >= 65 && a <= 90 || a >= 48 && a <= 57 || a === 45 || a === 46 || a === 95 || a === 126 || t && a === 47 || n && a === 91 || n && a === 93 || n && a === 58)
s !== -1 && (r += encodeURIComponent(e.substring(s, i)), s = -1), r !== void 0 && (r += e.charAt(i));
else {
r === void 0 && (r = e.substr(0, i));
const o = Mr[a];
o !== void 0 ? (s !== -1 && (r += encodeURIComponent(e.substring(s, i)), s = -1), r += o) : s === -1 && (s = i);
}
}
return s !== -1 && (r += encodeURIComponent(e.substring(s))), r !== void 0 ? r : e;
}
function Gs(e) {
let t;
for (let n = 0; n < e.length; n++) {
const r = e.charCodeAt(n);
r === 35 || r === 63 ? (t === void 0 && (t = e.substr(0, n)), t += Mr[r]) : t !== void 0 && (t += e[n]);
}
return t !== void 0 ? t : e;
}
function Pt(e, t) {
let n;
return e.authority && e.path.length > 1 && e.scheme === "file" ? n = `//${e.authority}${e.path}` : e.path.charCodeAt(0) === 47 && (e.path.charCodeAt(1) >= 65 && e.path.charCodeAt(1) <= 90 || e.path.charCodeAt(1) >= 97 && e.path.charCodeAt(1) <= 122) && e.path.charCodeAt(2) === 58 ? t ? n = e.path.substr(1) : n = e.path[1].toLowerCase() + e.path.substr(2) : n = e.path, Qe && (n = n.replace(/\//g, "\\")), n;
}
function Ft(e, t) {
const n = t ? Gs : sn;
let r = "", { scheme: s, authority: i, path: a, query: o, fragment: c } = e;
if (s && (r += s, r += ":"), (i || s === "file") && (r += ae, r += ae), i) {
let u = i.indexOf("@");
if (u !== -1) {
const h = i.substr(0, u);
i = i.substr(u + 1), u = h.lastIndexOf(":"), u === -1 ? r += n(h, !1, !1) : (r += n(h.substr(0, u), !1, !1), r += ":", r += n(h.substr(u + 1), !1, !0)), r += "@";
}
i = i.toLowerCase(), u = i.lastIndexOf(":"), u === -1 ? r += n(i, !1, !0) : (r += n(i.substr(0, u), !1, !0), r += i.substr(u));
}
if (a) {
if (a.length >= 3 && a.charCodeAt(0) === 47 && a.charCodeAt(2) === 58) {
const u = a.charCodeAt(1);
u >= 65 && u <= 90 && (a = `/${String.fromCharCode(u + 32)}:${a.substr(3)}`);
} else if (a.length >= 2 && a.charCodeAt(1) === 58) {
const u = a.charCodeAt(0);
u >= 65 && u <= 90 && (a = `${String.fromCharCode(u + 32)}:${a.substr(2)}`);
}
r += n(a, !0, !1);
}
return o && (r += "?", r += n(o, !1, !1)), c && (r += "#", r += t ? c : sn(c, !1, !1)), r;
}
function Er(e) {
try {
return decodeURIComponent(e);
} catch {
return e.length > 3 ? e.substr(0, 3) + Er(e.substr(3)) : e;
}
}
const an = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
function st(e) {
return e.match(an) ? e.replace(an, (t) => Er(t)) : e;
}
class J {
constructor(t, n) {
this.lineNumber = t, this.column = n;
}
/**
* Create a new position from this position.
*
* @param newLineNumber new line number
* @param newColumn new column
*/
with(t = this.lineNumber, n = this.column) {
return t === this.lineNumber && n === this.column ? this : new J(t, n);
}
/**
* Derive a new position from this position.
*
* @param deltaLineNumber line number delta
* @param deltaColumn column delta
*/
delta(t = 0, n = 0) {
return this.with(this.lineNumber + t, this.column + n);
}
/**
* Test if this position equals other position
*/
equals(t) {
return J.equals(this, t);
}
/**
* Test if position `a` equals position `b`
*/
static equals(t, n) {
return !t && !n ? !0 : !!t && !!n && t.lineNumber === n.lineNumber && t.column === n.column;
}
/**
* Test if this position is before other position.
* If the two positions are equal, the result will be false.
*/
isBefore(t) {
return J.isBefore(this, t);
}
/**
* Test if position `a` is before position `b`.
* If the two positions are equal, the result will be false.
*/
static isBefore(t, n) {
return t.lineNumber < n.lineNumber ? !0 : n.lineNumber < t.lineNumber ? !1 : t.column < n.column;
}
/**
* Test if this position is before other position.
* If the two positions are equal, the result will be true.
*/
isBeforeOrEqual(t) {
return J.isBeforeOrEqual(this, t);
}
/**
* Test if position `a` is before position `b`.
* If the two positions are equal, the result will be true.
*/
static isBeforeOrEqual(t, n) {
return t.lineNumber < n.lineNumber ? !0 : n.lineNumber < t.lineNumber ? !1 : t.column <= n.column;
}
/**
* A function that compares positions, useful for sorting
*/
static compare(t, n) {
const r = t.lineNumber | 0, s = n.lineNumber | 0;
if (r === s) {
const i = t.column | 0, a = n.column | 0;
return i - a;
}
return r - s;
}
/**
* Clone this position.
*/
clone() {
return new J(this.lineNumber, this.column);
}
/**
* Convert to a human-readable representation.
*/
toString() {
return "(" + this.lineNumber + "," + this.column + ")";
}
// ---
/**
* Create a `Position` from an `IPosition`.
*/
static lift(t) {
return new J(t.lineNumber, t.column);
}
/**
* Test if `obj` is an `IPosition`.
*/
static isIPosition(t) {
return t && typeof t.lineNumber == "number" && typeof t.column == "number";
}
}
class D {
constructor(t, n, r, s) {
t > r || t === r && n > s ? (this.startLineNumber = r, this.startColumn = s, this.endLineNumber = t, this.endColumn = n) : (this.startLineNumber = t, this.startColumn = n, this.endLineNumber = r, this.endColumn = s);
}
/**
* Test if this range is empty.
*/
isEmpty() {
return D.isEmpty(this);
}
/**
* Test if `range` is empty.
*/
static isEmpty(t) {
return t.startLineNumber === t.endLineNumber && t.startColumn === t.endColumn;
}
/**
* Test if position is in this range. If the position is at the edges, will return true.
*/
containsPosition(t) {
return D.containsPosition(this, t);
}
/**
* Test if `position` is in `range`. If the position is at the edges, will return true.
*/
static containsPosition(t, n) {
return !(n.lineNumber < t.startLineNumber || n.lineNumber > t.endLineNumber || n.lineNumber === t.startLineNumber && n.column < t.startColumn || n.lineNumber === t.endLineNumber && n.column > t.endColumn);
}
/**
* Test if `position` is in `range`. If the position is at the edges, will return false.
* @internal
*/
static strictContainsPosition(t, n) {
return !(n.lineNumber < t.startLineNumber || n.lineNumber > t.endLineNumber || n.lineNumber === t.startLineNumber && n.column <= t.startColumn || n.lineNumber === t.endLineNumber && n.column >= t.endColumn);
}
/**
* Test if range is in this range. If the range is equal to this range, will return true.
*/
containsRange(t) {
return D.containsRange(this, t);
}
/**
* Test if `otherRange` is in `range`. If the ranges are equal, will return true.
*/
static containsRange(t, n) {
return !(n.startLineNumber < t.startLineNumber || n.endLineNumber < t.startLineNumber || n.startLineNumber > t.endLineNumber || n.endLineNumber > t.endLineNumber || n.startLineNumber === t.startLineNumber && n.startColumn < t.startColumn || n.endLineNumber === t.endLineNumber && n.endColumn > t.endColumn);
}
/**
* Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.
*/
strictContainsRange(t) {
return D.strictContainsRange(this, t);
}
/**
* Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.
*/
static strictContainsRange(t, n) {
return !(n.startLineNumber < t.startLineNumber || n.endLineNumber < t.startLineNumber || n.startLineNumber > t.endLineNumber || n.endLineNumber > t.endLineNumber || n.startLineNumber === t.startLineNumber && n.startColumn <= t.startColumn || n.endLineNumber === t.endLineNumber && n.endColumn >= t.endColumn);
}
/**
* 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(t) {
return D.plusRange(this, t);
}
/**
* 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(t, n) {
let r, s, i, a;
return n.startLineNumber < t.startLineNumber ? (r = n.startLineNumber, s = n.startColumn) : n.startLineNumber === t.startLineNumber ? (r = n.startLineNumber, s = Math.min(n.startColumn, t.startColumn)) : (r = t.startLineNumber, s = t.startColumn), n.endLineNumber > t.endLineNumber ? (i = n.endLineNumber, a = n.endColumn) : n.endLineNumber === t.endLineNumber ? (i = n.endLineNumber, a = Math.max(n.endColumn, t.endColumn)) : (i = t.endLineNumber, a = t.endColumn), new D(r, s, i, a);
}
/**
* A intersection of the two ranges.
*/
intersectRanges(t) {
return D.intersectRanges(this, t);
}
/**
* A intersection of the two ranges.
*/
static intersectRanges(t, n) {
let r = t.startLineNumber, s = t.startColumn, i = t.endLineNumber, a = t.endColumn;
const o = n.startLineNumber, c = n.startColumn, u = n.endLineNumber, h = n.endColumn;
return r < o ? (r = o, s = c) : r === o && (s = Math.max(s, c)), i > u ? (i = u, a = h) : i === u && (a = Math.min(a, h)), r > i || r === i && s > a ? null : new D(r, s, i, a);
}
/**
* Test if this range equals other.
*/
equalsRange(t) {
return D.equalsRange(this, t);
}
/**
* Test if range `a` equals `b`.
*/
static equalsRange(t, n) {
return !t && !n ? !0 : !!t && !!n && t.startLineNumber === n.startLineNumber && t.startColumn === n.startColumn && t.endLineNumber === n.endLineNumber && t.endColumn === n.endColumn;
}
/**
* Return the end position (which will be after or equal to the start position)
*/
getEndPosition() {
return D.getEndPosition(this);
}
/**
* Return the end position (which will be after or equal to the start position)
*/
static getEndPosition(t) {
return new J(t.endLineNumber, t.endColumn);
}
/**
* Return the start position (which will be before or equal to the end position)
*/
getStartPosition() {
return D.getStartPosition(this);
}
/**
* Return the start position (which will be before or equal to the end position)
*/
static getStartPosition(t) {
return new J(t.startLineNumber, t.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(t, n) {
return new D(this.startLineNumber, this.startColumn, t, n);
}
/**
* Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.
*/
setStartPosition(t, n) {
return new D(t, n, this.endLineNumber, this.endColumn);
}
/**
* Create a new empty range using this range's start position.
*/
collapseToStart() {
return D.collapseToStart(this);
}
/**
* Create a new empty range using this range's start position.
*/
static collapseToStart(t) {
return new D(t.startLineNumber, t.startColumn, t.startLineNumber, t.startColumn);
}
/**
* Create a new empty range using this range's end position.
*/
collapseToEnd() {
return D.collapseToEnd(this);
}
/**
* Create a new empty range using this range's end position.
*/
static collapseToEnd(t) {
return new D(t.endLineNumber, t.endColumn, t.endLineNumber, t.endColumn);
}
/**
* Moves the range by the given amount of lines.
*/
delta(t) {
return new D(this.startLineNumber + t, this.startColumn, this.endLineNumber + t, this.endColumn);
}
// ---
static fromPositions(t, n = t) {
return new D(t.lineNumber, t.column, n.lineNumber, n.column);
}
static lift(t) {
return t ? new D(t.startLineNumber, t.startColumn, t.endLineNumber, t.endColumn) : null;
}
/**
* Test if `obj` is an `IRange`.
*/
static isIRange(t) {
return t && typeof t.startLineNumber == "number" && typeof t.startColumn == "number" && typeof t.endLineNumber == "number" && typeof t.endColumn == "number";
}
/**
* Test if the two ranges are touching in any way.
*/
static areIntersectingOrTouching(t, n) {
return !(t.endLineNumber < n.startLineNumber || t.endLineNumber === n.startLineNumber && t.endColumn < n.startColumn || n.endLineNumber < t.startLineNumber || n.endLineNumber === t.startLineNumber && n.endColumn < t.startColumn);
}
/**
* Test if the two ranges are intersecting. If the ranges are touching it returns true.
*/
static areIntersecting(t, n) {
return !(t.endLineNumber < n.startLineNumber || t.endLineNumber === n.startLineNumber && t.endColumn <= n.startColumn || n.endLineNumber < t.startLineNumber || n.endLineNumber === t.startLineNumber && n.endColumn <= t.startColumn);
}
/**
* A function that compares ranges, useful for sorting ranges
* It will first compare ranges on the startPosition and then on the endPosition
*/
static compareRangesUsingStarts(t, n) {
if (t && n) {
const i = t.startLineNumber | 0, a = n.startLineNumber | 0;
if (i === a) {
const o = t.startColumn | 0, c = n.startColumn | 0;
if (o === c) {
const u = t.endLineNumber | 0, h = n.endLineNumber | 0;
if (u === h) {
const f = t.endColumn | 0, m = n.endColumn | 0;
return f - m;
}
return u - h;
}
return o - c;
}
return i - a;
}
return (t ? 1 : 0) - (n ? 1 : 0);
}
/**
* A function that compares ranges, useful for sorting ranges
* It will first compare ranges on the endPosition and then on the startPosition
*/
static compareRangesUsingEnds(t, n) {
return t.endLineNumber === n.endLineNumber ? t.endColumn === n.endColumn ? t.startLineNumber === n.startLineNumber ? t.startColumn - n.startColumn : t.startLineNumber - n.startLineNumber : t.endColumn - n.endColumn : t.endLineNumber - n.endLineNumber;
}
/**
* Test if the range spans multiple lines.
*/
static spansMultipleLines(t) {
return t.endLineNumber > t.startLineNumber;
}
toJSON() {
return this;
}
}
function js(e, t, n = (r, s) => r === s) {
if (e === t)
return !0;
if (!e || !t || e.length !== t.length)
return !1;
for (let r = 0, s = e.length; r < s; r++)
if (!n(e[r], t[r]))
return !1;
return !0;
}
function* Qs(e, t) {
let n, r;
for (const s of e)
r !== void 0 && t(r, s) ? n.push(s) : (n && (yield n), n = [s]), r = s;
n && (yield n);
}
function Xs(e, t) {
for (let n = 0; n <= e.length; n++)
t(n === 0 ? void 0 : e[n - 1], n === e.length ? void 0 : e[n]);
}
function Js(e, t) {
for (let n = 0; n < e.length; n++)
t(n === 0 ? void 0 : e[n - 1], e[n], n + 1 === e.length ? void 0 : e[n + 1]);
}
function Ys(e, t) {
for (const n of t)
e.push(n);
}
var ln;
(function(e) {
function t(i) {
return i < 0;
}
e.isLessThan = t;
function n(i) {
return i <= 0;
}
e.isLessThanOrEqual = n;
function r(i) {
return i > 0;
}
e.isGreaterThan = r;
function s(i) {
return i === 0;
}
e.isNeitherLessOrGreaterThan = s, e.greaterThan = 1, e.lessThan = -1, e.neitherLessOrGreaterThan = 0;
})(ln || (ln = {}));
function it(e, t) {
return (n, r) => t(e(n), e(r));
}
const at = (e, t) => e - t;
function Zs(e) {
return (t, n) => -e(t, n);
}
function on(e) {
return e < 0 ? 0 : e > 255 ? 255 : e | 0;
}
function Pe(e) {
return e < 0 ? 0 : e > 4294967295 ? 4294967295 : e | 0;
}
class Ks {
constructor(t) {
this.values = t, this.prefixSum = new Uint32Array(t.length), this.prefixSumValidIndex = new Int32Array(1), this.prefixSumValidIndex[0] = -1;
}
insertValues(t, n) {
t = Pe(t);
const r = this.values, s = this.prefixSum, i = n.length;
return i === 0 ? !1 : (this.values = new Uint32Array(r.length + i), this.values.set(r.subarray(0, t), 0), this.values.set(r.subarray(t), t + i), this.values.set(n, t), t - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = t - 1), this.prefixSum = new Uint32Array(this.values.length), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(s.subarray(0, this.prefixSumValidIndex[0] + 1)), !0);
}
setValue(t, n) {
return t = Pe(t), n = Pe(n), this.values[t] === n ? !1 : (this.values[t] = n, t - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = t - 1), !0);
}
removeValues(t, n) {
t = Pe(t), n = Pe(n);
const r = this.values, s = this.prefixSum;
if (t >= r.length)
return !1;
const i = r.length - t;
return n >= i && (n = i), n === 0 ? !1 : (this.values = new Uint32Array(r.length - n), this.values.set(r.subarray(0, t), 0), this.values.set(r.subarray(t + n), t), this.prefixSum = new Uint32Array(this.values.length), t - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = t - 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);
}
/**
* Returns the sum of the first `index + 1` many items.
* @returns `SUM(0 <= j <= index, values[j])`.
*/
getPrefixSum(t) {
return t < 0 ? 0 : (t = Pe(t), this._getPrefixSum(t));
}
_getPrefixSum(t) {
if (t <= this.prefixSumValidIndex[0])
return this.prefixSum[t];
let n = this.prefixSumValidIndex[0] + 1;
n === 0 && (this.prefixSum[0] = this.values[0], n++), t >= this.values.length && (t = this.values.length - 1);
for (let r = n; r <= t; r++)
this.prefixSum[r] = this.prefixSum[r - 1] + this.values[r];
return this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], t), this.prefixSum[t];
}
getIndexOf(t) {
t = Math.floor(t), this.getTotalSum();
let n = 0, r = this.values.length - 1, s = 0, i = 0, a = 0;
for (; n <= r; )
if (s = n + (r - n) / 2 | 0, i = this.prefixSum[s], a = i - this.values[s], t < a)
r = s - 1;
else if (t >= i)
n = s + 1;
else
break;
return new ei(s, t - a);
}
}
class ei {
constructor(t, n) {
this.index = t, this.remainder = n, this._prefixSumIndexOfResultBrand = void 0, this.index = t, this.remainder = n;
}
}
class ti {
constructor(t, n, r, s) {
this._uri = t, this._lines = n, this._eol = r, 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(t) {
t.eol && t.eol !== this._eol && (this._eol = t.eol, this._lineStarts = null);
const n = t.changes;
for (const r of n)
this._acceptDeleteRange(r.range), this._acceptInsertText(new J(r.range.startLineNumber, r.range.startColumn), r.text);
this._versionId = t.versionId, this._cachedTextValue = null;
}
_ensureLineStarts() {
if (!this._lineStarts) {
const t = this._eol.length, n = this._lines.length, r = new Uint32Array(n);
for (let s = 0; s < n; s++)
r[s] = this._lines[s].length + t;
this._lineStarts = new Ks(r);
}
}
/**
* All changes to a line's text go through this method
*/
_setLineText(t, n) {
this._lines[t] = n, this._lineStarts && this._lineStarts.setValue(t, this._lines[t].length + this._eol.length);
}
_acceptDeleteRange(t) {
if (t.startLineNumber === t.endLineNumber) {
if (t.startColumn === t.endColumn)
return;
this._setLineText(t.startLineNumber - 1, this._lines[t.startLineNumber - 1].substring(0, t.startColumn - 1) + this._lines[t.startLineNumber - 1].substring(t.endColumn - 1));
return;
}
this._setLineText(t.startLineNumber - 1, this._lines[t.startLineNumber - 1].substring(0, t.startColumn - 1) + this._lines[t.endLineNumber - 1].substring(t.endColumn - 1)), this._lines.splice(t.startLineNumber, t.endLineNumber - t.startLineNumber), this._lineStarts && this._lineStarts.removeValues(t.startLineNumber, t.endLineNumber - t.startLineNumber);
}
_acceptInsertText(t, n) {
if (n.length === 0)
return;
const r = fs(n);
if (r.length === 1) {
this._setLineText(t.lineNumber - 1, this._lines[t.lineNumber - 1].substring(0, t.column - 1) + r[0] + this._lines[t.lineNumber - 1].substring(t.column - 1));
return;
}
r[r.length - 1] += this._lines[t.lineNumber - 1].substring(t.column - 1), this._setLineText(t.lineNumber - 1, this._lines[t.lineNumber - 1].substring(0, t.column - 1) + r[0]);
const s = new Uint32Array(r.length - 1);
for (let i = 1; i < r.length; i++)
this._lines.splice(t.lineNumber + i - 1, 0, r[i]), s[i - 1] = r[i].length + this._eol.length;
this._lineStarts && this._lineStarts.insertValues(t.lineNumber, s);
}
}
const ni = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?";
function ri(e = "") {
let t = "(-?\\d*\\.\\d\\w*)|([^";
for (const n of ni)
e.indexOf(n) >= 0 || (t += "\\" + n);
return t += "\\s]+)", new RegExp(t, "g");
}
const kr = ri();
function si(e) {
let t = kr;
if (e && e instanceof RegExp)
if (e.global)
t = e;
else {
let n = "g";
e.ignoreCase && (n += "i"), e.multiline && (n += "m"), e.unicode && (n += "u"), t = new RegExp(e.source, n);
}
return t.lastIndex = 0, t;
}
const Pr = new jr();
Pr.unshift({
maxLen: 1e3,
windowSize: 15,
timeBudget: 150
});
function Qt(e, t, n, r, s) {
if (s || (s = ct.first(Pr)), n.length > s.maxLen) {
let u = e - s.maxLen / 2;
return u < 0 ? u = 0 : r += u, n = n.substring(u, e + s.maxLen / 2), Qt(e, t, n, r, s);
}
const i = Date.now(), a = e - 1 - r;
let o = -1, c = null;
for (let u = 1; !(Date.now() - i >= s.timeBudget); u++) {
const h = a - s.windowSize * u;
t.lastIndex = Math.max(0, h);
const f = ii(t, n, a, o);
if (!f && c || (c = f, h <= 0))
break;
o = h;
}
if (c) {
const u = {
word: c[0],
startColumn: r + 1 + c.index,
endColumn: r + 1 + c.index + c[0].length
};
return t.lastIndex = 0, u;
}
return null;
}
function ii(e, t, n, r) {
let s;
for (; s = e.exec(t); ) {
const i = s.index || 0;
if (i <= n && e.lastIndex >= n)
return s;
if (r > 0 && i > r)
return null;
}
return null;
}
class Xt {
constructor(t) {
const n = on(t);
this._defaultValue = n, this._asciiMap = Xt._createAsciiMap(n), this._map = /* @__PURE__ */ new Map();
}
static _createAsciiMap(t) {
const n = new Uint8Array(256);
return n.fill(t), n;
}
set(t, n) {
const r = on(n);
t >= 0 && t < 256 ? this._asciiMap[t] = r : this._map.set(t, r);
}
get(t) {
return t >= 0 && t < 256 ? this._asciiMap[t] : this._map.get(t) || this._defaultValue;
}
clear() {
this._asciiMap.fill(this._defaultValue), this._map.clear();
}
}
class ai {
constructor(t, n, r) {
const s = new Uint8Array(t * n);
for (let i = 0, a = t * n; i < a; i++)
s[i] = r;
this._data = s, this.rows = t, this.cols = n;
}
get(t, n) {
return this._data[t * this.cols + n];
}
set(t, n, r) {
this._data[t * this.cols + n] = r;
}
}
class li {
constructor(t) {
let n = 0, r = 0;
for (let i = 0, a = t.length; i < a; i++) {
const [o, c, u] = t[i];
c > n && (n = c), o > r && (r = o), u > r && (r = u);
}
n++, r++;
const s = new ai(
r,
n,
0
/* State.Invalid */
);
for (let i = 0, a = t.length; i < a; i++) {
const [o, c, u] = t[i];
s.set(o, c, u);
}
this._states = s, this._maxCharCode = n;
}
nextState(t, n) {
return n < 0 || n >= this._maxCharCode ? 0 : this._states.get(t, n);
}
}
let Lt = null;
function oi() {
return Lt === null && (Lt = new li([
[
1,
104,
2
/* State.H */
],
[
1,
72,
2
/* State.H */
],
[
1,
102,
6
/* State.F */
],
[
1,
70,
6
/* State.F */
],
[
2,
116,
3
/* State.HT */
],
[
2,
84,
3
/* State.HT */
],
[
3,
116,
4
/* State.HTT */
],
[
3,
84,
4
/* State.HTT */
],
[
4,
112,
5
/* State.HTTP */
],
[
4,
80,
5
/* State.HTTP */
],
[
5,
115,
9
/* State.BeforeColon */
],
[
5,
83,
9
/* State.BeforeColon */
],
[
5,
58,
10
/* State.AfterColon */
],
[
6,
105,
7
/* State.FI */
],
[
6,
73,
7
/* State.FI */
],
[
7,
108,
8
/* State.FIL */
],
[
7,
76,
8
/* State.FIL */
],
[
8,
101,
9
/* State.BeforeColon */
],
[
8,
69,
9
/* State.BeforeColon */
],
[
9,
58,
10
/* State.AfterColon */
],
[
10,
47,
11
/* State.AlmostThere */
],
[
11,
47,
12
/* State.End */
]
])), Lt;
}
let We = null;
function ui() {
if (We === null) {
We = new Xt(
0
/* CharacterClass.None */
);
const e = ` <>'"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…`;
for (let n = 0; n < e.length; n++)
We.set(
e.charCodeAt(n),
1
/* CharacterClass.ForceTermination */
);
const t = ".,;:";
for (let n = 0; n < t.length; n++)
We.set(
t.charCodeAt(n),
2
/* CharacterClass.CannotEndIn */
);
}
return We;
}
class dt {
static _createLink(t, n, r, s, i) {
let a = i - 1;
do {
const o = n.charCodeAt(a);
if (t.get(o) !== 2)
break;
a--;
} while (a > s);
if (s > 0) {
const o = n.charCodeAt(s - 1), c = n.charCodeAt(a);
(o === 40 && c === 41 || o === 91 && c === 93 || o === 123 && c === 125) && a--;
}
return {
range: {
startLineNumber: r,
startColumn: s + 1,
endLineNumber: r,
endColumn: a + 2
},
url: n.substring(s, a + 1)
};
}
static computeLinks(t, n = oi()) {
const r = ui(), s = [];
for (let i = 1, a = t.getLineCount(); i <= a; i++) {
const o = t.getLineContent(i), c = o.length;
let u = 0, h = 0, f = 0, m = 1, d = !1, g = !1, b = !1, w = !1;
for (; u < c; ) {
let L = !1;
const _ = o.charCodeAt(u);
if (m === 13) {
let x;
switch (_) {
case 40:
d = !0, x = 0;
break;
case 41:
x = d ? 0 : 1;
break;
case 91:
b = !0, g = !0, x = 0;
break;
case 93:
b = !1, x = g ? 0 : 1;
break;
case 123:
w = !0, x = 0;
break;
case 125:
x = w ? 0 : 1;
break;
case 39:
case 34:
case 96:
f === _ ? x = 1 : f === 39 || f === 34 || f === 96 ? x = 0 : x = 1;
break;
case 42:
x = f === 42 ? 1 : 0;
break;
case 124:
x = f === 124 ? 1 : 0;
break;
case 32:
x = b ? 0 : 1;
break;
default:
x = r.get(_);
}
x === 1 && (s.push(dt._createLink(r, o, i, h, u)), L = !0);
} else if (m === 12) {
let x;
_ === 91 ? (g = !0, x = 0) : x = r.get(_), x === 1 ? L = !0 : m = 13;
} else
m = n.nextState(m, _), m === 0 && (L = !0);
L && (m = 1, d = !1, g = !1, w = !1, h = u + 1, f = _), u++;
}
m === 13 && s.push(dt._createLink(r, o, i, h, c));
}
return s;
}
}
function ci(e) {
return !e || typeof e.getLineCount != "function" || typeof e.getLineContent != "function" ? [] : dt.computeLinks(e);
}
class Dt {
constructor() {
this._defaultValueSet = [
["true", "false"],
["True", "False"],
["Private", "Public", "Friend", "ReadOnly", "Partial", "Protected", "WriteOnly"],
["public", "protected", "private"]
];
}
navigateValueSet(t, n, r, s, i) {
if (t && n) {
const a = this.doNavigateValueSet(n, i);
if (a)
return {
range: t,
value: a
};
}
if (r && s) {
const a = this.doNavigateValueSet(s, i);
if (a)
return {
range: r,
value: a
};
}
return null;
}
doNavigateValueSet(t, n) {
const r = this.numberReplace(t, n);
return r !== null ? r : this.textReplace(t, n);
}
numberReplace(t, n) {
const r = Math.pow(10, t.length - (t.lastIndexOf(".") + 1));
let s = Number(t);
const i = parseFloat(t);
return !isNaN(s) && !isNaN(i) && s === i ? s === 0 && !n ? null : (s = Math.floor(s * r), s += n ? r : -r, String(s / r)) : null;
}
textReplace(t, n) {
return this.valueSetsReplace(this._defaultValueSet, t, n);
}
valueSetsReplace(t, n, r) {
let s = null;
for (let i = 0, a = t.length; s === null && i < a; i++)
s = this.valueSetReplace(t[i], n, r);
return s;
}
valueSetReplace(t, n, r) {
let s = t.indexOf(n);
return s >= 0 ? (s += r ? 1 : -1, s < 0 ? s = t.length - 1 : s %= t.length, t[s]) : null;
}
}
Dt.INSTANCE = new Dt();
const Fr = Object.freeze(function(e, t) {
const n = setTimeout(e.bind(t), 0);
return { dispose() {
clearTimeout(n);
} };
});
var mt;
(function(e) {
function t(n) {
return n === e.None || n === e.Cancelled || n instanceof lt ? !0 : !n || typeof n != "object" ? !1 : typeof n.isCancellationRequested == "boolean" && typeof n.onCancellationRequested == "function";
}
e.isCancellationToken = t, e.None = Object.freeze({
isCancellationRequested: !1,
onCancellationRequested: At.None
}), e.Cancelled = Object.freeze({
isCancellationRequested: !0,
onCancellationRequested: Fr
});
})(mt || (mt = {}));
class lt {
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 ? Fr : (this._emitter || (this._emitter = new ie()), this._emitter.event);
}
dispose() {
this._emitter && (this._emitter.dispose(), this._emitter = null);
}
}
class hi {
constructor(t) {
this._token = void 0, this._parentListener = void 0, this._parentListener = t && t.onCancellationRequested(this.cancel, this);
}
get token() {
return this._token || (this._token = new lt()), this._token;
}
cancel() {
this._token ? this._token instanceof lt && this._token.cancel() : this._token = mt.Cancelled;
}
dispose(t = !1) {
var n;
t && this.cancel(), (n = this._parentListener) === null || n === void 0 || n.dispose(), this._token ? this._token instanceof lt && this._token.dispose() : this._token = mt.None;
}
}
class Jt {
constructor() {
this._keyCodeToStr = [], this._strToKeyCode = /* @__PURE__ */ Object.create(null);
}
define(t, n) {
this._keyCodeToStr[t] = n, this._strToKeyCode[n.toLowerCase()] = t;
}
keyCodeToStr(t) {
return this._keyCodeToStr[t];
}
strToKeyCode(t) {
return this._strToKeyCode[t.toLowerCase()] || 0;
}
}
const ot = new Jt(), Tt = new Jt(), Vt = new Jt(), fi = new Array(230), di = /* @__PURE__ */ Object.create(null), mi = /* @__PURE__ */ Object.create(null);
(function() {
const e = "", t = [
// immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel
[1, 0, "None", 0, "unknown", 0, "VK_UNKNOWN", e, e],
[1, 1, "Hyper", 0, e, 0, e, e, e],
[1, 2, "Super", 0, e, 0, e, e, e],
[1, 3, "Fn", 0, e, 0, e, e, e],
[1, 4, "FnLock", 0, e, 0, e, e, e],
[1, 5, "Suspend", 0, e, 0, e, e, e],
[1, 6, "Resume", 0, e, 0, e, e, e],
[1, 7, "Turbo", 0, e, 0, e, e, e],
[1, 8, "Sleep", 0, e, 0, "VK_SLEEP", e, e],
[1, 9, "WakeUp", 0, e, 0, e, e, e],
[0, 10, "KeyA", 31, "A", 65, "VK_A", e, e],
[0, 11, "KeyB", 32, "B", 66, "VK_B", e, e],
[0, 12, "KeyC", 33, "C", 67, "VK_C", e, e],
[0, 13, "KeyD", 34, "D", 68, "VK_D", e, e],
[0, 14, "KeyE", 35, "E", 69, "VK_E", e, e],
[0, 15, "KeyF", 36, "F", 70, "VK_F", e, e],
[0, 16, "KeyG", 37, "G", 71, "VK_G", e, e],
[0, 17, "KeyH", 38, "H", 72, "VK_H", e, e],
[0, 18, "KeyI", 39, "I", 73, "VK_I", e, e],
[0, 19, "KeyJ", 40, "J", 74, "VK_J", e, e],
[0, 20, "KeyK", 41, "K", 75, "VK_K", e, e],
[0, 21, "KeyL", 42, "L", 76, "VK_L", e, e],
[0, 22, "KeyM", 43, "M", 77, "VK_M", e, e],
[0, 23, "KeyN", 44, "N", 78, "VK_N", e, e],
[0, 24, "KeyO", 45, "O", 79, "VK_O", e, e],
[0, 25, "KeyP", 46, "P", 80, "VK_P", e, e],
[0, 26, "KeyQ", 47, "Q", 81, "VK_Q", e, e],
[0, 27, "KeyR", 48, "R", 82, "VK_R", e, e],
[0, 28, "KeyS", 49, "S", 83, "VK_S", e, e],
[0, 29, "KeyT", 50, "T", 84, "VK_T", e, e],
[0, 30, "KeyU", 51, "U", 85, "VK_U", e, e],
[0, 31, "KeyV", 52, "V", 86, "VK_V", e, e],
[0, 32, "KeyW", 53, "W", 87, "VK_W", e, e],
[0, 33, "KeyX", 54, "X", 88, "VK_X", e, e],
[0, 34, "KeyY", 55, "Y", 89, "VK_Y", e, e],
[0, 35, "KeyZ", 56, "Z", 90, "VK_Z", e, e],
[0, 36, "Digit1", 22, "1", 49, "VK_1", e, e],
[0, 37, "Digit2", 23, "2", 50, "VK_2", e, e],
[0, 38, "Digit3", 24, "3", 51, "VK_3", e, e],
[0, 39, "Digit4", 25, "4", 52, "VK_4", e, e],
[0, 40, "Digit5", 26, "5", 53, "VK_5", e, e],
[0, 41, "Digit6", 27, "6", 54, "VK_6", e, e],
[0, 42, "Digit7", 28, "7", 55, "VK_7", e, e],
[0, 43, "Digit8", 29, "8", 56, "VK_8", e, e],
[0, 44, "Digit9", 30, "9", 57, "VK_9", e, e],
[0, 45, "Digit0", 21, "0", 48, "VK_0", e, e],
[1, 46, "Enter", 3, "Enter", 13, "VK_RETURN", e, e],
[1, 47, "Escape", 9, "Escape", 27, "VK_ESCAPE", e, e],
[1, 48, "Backspace", 1, "Backspace", 8, "VK_BACK", e, e],
[1, 49, "Tab", 2, "Tab", 9, "VK_TAB", e, e],
[1, 50, "Space", 10, "Space", 32, "VK_SPACE", e, e],
[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, e, 0, e, e, e],
// has been dropped from the w3c spec
[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", e, e],
[1, 64, "F1", 59, "F1", 112, "VK_F1", e, e],
[1, 65, "F2", 60, "F2", 113, "VK_F2", e, e],
[1, 66, "F3", 61, "F3", 114, "VK_F3", e, e],
[1, 67, "F4", 62, "F4", 115, "VK_F4", e, e],
[1, 68, "F5", 63, "F5", 116, "VK_F5", e, e],
[1, 69, "F6", 64, "F6", 117, "VK_F6", e, e],
[1, 70, "F7", 65, "F7", 118, "VK_F7", e, e],
[1, 71, "F8", 66, "F8", 119, "VK_F8", e, e],
[1, 72, "F9", 67, "F9", 120, "VK_F9", e, e],
[1, 73, "F10", 68, "F10", 121, "VK_F10", e, e],
[1, 74, "F11", 69, "F11", 122, "VK_F11", e, e],
[1, 75, "F12", 70, "F12", 123, "VK_F12", e, e],
[1, 76, "PrintScreen", 0, e, 0, e, e, e],
[1, 77, "ScrollLock", 84, "ScrollLock", 145, "VK_SCROLL", e, e],
[1, 78, "Pause", 7, "PauseBreak", 19, "VK_PAUSE", e, e],
[1, 79, "Insert", 19, "Insert", 45, "VK_INSERT", e, e],
[1, 80, "Home", 14, "Home", 36, "VK_HOME", e, e],
[1, 81, "PageUp", 11, "PageUp", 33, "VK_PRIOR", e, e],
[1, 82, "Delete", 20, "Delete", 46, "VK_DELETE", e, e],
[1, 83, "End", 13, "End", 35, "VK_END", e, e],
[1, 84, "PageDown", 12, "PageDown", 34, "VK_NEXT", e, e],
[1, 85, "ArrowRight", 17, "RightArrow", 39, "VK_RIGHT", "Right", e],
[1, 86, "ArrowLeft", 15, "LeftArrow", 37, "VK_LEFT", "Left", e],
[1, 87, "ArrowDown", 18, "DownArrow", 40, "VK_DOWN", "Down", e],
[1, 88, "ArrowUp", 16, "UpArrow", 38, "VK_UP", "Up", e],
[1, 89, "NumLock", 83, "NumLock", 144, "VK_NUMLOCK", e, e],
[1, 90, "NumpadDivide", 113, "NumPad_Divide", 111, "VK_DIVIDE", e, e],
[1, 91, "NumpadMultiply", 108, "NumPad_Multiply", 106, "VK_MULTIPLY", e, e],
[1, 92, "NumpadSubtract", 111, "NumPad_Subtract", 109, "VK_SUBTRACT", e, e],
[1, 93, "NumpadAdd", 109, "NumPad_Add", 107, "VK_ADD", e, e],
[1, 94, "NumpadEnter", 3, e, 0, e, e, e],
[1, 95, "Numpad1", 99, "NumPad1", 97, "VK_NUMPAD1", e, e],
[1, 96, "Numpad2", 100, "NumPad2", 98, "VK_NUMPAD2", e, e],
[1, 97, "Numpad3", 101, "NumPad3", 99, "VK_NUMPAD3", e, e],
[1, 98, "Numpad4", 102, "NumPad4", 100, "VK_NUMPAD4", e, e],
[1, 99, "Numpad5", 103, "NumPad5", 101, "VK_NUMPAD5", e, e],
[1, 100, "Numpad6", 104, "NumPad6", 102, "VK_NUMPAD6", e, e],
[1, 101, "Numpad7", 105, "NumPad7", 103, "VK_NUMPAD7", e, e],
[1, 102, "Numpad8", 106, "NumPad8", 104, "VK_NUMPAD8", e, e],
[1, 103, "Numpad9", 107, "NumPad9", 105, "VK_NUMPAD9", e, e],
[1, 104, "Numpad0", 98, "NumPad0", 96, "VK_NUMPAD0", e, e],
[1, 105, "NumpadDecimal", 112, "NumPad_Decimal", 110, "VK_DECIMAL", e, e],
[0, 106, "IntlBackslash", 97, "OEM_102", 226, "VK_OEM_102", e, e],
[1, 107, "ContextMenu", 58, "ContextMenu", 93, e, e, e],
[1, 108, "Power", 0, e, 0, e, e, e],
[1, 109, "NumpadEqual", 0, e, 0, e, e, e],
[1, 110, "F13", 71, "F13", 124, "VK_F13", e, e],
[1, 111, "F14", 72, "F14", 125, "VK_F14", e, e],
[1, 112, "F15", 73, "F15", 126, "VK_F15", e, e],
[1, 113, "F16", 74, "F16", 127, "VK_F16", e, e],
[1, 114, "F17", 75, "F17", 128, "VK_F17", e, e],
[1, 115, "F18", 76, "F18", 129, "VK_F18", e, e],
[1, 116, "F19", 77, "F19", 130, "VK_F19", e, e],
[1, 117, "F20", 78, "F20", 131, "VK_F20", e, e],
[1, 118, "F21", 79, "F21", 132, "VK_F21", e, e],
[1, 119, "F22", 80, "F22", 133, "VK_F22", e, e],
[1, 120, "F23", 81, "F23", 134, "VK_F23", e, e],
[1, 121, "F24", 82, "F24", 135, "VK_F24", e, e],
[1, 122, "Open", 0, e, 0, e, e, e],
[1, 123, "Help", 0, e, 0, e, e, e],
[1, 124, "Select", 0, e, 0, e, e, e],
[1, 125, "Again", 0, e, 0, e, e, e],
[1, 126, "Undo", 0, e, 0, e, e, e],
[1, 127, "Cut", 0, e, 0, e, e, e],
[1, 128, "Copy", 0, e, 0, e, e, e],
[1, 129, "Paste", 0, e, 0, e, e, e],
[1, 130, "Find", 0, e, 0, e, e, e],
[1, 131, "AudioVolumeMute", 117, "AudioVolumeMute", 173, "VK_VOLUME_MUTE", e, e],
[1, 132, "AudioVolumeUp", 118, "AudioVolumeUp", 175, "VK_VOLUME_UP", e, e],
[1, 133, "AudioVolumeDown", 119, "AudioVolumeDown", 174, "VK_VOLUME_DOWN", e, e],
[1, 134, "NumpadComma", 110, "NumPad_Separator", 108, "VK_SEPARATOR", e, e],
[0, 135, "IntlRo", 115, "ABNT_C1", 193, "VK_ABNT_C1", e, e],
[1, 136, "KanaMode", 0, e, 0, e, e, e],
[0, 137, "IntlYen", 0, e, 0, e, e, e],
[1, 138, "Convert", 0, e, 0, e, e, e],
[1, 139, "NonConvert", 0, e, 0, e, e, e],
[1, 140, "Lang1", 0, e, 0, e, e, e],
[1, 141, "Lang2", 0, e, 0, e, e, e],
[1, 142, "Lang3", 0, e, 0, e, e, e],
[1, 143, "Lang4", 0, e, 0, e, e, e],
[1, 144, "Lang5", 0, e, 0, e, e, e],
[1, 145, "Abort", 0, e, 0, e, e, e],
[1, 146, "Props", 0, e, 0, e, e, e],
[1, 147, "NumpadParenLeft", 0, e, 0, e, e, e],
[1, 148, "NumpadParenRight", 0, e, 0, e, e, e],
[1, 149, "NumpadBackspace", 0, e, 0, e, e, e],
[1, 150, "NumpadMemoryStore", 0, e, 0, e, e, e],
[1, 151, "NumpadMemoryRecall", 0, e, 0, e, e, e],
[1, 152, "NumpadMemoryClear", 0, e, 0, e, e, e],
[1, 153, "NumpadMemoryAdd", 0, e, 0, e, e, e],
[1, 154, "NumpadMemorySubtract", 0, e, 0, e, e, e],
[1, 155, "NumpadClear", 131, "Clear", 12, "VK_CLEAR", e, e],
[1, 156, "NumpadClearEntry", 0, e, 0, e, e, e],
[1, 0, e, 5, "Ctrl", 17, "VK_CONTROL", e, e],
[1, 0, e, 4, "Shift", 16, "VK_SHIFT", e, e],
[1, 0, e, 6, "Alt", 18, "VK_MENU", e, e],
[1, 0, e, 57, "Meta", 91, "VK_COMMAND", e, e],
[1, 157, "ControlLeft", 5, e, 0, "VK_LCONTROL", e, e],
[1, 158, "ShiftLeft", 4, e, 0, "VK_LSHIFT", e, e],
[1, 159, "AltLeft", 6, e, 0, "VK_LMENU", e, e],
[1, 160, "MetaLeft", 57, e, 0, "VK_LWIN", e, e],
[1, 161, "ControlRight", 5, e, 0, "VK_RCONTROL", e, e],
[1, 162, "ShiftRight", 4, e, 0, "VK_RSHIFT", e, e],
[1, 163, "AltRight", 6, e, 0, "VK_RMENU", e, e],
[1, 164, "MetaRight", 57, e, 0, "VK_RWIN", e, e],
[1, 165, "BrightnessUp", 0, e, 0, e, e, e],
[1, 166, "BrightnessDown", 0, e, 0, e, e, e],
[1, 167, "MediaPlay", 0, e, 0, e, e, e],
[1, 168, "MediaRecord", 0, e, 0, e, e, e],
[1, 169, "MediaFastForward", 0, e, 0, e, e, e],
[1, 170, "MediaRewind", 0, e, 0, e, e, e],
[1, 171, "MediaTrackNext", 124, "MediaTrackNext", 176, "VK_MEDIA_NEXT_TRACK", e, e],
[1, 172, "MediaTrackPrevious", 125, "MediaTrackPrevious", 177, "VK_MEDIA_PREV_TRACK", e, e],
[1, 173, "MediaStop", 126, "MediaStop", 178, "VK_MEDIA_STOP", e, e],
[1, 174, "Eject", 0, e, 0, e, e, e],
[1, 175, "MediaPlayPause", 127, "MediaPlayPause", 179, "VK_MEDIA_PLAY_PAUSE", e, e],
[1, 176, "MediaSelect", 128, "LaunchMediaPlayer", 181, "VK_MEDIA_LAUNCH_MEDIA_SELECT", e, e],
[1, 177, "LaunchMail", 129, "LaunchMail", 180, "VK_MEDIA_LAUNCH_MAIL", e, e],
[1, 178, "LaunchApp2", 130, "LaunchApp2", 183, "VK_MEDIA_LAUNCH_APP2", e, e],
[1, 179, "LaunchApp1", 0, e, 0, "VK_MEDIA_LAUNCH_APP1", e, e],
[1, 180, "SelectTask", 0, e, 0, e, e, e],
[1, 181, "LaunchScreenSaver", 0, e, 0, e, e, e],
[1, 182, "BrowserSearch", 120, "BrowserSearch", 170, "VK_BROWSER_SEARCH", e, e],
[1, 183, "BrowserHome", 121, "BrowserHome", 172, "VK_BROWSER_HOME", e, e],
[1, 184, "BrowserBack", 122, "BrowserBack", 166, "VK_BROWSER_BACK", e, e],
[1, 185, "BrowserForward", 123, "BrowserForward", 167, "VK_BROWSER_FORWARD", e, e],
[1, 186, "BrowserStop", 0, e, 0, "VK_BROWSER_STOP", e, e],
[1, 187, "BrowserRefresh", 0, e, 0, "VK_BROWSER_REFRESH", e, e],
[1, 188, "BrowserFavorites", 0, e, 0, "VK_BROWSER_FAVORITES", e, e],
[1, 189, "ZoomToggle", 0, e, 0, e, e, e],
[1, 190, "MailReply", 0, e, 0, e, e, e],
[1, 191, "MailForward", 0, e, 0, e, e, e],
[1, 192, "MailSend", 0, e, 0, e, e, e],
// 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, e, 114, "KeyInComposition", 229, e, e, e],
[1, 0, e, 116, "ABNT_C2", 194, "VK_ABNT_C2", e, e],
[1, 0, e, 96, "OEM_8", 223, "VK_OEM_8", e, e],
[1, 0, e, 0, e, 0, "VK_KANA", e, e],
[1, 0, e, 0, e, 0, "VK_HANGUL", e, e],
[1, 0, e, 0, e, 0, "VK_JUNJA", e, e],
[1, 0, e, 0, e, 0, "VK_FINAL", e, e],
[1, 0, e, 0, e, 0, "VK_HANJA", e, e],
[1, 0, e, 0, e, 0, "VK_KANJI", e, e],
[1, 0, e, 0, e, 0, "VK_CONVERT", e, e],
[1, 0, e, 0, e, 0, "VK_NONCONVERT", e, e],
[1, 0, e, 0, e, 0, "VK_ACCEPT", e, e],
[1, 0, e, 0, e, 0, "VK_MODECHANGE", e, e],
[1, 0, e, 0, e, 0, "VK_SELECT", e, e],
[1, 0, e, 0, e, 0, "VK_PRINT", e, e],
[1, 0, e, 0, e, 0, "VK_EXECUTE", e, e],
[1, 0, e, 0, e, 0, "VK_SNAPSHOT", e, e],
[1, 0, e, 0, e, 0, "VK_HELP", e, e],
[1, 0, e, 0, e, 0, "VK_APPS", e, e],
[1, 0, e, 0, e, 0, "VK_PROCESSKEY", e, e],
[1, 0, e, 0, e, 0, "VK_PACKET", e, e],
[1, 0, e, 0, e, 0, "VK_DBE_SBCSCHAR", e, e],
[1, 0, e, 0, e, 0, "VK_DBE_DBCSCHAR", e, e],
[1, 0, e, 0, e, 0, "VK_ATTN", e, e],
[1, 0, e, 0, e, 0, "VK_CRSEL", e, e],
[1, 0, e, 0, e, 0, "VK_EXSEL", e, e],
[1, 0, e, 0, e, 0, "VK_EREOF", e, e],
[1, 0, e, 0, e, 0, "VK_PLAY", e, e],
[1, 0, e, 0, e, 0, "VK_ZOOM", e, e],
[1, 0, e, 0, e, 0, "VK_NONAME", e, e],
[1, 0, e, 0, e, 0, "VK_PA1", e, e],
[1, 0, e, 0, e, 0, "VK_OEM_CLEAR", e, e]
], n = [], r = [];
for (const s of t) {
const [i, a, o, c, u, h, f, m, d] = s;
if (r[a] || (r[a] = !0, di[o] = a, mi[o.toLowerCase()] = a), !n[c]) {
if (n[c] = !0, !u)
throw new Error(`String representation missing for key code ${c} around scan code ${o}`);
ot.define(c, u), Tt.define(c, m || u), Vt.define(c, d || m || u);
}
h && (fi[h] = c);
}
})();
var un;
(function(e) {
function t(o) {
return ot.keyCodeToStr(o);
}
e.toString = t;
function n(o) {
return ot.strToKeyCode(o);
}
e.fromString = n;
function r(o) {
return Tt.keyCodeToStr(o);
}
e.toUserSettingsUS = r;
function s(o) {
return Vt.keyCodeToStr(o);
}
e.toUserSettingsGeneral = s;
function i(o) {
return Tt.strToKeyCode(o) || Vt.strToKeyCode(o);
}
e.fromUserSettings = i;
function a(o) {
if (o >= 98 && o <= 113)
return null;
switch (o) {
case 16:
return "Up";
case 18:
return "Down";
case 15:
return "Left";
case 17:
return "Right";
}
return ot.keyCodeToStr(o);
}
e.toElectronAccelerator = a;
})(un || (un = {}));
function gi(e, t) {
const n = (t & 65535) << 16 >>> 0;
return (e | n) >>> 0;
}
class ne extends D {
constructor(t, n, r, s) {
super(t, n, r, s), this.selectionStartLineNumber = t, this.selectionStartColumn = n, this.positionLineNumber = r, this.positionColumn = s;
}
/**
* Transform to a human-readable representation.
*/
toString() {
return "[" + this.selectionStartLineNumber + "," + this.selectionStartColumn + " -> " + this.positionLineNumber + "," + this.positionColumn + "]";
}
/**
* Test if equals other selection.
*/
equalsSelection(t) {
return ne.selectionsEqual(this, t);
}
/**
* Test if the two selections are equal.
*/
static selectionsEqual(t, n) {
return t.selectionStartLineNumber === n.selectionStartLineNumber && t.selectionStartColumn === n.selectionStartColumn && t.positionLineNumber === n.positionLineNumber && t.positionColumn === n.positionColumn;
}
/**
* Get directions (LTR or RTL).
*/
getDirection() {
return this.selectionStartLineNumber === this.startLineNumber && this.selectionStartColumn === this.startColumn ? 0 : 1;
}
/**
* Create a new selection with a different `positionLineNumber` and `positionColumn`.
*/
setEndPosition(t, n) {
return this.getDirection() === 0 ? new ne(this.startLineNumber, this.startColumn, t, n) : new ne(t, n, this.startLineNumber, this.startColumn);
}
/**
* Get the position at `positionLineNumber` and `positionColumn`.
*/
getPosition() {
return new J(this.positionLineNumber, this.positionColumn);
}
/**
* Get the position at the start of the selection.
*/
getSelectionStart() {
return new J(this.selectionStartLineNumber, this.selectionStartColumn);
}
/**
* Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.
*/
setStartPosition(t, n) {
return this.getDirection() === 0 ? new ne(t, n, this.endLineNumber, this.endColumn) : new ne(this.endLineNumber, this.endColumn, t, n);
}
// ----
/**
* Create a `Selection` from one or two positions
*/
static fromPositions(t, n = t) {
return new ne(t.lineNumber, t.column, n.lineNumber, n.column);
}
/**
* Creates a `Selection` from a range, given a direction.
*/
static fromRange(t, n) {
return n === 0 ? new ne(t.startLineNumber, t.startColumn, t.endLineNumber, t.endColumn) : new ne(t.endLineNumber, t.endColumn, t.startLineNumber, t.startColumn);
}
/**
* Create a `Selection` from an `ISelection`.
*/
static liftSelection(t) {
return new ne(t.selectionStartLineNumber, t.selectionStartColumn, t.positionLineNumber, t.positionColumn);
}
/**
* `a` equals `b`.
*/
static selectionsArrEqual(t, n) {
if (t && !n || !t && n)
return !1;
if (!t && !n)
return !0;
if (t.length !== n.length)
return !1;
for (let r = 0, s = t.length; r < s; r++)
if (!this.selectionsEqual(t[r], n[r]))
return !1;
return !0;
}
/**
* Test if `obj` is an `ISelection`.
*/
static isISelection(t) {
return t && typeof t.selectionStartLineNumber == "number" && typeof t.selectionStartColumn == "number" && typeof t.positionLineNumber == "number" && typeof t.positionColumn == "number";
}
/**
* Create with a direction.
*/
static createWithDirection(t, n, r, s, i) {
return i === 0 ? new ne(t, n, r, s) : new ne(r, s, t, n);
}
}
const cn = /* @__PURE__ */ Object.create(null);
function l(e, t) {
if (Kr(t)) {
const n = cn[t];
if (n === void 0)
throw new Error(`${e} references an unknown codicon: ${t}`);
t = n;
}
return cn[e] = t, { id: e };
}
const y = {
// built-in icons, with image name
add: l("add", 6e4),
plus: l("plus", 6e4),
gistNew: l("gist-new", 6e4),
repoCreate: l("repo-create", 6e4),
lightbulb: l("lightbulb", 60001),
lightBulb: l("light-bulb", 60001),
repo: l("repo", 60002),
repoDelete: l("repo-delete", 60002),
gistFork: l("gist-fork", 60003),
repoForked: l("repo-forked", 60003),
gitPullRequest: l("git-pull-request", 60004),
gitPullRequestAbandoned: l("git-pull-request-abandoned", 60004),
recordKeys: l("record-keys", 60005),
keyboard: l("keyboard", 60005),
tag: l("tag", 60006),
tagAdd: l("tag-add", 60006),
tagRemove: l("tag-remove", 60006),
gitPullRequestLabel: l("git-pull-request-label", 60006),
person: l("person", 60007),
personFollow: l("person-follow", 60007),
personOutline: l("person-outline", 60007),
personFilled: l("person-filled", 60007),
gitBranch: l("git-branch", 60008),
gitBranchCreate: l("git-branch-create", 60008),
gitBranchDelete: l("git-branch-delete", 60008),
sourceControl: l("source-control", 60008),
mirror: l("mirror", 60009),
mirrorPublic: l("mirror-public", 60009),
star: l("star", 60010),
starAdd: l("star-add", 60010),
starDelete: l("star-delete", 60010),
starEmpty: l("star-empty", 60010),
comment: l("comment", 60011),
commentAdd: l("comment-add", 60011),
alert: l("alert", 60012),
warning: l("warning", 60012),
search: l("search", 60013),
searchSave: l("search-save", 60013),
logOut: l("log-out", 60014),
signOut: l("sign-out", 60014),
logIn: l("log-in", 60015),
signIn: l("sign-in", 60015),
eye: l("eye", 60016),
eyeUnwatch: l("eye-unwatch", 60016),
eyeWatch: l("eye-watch", 60016),
circleFilled: l("circle-filled", 60017),
primitiveDot: l("primitive-dot", 60017),
closeDirty: l("close-dirty", 60017),
debugBreakpoint: l("debug-breakpoint", 60017),
debugBreakpointDisabled: l("debug-breakpoint-disabled", 60017),
debugHint: l("debug-hint", 60017),
primitiveSquare: l("primitive-square", 60018),
edit: l("edit", 60019),
pencil: l("pencil", 60019),
info: l("info", 60020),
issueOpened: l("issue-opened", 60020),
gistPrivate: l("gist-private", 60021),
gitForkPrivate: l("git-fork-private", 60021),
lock: l("lock", 60021),
mirrorPrivate: l("mirror-private", 60021),
close: l("close", 60022),
removeClose: l("remove-close", 60022),
x: l("x", 60022),
repoSync: l("repo-sync", 60023),
sync: l("sync", 60023),
clone: l("clone", 60024),
desktopDownload: l("desktop-download", 60024),
beaker: l("beaker", 60025),
microscope: l("microscope", 60025),
vm: l("vm", 60026),
deviceDesktop: l("device-desktop", 60026),
file: l("file", 60027),
fileText: l("file-text", 60027),
more: l("more", 60028),
ellipsis: l("ellipsis", 60028),
kebabHorizontal: l("kebab-horizontal", 60028),
mailReply: l("mail-reply", 60029),
reply: l("reply", 60029),
organization: l("organization", 60030),
organizationFilled: l("organization-filled", 60030),
organizationOutline: l("organization-outline", 60030),
newFile: l("new-file", 60031),
fileAdd: l("file-add", 60031),
newFolder: l("new-folder", 60032),
fileDirectoryCreate: l("file-directory-create", 60032),
trash: l("trash", 60033),
trashcan: l("trashcan", 60033),
history: l("history", 60034),
clock: l("clock", 60034),
folder: l("folder", 60035),
fileDirectory: l("file-directory", 60035),
symbolFolder: l("symbol-folder", 60035),
logoGithub: l("logo-github", 60036),
markGithub: l("mark-github", 60036),
github: l("github", 60036),
terminal: l("terminal", 60037),
console: l("console", 60037),
repl: l("repl", 60037),
zap: l("zap", 60038),
symbolEvent: l("symbol-event", 60038),
error: l("error", 60039),
stop: l("stop", 60039),
variable: l("variable", 60040),
symbolVariable: l("symbol-variable", 60040),
array: l("array", 60042),
symbolArray: l("symbol-array", 60042),
symbolModule: l("symbol-module", 60043),
symbolPackage: l("symbol-package", 60043),
symbolNamespace: l("symbol-namespace", 60043),
symbolObject: l("symbol-object", 60043),
symbolMethod: l("symbol-method", 60044),
symbolFunction: l("symbol-function", 60044),
symbolConstructor: l("symbol-constructor", 60044),
symbolBoolean: l("symbol-boolean", 60047),
symbolNull: l("symbol-null", 60047),
symbolNumeric: l("symbol-numeric", 60048),
symbolNumber: l("symbol-number", 60048),
symbolStructure: l("symbol-structure", 60049),
symbolStruct: l("symbol-struct", 60049),
symbolParameter: l("symbol-parameter", 60050),
symbolTypeParameter: l("symbol-type-parameter", 60050),
symbolKey: l("symbol-key", 60051),
symbolText: l("symbol-text", 60051),
symbolReference: l("symbol-reference", 60052),
goToFile: l("go-to-file", 60052),
symbolEnum: l("symbol-enum", 60053),
symbolValue: l("symbol-value", 60053),
symbolRuler: l("symbol-ruler", 60054),
symbolUnit: l("symbol-unit", 60054),
activateBreakpoints: l("activate-breakpoints", 60055),
archive: l("archive", 60056),
arrowBoth: l("arrow-both", 60057),
arrowDown: l("arrow-down", 60058),
arrowLeft: l("arrow-left", 60059),
arrowRight: l("arrow-right", 60060),
arrowSmallDown: l("arrow-small-down", 60061),
arrowSmallLeft: l("arrow-small-left", 60062),
arrowSmallRight: l("arrow-small-right", 60063),
arrowSmallUp: l("arrow-small-up", 60064),
arrowUp: l("arrow-up", 60065),
bell: l("bell", 60066),
bold: l("bold", 60067),
book: l("book", 60068),
bookmark: l("bookmark", 60069),
debugBreakpointConditionalUnverified: l("debug-breakpoint-conditional-unverified", 60070),
debugBreakpointConditional: l("debug-breakpoint-conditional", 60071),
debugBreakpointConditionalDisabled: l("debug-breakpoint-conditional-disabled", 60071),
debugBreakpointDataUnverified: l("debug-breakpoint-data-unverified", 60072),
debugBreakpointData: l("debug-breakpoint-data", 60073),
debugBreakpointDataDisabled: l("debug-breakpoint-data-disabled", 60073),
debugBreakpointLogUnverified: l("debug-breakpoint-log-unverified", 60074),
debugBreakpointLog: l("debug-breakpoint-log", 60075),
debugBreakpointLogDisabled: l("debug-breakpoint-log-disabled", 60075),
briefcase: l("briefcase", 60076),
broadcast: l("broadcast", 60077),
browser: l("browser", 60078),
bug: l("bug", 60079),
calendar: l("calendar", 60080),
caseSensitive: l("case-sensitive", 60081),
check: l("check", 60082),
checklist: l("checklist", 60083),
chevronDown: l("chevron-down", 60084),
dropDownButton: l("drop-down-button", 60084),
chevronLeft: l("chevron-left", 60085),
chevronRight: l("chevron-right", 60086),
chevronUp: l("chevron-up", 60087),
chromeClose: l("chrome-close", 60088),
chromeMaximize: l("chrome-maximize", 60089),
chromeMinimize: l("chrome-minimize", 60090),
chromeRestore: l("chrome-restore", 60091),
circle: l("circle", 60092),
circleOutline: l("circle-outline", 60092),
debugBreakpointUnverified: l("debug-breakpoint-unverified", 60092),
circleSlash: l("circle-slash", 60093),
circuitBoard: l("circuit-board", 60094),
clearAll: l("clear-all", 60095),
clippy: l("clippy", 60096),
closeAll: l("close-all", 60097),
cloudDownload: l("cloud-download", 60098),
cloudUpload: l("cloud-upload", 60099),
code: l("code", 60100),
collapseAll: l("collapse-all", 60101),
colorMode: l("color-mode", 60102),
commentDiscussion: l("comment-discussion", 60103),
compareChanges: l("compare-changes", 60157),
creditCard: l("credit-card", 60105),
dash: l("dash", 60108),
dashboard: l("dashboard", 60109),
database: l("database", 60110),
debugContinue: l("debug-continue", 60111),
debugDisconnect: l("debug-disconnect", 60112),
debugPause: l("debug-pause", 60113),
debugRestart: l("debug-restart", 60114),
debugStart: l("debug-start", 60115),
debugStepInto: l("debug-step-into", 60116),
debugStepOut: l("debug-step-out", 60117),
debugStepOver: l("debug-step-over", 60118),
debugStop: l("debug-stop", 60119),
debug: l("debug", 60120),
deviceCameraVideo: l("device-camera-video", 60121),
deviceCamera: l("device-camera", 60122),
deviceMobile: l("device-mobile", 60123),
diffAdded: l("diff-added", 60124),
diffIgnored: l("diff-ignored", 60125),
diffModified: l("diff-modified", 60126),
diffRemoved: l("diff-removed", 60127),
diffRenamed: l("diff-renamed", 60128),
diff: l("diff", 60129),
discard: l("discard", 60130),
editorLayout: l("editor-layout", 60131),
emptyWindow: l("empty-window", 60132),
exclude: l("exclude", 60133),
extensions: l("extensions", 60134),
eyeClosed: l("eye-closed", 60135),
fileBinary: l("file-binary", 60136),
fileCode: l("file-code", 60137),
fileMedia: l("file-media", 60138),
filePdf: l("file-pdf", 60139),
fileSubmodule: l("file-submodule", 60140),
fileSymlinkDirectory: l("file-symlink-directory", 60141),
fileSymlinkFile: l("file-symlink-file", 60142),
fileZip: l("file-zip", 60143),
files: l("files", 60144),
filter: l("filter", 60145),
flame: l("flame", 60146),
foldDown: l("fold-down", 60147),
foldUp: l("fold-up", 60148),
fold: l("fold", 60149),
folderActive: l("folder-active", 60150),
folderOpened: l("folder-opened", 60151),
gear: l("gear", 60152),
gift: l("gift", 60153),
gistSecret: l("gist-secret", 60154),
gist: l("gist", 60155),
gitCommit: l("git-commit", 60156),
gitCompare: l("git-compare", 60157),
gitMerge: l("git-merge", 60158),
githubAction: l("github-action", 60159),
githubAlt: l("github-alt", 60160),
globe: l("globe", 60161),
grabber: l("grabber", 60162),
graph: l("graph", 60163),
gripper: l("gripper", 60164),
heart: l("heart", 60165),
home: l("home", 60166),
horizontalRule: l("horizontal-rule", 60167),
hubot: l("hubot", 60168),
inbox: l("inbox", 60169),
issueClosed: l("issue-closed", 60324),
issueReopened: l("issue-reopened", 60171),
issues: l("issues", 60172),
italic: l("italic", 60173),
jersey: l("jersey", 60174),
json: l("json", 60175),
bracket: l("bracket", 60175),
kebabVertical: l("kebab-vertical", 60176),
key: l("key", 60177),
law: l("law", 60178),
lightbulbAutofix: l("lightbulb-autofix", 60179),
linkExternal: l("link-external", 60180),
link: l("link", 60181),
listOrdered: l("list-ordered", 60182),
listUnordered: l("list-unordered", 60183),
liveShare: l("live-share", 60184),
loading: l("loading", 60185),
location: l("location", 60186),
mailRead: l("mail-read", 60187),
mail: l("mail", 60188),
markdown: l("markdown", 60189),
megaphone: l("megaphone", 60190),
mention: l("mention", 60191),
milestone: l("milestone", 60192),
gitPullRequestMilestone: l("git-pull-request-milestone", 60192),
mortarBoard: l("mortar-board", 60193),
move: l("move", 60194),
multipleWindows: l("multiple-windows", 60195),
mute: l("mute", 60196),
noNewline: l("no-newline", 60197),
note: l("note", 60198),
octoface: l("octoface", 60199),
openPreview: l("open-preview", 60200),
package: l("package", 60201),
paintcan: l("paintcan", 60202),
pin: l("pin", 60203),
play: l("play", 60204),
run: l("run", 60204),
plug: l("plug", 60205),
preserveCase: l("preserve-case", 60206),
preview: l("preview", 60207),
project: l("project", 60208),
pulse: l("pulse", 60209),
question: l("question", 60210),
quote: l("quote", 60211),
radioTower: l("radio-tower", 60212),
reactions: l("reactions", 60213),
references: l("references", 60214),
refresh: l("refresh", 60215),
regex: l("regex", 60216),
remoteExplorer: l("remote-explorer", 60217),
remote: l("remote", 60218),
remove: l("remove", 60219),
replaceAll: l("replace-all", 60220),
replace: l("replace", 60221),
repoClone: l("repo-clone", 60222),
repoForcePush: l("repo-force-push", 60223),
repoPull: l("repo-pull", 60224),
repoPush: l("repo-push", 60225),
report: l("report", 60226),
requestChanges: l("request-changes", 60227),
rocket: l("rocket", 60228),
rootFolderOpened: l("root-folder-opened", 60229),
rootFolder: l("root-folder", 60230),
rss: l("rss", 60231),
ruby: l("ruby", 60232),
saveAll: l("save-all", 60233),
saveAs: l("save-as", 60234),
save: l("save", 60235),
screenFull: l("screen-full", 60236),
screenNormal: l("screen-normal", 60237),
searchStop: l("search-stop", 60238),
server: l("server", 60240),
settingsGear: l("settings-gear", 60241),
settings: l("settings", 60242),
shield: l("shield", 60243),
smiley: l("smiley", 60244),
sortPrecedence: l("sort-precedence", 60245),
splitHorizontal: l("split-horizontal", 60246),
splitVertical: l("split-vertical", 60247),
squirrel: l("squirrel", 60248),
starFull: l("star-full", 60249),
starHalf: l("star-half", 60250),
symbolClass: l("symbol-class", 60251),
symbolColor: l("symbol-color", 60252),
symbolCustomColor: l("symbol-customcolor", 60252),
symbolConstant: l("symbol-constant", 60253),
symbolEnumMember: l("symbol-enum-member", 60254),
symbolField: l("symbol-field", 60255),
symbolFile: l("symbol-file", 60256),
symbolInterface: l("symbol-interface", 60257),
symbolKeyword: l("symbol-keyword", 60258),
symbolMisc: l("symbol-misc", 60259),
symbolOperator: l("symbol-operator", 60260),
symbolProperty: l("symbol-property", 60261),
wrench: l("wrench", 60261),
wrenchSubaction: l("wrench-subaction", 60261),
symbolSnippet: l("symbol-snippet", 60262),
tasklist: l("tasklist", 60263),
telescope: l("telescope", 60264),
textSize: l("text-size", 60265),
threeBars: l("three-bars", 60266),
thumbsdown: l("thumbsdown", 60267),
thumbsup: l("thumbsup", 60268),
tools: l("tools", 60269),
triangleDown: l("triangle-down", 60270),
triangleLeft: l("triangle-left", 60271),
triangleRight: l("triangle-right", 60272),
triangleUp: l("triangle-up", 60273),
twitter: l("twitter", 60274),
unfold: l("unfold", 60275),
unlock: l("unlock", 60276),
unmute: l("unmute", 60277),
unverified: l("unverified", 60278),
verified: l("verified", 60279),
versions: l("versions", 60280),
vmActive: l("vm-active", 60281),
vmOutline: l("vm-outline", 60282),
vmRunning: l("vm-running", 60283),
watch: l("watch", 60284),
whitespace: l("whitespace", 60285),
wholeWord: l("whole-word", 60286),
window: l("window", 60287),
wordWrap: l("word-wrap", 60288),
zoomIn: l("zoom-in", 60289),
zoomOut: l("zoom-out", 60290),
listFilter: l("list-filter", 60291),
listFlat: l("list-flat", 60292),
listSelection: l("list-selection", 60293),
selection: l("selection", 60293),
listTree: l("list-tree", 60294),
debugBreakpointFunctionUnverified: l("debug-breakpoint-function-unverified", 60295),
debugBreakpointFunction: l("debug-breakpoint-function", 60296),
debugBreakpointFunctionDisabled: l("debug-breakpoint-function-disabled", 60296),
debugStackframeActive: l("debug-stackframe-active", 60297),
circleSmallFilled: l("circle-small-filled", 60298),
debugStackframeDot: l("debug-stackframe-dot", 60298),
debugStackframe: l("debug-stackframe", 60299),
debugStackframeFocused: l("debug-stackframe-focused", 60299),
debugBreakpointUnsupported: l("debug-breakpoint-unsupported", 60300),
symbolString: l("symbol-string", 60301),
debugReverseContinue: l("debug-reverse-continue", 60302),
debugStepBack: l("debug-step-back", 60303),
debugRestartFrame: l("debug-restart-frame", 60304),
callIncoming: l("call-incoming", 60306),
callOutgoing: l("call-outgoing", 60307),
menu: l("menu", 60308),
expandAll: l("expand-all", 60309),
feedback: l("feedback", 60310),
gitPullRequestReviewer: l("git-pull-request-reviewer", 60310),
groupByRefType: l("group-by-ref-type", 60311),
ungroupByRefType: l("ungroup-by-ref-type", 60312),
account: l("account", 60313),
gitPullRequestAssignee: l("git-pull-request-assignee", 60313),
bellDot: l("bell-dot", 60314),
debugConsole: l("debug-console", 60315),
library: l("library", 60316),
output: l("output", 60317),
runAll: l("run-all", 60318),
syncIgnored: l("sync-ignored", 60319),
pinned: l("pinned", 60320),
githubInverted: l("github-inverted", 60321),
debugAlt: l("debug-alt", 60305),
serverProcess: l("server-process", 60322),
serverEnvironment: l("server-environment", 60323),
pass: l("pass", 60324),
stopCircle: l("stop-circle", 60325),
playCircle: l("play-circle", 60326),
record: l("record", 60327),
debugAltSmall: l("debug-alt-small", 60328),
vmConnect: l("vm-connect", 60329),
cloud: l("cloud", 60330),
merge: l("merge", 60331),
exportIcon: l("export", 60332),
graphLeft: l("graph-left", 60333),
magnet: l("magnet", 60334),
notebook: l("notebook", 60335),
redo: l("redo", 60336),
checkAll: l("check-all", 60337),
pinnedDirty: l("pinned-dirty", 60338),
passFilled: l("pass-filled", 60339),
circleLargeFilled: l("circle-large-filled", 60340),
circleLarge: l("circle-large", 60341),
circleLargeOutline: l("circle-large-outline", 60341),
combine: l("combine", 60342),
gather: l("gather", 60342),
table: l("table", 60343),
variableGroup: l("variable-group", 60344),
typeHierarchy: l("type-hierarchy", 60345),
typeHierarchySub: l("type-hierarchy-sub", 60346),
typeHierarchySuper: l("type-hierarchy-super", 60347),
gitPullRequestCreate: l("git-pull-request-create", 60348),
runAbove: l("run-above", 60349),
runBelow: l("run-below", 60350),
notebookTemplate: l("notebook-template", 60351),
debugRerun: l("debug-rerun", 60352),
workspaceTrusted: l("workspace-trusted", 60353),
workspaceUntrusted: l("workspace-untrusted", 60354),
workspaceUnspecified: l("workspace-unspecified", 60355),
terminalCmd: l("terminal-cmd", 60356),
terminalDebian: l("terminal-debian", 60357),
terminalLinux: l("terminal-linux", 60358),
terminalPowershell: l("terminal-powershell", 60359),
terminalTmux: l("terminal-tmux", 60360),
terminalUbuntu: l("terminal-ubuntu", 60361),
terminalBash: l("terminal-bash", 60362),
arrowSwap: l("arrow-swap", 60363),
copy: l("copy", 60364),
personAdd: l("person-add", 60365),
filterFilled: l("filter-filled", 60366),
wand: l("wand", 60367),
debugLineByLine: l("debug-line-by-line", 60368),
inspect: l("inspect", 60369),
layers: l("layers", 60370),
layersDot: l("layers-dot", 60371),
layersActive: l("layers-active", 60372),
compass: l("compass", 60373),
compassDot: l("compass-dot", 60374),
compassActive: l("compass-active", 60375),
azure: l("azure", 60376),
issueDraft: l("issue-draft", 60377),
gitPullRequestClosed: l("git-pull-request-closed", 60378),
gitPullRequestDraft: l("git-pull-request-draft", 60379),
debugAll: l("debug-all", 60380),
debugCoverage: l("debug-coverage", 60381),
runErrors: l("run-errors", 60382),
folderLibrary: l("folder-library", 60383),
debugContinueSmall: l("debug-continue-small", 60384),
beakerStop: l("beaker-stop", 60385),
graphLine: l("graph-line", 60386),
graphScatter: l("graph-scatter", 60387),
pieChart: l("pie-chart", 60388),
bracketDot: l("bracket-dot", 60389),
bracketError: l("bracket-error", 60390),
lockSmall: l("lock-small", 60391),
azureDevops: l("azure-devops", 60392),
verifiedFilled: l("verified-filled", 60393),
newLine: l("newline", 60394),
layout: l("layout", 60395),
layoutActivitybarLeft: l("layout-activitybar-left", 60396),
layoutActivitybarRight: l("layout-activitybar-right", 60397),
layoutPanelLeft: l("layout-panel-left", 60398),
layoutPanelCenter: l("layout-panel-center", 60399),
layoutPanelJustify: l("layout-panel-justify", 60400),
layoutPanelRight: l("layout-panel-right", 60401),
layoutPanel: l("layout-panel", 60402),
layoutSidebarLeft: l("layout-sidebar-left", 60403),
layoutSidebarRight: l("layout-sidebar-right", 60404),
layoutStatusbar: l("layout-statusbar", 60405),
layoutMenubar: l("layout-menubar", 60406),
layoutCentered: l("layout-centered", 60407),
layoutSidebarRightOff: l("layout-sidebar-right-off", 60416),
layoutPanelOff: l("layout-panel-off", 60417),
layoutSidebarLeftOff: l("layout-sidebar-left-off", 60418),
target: l("target", 60408),
indent: l("indent", 60409),
recordSmall: l("record-small", 60410),
errorSmall: l("error-small", 60411),
arrowCircleDown: l("arrow-circle-down", 60412),
arrowCircleLeft: l("arrow-circle-left", 60413),
arrowCircleRight: l("arrow-circle-right", 60414),
arrowCircleUp: l("arrow-circle-up", 60415),
heartFilled: l("heart-filled", 60420),
map: l("map", 60421),
mapFilled: l("map-filled", 60422),
circleSmall: l("circle-small", 60423),
bellSlash: l("bell-slash", 60424),
bellSlashDot: l("bell-slash-dot", 60425),
commentUnresolved: l("comment-unresolved", 60426),
gitPullRequestGoToChanges: l("git-pull-request-go-to-changes", 60427),
gitPullRequestNewChanges: l("git-pull-request-new-changes", 60428),
searchFuzzy: l("search-fuzzy", 60429),
commentDraft: l("comment-draft", 60430),
send: l("send", 60431),
sparkle: l("sparkle", 60432),
insert: l("insert", 60433),
mic: l("mic", 60434),
// derived icons, that could become separate icons
dialogError: l("dialog-error", "error"),
dialogWarning: l("dialog-warning", "warning"),
dialogInfo: l("dialog-info", "info"),
dialogClose: l("dialog-close", "close"),
treeItemExpanded: l("tree-item-expanded", "chevron-down"),
// collapsed is done with rotation
treeFilterOnTypeOn: l("tree-filter-on-type-on", "list-filter"),
treeFilterOnTypeOff: l("tree-filter-on-type-off", "list-selection"),
treeFilterClear: l("tree-filter-clear", "close"),
treeItemLoading: l("tree-item-loading", "loading"),
menuSelection: l("menu-selection", "check"),
menuSubmenu: l("menu-submenu", "chevron-right"),
menuBarMore: l("menubar-more", "more"),
scrollbarButtonLeft: l("scrollbar-button-left", "triangle-left"),
scrollbarButtonRight: l("scrollbar-button-right", "triangle-right"),
scrollbarButtonUp: l("scrollbar-button-up", "triangle-up"),
scrollbarButtonDown: l("scrollbar-button-down", "triangle-down"),
toolBarMore: l("toolbar-more", "more"),
quickInputBack: l("quick-input-back", "arrow-left")
};
var Bt = globalThis && globalThis.__awaiter || function(e, t, n, r) {
function s(i) {
return i instanceof n ? i : new n(function(a) {
a(i);
});
}
return new (n || (n = Promise))(function(i, a) {
function o(h) {
try {
u(r.next(h));
} catch (f) {
a(f);
}
}
function c(h) {
try {
u(r.throw(h));
} catch (f) {
a(f);
}
}
function u(h) {
h.done ? i(h.value) : s(h.value).then(o, c);
}
u((r = r.apply(e, t || [])).next());
});
};
class bi {
constructor() {
this._tokenizationSupports = /* @__PURE__ */ new Map(), this._factories = /* @__PURE__ */ new Map(), this._onDidChange = new ie(), this.onDidChange = this._onDidChange.event, this._colorMap = null;
}
handleChange(t) {
this._onDidChange.fire({
changedLanguages: t,
changedColorMap: !1
});
}
register(t, n) {
return this._tokenizationSupports.set(t, n), this.handleChange([t]), Ge(() => {
this._tokenizationSupports.get(t) === n && (this._tokenizationSupports.delete(t), this.handleChange([t]));
});
}
get(t) {
return this._tokenizationSupports.get(t) || null;
}
registerFactory(t, n) {
var r;
(r = this._factories.get(t)) === null || r === void 0 || r.dispose();
const s = new _i(this, t, n);
return this._factories.set(t, s), Ge(() => {
const i = this._factories.get(t);
!i || i !== s || (this._factories.delete(t), i.dispose());
});
}
getOrCreate(t) {
return Bt(this, void 0, void 0, function* () {
const n = this.get(t);
if (n)
return n;
const r = this._factories.get(t);
return !r || r.isResolved ? null : (yield r.resolve(), this.get(t));
});
}
isResolved(t) {
if (this.get(t))
return !0;
const r = this._factories.get(t);
return !!(!r || r.isResolved);
}
setColorMap(t) {
this._colorMap = t, 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
/* ColorId.DefaultBackground */
] : null;
}
}
class _i extends je {
get isResolved() {
return this._isResolved;
}
constructor(t, n, r) {
super(), this._registry = t, this._languageId = n, this._factory = r, this._isDisposed = !1, this._resolvePromise = null, this._isResolved = !1;
}
dispose() {
this._isDisposed = !0, super.dispose();
}
resolve() {
return Bt(this, void 0, void 0, function* () {
return this._resolvePromise || (this._resolvePromise = this._create()), this._resolvePromise;
});
}
_create() {
return Bt(this, void 0, void 0, function* () {
const t = yield this._factory.tokenizationSupport;
this._isResolved = !0, t && !this._isDisposed && this._register(this._registry.register(this._languageId, t));
});
}
}
class xi {
constructor(t, n, r) {
this.offset = t, this.type = n, this.language = r, this._tokenBrand = void 0;
}
toString() {
return "(" + this.offset + ", " + this.type + ")";
}
}
var hn;
(function(e) {
const t = /* @__PURE__ */ new Map();
t.set(0, y.symbolMethod), t.set(1, y.symbolFunction), t.set(2, y.symbolConstructor), t.set(3, y.symbolField), t.set(4, y.symbolVariable), t.set(5, y.symbolClass), t.set(6, y.symbolStruct), t.set(7, y.symbolInterface), t.set(8, y.symbolModule), t.set(9, y.symbolProperty), t.set(10, y.symbolEvent), t.set(11, y.symbolOperator), t.set(12, y.symbolUnit), t.set(13, y.symbolValue), t.set(15, y.symbolEnum), t.set(14, y.symbolConstant), t.set(15, y.symbolEnum), t.set(16, y.symbolEnumMember), t.set(17, y.symbolKeyword), t.set(27, y.symbolSnippet), t.set(18, y.symbolText), t.set(19, y.symbolColor), t.set(20, y.symbolFile), t.set(21, y.symbolReference), t.set(22, y.symbolCustomColor), t.set(23, y.symbolFolder), t.set(24, y.symbolTypeParameter), t.set(25, y.account), t.set(26, y.issues);
function n(i) {
let a = t.get(i);
return a || (console.info("No codicon found for CompletionItemKind " + i), a = y.symbolProperty), a;
}
e.toIcon = n;
const r = /* @__PURE__ */ new Map();
r.set(
"method",
0
/* CompletionItemKind.Method */
), r.set(
"function",
1
/* CompletionItemKind.Function */
), r.set(
"constructor",
2
/* CompletionItemKind.Constructor */
), r.set(
"field",
3
/* CompletionItemKind.Field */
), r.set(
"variable",
4
/* CompletionItemKind.Variable */
), r.set(
"class",
5
/* CompletionItemKind.Class */
), r.set(
"struct",
6
/* CompletionItemKind.Struct */
), r.set(
"interface",
7
/* CompletionItemKind.Interface */
), r.set(
"module",
8
/* CompletionItemKind.Module */
), r.set(
"property",
9
/* CompletionItemKind.Property */
), r.set(
"event",
10
/* CompletionItemKind.Event */
), r.set(
"operator",
11
/* CompletionItemKind.Operator */
), r.set(
"unit",
12
/* CompletionItemKind.Unit */
), r.set(
"value",
13
/* CompletionItemKind.Value */
), r.set(
"constant",
14
/* CompletionItemKind.Constant */
), r.set(
"enum",
15
/* CompletionItemKind.Enum */
), r.set(
"enum-member",
16
/* CompletionItemKind.EnumMember */
), r.set(
"enumMember",
16
/* CompletionItemKind.EnumMember */
), r.set(
"keyword",
17
/* CompletionItemKind.Keyword */
), r.set(
"snippet",
27
/* CompletionItemKind.Snippet */
), r.set(
"text",
18
/* CompletionItemKind.Text */
), r.set(
"color",
19
/* CompletionItemKind.Color */
), r.set(
"file",
20
/* CompletionItemKind.File */
), r.set(
"reference",
21
/* CompletionItemKind.Reference */
), r.set(
"customcolor",
22
/* CompletionItemKind.Customcolor */
), r.set(
"folder",
23
/* CompletionItemKind.Folder */
), r.set(
"type-parameter",
24
/* CompletionItemKind.TypeParameter */
), r.set(
"typeParameter",
24
/* CompletionItemKind.TypeParameter */
), r.set(
"account",
25
/* CompletionItemKind.User */
), r.set(
"issue",
26
/* CompletionItemKind.Issue */
);
function s(i, a) {
let o = r.get(i);
return typeof o > "u" && !a && (o = 9), o;
}
e.fromString = s;
})(hn || (hn = {}));
var fn;
(function(e) {
e[e.Automatic = 0] = "Automatic", e[e.Explicit = 1] = "Explicit";
})(fn || (fn = {}));
var dn;
(function(e) {
e[e.Invoke = 1] = "Invoke", e[e.TriggerCharacter = 2] = "TriggerCharacter", e[e.ContentChange = 3] = "ContentChange";
})(dn || (dn = {}));
var mn;
(function(e) {
e[e.Text = 0] = "Text", e[e.Read = 1] = "Read", e[e.Write = 2] = "Write";
})(mn || (mn = {}));
z("Array", "array"), z("Boolean", "boolean"), z("Class", "class"), z("Constant", "constant"), z("Constructor", "constructor"), z("Enum", "enumeration"), z("EnumMember", "enumeration member"), z("Event", "event"), z("Field", "field"), z("File", "file"), z("Function", "function"), z("Interface", "interface"), z("Key", "key"), z("Method", "method"), z("Module", "module"), z("Namespace", "namespace"), z("Null", "null"), z("Number", "number"), z("Object", "object"), z("Operator", "operator"), z("Package", "package"), z("Property", "property"), z("String", "string"), z("Struct", "struct"), z("TypeParameter", "type parameter"), z("Variable", "variable");
var gn;
(function(e) {
const t = /* @__PURE__ */ new Map();
t.set(0, y.symbolFile), t.set(1, y.symbolModule), t.set(2, y.symbolNamespace), t.set(3, y.symbolPackage), t.set(4, y.symbolClass), t.set(5, y.symbolMethod), t.set(6, y.symbolProperty), t.set(7, y.symbolField), t.set(8, y.symbolConstructor), t.set(9, y.symbolEnum), t.set(10, y.symbolInterface), t.set(11, y.symbolFunction), t.set(12, y.symbolVariable), t.set(13, y.symbolConstant), t.set(14, y.symbolString), t.set(15, y.symbolNumber), t.set(16, y.symbolBoolean), t.set(17, y.symbolArray), t.set(18, y.symbolObject), t.set(19, y.symbolKey), t.set(20, y.symbolNull), t.set(21, y.symbolEnumMember), t.set(22, y.symbolStruct), t.set(23, y.symbolEvent), t.set(24, y.symbolOperator), t.set(25, y.symbolTypeParameter);
function n(r) {
let s = t.get(r);
return s || (console.info("No codicon found for SymbolKind " + r), s = y.symbolProperty), s;
}
e.toIcon = n;
})(gn || (gn = {}));
var bn;
(function(e) {
function t(n) {
return !n || typeof n != "object" ? !1 : typeof n.id == "string" && typeof n.title == "string";
}
e.is = t;
})(bn || (bn = {}));
var _n;
(function(e) {
e[e.Type = 1] = "Type", e[e.Parameter = 2] = "Parameter";
})(_n || (_n = {}));
new bi();
var xn;
(function(e) {
e[e.Unknown = 0] = "Unknown", e[e.Disabled = 1] = "Disabled", e[e.Enabled = 2] = "Enabled";
})(xn || (xn = {}));
var pn;
(function(e) {
e[e.Invoke = 1] = "Invoke", e[e.Auto = 2] = "Auto";
})(pn || (pn = {}));
var vn;
(function(e) {
e[e.None = 0] = "None", e[e.KeepWhitespace = 1] = "KeepWhitespace", e[e.InsertAsSnippet = 4] = "InsertAsSnippet";
})(vn || (vn = {}));
var wn;
(function(e) {
e[e.Method = 0] = "Method", e[e.Function = 1] = "Function", e[e.Constructor = 2] = "Constructor", e[e.Field = 3] = "Field", e[e.Variable = 4] = "Variable", e[e.Class = 5] = "Class", e[e.Struct = 6] = "Struct", e[e.Interface = 7] = "Interface", e[e.Module = 8] = "Module", e[e.Property = 9] = "Property", e[e.Event = 10] = "Event", e[e.Operator = 11] = "Operator", e[e.Unit = 12] = "Unit", e[e.Value = 13] = "Value", e[e.Constant = 14] = "Constant", e[e.Enum = 15] = "Enum", e[e.EnumMember = 16] = "EnumMember", e[e.Keyword = 17] = "Keyword", e[e.Text = 18] = "Text", e[e.Color = 19] = "Color", e[e.File = 20] = "File", e[e.Reference = 21] = "Reference", e[e.Customcolor = 22] = "Customcolor", e[e.Folder = 23] = "Folder", e[e.TypeParameter = 24] = "TypeParameter", e[e.User = 25] = "User", e[e.Issue = 26] = "Issue", e[e.Snippet = 27] = "Snippet";
})(wn || (wn = {}));
var Ln;
(function(e) {
e[e.Deprecated = 1] = "Deprecated";
})(Ln || (Ln = {}));
var Nn;
(function(e) {
e[e.Invoke = 0] = "Invoke", e[e.TriggerCharacter = 1] = "TriggerCharacter", e[e.TriggerForIncompleteCompletions = 2] = "TriggerForIncompleteCompletions";
})(Nn || (Nn = {}));
var Sn;
(function(e) {
e[e.EXACT = 0] = "EXACT", e[e.ABOVE = 1] = "ABOVE", e[e.BELOW = 2] = "BELOW";
})(Sn || (Sn = {}));
var Cn;
(function(e) {
e[e.NotSet = 0] = "NotSet", e[e.ContentFlush = 1] = "ContentFlush", e[e.RecoverFromMarkers = 2] = "RecoverFromMarkers", e[e.Explicit = 3] = "Explicit", e[e.Paste = 4] = "Paste", e[e.Undo = 5] = "Undo", e[e.Redo = 6] = "Redo";
})(Cn || (Cn = {}));
var An;
(function(e) {
e[e.LF = 1] = "LF", e[e.CRLF = 2] = "CRLF";
})(An || (An = {}));
var Rn;
(function(e) {
e[e.Text = 0] = "Text", e[e.Read = 1] = "Read", e[e.Write = 2] = "Write";
})(Rn || (Rn = {}));
var yn;
(function(e) {
e[e.None = 0] = "None", e[e.Keep = 1] = "Keep", e[e.Brackets = 2] = "Brackets", e[e.Advanced = 3] = "Advanced", e[e.Full = 4] = "Full";
})(yn || (yn = {}));
var Mn;
(function(e) {
e[e.acceptSuggestionOnCommitCharacter = 0] = "acceptSuggestionOnCommitCharacter", e[e.acceptSuggestionOnEnter = 1] = "acceptSuggestionOnEnter", e[e.accessibilitySupport = 2] = "accessibilitySupport", e[e.accessibilityPageSize = 3] = "accessibilityPageSize", e[e.ariaLabel = 4] = "ariaLabel", e[e.ariaRequired = 5] = "ariaRequired", e[e.autoClosingBrackets = 6] = "autoClosingBrackets", e[e.autoClosingComments = 7] = "autoClosingComments", e[e.screenReaderAnnounceInlineSuggestion = 8] = "screenReaderAnnounceInlineSuggestion", e[e.autoClosingDelete = 9] = "autoClosingDelete", e[e.autoClosingOvertype = 10] = "autoClosingOvertype", e[e.autoClosingQuotes = 11] = "autoClosingQuotes", e[e.autoIndent = 12] = "autoIndent", e[e.automaticLayout = 13] = "automaticLayout", e[e.autoSurround = 14] = "autoSurround", e[e.bracketPairColorization = 15] = "bracketPairColorization", e[e.guides = 16] = "guides", e[e.codeLens = 17] = "codeLens", e[e.codeLensFontFamily = 18] = "codeLensFontFamily", e[e.codeLensFontSize = 19] = "codeLensFontSize", e[e.colorDecorators = 20] = "colorDecorators", e[e.colorDecoratorsLimit = 21] = "colorDecoratorsLimit", e[e.columnSelection = 22] = "columnSelection", e[e.comments = 23] = "comments", e[e.contextmenu = 24] = "contextmenu", e[e.copyWithSyntaxHighlighting = 25] = "copyWithSyntaxHighlighting", e[e.cursorBlinking = 26] = "cursorBlinking", e[e.cursorSmoothCaretAnimation = 27] = "cursorSmoothCaretAnimation", e[e.cursorStyle = 28] = "cursorStyle", e[e.cursorSurroundingLines = 29] = "cursorSurroundingLines", e[e.cursorSurroundingLinesStyle = 30] = "cursorSurroundingLinesStyle", e[e.cursorWidth = 31] = "cursorWidth", e[e.disableLayerHinting = 32] = "disableLayerHinting", e[e.disableMonospaceOptimizations = 33] = "disableMonospaceOptimizations", e[e.domReadOnly = 34] = "domReadOnly", e[e.dragAndDrop = 35] = "dragAndDrop", e[e.dropIntoEditor = 36] = "dropIntoEditor", e[e.emptySelectionClipboard = 37] = "emptySelectionClipboard", e[e.experimentalWhitespaceRendering = 38] = "experimentalWhitespaceRendering", e[e.extraEditorClassName = 39] = "extraEditorClassName", e[e.fastScrollSensitivity = 40] = "fastScrollSensitivity", e[e.find = 41] = "find", e[e.fixedOverflowWidgets = 42] = "fixedOverflowWidgets", e[e.folding = 43] = "folding", e[e.foldingStrategy = 44] = "foldingStrategy", e[e.foldingHighlight = 45] = "foldingHighlight", e[e.foldingImportsByDefault = 46] = "foldingImportsByDefault", e[e.foldingMaximumRegions = 47] = "foldingMaximumRegions", e[e.unfoldOnClickAfterEndOfLine = 48] = "unfoldOnClickAfterEndOfLine", e[e.fontFamily = 49] = "fontFamily", e[e.fontInfo = 50] = "fontInfo", e[e.fontLigatures = 51] = "fontLigatures", e[e.fontSize = 52] = "fontSize", e[e.fontWeight = 53] = "fontWeight", e[e.fontVariations = 54] = "fontVariations", e[e.formatOnPaste = 55] = "formatOnPaste", e[e.formatOnType = 56] = "formatOnType", e[e.glyphMargin = 57] = "glyphMargin", e[e.gotoLocation = 58] = "gotoLocation", e[e.hideCursorInOverviewRuler = 59] = "hideCursorInOverviewRuler", e[e.hover = 60] = "hover", e[e.inDiffEditor = 61] = "inDiffEditor", e[e.inlineSuggest = 62] = "inlineSuggest", e[e.letterSpacing = 63] = "letterSpacing", e[e.lightbulb = 64] = "lightbulb", e[e.lineDecorationsWidth = 65] = "lineDecorationsWidth", e[e.lineHeight = 66] = "lineHeight", e[e.lineNumbers = 67] = "lineNumbers", e[e.lineNumbersMinChars = 68] = "lineNumbersMinChars", e[e.linkedEditing = 69] = "linkedEditing", e[e.links = 70] = "links", e[e.matchBrackets = 71] = "matchBrackets", e[e.minimap = 72] = "minimap", e[e.mouseStyle = 73] = "mouseStyle", e[e.mouseWheelScrollSensitivity = 74] = "mouseWheelScrollSensitivity", e[e.mouseWheelZoom = 75] = "mouseWheelZoom", e[e.multiCursorMergeOverlapping = 76] = "multiCursorMergeOverlapping", e[e.multiCursorModifier = 77] = "multiCursorModifier", e[e.multiCursorPaste = 78] = "multiCursorPaste", e[e.multiCursorLimit = 79] = "multiCursorLimit", e[e.occurrencesHighlight = 80] = "occurrencesHighlight", e[e.overviewRulerBorder = 81] = "overviewRulerBorder", e[e.overviewRulerLanes = 82] = "overviewRulerLanes", e[e.padding = 83] = "padding", e[e.pasteAs = 84] = "pasteAs", e[e.parameterHints = 85] = "parameterHints", e[e.peekWidgetDefaultFocus = 86] = "peekWidgetDefaultFocus", e[e.definitionLinkOpensInPeek = 87] = "definitionLinkOpensInPeek", e[e.quickSuggestions = 88] = "quickSuggestions", e[e.quickSuggestionsDelay = 89] = "quickSuggestionsDelay", e[e.readOnly = 90] = "readOnly", e[e.readOnlyMessage = 91] = "readOnlyMessage", e[e.renameOnType = 92] = "renameOnType", e[e.renderControlCharacters = 93] = "renderControlCharacters", e[e.renderFinalNewline = 94] = "renderFinalNewline", e[e.renderLineHighlight = 95] = "renderLineHighlight", e[e.renderLineHighlightOnlyWhenFocus = 96] = "renderLineHighlightOnlyWhenFocus", e[e.renderValidationDecorations = 97] = "renderValidationDecorations", e[e.renderWhitespace = 98] = "renderWhitespace", e[e.revealHorizontalRightPadding = 99] = "revealHorizontalRightPadding", e[e.roundedSelection = 100] = "roundedSelection", e[e.rulers = 101] = "rulers", e[e.scrollbar = 102] = "scrollbar", e[e.scrollBeyondLastColumn = 103] = "scrollBeyondLastColumn", e[e.scrollBeyondLastLine = 104] = "scrollBeyondLastLine", e[e.scrollPredominantAxis = 105] = "scrollPredominantAxis", e[e.selectionClipboard = 106] = "selectionClipboard", e[e.selectionHighlight = 107] = "selectionHighlight", e[e.selectOnLineNumbers = 108] = "selectOnLineNumbers", e[e.showFoldingControls = 109] = "showFoldingControls", e[e.showUnused = 110] = "showUnused", e[e.snippetSuggestions = 111] = "snippetSuggestions", e[e.smartSelect = 112] = "smartSelect", e[e.smoothScrolling = 113] = "smoothScrolling", e[e.stickyScroll = 114] = "stickyScroll", e[e.stickyTabStops = 115] = "stickyTabStops", e[e.stopRenderingLineAfter = 116] = "stopRenderingLineAfter", e[e.suggest = 117] = "suggest", e[e.suggestFontSize = 118] = "suggestFontSize", e[e.suggestLineHeight = 119] = "suggestLineHeight", e[e.suggestOnTriggerCharacters = 120] = "suggestOnTriggerCharacters", e[e.suggestSelection = 121] = "suggestSelection", e[e.tabCompletion = 122] = "tabCompletion", e[e.tabIndex = 123] = "tabIndex", e[e.unicodeHighlighting = 124] = "unicodeHighlighting", e[e.unusualLineTerminators = 125] = "unusualLineTerminators", e[e.useShadowDOM = 126] = "useShadowDOM", e[e.useTabStops = 127] = "useTabStops", e[e.wordBreak = 128] = "wordBreak", e[e.wordSeparators = 129] = "wordSeparators", e[e.wordWrap = 130] = "wordWrap", e[e.wordWrapBreakAfterCharacters = 131] = "wordWrapBreakAfterCharacters", e[e.wordWrapBreakBeforeCharacters = 132] = "wordWrapBreakBeforeCharacters", e[e.wordWrapColumn = 133] = "wordWrapColumn", e[e.wordWrapOverride1 = 134] = "wordWrapOverride1", e[e.wordWrapOverride2 = 135] = "wordWrapOverride2", e[e.wrappingIndent = 136] = "wrappingIndent", e[e.wrappingStrategy = 137] = "wrappingStrategy", e[e.showDeprecated = 138] = "showDeprecated", e[e.inlayHints = 139] = "inlayHints", e[e.editorClassName = 140] = "editorClassName", e[e.pixelRatio = 141] = "pixelRatio", e[e.tabFocusMode = 142] = "tabFocusMode", e[e.layoutInfo = 143] = "layoutInfo", e[e.wrappingInfo = 144] = "wrappingInfo", e[e.defaultColorDecorators = 145] = "defaultColorDecorators", e[e.colorDecoratorsActivatedOn = 146] = "colorDecoratorsActivatedOn", e[e.inlineCompletionsAccessibilityVerbose = 147] = "inlineCompletionsAccessibilityVerbose";
})(Mn || (Mn = {}));
var En;
(function(e) {
e[e.TextDefined = 0] = "TextDefined", e[e.LF = 1] = "LF", e[e.CRLF = 2] = "CRLF";
})(En || (En = {}));
var kn;
(function(e) {
e[e.LF = 0] = "LF", e[e.CRLF = 1] = "CRLF";
})(kn || (kn = {}));
var Pn;
(function(e) {
e[e.Left = 1] = "Left", e[e.Right = 2] = "Right";
})(Pn || (Pn = {}));
var Fn;
(function(e) {
e[e.None = 0] = "None", e[e.Indent = 1] = "Indent", e[e.IndentOutdent = 2] = "IndentOutdent", e[e.Outdent = 3] = "Outdent";
})(Fn || (Fn = {}));
var Dn;
(function(e) {
e[e.Both = 0] = "Both", e[e.Right = 1] = "Right", e[e.Left = 2] = "Left", e[e.None = 3] = "None";
})(Dn || (Dn = {}));
var Tn;
(function(e) {
e[e.Type = 1] = "Type", e[e.Parameter = 2] = "Parameter";
})(Tn || (Tn = {}));
var Vn;
(function(e) {
e[e.Automatic = 0] = "Automatic", e[e.Explicit = 1] = "Explicit";
})(Vn || (Vn = {}));
var qt;
(function(e) {
e[e.DependsOnKbLayout = -1] = "DependsOnKbLayout", e[e.Unknown = 0] = "Unknown", e[e.Backspace = 1] = "Backspace", e[e.Tab = 2] = "Tab", e[e.Enter = 3] = "Enter", e[e.Shift = 4] = "Shift", e[e.Ctrl = 5] = "Ctrl", e[e.Alt = 6] = "Alt", e[e.PauseBreak = 7] = "PauseBreak", e[e.CapsLock = 8] = "CapsLock", e[e.Escape = 9] = "Escape", e[e.Space = 10] = "Space", e[e.PageUp = 11] = "PageUp", e[e.PageDown = 12] = "PageDown", e[e.End = 13] = "End", e[e.Home = 14] = "Home", e[e.LeftArrow = 15] = "LeftArrow", e[e.UpArrow = 16] = "UpArrow", e[e.RightArrow = 17] = "RightArrow", e[e.DownArrow = 18] = "DownArrow", e[e.Insert = 19] = "Insert", e[e.Delete = 20] = "Delete", e[e.Digit0 = 21] = "Digit0", e[e.Digit1 = 22] = "Digit1", e[e.Digit2 = 23] = "Digit2", e[e.Digit3 = 24] = "Digit3", e[e.Digit4 = 25] = "Digit4", e[e.Digit5 = 26] = "Digit5", e[e.Digit6 = 27] = "Digit6", e[e.Digit7 = 28] = "Digit7", e[e.Digit8 = 29] = "Digit8", e[e.Digit9 = 30] = "Digit9", e[e.KeyA = 31] = "KeyA", e[e.KeyB = 32] = "KeyB", e[e.KeyC = 33] = "KeyC", e[e.KeyD = 34] = "KeyD", e[e.KeyE = 35] = "KeyE", e[e.KeyF = 36] = "KeyF", e[e.KeyG = 37] = "KeyG", e[e.KeyH = 38] = "KeyH", e[e.KeyI = 39] = "KeyI", e[e.KeyJ = 40] = "KeyJ", e[e.KeyK = 41] = "KeyK", e[e.KeyL = 42] = "KeyL", e[e.KeyM = 43] = "KeyM", e[e.KeyN = 44] = "KeyN", e[e.KeyO = 45] = "KeyO", e[e.KeyP = 46] = "KeyP", e[e.KeyQ = 47] = "KeyQ", e[e.KeyR = 48] = "KeyR", e[e.KeyS = 49] = "KeyS", e[e.KeyT = 50] = "KeyT", e[e.KeyU = 51] = "KeyU", e[e.KeyV = 52] = "KeyV", e[e.KeyW = 53] = "KeyW", e[e.KeyX = 54] = "KeyX", e[e.KeyY = 55] = "KeyY", e[e.KeyZ = 56] = "KeyZ", e[e.Meta = 57] = "Meta", e[e.ContextMenu = 58] = "ContextMenu", e[e.F1 = 59] = "F1", e[e.F2 = 60] = "F2", e[e.F3 = 61] = "F3", e[e.F4 = 62] = "F4", e[e.F5 = 63] = "F5", e[e.F6 = 64] = "F6", e[e.F7 = 65] = "F7", e[e.F8 = 66] = "F8", e[e.F9 = 67] = "F9", e[e.F10 = 68] = "F10", e[e.F11 = 69] = "F11", e[e.F12 = 70] = "F12", e[e.F13 = 71] = "F13", e[e.F14 = 72] = "F14", e[e.F15 = 73] = "F15", e[e.F16 = 74] = "F16", e[e.F17 = 75] = "F17", e[e.F18 = 76] = "F18", e[e.F19 = 77] = "F19", e[e.F20 = 78] = "F20", e[e.F21 = 79] = "F21", e[e.F22 = 80] = "F22", e[e.F23 = 81] = "F23", e[e.F24 = 82] = "F24", e[e.NumLock = 83] = "NumLock", e[e.ScrollLock = 84] = "ScrollLock", e[e.Semicolon = 85] = "Semicolon", e[e.Equal = 86] = "Equal", e[e.Comma = 87] = "Comma", e[e.Minus = 88] = "Minus", e[e.Period = 89] = "Period", e[e.Slash = 90] = "Slash", e[e.Backquote = 91] = "Backquote", e[e.BracketLeft = 92] = "BracketLeft", e[e.Backslash = 93] = "Backslash", e[e.BracketRight = 94] = "BracketRight", e[e.Quote = 95] = "Quote", e[e.OEM_8 = 96] = "OEM_8", e[e.IntlBackslash = 97] = "IntlBackslash", e[e.Numpad0 = 98] = "Numpad0", e[e.Numpad1 = 99] = "Numpad1", e[e.Numpad2 = 100] = "Numpad2", e[e.Numpad3 = 101] = "Numpad3", e[e.Numpad4 = 102] = "Numpad4", e[e.Numpad5 = 103] = "Numpad5", e[e.Numpad6 = 104] = "Numpad6", e[e.Numpad7 = 105] = "Numpad7", e[e.Numpad8 = 106] = "Numpad8", e[e.Numpad9 = 107] = "Numpad9", e[e.NumpadMultiply = 108] = "NumpadMultiply", e[e.NumpadAdd = 109] = "NumpadAdd", e[e.NUMPAD_SEPARATOR = 110] = "NUMPAD_SEPARATOR", e[e.NumpadSubtract = 111] = "NumpadSubtract", e[e.NumpadDecimal = 112] = "NumpadDecimal", e[e.NumpadDivide = 113] = "NumpadDivide", e[e.KEY_IN_COMPOSITION = 114] = "KEY_IN_COMPOSITION", e[e.ABNT_C1 = 115] = "ABNT_C1", e[e.ABNT_C2 = 116] = "ABNT_C2", e[e.AudioVolumeMute = 117] = "AudioVolumeMute", e[e.AudioVolumeUp = 118] = "AudioVolumeUp", e[e.AudioVolumeDown = 119] = "AudioVolumeDown", e[e.BrowserSearch = 120] = "BrowserSearch", e[e.BrowserHome = 121] = "BrowserHome", e[e.BrowserBack = 122] = "BrowserBack", e[e.BrowserForward = 123] = "BrowserForward", e[e.MediaTrackNext = 124] = "MediaTrackNext", e[e.MediaTrackPrevious = 125] = "MediaTrackPrevious", e[e.MediaStop = 126] = "MediaStop", e[e.MediaPlayPause = 127] = "MediaPlayPause", e[e.LaunchMediaPlayer = 128] = "LaunchMediaPlayer", e[e.LaunchMail = 129] = "LaunchMail", e[e.LaunchApp2 = 130] = "LaunchApp2", e[e.Clear = 131] = "Clear", e[e.MAX_VALUE = 132] = "MAX_VALUE";
})(qt || (qt = {}));
var It;
(function(e) {
e[e.Hint = 1] = "Hint", e[e.Info = 2] = "Info", e[e.Warning = 4] = "Warning", e[e.Error = 8] = "Error";
})(It || (It = {}));
var Ut;
(function(e) {
e[e.Unnecessary = 1] = "Unnecessary", e[e.Deprecated = 2] = "Deprecated";
})(Ut || (Ut = {}));
var Bn;
(function(e) {
e[e.Inline = 1] = "Inline", e[e.Gutter = 2] = "Gutter";
})(Bn || (Bn = {}));
var qn;
(function(e) {
e[e.UNKNOWN = 0] = "UNKNOWN", e[e.TEXTAREA = 1] = "TEXTAREA", e[e.GUTTER_GLYPH_MARGIN = 2] = "GUTTER_GLYPH_MARGIN", e[e.GUTTER_LINE_NUMBERS = 3] = "GUTTER_LINE_NUMBERS", e[e.GUTTER_LINE_DECORATIONS = 4] = "GUTTER_LINE_DECORATIONS", e[e.GUTTER_VIEW_ZONE = 5] = "GUTTER_VIEW_ZONE", e[e.CONTENT_TEXT = 6] = "CONTENT_TEXT", e[e.CONTENT_EMPTY = 7] = "CONTENT_EMPTY", e[e.CONTENT_VIEW_ZONE = 8] = "CONTENT_VIEW_ZONE", e[e.CONTENT_WIDGET = 9] = "CONTENT_WIDGET", e[e.OVERVIEW_RULER = 10] = "OVERVIEW_RULER", e[e.SCROLLBAR = 11] = "SCROLLBAR", e[e.OVERLAY_WIDGET = 12] = "OVERLAY_WIDGET", e[e.OUTSIDE_EDITOR = 13] = "OUTSIDE_EDITOR";
})(qn || (qn = {}));
var In;
(function(e) {
e[e.TOP_RIGHT_CORNER = 0] = "TOP_RIGHT_CORNER", e[e.BOTTOM_RIGHT_CORNER = 1] = "BOTTOM_RIGHT_CORNER", e[e.TOP_CENTER = 2] = "TOP_CENTER";
})(In || (In = {}));
var Un;
(function(e) {
e[e.Left = 1] = "Left", e[e.Center = 2] = "Center", e[e.Right = 4] = "Right", e[e.Full = 7] = "Full";
})(Un || (Un = {}));
var Hn;
(function(e) {
e[e.Left = 0] = "Left", e[e.Right = 1] = "Right", e[e.None = 2] = "None", e[e.LeftOfInjectedText = 3] = "LeftOfInjectedText", e[e.RightOfInjectedText = 4] = "RightOfInjectedText";
})(Hn || (Hn = {}));
var Wn;
(function(e) {
e[e.Off = 0] = "Off", e[e.On = 1] = "On", e[e.Relative = 2] = "Relative", e[e.Interval = 3] = "Interval", e[e.Custom = 4] = "Custom";
})(Wn || (Wn = {}));
var zn;
(function(e) {
e[e.None = 0] = "None", e[e.Text = 1] = "Text", e[e.Blocks = 2] = "Blocks";
})(zn || (zn = {}));
var $n;
(function(e) {
e[e.Smooth = 0] = "Smooth", e[e.Immediate = 1] = "Immediate";
})($n || ($n = {}));
var On;
(function(e) {
e[e.Auto = 1] = "Auto", e[e.Hidden = 2] = "Hidden", e[e.Visible = 3] = "Visible";
})(On || (On = {}));
var Ht;
(function(e) {
e[e.LTR = 0] = "LTR", e[e.RTL = 1] = "RTL";
})(Ht || (Ht = {}));
var Gn;
(function(e) {
e[e.Invoke = 1] = "Invoke", e[e.TriggerCharacter = 2] = "TriggerCharacter", e[e.ContentChange = 3] = "ContentChange";
})(Gn || (Gn = {}));
var jn;
(function(e) {
e[e.File = 0] = "File", e[e.Module = 1] = "Module", e[e.Namespace = 2] = "Namespace", e[e.Package = 3] = "Package", e[e.Class = 4] = "Class", e[e.Method = 5] = "Method", e[e.Property = 6] = "Property", e[e.Field = 7] = "Field", e[e.Constructor = 8] = "Constructor", e[e.Enum = 9] = "Enum", e[e.Interface = 10] = "Interface", e[e.Function = 11] = "Function", e[e.Variable = 12] = "Variable", e[e.Constant = 13] = "Constant", e[e.String = 14] = "String", e[e.Number = 15] = "Number", e[e.Boolean = 16] = "Boolean", e[e.Array = 17] = "Array", e[e.Object = 18] = "Object", e[e.Key = 19] = "Key", e[e.Null = 20] = "Null", e[e.EnumMember = 21] = "EnumMember", e[e.Struct = 22] = "Struct", e[e.Event = 23] = "Event", e[e.Operator = 24] = "Operator", e[e.TypeParameter = 25] = "TypeParameter";
})(jn || (jn = {}));
var Qn;
(function(e) {
e[e.Deprecated = 1] = "Deprecated";
})(Qn || (Qn = {}));
var Xn;
(function(e) {
e[e.Hidden = 0] = "Hidden", e[e.Blink = 1] = "Blink", e[e.Smooth = 2] = "Smooth", e[e.Phase = 3] = "Phase", e[e.Expand = 4] = "Expand", e[e.Solid = 5] = "Solid";
})(Xn || (Xn = {}));
var Jn;
(function(e) {
e[e.Line = 1] = "Line", e[e.Block = 2] = "Block", e[e.Underline = 3] = "Underline", e[e.LineThin = 4] = "LineThin", e[e.BlockOutline = 5] = "BlockOutline", e[e.UnderlineThin = 6] = "UnderlineThin";
})(Jn || (Jn = {}));
var Yn;
(function(e) {
e[e.AlwaysGrowsWhenTypingAtEdges = 0] = "AlwaysGrowsWhenTypingAtEdges", e[e.NeverGrowsWhenTypingAtEdges = 1] = "NeverGrowsWhenTypingAtEdges", e[e.GrowsOnlyWhenTypingBefore = 2] = "GrowsOnlyWhenTypingBefore", e[e.GrowsOnlyWhenTypingAfter = 3] = "GrowsOnlyWhenTypingAfter";
})(Yn || (Yn = {}));
var Zn;
(function(e) {
e[e.None = 0] = "None", e[e.Same = 1] = "Same", e[e.Indent = 2] = "Indent", e[e.DeepIndent = 3] = "DeepIndent";
})(Zn || (Zn = {}));
class Ke {
static chord(t, n) {
return gi(t, n);
}
}
Ke.CtrlCmd = 2048;
Ke.Shift = 1024;
Ke.Alt = 512;
Ke.WinCtrl = 256;
function pi() {
return {
editor: void 0,
// undefined override expected here
languages: void 0,
// undefined override expected here
CancellationTokenSource: hi,
Emitter: ie,
KeyCode: qt,
KeyMod: Ke,
Position: J,
Range: D,
Selection: ne,
SelectionDirection: Ht,
MarkerSeverity: It,
MarkerTag: Ut,
Uri: Ce,
Token: xi
};
}
var Kn;
(function(e) {
e[e.Left = 1] = "Left", e[e.Center = 2] = "Center", e[e.Right = 4] = "Right", e[e.Full = 7] = "Full";
})(Kn || (Kn = {}));
var er;
(function(e) {
e[e.Left = 1] = "Left", e[e.Right = 2] = "Right";
})(er || (er = {}));
var tr;
(function(e) {
e[e.Inline = 1] = "Inline", e[e.Gutter = 2] = "Gutter";
})(tr || (tr = {}));
var nr;
(function(e) {
e[e.Both = 0] = "Both", e[e.Right = 1] = "Right", e[e.Left = 2] = "Left", e[e.None = 3] = "None";
})(nr || (nr = {}));
function vi(e, t, n, r, s) {
if (r === 0)
return !0;
const i = t.charCodeAt(r - 1);
if (e.get(i) !== 0 || i === 13 || i === 10)
return !0;
if (s > 0) {
const a = t.charCodeAt(r);
if (e.get(a) !== 0)
return !0;
}
return !1;
}
function wi(e, t, n, r, s) {
if (r + s === n)
return !0;
const i = t.charCodeAt(r + s);
if (e.get(i) !== 0 || i === 13 || i === 10)
return !0;
if (s > 0) {
const a = t.charCodeAt(r + s - 1);
if (e.get(a) !== 0)
return !0;
}
return !1;
}
function Li(e, t, n, r, s) {
return vi(e, t, n, r, s) && wi(e, t, n, r, s);
}
class Ni {
constructor(t, n) {
this._wordSeparators = t, this._searchRegex = n, this._prevMatchStartIndex = -1, this._prevMatchLength = 0;
}
reset(t) {
this._searchRegex.lastIndex = t, this._prevMatchStartIndex = -1, this._prevMatchLength = 0;
}
next(t) {
const n = t.length;
let r;
do {
if (this._prevMatchStartIndex + this._prevMatchLength === n || (r = this._searchRegex.exec(t), !r))
return null;
const s = r.index, i = r[0].length;
if (s === this._prevMatchStartIndex && i === this._prevMatchLength) {
if (i === 0) {
_s(t, n, this._searchRegex.lastIndex) > 65535 ? this._searchRegex.lastIndex += 2 : this._searchRegex.lastIndex += 1;
continue;
}
return null;
}
if (this._prevMatchStartIndex = s, this._prevMatchLength = i, !this._wordSeparators || Li(this._wordSeparators, t, n, s, i))
return r;
} while (r);
return null;
}
}
function Si(e, t = "Unreachable") {
throw new Error(t);
}
function gt(e) {
if (!e()) {
debugger;
e(), pr(new xe("Assertion Failed"));
}
}
function Dr(e, t) {
let n = 0;
for (; n < e.length - 1; ) {
const r = e[n], s = e[n + 1];
if (!t(r, s))
return !1;
n++;
}
return !0;
}
class Ci {
static computeUnicodeHighlights(t, n, r) {
const s = r ? r.startLineNumber : 1, i = r ? r.endLineNumber : t.getLineCount(), a = new rr(n), o = a.getCandidateCodePoints();
let c;
o === "allNonBasicAscii" ? c = new RegExp("[^\\t\\n\\r\\x20-\\x7E]", "g") : c = new RegExp(`${Ai(Array.from(o))}`, "g");
const u = new Ni(null, c), h = [];
let f = !1, m, d = 0, g = 0, b = 0;
e:
for (let w = s, L = i; w <= L; w++) {
const _ = t.getLineContent(w), x = _.length;
u.reset(0);
do
if (m = u.next(_), m) {
let S = m.index, N = m.index + m[0].length;
if (S > 0) {
const I = _.charCodeAt(S - 1);
Et(I) && S--;
}
if (N + 1 < x) {
const I = _.charCodeAt(N - 1);
Et(I) && N++;
}
const R = _.substring(S, N);
let M = Qt(S + 1, kr, _, 0);
M && M.endColumn <= S + 1 && (M = null);
const E = a.shouldHighlightNonBasicASCII(R, M ? M.word : null);
if (E !== 0) {
E === 3 ? d++ : E === 2 ? g++ : E === 1 ? b++ : Si();
const I = 1e3;
if (h.length >= I) {
f = !0;
break e;
}
h.push(new D(w, S + 1, w, N + 1));
}
}
while (m);
}
return {
ranges: h,
hasMore: f,
ambiguousCharacterCount: d,
invisibleCharacterCount: g,
nonBasicAsciiCharacterCount: b
};
}
static computeUnicodeHighlightReason(t, n) {
const r = new rr(n);
switch (r.shouldHighlightNonBasicASCII(t, null)) {
case 0:
return null;
case 2:
return {
kind: 1
/* UnicodeHighlighterReasonKind.Invisible */
};
case 3: {
const i = t.codePointAt(0), a = r.ambiguousCharacters.getPrimaryConfusable(i), o = Re.getLocales().filter((c) => !Re.getInstance(/* @__PURE__ */ new Set([...n.allowedLocales, c])).isAmbiguous(i));
return { kind: 0, confusableWith: String.fromCodePoint(a), notAmbiguousInLocales: o };
}
case 1:
return {
kind: 2
/* UnicodeHighlighterReasonKind.NonBasicAscii */
};
}
}
}
function Ai(e, t) {
return `[${hs(e.map((r) => String.fromCodePoint(r)).join(""))}]`;
}
class rr {
constructor(t) {
this.options = t, this.allowedCodePoints = new Set(t.allowedCodePoints), this.ambiguousCharacters = Re.getInstance(new Set(t.allowedLocales));
}
getCandidateCodePoints() {
if (this.options.nonBasicASCII)
return "allNonBasicAscii";
const t = /* @__PURE__ */ new Set();
if (this.options.invisibleCharacters)
for (const n of pe.codePoints)
sr(String.fromCodePoint(n)) || t.add(n);
if (this.options.ambiguousCharacters)
for (const n of this.ambiguousCharacters.getConfusableCodePoints())
t.add(n);
for (const n of this.allowedCodePoints)
t.delete(n);
return t;
}
shouldHighlightNonBasicASCII(t, n) {
const r = t.codePointAt(0);
if (this.allowedCodePoints.has(r))
return 0;
if (this.options.nonBasicASCII)
return 1;
let s = !1, i = !1;
if (n)
for (const a of n) {
const o = a.codePointAt(0), c = ps(a);
s = s || c, !c && !this.ambiguousCharacters.isAmbiguous(o) && !pe.isInvisibleCharacter(o) && (i = !0);
}
return (
/* Don't allow mixing weird looking characters with ASCII */
!s && /* Is there an obviously weird looking character? */
i ? 0 : this.options.invisibleCharacters && !sr(t) && pe.isInvisibleCharacter(r) ? 2 : this.options.ambiguousCharacters && this.ambiguousCharacters.isAmbiguous(r) ? 3 : 0
);
}
}
function sr(e) {
return e === " " || e === `
` || e === " ";
}
class ut {
constructor(t, n, r) {
this.changes = t, this.moves = n, this.hitTimeout = r;
}
}
class Ri {
constructor(t, n) {
this.lineRangeMapping = t, this.changes = n;
}
}
class T {
static addRange(t, n) {
let r = 0;
for (; r < n.length && n[r].endExclusive < t.start; )
r++;
let s = r;
for (; s < n.length && n[s].start <= t.endExclusive; )
s++;
if (r === s)
n.splice(r, 0, t);
else {
const i = Math.min(t.start, n[r].start), a = Math.max(t.endExclusive, n[s - 1].endExclusive);
n.splice(r, s - r, new T(i, a));
}
}
static tryCreate(t, n) {
if (!(t > n))
return new T(t, n);
}
static ofLength(t) {
return new T(0, t);
}
constructor(t, n) {
if (this.start = t, this.endExclusive = n, t > n)
throw new xe(`Invalid range: ${this.toString()}`);
}
get isEmpty() {
return this.start === this.endExclusive;
}
delta(t) {
return new T(this.start + t, this.endExclusive + t);
}
deltaStart(t) {
return new T(this.start + t, this.endExclusive);
}
deltaEnd(t) {
return new T(this.start, this.endExclusive + t);
}
get length() {
return this.endExclusive - this.start;
}
toString() {
return `[${this.start}, ${this.endExclusive})`;
}
equals(t) {
return this.start === t.start && this.endExclusive === t.endExclusive;
}
containsRange(t) {
return this.start <= t.start && t.endExclusive <= this.endExclusive;
}
contains(t) {
return this.start <= t && t < 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(t) {
return new T(Math.min(this.start, t.start), Math.max(this.endExclusive, t.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(t) {
const n = Math.max(this.start, t.start), r = Math.min(this.endExclusive, t.endExclusive);
if (n <= r)
return new T(n, r);
}
slice(t) {
return t.slice(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(t) {
if (this.isEmpty)
throw new xe(`Invalid clipping range: ${this.toString()}`);
return Math.max(this.start, Math.min(this.endExclusive - 1, t));
}
/**
* 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(t) {
if (this.isEmpty)
throw new xe(`Invalid clipping range: ${this.toString()}`);
return t < this.start ? this.endExclusive - (this.start - t) % this.length : t >= this.endExclusive ? this.start + (t - this.start) % this.length : t;
}
forEach(t) {
for (let n = this.start; n < this.endExclusive; n++)
t(n);
}
}
function Xe(e, t) {
const n = Je(e, t);
return n === -1 ? void 0 : e[n];
}
function Je(e, t, n = 0, r = e.length) {
let s = n, i = r;
for (; s < i; ) {
const a = Math.floor((s + i) / 2);
t(e[a]) ? s = a + 1 : i = a;
}
return s - 1;
}
function yi(e, t) {
const n = Wt(e, t);
return n === e.length ? void 0 : e[n];
}
function Wt(e, t, n = 0, r = e.length) {
let s = n, i = r;
for (; s < i; ) {
const a = Math.floor((s + i) / 2);
t(e[a]) ? i = a : s = a + 1;
}
return s;
}
class et {
constructor(t) {
this._array = t, 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(t) {
if (et.assertInvariants) {
if (this._prevFindLastPredicate) {
for (const r of this._array)
if (this._prevFindLastPredicate(r) && !t(r))
throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.");
}
this._prevFindLastPredicate = t;
}
const n = Je(this._array, t, this._findLastMonotonousLastIdx);
return this._findLastMonotonousLastIdx = n + 1, n === -1 ? void 0 : this._array[n];
}
}
et.assertInvariants = !1;
class V {
static fromRange(t) {
return new V(t.startLineNumber, t.endLineNumber);
}
/**
* @param lineRanges An array of sorted line ranges.
*/
static joinMany(t) {
if (t.length === 0)
return [];
let n = new oe(t[0].slice());
for (let r = 1; r < t.length; r++)
n = n.getUnion(new oe(t[r].slice()));
return n.ranges;
}
static ofLength(t, n) {
return new V(t, t + n);
}
/**
* @internal
*/
static deserialize(t) {
return new V(t[0], t[1]);
}
constructor(t, n) {
if (t > n)
throw new xe(`startLineNumber ${t} cannot be after endLineNumberExclusive ${n}`);
this.startLineNumber = t, this.endLineNumberExclusive = n;
}
/**
* Indicates if this line range contains the given line number.
*/
contains(t) {
return this.startLineNumber <= t && t < 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(t) {
return new V(this.startLineNumber + t, this.endLineNumberExclusive + t);
}
deltaLength(t) {
return new V(this.startLineNumber, this.endLineNumberExclusive + t);
}
/**
* 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(t) {
return new V(Math.min(this.startLineNumber, t.startLineNumber), Math.max(this.endLineNumberExclusive, t.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(t) {
const n = Math.max(this.startLineNumber, t.startLineNumber), r = Math.min(this.endLineNumberExclusive, t.endLineNumberExclusive);
if (n <= r)
return new V(n, r);
}
intersectsStrict(t) {
return this.startLineNumber < t.endLineNumberExclusive && t.startLineNumber < this.endLineNumberExclusive;
}
overlapOrTouch(t) {
return this.startLineNumber <= t.endLineNumberExclusive && t.startLineNumber <= this.endLineNumberExclusive;
}
equals(t) {
return this.startLineNumber === t.startLineNumber && this.endLineNumberExclusive === t.endLineNumberExclusive;
}
toInclusiveRange() {
return this.isEmpty ? null : new D(this.startLineNumber, 1, this.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER);
}
toExclusiveRange() {
return new D(this.startLineNumber, 1, this.endLineNumberExclusive, 1);
}
mapToLineArray(t) {
const n = [];
for (let r = this.startLineNumber; r < this.endLineNumberExclusive; r++)
n.push(t(r));
return n;
}
forEach(t) {
for (let n = this.startLineNumber; n < this.endLineNumberExclusive; n++)
t(n);
}
/**
* @internal
*/
serialize() {
return [this.startLineNumber, this.endLineNumberExclusive];
}
includes(t) {
return this.startLineNumber <= t && t < this.endLineNumberExclusive;
}
/**
* Converts this 1-based line range to a 0-based offset range (subtracts 1!).
* @internal
*/
toOffsetRange() {
return new T(this.startLineNumber - 1, this.endLineNumberExclusive - 1);
}
}
class oe {
constructor(t = []) {
this._normalizedRanges = t;
}
get ranges() {
return this._normalizedRanges;
}
addRange(t) {
if (t.length === 0)
return;
const n = Wt(this._normalizedRanges, (s) => s.endLineNumberExclusive >= t.startLineNumber), r = Je(this._normalizedRanges, (s) => s.startLineNumber <= t.endLineNumberExclusive) + 1;
if (n === r)
this._normalizedRanges.splice(n, 0, t);
else if (n === r - 1) {
const s = this._normalizedRanges[n];
this._normalizedRanges[n] = s.join(t);
} else {
const s = this._normalizedRanges[n].join(this._normalizedRanges[r - 1]).join(t);
this._normalizedRanges.splice(n, r - n, s);
}
}
contains(t) {
const n = Xe(this._normalizedRanges, (r) => r.startLineNumber <= t);
return !!n && n.endLineNumberExclusive > t;
}
getUnion(t) {
if (this._normalizedRanges.length === 0)
return t;
if (t._normalizedRanges.length === 0)
return this;
const n = [];
let r = 0, s = 0, i = null;
for (; r < this._normalizedRanges.length || s < t._normalizedRanges.length; ) {
let a = null;
if (r < this._normalizedRanges.length && s < t._normalizedRanges.length) {
const o = this._normalizedRanges[r], c = t._normalizedRanges[s];
o.startLineNumber < c.startLineNumber ? (a = o, r++) : (a = c, s++);
} else
r < this._normalizedRanges.length ? (a = this._normalizedRanges[r], r++) : (a = t._normalizedRanges[s], s++);
i === null ? i = a : i.endLineNumberExclusive >= a.startLineNumber ? i = new V(i.startLineNumber, Math.max(i.endLineNumberExclusive, a.endLineNumberExclusive)) : (n.push(i), i = a);
}
return i !== null && n.push(i), new oe(n);
}
/**
* Subtracts all ranges in this set from `range` and returns the result.
*/
subtractFrom(t) {
const n = Wt(this._normalizedRanges, (a) => a.endLineNumberExclusive >= t.startLineNumber), r = Je(this._normalizedRanges, (a) => a.startLineNumber <= t.endLineNumberExclusive) + 1;
if (n === r)
return new oe([t]);
const s = [];
let i = t.startLineNumber;
for (let a = n; a < r; a++) {
const o = this._normalizedRanges[a];
o.startLineNumber > i && s.push(new V(i, o.startLineNumber)), i = o.endLineNumberExclusive;
}
return i < t.endLineNumberExclusive && s.push(new V(i, t.endLineNumberExclusive)), new oe(s);
}
toString() {
return this._normalizedRanges.map((t) => t.toString()).join(", ");
}
getIntersection(t) {
const n = [];
let r = 0, s = 0;
for (; r < this._normalizedRanges.length && s < t._normalizedRanges.length; ) {
const i = this._normalizedRanges[r], a = t._normalizedRanges[s], o = i.intersect(a);
o && !o.isEmpty && n.push(o), i.endLineNumberExclusive < a.endLineNumberExclusive ? r++ : s++;
}
return new oe(n);
}
getWithDelta(t) {
return new oe(this._normalizedRanges.map((n) => n.delta(t)));
}
}
class Le {
static inverse(t, n, r) {
const s = [];
let i = 1, a = 1;
for (const c of t) {
const u = new fe(new V(i, c.original.startLineNumber), new V(a, c.modified.startLineNumber), void 0);
u.modified.isEmpty || s.push(u), i = c.original.endLineNumberExclusive, a = c.modified.endLineNumberExclusive;
}
const o = new fe(new V(i, n + 1), new V(a, r + 1), void 0);
return o.modified.isEmpty || s.push(o), s;
}
constructor(t, n) {
this.original = t, this.modified = n;
}
toString() {
return `{${this.original.toString()}->${this.modified.toString()}}`;
}
flip() {
return new Le(this.modified, this.original);
}
join(t) {
return new Le(this.original.join(t.original), this.modified.join(t.modified));
}
}
class fe extends Le {
constructor(t, n, r) {
super(t, n), this.innerChanges = r;
}
flip() {
var t;
return new fe(this.modified, this.original, (t = this.innerChanges) === null || t === void 0 ? void 0 : t.map((n) => n.flip()));
}
}
class Ye {
constructor(t, n) {
this.originalRange = t, this.modifiedRange = n;
}
toString() {
return `{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`;
}
flip() {
return new Ye(this.modifiedRange, this.originalRange);
}
}
const Mi = 3;
class Ei {
computeDiff(t, n, r) {
var s;
const a = new Fi(t, n, {
maxComputationTime: r.maxComputationTimeMs,
shouldIgnoreTrimWhitespace: r.ignoreTrimWhitespace,
shouldComputeCharChanges: !0,
shouldMakePrettyDiff: !0,
shouldPostProcessCharChanges: !0
}).computeDiff(), o = [];
let c = null;
for (const u of a.changes) {
let h;
u.originalEndLineNumber === 0 ? h = new V(u.originalStartLineNumber + 1, u.originalStartLineNumber + 1) : h = new V(u.originalStartLineNumber, u.originalEndLineNumber + 1);
let f;
u.modifiedEndLineNumber === 0 ? f = new V(u.modifiedStartLineNumber + 1, u.modifiedStartLineNumber + 1) : f = new V(u.modifiedStartLineNumber, u.modifiedEndLineNumber + 1);
let m = new fe(h, f, (s = u.charChanges) === null || s === void 0 ? void 0 : s.map((d) => new Ye(new D(d.originalStartLineNumber, d.originalStartColumn, d.originalEndLineNumber, d.originalEndColumn), new D(d.modifiedStartLineNumber, d.modifiedStartColumn, d.modifiedEndLineNumber, d.modifiedEndColumn))));
c && (c.modified.endLineNumberExclusive === m.modified.startLineNumber || c.original.endLineNumberExclusive === m.original.startLineNumber) && (m = new fe(c.original.join(m.original), c.modified.join(m.modified), c.innerChanges && m.innerChanges ? c.innerChanges.concat(m.innerChanges) : void 0), o.pop()), o.push(m), c = m;
}
return gt(() => Dr(o, (u, h) => h.original.startLineNumber - u.original.endLineNumberExclusive === h.modified.startLineNumber - u.modified.endLineNumberExclusive && // There has to be an unchanged line in between (otherwise both diffs should have been joined)
u.original.endLineNumberExclusive < h.original.startLineNumber && u.modified.endLineNumberExclusive < h.modified.startLineNumber)), new ut(o, [], a.quitEarly);
}
}
function Tr(e, t, n, r) {
return new _e(e, t, n).ComputeDiff(r);
}
let ir = class {
constructor(t) {
const n = [], r = [];
for (let s = 0, i = t.length; s < i; s++)
n[s] = zt(t[s], 1), r[s] = $t(t[s], 1);
this.lines = t, this._startColumns = n, this._endColumns = r;
}
getElements() {
const t = [];
for (let n = 0, r = this.lines.length; n < r; n++)
t[n] = this.lines[n].substring(this._startColumns[n] - 1, this._endColumns[n] - 1);
return t;
}
getStrictElement(t) {
return this.lines[t];
}
getStartLineNumber(t) {
return t + 1;
}
getEndLineNumber(t) {
return t + 1;
}
createCharSequence(t, n, r) {
const s = [], i = [], a = [];
let o = 0;
for (let c = n; c <= r; c++) {
const u = this.lines[c], h = t ? this._startColumns[c] : 1, f = t ? this._endColumns[c] : u.length + 1;
for (let m = h; m < f; m++)
s[o] = u.charCodeAt(m - 1), i[o] = c + 1, a[o] = m, o++;
!t && c < r && (s[o] = 10, i[o] = c + 1, a[o] = u.length + 1, o++);
}
return new ki(s, i, a);
}
};
class ki {
constructor(t, n, r) {
this._charCodes = t, this._lineNumbers = n, this._columns = r;
}
toString() {
return "[" + this._charCodes.map((t, n) => (t === 10 ? "\\n" : String.fromCharCode(t)) + `-(${this._lineNumbers[n]},${this._columns[n]})`).join(", ") + "]";
}
_assertIndex(t, n) {
if (t < 0 || t >= n.length)
throw new Error("Illegal index");
}
getElements() {
return this._charCodes;
}
getStartLineNumber(t) {
return t > 0 && t === this._lineNumbers.length ? this.getEndLineNumber(t - 1) : (this._assertIndex(t, this._lineNumbers), this._lineNumbers[t]);
}
getEndLineNumber(t) {
return t === -1 ? this.getStartLineNumber(t + 1) : (this._assertIndex(t, this._lineNumbers), this._charCodes[t] === 10 ? this._lineNumbers[t] + 1 : this._lineNumbers[t]);
}
getStartColumn(t) {
return t > 0 && t === this._columns.length ? this.getEndColumn(t - 1) : (this._assertIndex(t, this._columns), this._columns[t]);
}
getEndColumn(t) {
return t === -1 ? this.getStartColumn(t + 1) : (this._assertIndex(t, this._columns), this._charCodes[t] === 10 ? 1 : this._columns[t] + 1);
}
}
class Ve {
constructor(t, n, r, s, i, a, o, c) {
this.originalStartLineNumber = t, this.originalStartColumn = n, this.originalEndLineNumber = r, this.originalEndColumn = s, this.modifiedStartLineNumber = i, this.modifiedStartColumn = a, this.modifiedEndLineNumber = o, this.modifiedEndColumn = c;
}
static createFromDiffChange(t, n, r) {
const s = n.getStartLineNumber(t.originalStart), i = n.getStartColumn(t.originalStart), a = n.getEndLineNumber(t.originalStart + t.originalLength - 1), o = n.getEndColumn(t.originalStart + t.originalLength - 1), c = r.getStartLineNumber(t.modifiedStart), u = r.getStartColumn(t.modifiedStart), h = r.getEndLineNumber(t.modifiedStart + t.modifiedLength - 1), f = r.getEndColumn(t.modifiedStart + t.modifiedLength - 1);
return new Ve(s, i, a, o, c, u, h, f);
}
}
function Pi(e) {
if (e.length <= 1)
return e;
const t = [e[0]];
let n = t[0];
for (let r = 1, s = e.length; r < s; r++) {
const i = e[r], a = i.originalStart - (n.originalStart + n.originalLength), o = i.modifiedStart - (n.modifiedStart + n.modifiedLength);
Math.min(a, o) < Mi ? (n.originalLength = i.originalStart + i.originalLength - n.originalStart, n.modifiedLength = i.modifiedStart + i.modifiedLength - n.modifiedStart) : (t.push(i), n = i);
}
return t;
}
class Oe {
constructor(t, n, r, s, i) {
this.originalStartLineNumber = t, this.originalEndLineNumber = n, this.modifiedStartLineNumber = r, this.modifiedEndLineNumber = s, this.charChanges = i;
}
static createFromDiffResult(t, n, r, s, i, a, o) {
let c, u, h, f, m;
if (n.originalLength === 0 ? (c = r.getStartLineNumber(n.originalStart) - 1, u = 0) : (c = r.getStartLineNumber(n.originalStart), u = r.getEndLineNumber(n.originalStart + n.originalLength - 1)), n.modifiedLength === 0 ? (h = s.getStartLineNumber(n.modifiedStart) - 1, f = 0) : (h = s.getStartLineNumber(n.modifiedStart), f = s.getEndLineNumber(n.modifiedStart + n.modifiedLength - 1)), a && n.originalLength > 0 && n.originalLength < 20 && n.modifiedLength > 0 && n.modifiedLength < 20 && i()) {
const d = r.createCharSequence(t, n.originalStart, n.originalStart + n.originalLength - 1), g = s.createCharSequence(t, n.modifiedStart, n.modifiedStart + n.modifiedLength - 1);
if (d.getElements().length > 0 && g.getElements().length > 0) {
let b = Tr(d, g, i, !0).changes;
o && (b = Pi(b)), m = [];
for (let w = 0, L = b.length; w < L; w++)
m.push(Ve.createFromDiffChange(b[w], d, g));
}
}
return new Oe(c, u, h, f, m);
}
}
class Fi {
constructor(t, n, r) {
this.shouldComputeCharChanges = r.shouldComputeCharChanges, this.shouldPostProcessCharChanges = r.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = r.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = r.shouldMakePrettyDiff, this.originalLines = t, this.modifiedLines = n, this.original = new ir(t), this.modified = new ir(n), this.continueLineDiff = ar(r.maxComputationTime), this.continueCharDiff = ar(r.maxComputationTime === 0 ? 0 : Math.min(r.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 t = Tr(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff), n = t.changes, r = t.quitEarly;
if (this.shouldIgnoreTrimWhitespace) {
const o = [];
for (let c = 0, u = n.length; c < u; c++)
o.push(Oe.createFromDiffResult(this.shouldIgnoreTrimWhitespace, n[c], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));
return {
quitEarly: r,
changes: o
};
}
const s = [];
let i = 0, a = 0;
for (let o = -1, c = n.length; o < c; o++) {
const u = o + 1 < c ? n[o + 1] : null, h = u ? u.originalStart : this.originalLines.length, f = u ? u.modifiedStart : this.modifiedLines.length;
for (; i < h && a < f; ) {
const m = this.originalLines[i], d = this.modifiedLines[a];
if (m !== d) {
{
let g = zt(m, 1), b = zt(d, 1);
for (; g > 1 && b > 1; ) {
const w = m.charCodeAt(g - 2), L = d.charCodeAt(b - 2);
if (w !== L)
break;
g--, b--;
}
(g > 1 || b > 1) && this._pushTrimWhitespaceCharChange(s, i + 1, 1, g, a + 1, 1, b);
}
{
let g = $t(m, 1), b = $t(d, 1);
const w = m.length + 1, L = d.length + 1;
for (; g < w && b < L; ) {
const _ = m.charCodeAt(g - 1), x = m.charCodeAt(b - 1);
if (_ !== x)
break;
g++, b++;
}
(g < w || b < L) && this._pushTrimWhitespaceCharChange(s, i + 1, g, w, a + 1, b, L);
}
}
i++, a++;
}
u && (s.push(Oe.createFromDiffResult(this.shouldIgnoreTrimWhitespace, u, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges)), i += u.originalLength, a += u.modifiedLength);
}
return {
quitEarly: r,
changes: s
};
}
_pushTrimWhitespaceCharChange(t, n, r, s, i, a, o) {
if (this._mergeTrimWhitespaceCharChange(t, n, r, s, i, a, o))
return;
let c;
this.shouldComputeCharChanges && (c = [new Ve(n, r, n, s, i, a, i, o)]), t.push(new Oe(n, n, i, i, c));
}
_mergeTrimWhitespaceCharChange(t, n, r, s, i, a, o) {
const c = t.length;
if (c === 0)
return !1;
const u = t[c - 1];
return u.originalEndLineNumber === 0 || u.modifiedEndLineNumber === 0 ? !1 : u.originalEndLineNumber === n && u.modifiedEndLineNumber === i ? (this.shouldComputeCharChanges && u.charChanges && u.charChanges.push(new Ve(n, r, n, s, i, a, i, o)), !0) : u.originalEndLineNumber + 1 === n && u.modifiedEndLineNumber + 1 === i ? (u.originalEndLineNumber = n, u.modifiedEndLineNumber = i, this.shouldComputeCharChanges && u.charChanges && u.charChanges.push(new Ve(n, r, n, s, i, a, i, o)), !0) : !1;
}
}
function zt(e, t) {
const n = ds(e);
return n === -1 ? t : n + 1;
}
function $t(e, t) {
const n = ms(e);
return n === -1 ? t : n + 2;
}
function ar(e) {
if (e === 0)
return () => !0;
const t = Date.now();
return () => Date.now() - t < e;
}
class he {
static trivial(t, n) {
return new he([new O(T.ofLength(t.length), T.ofLength(n.length))], !1);
}
static trivialTimedOut(t, n) {
return new he([new O(T.ofLength(t.length), T.ofLength(n.length))], !0);
}
constructor(t, n) {
this.diffs = t, this.hitTimeout = n;
}
}
class O {
static invert(t, n) {
const r = [];
return Xs(t, (s, i) => {
r.push(O.fromOffsetPairs(s ? s.getEndExclusives() : ue.zero, i ? i.getStarts() : new ue(n, (s ? s.seq2Range.endExclusive - s.seq1Range.endExclusive : 0) + n)));
}), r;
}
static fromOffsetPairs(t, n) {
return new O(new T(t.offset1, n.offset1), new T(t.offset2, n.offset2));
}
constructor(t, n) {
this.seq1Range = t, this.seq2Range = n;
}
swap() {
return new O(this.seq2Range, this.seq1Range);
}
toString() {
return `${this.seq1Range} <-> ${this.seq2Range}`;
}
join(t) {
return new O(this.seq1Range.join(t.seq1Range), this.seq2Range.join(t.seq2Range));
}
delta(t) {
return t === 0 ? this : new O(this.seq1Range.delta(t), this.seq2Range.delta(t));
}
deltaStart(t) {
return t === 0 ? this : new O(this.seq1Range.deltaStart(t), this.seq2Range.deltaStart(t));
}
deltaEnd(t) {
return t === 0 ? this : new O(this.seq1Range.deltaEnd(t), this.seq2Range.deltaEnd(t));
}
intersect(t) {
const n = this.seq1Range.intersect(t.seq1Range), r = this.seq2Range.intersect(t.seq2Range);
if (!(!n || !r))
return new O(n, r);
}
getStarts() {
return new ue(this.seq1Range.start, this.seq2Range.start);
}
getEndExclusives() {
return new ue(this.seq1Range.endExclusive, this.seq2Range.endExclusive);
}
}
class ue {
constructor(t, n) {
this.offset1 = t, this.offset2 = n;
}
toString() {
return `${this.offset1} <-> ${this.offset2}`;
}
}
ue.zero = new ue(0, 0);
ue.max = new ue(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
class Ze {
isValid() {
return !0;
}
}
Ze.instance = new Ze();
class Di {
constructor(t) {
if (this.timeout = t, this.startTime = Date.now(), this.valid = !0, t <= 0)
throw new xe("timeout must be positive");
}
// Recommendation: Set a log-point `{this.disable()}` in the body
isValid() {
if (!(Date.now() - this.startTime < this.timeout) && this.valid) {
this.valid = !1;
debugger;
}
return this.valid;
}
}
class Nt {
constructor(t, n) {
this.width = t, this.height = n, this.array = [], this.array = new Array(t * n);
}
get(t, n) {
return this.array[t + n * this.width];
}
set(t, n, r) {
this.array[t + n * this.width] = r;
}
}
function Ot(e) {
return e === 32 || e === 9;
}
class Ue {
static getKey(t) {
let n = this.chrKeys.get(t);
return n === void 0 && (n = this.chrKeys.size, this.chrKeys.set(t, n)), n;
}
constructor(t, n, r) {
this.range = t, this.lines = n, this.source = r, this.histogram = [];
let s = 0;
for (let i = t.startLineNumber - 1; i < t.endLineNumberExclusive - 1; i++) {
const a = n[i];
for (let c = 0; c < a.length; c++) {
s++;
const u = a[c], h = Ue.getKey(u);
this.histogram[h] = (this.histogram[h] || 0) + 1;
}
s++;
const o = Ue.getKey(`
`);
this.histogram[o] = (this.histogram[o] || 0) + 1;
}
this.totalCount = s;
}
computeSimilarity(t) {
var n, r;
let s = 0;
const i = Math.max(this.histogram.length, t.histogram.length);
for (let a = 0; a < i; a++)
s += Math.abs(((n = this.histogram[a]) !== null && n !== void 0 ? n : 0) - ((r = t.histogram[a]) !== null && r !== void 0 ? r : 0));
return 1 - s / (this.totalCount + t.totalCount);
}
}
Ue.chrKeys = /* @__PURE__ */ new Map();
class Ti {
compute(t, n, r = Ze.instance, s) {
if (t.length === 0 || n.length === 0)
return he.trivial(t, n);
const i = new Nt(t.length, n.length), a = new Nt(t.length, n.length), o = new Nt(t.length, n.length);
for (let g = 0; g < t.length; g++)
for (let b = 0; b < n.length; b++) {
if (!r.isValid())
return he.trivialTimedOut(t, n);
const w = g === 0 ? 0 : i.get(g - 1, b), L = b === 0 ? 0 : i.get(g, b - 1);
let _;
t.getElement(g) === n.getElement(b) ? (g === 0 || b === 0 ? _ = 0 : _ = i.get(g - 1, b - 1), g > 0 && b > 0 && a.get(g - 1, b - 1) === 3 && (_ += o.get(g - 1, b - 1)), _ += s ? s(g, b) : 1) : _ = -1;
const x = Math.max(w, L, _);
if (x === _) {
const S = g > 0 && b > 0 ? o.get(g - 1, b - 1) : 0;
o.set(g, b, S + 1), a.set(g, b, 3);
} else
x === w ? (o.set(g, b, 0), a.set(g, b, 1)) : x === L && (o.set(g, b, 0), a.set(g, b, 2));
i.set(g, b, x);
}
const c = [];
let u = t.length, h = n.length;
function f(g, b) {
(g + 1 !== u || b + 1 !== h) && c.push(new O(new T(g + 1, u), new T(b + 1, h))), u = g, h = b;
}
let m = t.length - 1, d = n.length - 1;
for (; m >= 0 && d >= 0; )
a.get(m, d) === 3 ? (f(m, d), m--, d--) : a.get(m, d) === 1 ? m-- : d--;
return f(-1, -1), c.reverse(), new he(c, !1);
}
}
class Vr {
compute(t, n, r = Ze.instance) {
if (t.length === 0 || n.length === 0)
return he.trivial(t, n);
const s = t, i = n;
function a(b, w) {
for (; b < s.length && w < i.length && s.getElement(b) === i.getElement(w); )
b++, w++;
return b;
}
let o = 0;
const c = new Vi();
c.set(0, a(0, 0));
const u = new Bi();
u.set(0, c.get(0) === 0 ? null : new lr(null, 0, 0, c.get(0)));
let h = 0;
e:
for (; ; ) {
if (o++, !r.isValid())
return he.trivialTimedOut(s, i);
const b = -Math.min(o, i.length + o % 2), w = Math.min(o, s.length + o % 2);
for (h = b; h <= w; h += 2) {
const L = h === w ? -1 : c.get(h + 1), _ = h === b ? -1 : c.get(h - 1) + 1, x = Math.min(Math.max(L, _), s.length), S = x - h;
if (x > s.length || S > i.length)
continue;
const N = a(x, S);
c.set(h, N);
const R = x === L ? u.get(h + 1) : u.get(h - 1);
if (u.set(h, N !== x ? new lr(R, x, S, N - x) : R), c.get(h) === s.length && c.get(h) - h === i.length)
break e;
}
}
let f = u.get(h);
const m = [];
let d = s.length, g = i.length;
for (; ; ) {
const b = f ? f.x + f.length : 0, w = f ? f.y + f.length : 0;
if ((b !== d || w !== g) && m.push(new O(new T(b, d), new T(w, g))), !f)
break;
d = f.x, g = f.y, f = f.prev;
}
return m.reverse(), new he(m, !1);
}
}
class lr {
constructor(t, n, r, s) {
this.prev = t, this.x = n, this.y = r, this.length = s;
}
}
class Vi {
constructor() {
this.positiveArr = new Int32Array(10), this.negativeArr = new Int32Array(10);
}
get(t) {
return t < 0 ? (t = -t - 1, this.negativeArr[t]) : this.positiveArr[t];
}
set(t, n) {
if (t < 0) {
if (t = -t - 1, t >= this.negativeArr.length) {
const r = this.negativeArr;
this.negativeArr = new Int32Array(r.length * 2), this.negativeArr.set(r);
}
this.negativeArr[t] = n;
} else {
if (t >= this.positiveArr.length) {
const r = this.positiveArr;
this.positiveArr = new Int32Array(r.length * 2), this.positiveArr.set(r);
}
this.positiveArr[t] = n;
}
}
}
class Bi {
constructor() {
this.positiveArr = [], this.negativeArr = [];
}
get(t) {
return t < 0 ? (t = -t - 1, this.negativeArr[t]) : this.positiveArr[t];
}
set(t, n) {
t < 0 ? (t = -t - 1, this.negativeArr[t] = n) : this.positiveArr[t] = n;
}
}
class qi {
constructor() {
this.map = /* @__PURE__ */ new Map();
}
add(t, n) {
let r = this.map.get(t);
r || (r = /* @__PURE__ */ new Set(), this.map.set(t, r)), r.add(n);
}
delete(t, n) {
const r = this.map.get(t);
r && (r.delete(n), r.size === 0 && this.map.delete(t));
}
forEach(t, n) {
const r = this.map.get(t);
r && r.forEach(n);
}
get(t) {
const n = this.map.get(t);
return n || /* @__PURE__ */ new Set();
}
}
class bt {
constructor(t, n, r) {
this.lines = t, this.considerWhitespaceChanges = r, this.elements = [], this.firstCharOffsetByLine = [], this.additionalOffsetByLine = [];
let s = !1;
n.start > 0 && n.endExclusive >= t.length && (n = new T(n.start - 1, n.endExclusive), s = !0), this.lineRange = n, this.firstCharOffsetByLine[0] = 0;
for (let i = this.lineRange.start; i < this.lineRange.endExclusive; i++) {
let a = t[i], o = 0;
if (s)
o = a.length, a = "", s = !1;
else if (!r) {
const c = a.trimStart();
o = a.length - c.length, a = c.trimEnd();
}
this.additionalOffsetByLine.push(o);
for (let c = 0; c < a.length; c++)
this.elements.push(a.charCodeAt(c));
i < t.length - 1 && (this.elements.push(`
`.charCodeAt(0)), this.firstCharOffsetByLine[i - this.lineRange.start + 1] = this.elements.length);
}
this.additionalOffsetByLine.push(0);
}
toString() {
return `Slice: "${this.text}"`;
}
get text() {
return this.getText(new T(0, this.length));
}
getText(t) {
return this.elements.slice(t.start, t.endExclusive).map((n) => String.fromCharCode(n)).join("");
}
getElement(t) {
return this.elements[t];
}
get length() {
return this.elements.length;
}
getBoundaryScore(t) {
const n = ur(t > 0 ? this.elements[t - 1] : -1), r = ur(t < this.elements.length ? this.elements[t] : -1);
if (n === 6 && r === 7)
return 0;
let s = 0;
return n !== r && (s += 10, n === 0 && r === 1 && (s += 1)), s += or(n), s += or(r), s;
}
translateOffset(t) {
if (this.lineRange.isEmpty)
return new J(this.lineRange.start + 1, 1);
const n = Je(this.firstCharOffsetByLine, (r) => r <= t);
return new J(this.lineRange.start + n + 1, t - this.firstCharOffsetByLine[n] + this.additionalOffsetByLine[n] + 1);
}
translateRange(t) {
return D.fromPositions(this.translateOffset(t.start), this.translateOffset(t.endExclusive));
}
/**
* Finds the word that contains the character at the given offset
*/
findWordContaining(t) {
if (t < 0 || t >= this.elements.length || !St(this.elements[t]))
return;
let n = t;
for (; n > 0 && St(this.elements[n - 1]); )
n--;
let r = t;
for (; r < this.elements.length && St(this.elements[r]); )
r++;
return new T(n, r);
}
countLinesIn(t) {
return this.translateOffset(t.endExclusive).lineNumber - this.translateOffset(t.start).lineNumber;
}
isStronglyEqual(t, n) {
return this.elements[t] === this.elements[n];
}
extendToFullLines(t) {
var n, r;
const s = (n = Xe(this.firstCharOffsetByLine, (a) => a <= t.start)) !== null && n !== void 0 ? n : 0, i = (r = yi(this.firstCharOffsetByLine, (a) => t.endExclusive <= a)) !== null && r !== void 0 ? r : this.elements.length;
return new T(s, i);
}
}
function St(e) {
return e >= 97 && e <= 122 || e >= 65 && e <= 90 || e >= 48 && e <= 57;
}
const Ii = {
0: 0,
1: 0,
2: 0,
3: 10,
4: 2,
5: 3,
6: 10,
7: 10
};
function or(e) {
return Ii[e];
}
function ur(e) {
return e === 10 ? 7 : e === 13 ? 6 : Ot(e) ? 5 : e >= 97 && e <= 122 ? 0 : e >= 65 && e <= 90 ? 1 : e >= 48 && e <= 57 ? 2 : e === -1 ? 3 : 4;
}
function Ui(e, t, n, r, s, i) {
let { moves: a, excludedChanges: o } = Hi(e, t, n, i);
if (!i.isValid())
return [];
const c = e.filter((h) => !o.has(h)), u = Wi(c, r, s, t, n, i);
return Ys(a, u), a = zi(a), a = a.filter((h) => h.original.toOffsetRange().slice(t).map((m) => m.trim()).join(`
`).length >= 10), a = $i(e, a), a;
}
function Hi(e, t, n, r) {
const s = [], i = e.filter((c) => c.modified.isEmpty && c.original.length >= 3).map((c) => new Ue(c.original, t, c)), a = new Set(e.filter((c) => c.original.isEmpty && c.modified.length >= 3).map((c) => new Ue(c.modified, n, c))), o = /* @__PURE__ */ new Set();
for (const c of i) {
let u = -1, h;
for (const f of a) {
const m = c.computeSimilarity(f);
m > u && (u = m, h = f);
}
if (u > 0.9 && h && (a.delete(h), s.push(new Le(c.range, h.range)), o.add(c.source), o.add(h.source)), !r.isValid())
return { moves: s, excludedChanges: o };
}
return { moves: s, excludedChanges: o };
}
function Wi(e, t, n, r, s, i) {
const a = [], o = new qi();
for (const m of e)
for (let d = m.original.startLineNumber; d < m.original.endLineNumberExclusive - 2; d++) {
const g = `${t[d - 1]}:${t[d + 1 - 1]}:${t[d + 2 - 1]}`;
o.add(g, { range: new V(d, d + 3) });
}
const c = [];
e.sort(it((m) => m.modified.startLineNumber, at));
for (const m of e) {
let d = [];
for (let g = m.modified.startLineNumber; g < m.modified.endLineNumberExclusive - 2; g++) {
const b = `${n[g - 1]}:${n[g + 1 - 1]}:${n[g + 2 - 1]}`, w = new V(g, g + 3), L = [];
o.forEach(b, ({ range: _ }) => {
for (const S of d)
if (S.originalLineRange.endLineNumberExclusive + 1 === _.endLineNumberExclusive && S.modifiedLineRange.endLineNumberExclusive + 1 === w.endLineNumberExclusive) {
S.originalLineRange = new V(S.originalLineRange.startLineNumber, _.endLineNumberExclusive), S.modifiedLineRange = new V(S.modifiedLineRange.startLineNumber, w.endLineNumberExclusive), L.push(S);
return;
}
const x = {
modifiedLineRange: w,
originalLineRange: _
};
c.push(x), L.push(x);
}), d = L;
}
if (!i.isValid())
return [];
}
c.sort(Zs(it((m) => m.modifiedLineRange.length, at)));
const u = new oe(), h = new oe();
for (const m of c) {
const d = m.modifiedLineRange.startLineNumber - m.originalLineRange.startLineNumber, g = u.subtractFrom(m.modifiedLineRange), b = h.subtractFrom(m.originalLineRange).getWithDelta(d), w = g.getIntersection(b);
for (const L of w.ranges) {
if (L.length < 3)
continue;
const _ = L, x = L.delta(-d);
a.push(new Le(x, _)), u.addRange(_), h.addRange(x);
}
}
a.sort(it((m) => m.original.startLineNumber, at));
const f = new et(e);
for (let m = 0; m < a.length; m++) {
const d = a[m], g = f.findLastMonotonous((R) => R.original.startLineNumber <= d.original.startLineNumber), b = Xe(e, (R) => R.modified.startLineNumber <= d.modified.startLineNumber), w = Math.max(d.original.startLineNumber - g.original.startLineNumber, d.modified.startLineNumber - b.modified.startLineNumber), L = f.findLastMonotonous((R) => R.original.startLineNumber < d.original.endLineNumberExclusive), _ = Xe(e, (R) => R.modified.startLineNumber < d.modified.endLineNumberExclusive), x = Math.max(L.original.endLineNumberExclusive - d.original.endLineNumberExclusive, _.modified.endLineNumberExclusive - d.modified.endLineNumberExclusive);
let S;
for (S = 0; S < w; S++) {
const R = d.original.startLineNumber - S - 1, M = d.modified.startLineNumber - S - 1;
if (R > r.length || M > s.length || u.contains(M) || h.contains(R) || !cr(r[R - 1], s[M - 1], i))
break;
}
S > 0 && (h.addRange(new V(d.original.startLineNumber - S, d.original.startLineNumber)), u.addRange(new V(d.modified.startLineNumber - S, d.modified.startLineNumber)));
let N;
for (N = 0; N < x; N++) {
const R = d.original.endLineNumberExclusive + N, M = d.modified.endLineNumberExclusive + N;
if (R > r.length || M > s.length || u.contains(M) || h.contains(R) || !cr(r[R - 1], s[M - 1], i))
break;
}
N > 0 && (h.addRange(new V(d.original.endLineNumberExclusive, d.original.endLineNumberExclusive + N)), u.addRange(new V(d.modified.endLineNumberExclusive, d.modified.endLineNumberExclusive + N))), (S > 0 || N > 0) && (a[m] = new Le(new V(d.original.startLineNumber - S, d.original.endLineNumberExclusive + N), new V(d.modified.startLineNumber - S, d.modified.endLineNumberExclusive + N)));
}
return a;
}
function cr(e, t, n) {
if (e.trim() === t.trim())
return !0;
if (e.length > 300 && t.length > 300)
return !1;
const s = new Vr().compute(new bt([e], new T(0, 1), !1), new bt([t], new T(0, 1), !1), n);
let i = 0;
const a = O.invert(s.diffs, e.length);
for (const h of a)
h.seq1Range.forEach((f) => {
Ot(e.charCodeAt(f)) || i++;
});
function o(h) {
let f = 0;
for (let m = 0; m < e.length; m++)
Ot(h.charCodeAt(m)) || f++;
return f;
}
const c = o(e.length > t.length ? e : t);
return i / c > 0.6 && c > 10;
}
function zi(e) {
if (e.length === 0)
return e;
e.sort(it((n) => n.original.startLineNumber, at));
const t = [e[0]];
for (let n = 1; n < e.length; n++) {
const r = t[t.length - 1], s = e[n], i = s.original.startLineNumber - r.original.endLineNumberExclusive, a = s.modified.startLineNumber - r.modified.endLineNumberExclusive;
if (i >= 0 && a >= 0 && i + a <= 2) {
t[t.length - 1] = r.join(s);
continue;
}
t.push(s);
}
return t;
}
function $i(e, t) {
const n = new et(e);
return t = t.filter((r) => {
const s = n.findLastMonotonous((o) => o.original.endLineNumberExclusive < r.original.endLineNumberExclusive) || new Le(new V(1, 1), new V(1, 1)), i = Xe(e, (o) => o.modified.endLineNumberExclusive < r.modified.endLineNumberExclusive);
return s !== i;
}), t;
}
function hr(e, t, n) {
let r = n;
return r = Oi(e, t, r), r = Gi(e, t, r), r;
}
function Oi(e, t, n) {
if (n.length === 0)
return n;
const r = [];
r.push(n[0]);
for (let i = 1; i < n.length; i++) {
const a = r[r.length - 1];
let o = n[i];
if (o.seq1Range.isEmpty || o.seq2Range.isEmpty) {
const c = o.seq1Range.start - a.seq1Range.endExclusive;
let u;
for (u = 1; u <= c && !(e.getElement(o.seq1Range.start - u) !== e.getElement(o.seq1Range.endExclusive - u) || t.getElement(o.seq2Range.start - u) !== t.getElement(o.seq2Range.endExclusive - u)); u++)
;
if (u--, u === c) {
r[r.length - 1] = new O(new T(a.seq1Range.start, o.seq1Range.endExclusive - c), new T(a.seq2Range.start, o.seq2Range.endExclusive - c));
continue;
}
o = o.delta(-u);
}
r.push(o);
}
const s = [];
for (let i = 0; i < r.length - 1; i++) {
const a = r[i + 1];
let o = r[i];
if (o.seq1Range.isEmpty || o.seq2Range.isEmpty) {
const c = a.seq1Range.start - o.seq1Range.endExclusive;
let u;
for (u = 0; u < c && !(!e.isStronglyEqual(o.seq1Range.start + u, o.seq1Range.endExclusive + u) || !t.isStronglyEqual(o.seq2Range.start + u, o.seq2Range.endExclusive + u)); u++)
;
if (u === c) {
r[i + 1] = new O(new T(o.seq1Range.start + c, a.seq1Range.endExclusive), new T(o.seq2Range.start + c, a.seq2Range.endExclusive));
continue;
}
u > 0 && (o = o.delta(u));
}
s.push(o);
}
return r.length > 0 && s.push(r[r.length - 1]), s;
}
function Gi(e, t, n) {
if (!e.getBoundaryScore || !t.getBoundaryScore)
return n;
for (let r = 0; r < n.length; r++) {
const s = r > 0 ? n[r - 1] : void 0, i = n[r], a = r + 1 < n.length ? n[r + 1] : void 0, o = new T(s ? s.seq1Range.start + 1 : 0, a ? a.seq1Range.endExclusive - 1 : e.length), c = new T(s ? s.seq2Range.start + 1 : 0, a ? a.seq2Range.endExclusive - 1 : t.length);
i.seq1Range.isEmpty ? n[r] = fr(i, e, t, o, c) : i.seq2Range.isEmpty && (n[r] = fr(i.swap(), t, e, c, o).swap());
}
return n;
}
function fr(e, t, n, r, s) {
let a = 1;
for (; e.seq1Range.start - a >= r.start && e.seq2Range.start - a >= s.start && n.isStronglyEqual(e.seq2Range.start - a, e.seq2Range.endExclusive - a) && a < 100; )
a++;
a--;
let o = 0;
for (; e.seq1Range.start + o < r.endExclusive && e.seq2Range.endExclusive + o < s.endExclusive && n.isStronglyEqual(e.seq2Range.start + o, e.seq2Range.endExclusive + o) && o < 100; )
o++;
if (a === 0 && o === 0)
return e;
let c = 0, u = -1;
for (let h = -a; h <= o; h++) {
const f = e.seq2Range.start + h, m = e.seq2Range.endExclusive + h, d = e.seq1Range.start + h, g = t.getBoundaryScore(d) + n.getBoundaryScore(f) + n.getBoundaryScore(m);
g > u && (u = g, c = h);
}
return e.delta(c);
}
function ji(e, t, n) {
const r = [];
for (const s of n) {
const i = r[r.length - 1];
if (!i) {
r.push(s);
continue;
}
s.seq1Range.start - i.seq1Range.endExclusive <= 2 || s.seq2Range.start - i.seq2Range.endExclusive <= 2 ? r[r.length - 1] = new O(i.seq1Range.join(s.seq1Range), i.seq2Range.join(s.seq2Range)) : r.push(s);
}
return r;
}
function Qi(e, t, n) {
const r = [];
let s;
function i() {
if (!s)
return;
const o = s.s1Range.length - s.deleted;
s.s2Range.length - s.added, Math.max(s.deleted, s.added) + (s.count - 1) > o && r.push(new O(s.s1Range, s.s2Range)), s = void 0;
}
for (const o of n) {
let c = function(d, g) {
var b, w, L, _;
if (!s || !s.s1Range.containsRange(d) || !s.s2Range.containsRange(g))
if (s && !(s.s1Range.endExclusive < d.start && s.s2Range.endExclusive < g.start)) {
const N = T.tryCreate(s.s1Range.endExclusive, d.start), R = T.tryCreate(s.s2Range.endExclusive, g.start);
s.deleted += (b = N == null ? void 0 : N.length) !== null && b !== void 0 ? b : 0, s.added += (w = R == null ? void 0 : R.length) !== null && w !== void 0 ? w : 0, s.s1Range = s.s1Range.join(d), s.s2Range = s.s2Range.join(g);
} else
i(), s = { added: 0, deleted: 0, count: 0, s1Range: d, s2Range: g };
const x = d.intersect(o.seq1Range), S = g.intersect(o.seq2Range);
s.count++, s.deleted += (L = x == null ? void 0 : x.length) !== null && L !== void 0 ? L : 0, s.added += (_ = S == null ? void 0 : S.length) !== null && _ !== void 0 ? _ : 0;
};
const u = e.findWordContaining(o.seq1Range.start - 1), h = t.findWordContaining(o.seq2Range.start - 1), f = e.findWordContaining(o.seq1Range.endExclusive), m = t.findWordContaining(o.seq2Range.endExclusive);
u && f && h && m && u.equals(f) && h.equals(m) ? c(u, h) : (u && h && c(u, h), f && m && c(f, m));
}
return i(), Xi(n, r);
}
function Xi(e, t) {
const n = [];
for (; e.length > 0 || t.length > 0; ) {
const r = e[0], s = t[0];
let i;
r && (!s || r.seq1Range.start < s.seq1Range.start) ? i = e.shift() : i = t.shift(), n.length > 0 && n[n.length - 1].seq1Range.endExclusive >= i.seq1Range.start ? n[n.length - 1] = n[n.length - 1].join(i) : n.push(i);
}
return n;
}
function Ji(e, t, n) {
let r = n;
if (r.length === 0)
return r;
let s = 0, i;
do {
i = !1;
const a = [
r[0]
];
for (let o = 1; o < r.length; o++) {
let h = function(m, d) {
const g = new T(u.seq1Range.endExclusive, c.seq1Range.start);
return e.getText(g).replace(/\s/g, "").length <= 4 && (m.seq1Range.length + m.seq2Range.length > 5 || d.seq1Range.length + d.seq2Range.length > 5);
};
const c = r[o], u = a[a.length - 1];
h(u, c) ? (i = !0, a[a.length - 1] = a[a.length - 1].join(c)) : a.push(c);
}
r = a;
} while (s++ < 10 && i);
return r;
}
function Yi(e, t, n) {
let r = n;
if (r.length === 0)
return r;
let s = 0, i;
do {
i = !1;
const o = [
r[0]
];
for (let c = 1; c < r.length; c++) {
let f = function(d, g) {
const b = new T(h.seq1Range.endExclusive, u.seq1Range.start);
if (e.countLinesIn(b) > 5 || b.length > 500)
return !1;
const L = e.getText(b).trim();
if (L.length > 20 || L.split(/\r\n|\r|\n/).length > 1)
return !1;
const _ = e.countLinesIn(d.seq1Range), x = d.seq1Range.length, S = t.countLinesIn(d.seq2Range), N = d.seq2Range.length, R = e.countLinesIn(g.seq1Range), M = g.seq1Range.length, E = t.countLinesIn(g.seq2Range), I = g.seq2Range.length, G = 2 * 40 + 50;
function B(p) {
return Math.min(p, G);
}
return Math.pow(Math.pow(B(_ * 40 + x), 1.5) + Math.pow(B(S * 40 + N), 1.5), 1.5) + Math.pow(Math.pow(B(R * 40 + M), 1.5) + Math.pow(B(E * 40 + I), 1.5), 1.5) > Math.pow(Math.pow(G, 1.5), 1.5) * 1.3;
};
const u = r[c], h = o[o.length - 1];
f(h, u) ? (i = !0, o[o.length - 1] = o[o.length - 1].join(u)) : o.push(u);
}
r = o;
} while (s++ < 10 && i);
const a = [];
return Js(r, (o, c, u) => {
let h = c;
function f(L) {
return L.length > 0 && L.trim().length <= 3 && c.seq1Range.length + c.seq2Range.length > 100;
}
const m = e.extendToFullLines(c.seq1Range), d = e.getText(new T(m.start, c.seq1Range.start));
f(d) && (h = h.deltaStart(-d.length));
const g = e.getText(new T(c.seq1Range.endExclusive, m.endExclusive));
f(g) && (h = h.deltaEnd(g.length));
const b = O.fromOffsetPairs(o ? o.getEndExclusives() : ue.zero, u ? u.getStarts() : ue.max), w = h.intersect(b);
a.push(w);
}), a;
}
class dr {
constructor(t, n) {
this.trimmedHash = t, this.lines = n;
}
getElement(t) {
return this.trimmedHash[t];
}
get length() {
return this.trimmedHash.length;
}
getBoundaryScore(t) {
const n = t === 0 ? 0 : mr(this.lines[t - 1]), r = t === this.lines.length ? 0 : mr(this.lines[t]);
return 1e3 - (n + r);
}
getText(t) {
return this.lines.slice(t.start, t.endExclusive).join(`
`);
}
isStronglyEqual(t, n) {
return this.lines[t] === this.lines[n];
}
}
function mr(e) {
let t = 0;
for (; t < e.length && (e.charCodeAt(t) === 32 || e.charCodeAt(t) === 9); )
t++;
return t;
}
class Zi {
constructor() {
this.dynamicProgrammingDiffing = new Ti(), this.myersDiffingAlgorithm = new Vr();
}
computeDiff(t, n, r) {
if (t.length <= 1 && js(t, n, (N, R) => N === R))
return new ut([], [], !1);
if (t.length === 1 && t[0].length === 0 || n.length === 1 && n[0].length === 0)
return new ut([
new fe(new V(1, t.length + 1), new V(1, n.length + 1), [
new Ye(new D(1, 1, t.length, t[0].length + 1), new D(1, 1, n.length, n[0].length + 1))
])
], [], !1);
const s = r.maxComputationTimeMs === 0 ? Ze.instance : new Di(r.maxComputationTimeMs), i = !r.ignoreTrimWhitespace, a = /* @__PURE__ */ new Map();
function o(N) {
let R = a.get(N);
return R === void 0 && (R = a.size, a.set(N, R)), R;
}
const c = t.map((N) => o(N.trim())), u = n.map((N) => o(N.trim())), h = new dr(c, t), f = new dr(u, n), m = (() => h.length + f.length < 1700 ? this.dynamicProgrammingDiffing.compute(h, f, s, (N, R) => t[N] === n[R] ? n[R].length === 0 ? 0.1 : 1 + Math.log(1 + n[R].length) : 0.99) : this.myersDiffingAlgorithm.compute(h, f))();
let d = m.diffs, g = m.hitTimeout;
d = hr(h, f, d), d = Ji(h, f, d);
const b = [], w = (N) => {
if (i)
for (let R = 0; R < N; R++) {
const M = L + R, E = _ + R;
if (t[M] !== n[E]) {
const I = this.refineDiff(t, n, new O(new T(M, M + 1), new T(E, E + 1)), s, i);
for (const G of I.mappings)
b.push(G);
I.hitTimeout && (g = !0);
}
}
};
let L = 0, _ = 0;
for (const N of d) {
gt(() => N.seq1Range.start - L === N.seq2Range.start - _);
const R = N.seq1Range.start - L;
w(R), L = N.seq1Range.endExclusive, _ = N.seq2Range.endExclusive;
const M = this.refineDiff(t, n, N, s, i);
M.hitTimeout && (g = !0);
for (const E of M.mappings)
b.push(E);
}
w(t.length - L);
const x = gr(b, t, n);
let S = [];
return r.computeMoves && (S = this.computeMoves(x, t, n, c, u, s, i)), gt(() => {
function N(M, E) {
if (M.lineNumber < 1 || M.lineNumber > E.length)
return !1;
const I = E[M.lineNumber - 1];
return !(M.column < 1 || M.column > I.length + 1);
}
function R(M, E) {
return !(M.startLineNumber < 1 || M.startLineNumber > E.length + 1 || M.endLineNumberExclusive < 1 || M.endLineNumberExclusive > E.length + 1);
}
for (const M of x) {
if (!M.innerChanges)
return !1;
for (const E of M.innerChanges)
if (!(N(E.modifiedRange.getStartPosition(), n) && N(E.modifiedRange.getEndPosition(), n) && N(E.originalRange.getStartPosition(), t) && N(E.originalRange.getEndPosition(), t)))
return !1;
if (!R(M.modified, n) || !R(M.original, t))
return !1;
}
return !0;
}), new ut(x, S, g);
}
computeMoves(t, n, r, s, i, a, o) {
return Ui(t, n, r, s, i, a).map((h) => {
const f = this.refineDiff(n, r, new O(h.original.toOffsetRange(), h.modified.toOffsetRange()), a, o), m = gr(f.mappings, n, r, !0);
return new Ri(h, m);
});
}
refineDiff(t, n, r, s, i) {
const a = new bt(t, r.seq1Range, i), o = new bt(n, r.seq2Range, i), c = a.length + o.length < 500 ? this.dynamicProgrammingDiffing.compute(a, o, s) : this.myersDiffingAlgorithm.compute(a, o, s);
let u = c.diffs;
return u = hr(a, o, u), u = Qi(a, o, u), u = ji(a, o, u), u = Yi(a, o, u), {
mappings: u.map((f) => new Ye(a.translateRange(f.seq1Range), o.translateRange(f.seq2Range))),
hitTimeout: c.hitTimeout
};
}
}
function gr(e, t, n, r = !1) {
const s = [];
for (const i of Qs(e.map((a) => Ki(a, t, n)), (a, o) => a.original.overlapOrTouch(o.original) || a.modified.overlapOrTouch(o.modified))) {
const a = i[0], o = i[i.length - 1];
s.push(new fe(a.original.join(o.original), a.modified.join(o.modified), i.map((c) => c.innerChanges[0])));
}
return gt(() => !r && s.length > 0 && s[0].original.startLineNumber !== s[0].modified.startLineNumber ? !1 : Dr(s, (i, a) => a.original.startLineNumber - i.original.endLineNumberExclusive === a.modified.startLineNumber - i.modified.endLineNumberExclusive && // There has to be an unchanged line in between (otherwise both diffs should have been joined)
i.original.endLineNumberExclusive < a.original.startLineNumber && i.modified.endLineNumberExclusive < a.modified.startLineNumber)), s;
}
function Ki(e, t, n) {
let r = 0, s = 0;
e.modifiedRange.endColumn === 1 && e.originalRange.endColumn === 1 && e.originalRange.startLineNumber + r <= e.originalRange.endLineNumber && e.modifiedRange.startLineNumber + r <= e.modifiedRange.endLineNumber && (s = -1), e.modifiedRange.startColumn - 1 >= n[e.modifiedRange.startLineNumber - 1].length && e.originalRange.startColumn - 1 >= t[e.originalRange.startLineNumber - 1].length && e.originalRange.startLineNumber <= e.originalRange.endLineNumber + s && e.modifiedRange.startLineNumber <= e.modifiedRange.endLineNumber + s && (r = 1);
const i = new V(e.originalRange.startLineNumber + r, e.originalRange.endLineNumber + 1 + s), a = new V(e.modifiedRange.startLineNumber + r, e.modifiedRange.endLineNumber + 1 + s);
return new fe(i, a, [e]);
}
const br = {
getLegacy: () => new Ei(),
getDefault: () => new Zi()
};
function we(e, t) {
const n = Math.pow(10, t);
return Math.round(e * n) / n;
}
class j {
constructor(t, n, r, s = 1) {
this._rgbaBrand = void 0, this.r = Math.min(255, Math.max(0, t)) | 0, this.g = Math.min(255, Math.max(0, n)) | 0, this.b = Math.min(255, Math.max(0, r)) | 0, this.a = we(Math.max(Math.min(1, s), 0), 3);
}
static equals(t, n) {
return t.r === n.r && t.g === n.g && t.b === n.b && t.a === n.a;
}
}
class re {
constructor(t, n, r, s) {
this._hslaBrand = void 0, this.h = Math.max(Math.min(360, t), 0) | 0, this.s = we(Math.max(Math.min(1, n), 0), 3), this.l = we(Math.max(Math.min(1, r), 0), 3), this.a = we(Math.max(Math.min(1, s), 0), 3);
}
static equals(t, n) {
return t.h === n.h && t.s === n.s && t.l === n.l && t.a === n.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(t) {
const n = t.r / 255, r = t.g / 255, s = t.b / 255, i = t.a, a = Math.max(n, r, s), o = Math.min(n, r, s);
let c = 0, u = 0;
const h = (o + a) / 2, f = a - o;
if (f > 0) {
switch (u = Math.min(h <= 0.5 ? f / (2 * h) : f / (2 - 2 * h), 1), a) {
case n:
c = (r - s) / f + (r < s ? 6 : 0);
break;
case r:
c = (s - n) / f + 2;
break;
case s:
c = (n - r) / f + 4;
break;
}
c *= 60, c = Math.round(c);
}
return new re(c, u, h, i);
}
static _hue2rgb(t, n, r) {
return r < 0 && (r += 1), r > 1 && (r -= 1), r < 1 / 6 ? t + (n - t) * 6 * r : r < 1 / 2 ? n : r < 2 / 3 ? t + (n - t) * (2 / 3 - r) * 6 : t;
}
/**
* 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(t) {
const n = t.h / 360, { s: r, l: s, a: i } = t;
let a, o, c;
if (r === 0)
a = o = c = s;
else {
const u = s < 0.5 ? s * (1 + r) : s + r - s * r, h = 2 * s - u;
a = re._hue2rgb(h, u, n + 1 / 3), o = re._hue2rgb(h, u, n), c = re._hue2rgb(h, u, n - 1 / 3);
}
return new j(Math.round(a * 255), Math.round(o * 255), Math.round(c * 255), i);
}
}
class De {
constructor(t, n, r, s) {
this._hsvaBrand = void 0, this.h = Math.max(Math.min(360, t), 0) | 0, this.s = we(Math.max(Math.min(1, n), 0), 3), this.v = we(Math.max(Math.min(1, r), 0), 3), this.a = we(Math.max(Math.min(1, s), 0), 3);
}
static equals(t, n) {
return t.h === n.h && t.s === n.s && t.v === n.v && t.a === n.a;
}
// from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm
static fromRGBA(t) {
const n = t.r / 255, r = t.g / 255, s = t.b / 255, i = Math.max(n, r, s), a = Math.min(n, r, s), o = i - a, c = i === 0 ? 0 : o / i;
let u;
return o === 0 ? u = 0 : i === n ? u = ((r - s) / o % 6 + 6) % 6 : i === r ? u = (s - n) / o + 2 : u = (n - r) / o + 4, new De(Math.round(u * 60), c, i, t.a);
}
// from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm
static toRGBA(t) {
const { h: n, s: r, v: s, a: i } = t, a = s * r, o = a * (1 - Math.abs(n / 60 % 2 - 1)), c = s - a;
let [u, h, f] = [0, 0, 0];
return n < 60 ? (u = a, h = o) : n < 120 ? (u = o, h = a) : n < 180 ? (h = a, f = o) : n < 240 ? (h = o, f = a) : n < 300 ? (u = o, f = a) : n <= 360 && (u = a, f = o), u = Math.round((u + c) * 255), h = Math.round((h + c) * 255), f = Math.round((f + c) * 255), new j(u, h, f, i);
}
}
class q {
static fromHex(t) {
return q.Format.CSS.parseHex(t) || q.red;
}
static equals(t, n) {
return !t && !n ? !0 : !t || !n ? !1 : t.equals(n);
}
get hsla() {
return this._hsla ? this._hsla : re.fromRGBA(this.rgba);
}
get hsva() {
return this._hsva ? this._hsva : De.fromRGBA(this.rgba);
}
constructor(t) {
if (t)
if (t instanceof j)
this.rgba = t;
else if (t instanceof re)
this._hsla = t, this.rgba = re.toRGBA(t);
else if (t instanceof De)
this._hsva = t, this.rgba = De.toRGBA(t);
else
throw new Error("Invalid color ctor argument");
else
throw new Error("Color needs a value");
}
equals(t) {
return !!t && j.equals(this.rgba, t.rgba) && re.equals(this.hsla, t.hsla) && De.equals(this.hsva, t.hsva);
}
/**
* http://www.w3.org/TR/WCAG20/#relativeluminancedef
* Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white.
*/
getRelativeLuminance() {
const t = q._relativeLuminanceForComponent(this.rgba.r), n = q._relativeLuminanceForComponent(this.rgba.g), r = q._relativeLuminanceForComponent(this.rgba.b), s = 0.2126 * t + 0.7152 * n + 0.0722 * r;
return we(s, 4);
}
static _relativeLuminanceForComponent(t) {
const n = t / 255;
return n <= 0.03928 ? n / 12.92 : Math.pow((n + 0.055) / 1.055, 2.4);
}
/**
* http://24ways.org/2010/calculating-color-contrast
* Return 'true' if lighter color otherwise 'false'
*/
isLighter() {
return (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1e3 >= 128;
}
isLighterThan(t) {
const n = this.getRelativeLuminance(), r = t.getRelativeLuminance();
return n > r;
}
isDarkerThan(t) {
const n = this.getRelativeLuminance(), r = t.getRelativeLuminance();
return n < r;
}
lighten(t) {
return new q(new re(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * t, this.hsla.a));
}
darken(t) {
return new q(new re(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * t, this.hsla.a));
}
transparent(t) {
const { r: n, g: r, b: s, a: i } = this.rgba;
return new q(new j(n, r, s, i * t));
}
isTransparent() {
return this.rgba.a === 0;
}
isOpaque() {
return this.rgba.a === 1;
}
opposite() {
return new q(new j(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));
}
makeOpaque(t) {
if (this.isOpaque() || t.rgba.a !== 1)
return this;
const { r: n, g: r, b: s, a: i } = this.rgba;
return new q(new j(t.rgba.r - i * (t.rgba.r - n), t.rgba.g - i * (t.rgba.g - r), t.rgba.b - i * (t.rgba.b - s), 1));
}
toString() {
return this._toString || (this._toString = q.Format.CSS.format(this)), this._toString;
}
static getLighterColor(t, n, r) {
if (t.isLighterThan(n))
return t;
r = r || 0.5;
const s = t.getRelativeLuminance(), i = n.getRelativeLuminance();
return r = r * (i - s) / i, t.lighten(r);
}
static getDarkerColor(t, n, r) {
if (t.isDarkerThan(n))
return t;
r = r || 0.5;
const s = t.getRelativeLuminance(), i = n.getRelativeLuminance();
return r = r * (s - i) / s, t.darken(r);
}
}
q.white = new q(new j(255, 255, 255, 1));
q.black = new q(new j(0, 0, 0, 1));
q.red = new q(new j(255, 0, 0, 1));
q.blue = new q(new j(0, 0, 255, 1));
q.green = new q(new j(0, 255, 0, 1));
q.cyan = new q(new j(0, 255, 255, 1));
q.lightgrey = new q(new j(211, 211, 211, 1));
q.transparent = new q(new j(0, 0, 0, 0));
(function(e) {
(function(t) {
(function(n) {
function r(d) {
return d.rgba.a === 1 ? `rgb(${d.rgba.r}, ${d.rgba.g}, ${d.rgba.b})` : e.Format.CSS.formatRGBA(d);
}
n.formatRGB = r;
function s(d) {
return `rgba(${d.rgba.r}, ${d.rgba.g}, ${d.rgba.b}, ${+d.rgba.a.toFixed(2)})`;
}
n.formatRGBA = s;
function i(d) {
return d.hsla.a === 1 ? `hsl(${d.hsla.h}, ${(d.hsla.s * 100).toFixed(2)}%, ${(d.hsla.l * 100).toFixed(2)}%)` : e.Format.CSS.formatHSLA(d);
}
n.formatHSL = i;
function a(d) {
return `hsla(${d.hsla.h}, ${(d.hsla.s * 100).toFixed(2)}%, ${(d.hsla.l * 100).toFixed(2)}%, ${d.hsla.a.toFixed(2)})`;
}
n.formatHSLA = a;
function o(d) {
const g = d.toString(16);
return g.length !== 2 ? "0" + g : g;
}
function c(d) {
return `#${o(d.rgba.r)}${o(d.rgba.g)}${o(d.rgba.b)}`;
}
n.formatHex = c;
function u(d, g = !1) {
return g && d.rgba.a === 1 ? e.Format.CSS.formatHex(d) : `#${o(d.rgba.r)}${o(d.rgba.g)}${o(d.rgba.b)}${o(Math.round(d.rgba.a * 255))}`;
}
n.formatHexA = u;
function h(d) {
return d.isOpaque() ? e.Format.CSS.formatHex(d) : e.Format.CSS.formatRGBA(d);
}
n.format = h;
function f(d) {
const g = d.length;
if (g === 0 || d.charCodeAt(0) !== 35)
return null;
if (g === 7) {
const b = 16 * m(d.charCodeAt(1)) + m(d.charCodeAt(2)), w = 16 * m(d.charCodeAt(3)) + m(d.charCodeAt(4)), L = 16 * m(d.charCodeAt(5)) + m(d.charCodeAt(6));
return new e(new j(b, w, L, 1));
}
if (g === 9) {
const b = 16 * m(d.charCodeAt(1)) + m(d.charCodeAt(2)), w = 16 * m(d.charCodeAt(3)) + m(d.charCodeAt(4)), L = 16 * m(d.charCodeAt(5)) + m(d.charCodeAt(6)), _ = 16 * m(d.charCodeAt(7)) + m(d.charCodeAt(8));
return new e(new j(b, w, L, _ / 255));
}
if (g === 4) {
const b = m(d.charCodeAt(1)), w = m(d.charCodeAt(2)), L = m(d.charCodeAt(3));
return new e(new j(16 * b + b, 16 * w + w, 16 * L + L));
}
if (g === 5) {
const b = m(d.charCodeAt(1)), w = m(d.charCodeAt(2)), L = m(d.charCodeAt(3)), _ = m(d.charCodeAt(4));
return new e(new j(16 * b + b, 16 * w + w, 16 * L + L, (16 * _ + _) / 255));
}
return null;
}
n.parseHex = f;
function m(d) {
switch (d) {
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;
}
})(t.CSS || (t.CSS = {}));
})(e.Format || (e.Format = {}));
})(q || (q = {}));
function Br(e) {
const t = [];
for (const n of e) {
const r = Number(n);
(r || r === 0 && n.replace(/\s/g, "") !== "") && t.push(r);
}
return t;
}
function Yt(e, t, n, r) {
return {
red: e / 255,
blue: n / 255,
green: t / 255,
alpha: r
};
}
function ze(e, t) {
const n = t.index, r = t[0].length;
if (!n)
return;
const s = e.positionAt(n);
return {
startLineNumber: s.lineNumber,
startColumn: s.column,
endLineNumber: s.lineNumber,
endColumn: s.column + r
};
}
function e1(e, t) {
if (!e)
return;
const n = q.Format.CSS.parseHex(t);
if (n)
return {
range: e,
color: Yt(n.rgba.r, n.rgba.g, n.rgba.b, n.rgba.a)
};
}
function _r(e, t, n) {
if (!e || t.length !== 1)
return;
const s = t[0].values(), i = Br(s);
return {
range: e,
color: Yt(i[0], i[1], i[2], n ? i[3] : 1)
};
}
function xr(e, t, n) {
if (!e || t.length !== 1)
return;
const s = t[0].values(), i = Br(s), a = new q(new re(i[0], i[1] / 100, i[2] / 100, n ? i[3] : 1));
return {
range: e,
color: Yt(a.rgba.r, a.rgba.g, a.rgba.b, a.rgba.a)
};
}
function $e(e, t) {
return typeof e == "string" ? [...e.matchAll(t)] : e.findMatches(t);
}
function t1(e) {
const t = [], r = $e(e, /\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 (r.length > 0)
for (const s of r) {
const i = s.filter((u) => u !== void 0), a = i[1], o = i[2];
if (!o)
continue;
let c;
if (a === "rgb") {
const u = /^\(\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;
c = _r(ze(e, s), $e(o, u), !1);
} else if (a === "rgba") {
const u = /^\(\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;
c = _r(ze(e, s), $e(o, u), !0);
} else if (a === "hsl") {
const u = /^\(\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;
c = xr(ze(e, s), $e(o, u), !1);
} else if (a === "hsla") {
const u = /^\(\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;
c = xr(ze(e, s), $e(o, u), !0);
} else
a === "#" && (c = e1(ze(e, s), a + o));
c && t.push(c);
}
return t;
}
function n1(e) {
return !e || typeof e.getValue != "function" || typeof e.positionAt != "function" ? [] : t1(e);
}
var ge = globalThis && globalThis.__awaiter || function(e, t, n, r) {
function s(i) {
return i instanceof n ? i : new n(function(a) {
a(i);
});
}
return new (n || (n = Promise))(function(i, a) {
function o(h) {
try {
u(r.next(h));
} catch (f) {
a(f);
}
}
function c(h) {
try {
u(r.throw(h));
} catch (f) {
a(f);
}
}
function u(h) {
h.done ? i(h.value) : s(h.value).then(o, c);
}
u((r = r.apply(e, t || [])).next());
});
};
class r1 extends ti {
get uri() {
return this._uri;
}
get eol() {
return this._eol;
}
getValue() {
return this.getText();
}
findMatches(t) {
const n = [];
for (let r = 0; r < this._lines.length; r++) {
const s = this._lines[r], i = this.offsetAt(new J(r + 1, 1)), a = s.matchAll(t);
for (const o of a)
(o.index || o.index === 0) && (o.index = o.index + i), n.push(o);
}
return n;
}
getLinesContent() {
return this._lines.slice(0);
}
getLineCount() {
return this._lines.length;
}
getLineContent(t) {
return this._lines[t - 1];
}
getWordAtPosition(t, n) {
const r = Qt(t.column, si(n), this._lines[t.lineNumber - 1], 0);
return r ? new D(t.lineNumber, r.startColumn, t.lineNumber, r.endColumn) : null;
}
words(t) {
const n = this._lines, r = this._wordenize.bind(this);
let s = 0, i = "", a = 0, o = [];
return {
*[Symbol.iterator]() {
for (; ; )
if (a < o.length) {
const c = i.substring(o[a].start, o[a].end);
a += 1, yield c;
} else if (s < n.length)
i = n[s], o = r(i, t), a = 0, s += 1;
else
break;
}
};
}
getLineWords(t, n) {
const r = this._lines[t - 1], s = this._wordenize(r, n), i = [];
for (const a of s)
i.push({
word: r.substring(a.start, a.end),
startColumn: a.start + 1,
endColumn: a.end + 1
});
return i;
}
_wordenize(t, n) {
const r = [];
let s;
for (n.lastIndex = 0; (s = n.exec(t)) && s[0].length !== 0; )
r.push({ start: s.index, end: s.index + s[0].length });
return r;
}
getValueInRange(t) {
if (t = this._validateRange(t), t.startLineNumber === t.endLineNumber)
return this._lines[t.startLineNumber - 1].substring(t.startColumn - 1, t.endColumn - 1);
const n = this._eol, r = t.startLineNumber - 1, s = t.endLineNumber - 1, i = [];
i.push(this._lines[r].substring(t.startColumn - 1));
for (let a = r + 1; a < s; a++)
i.push(this._lines[a]);
return i.push(this._lines[s].substring(0, t.endColumn - 1)), i.join(n);
}
offsetAt(t) {
return t = this._validatePosition(t), this._ensureLineStarts(), this._lineStarts.getPrefixSum(t.lineNumber - 2) + (t.column - 1);
}
positionAt(t) {
t = Math.floor(t), t = Math.max(0, t), this._ensureLineStarts();
const n = this._lineStarts.getIndexOf(t), r = this._lines[n.index].length;
return {
lineNumber: 1 + n.index,
column: 1 + Math.min(n.remainder, r)
};
}
_validateRange(t) {
const n = this._validatePosition({ lineNumber: t.startLineNumber, column: t.startColumn }), r = this._validatePosition({ lineNumber: t.endLineNumber, column: t.endColumn });
return n.lineNumber !== t.startLineNumber || n.column !== t.startColumn || r.lineNumber !== t.endLineNumber || r.column !== t.endColumn ? {
startLineNumber: n.lineNumber,
startColumn: n.column,
endLineNumber: r.lineNumber,
endColumn: r.column
} : t;
}
_validatePosition(t) {
if (!J.isIPosition(t))
throw new Error("bad position");
let { lineNumber: n, column: r } = t, s = !1;
if (n < 1)
n = 1, r = 1, s = !0;
else if (n > this._lines.length)
n = this._lines.length, r = this._lines[n - 1].length + 1, s = !0;
else {
const i = this._lines[n - 1].length + 1;
r < 1 ? (r = 1, s = !0) : r > i && (r = i, s = !0);
}
return s ? { lineNumber: n, column: r } : t;
}
}
class Ae {
constructor(t, n) {
this._host = t, this._models = /* @__PURE__ */ Object.create(null), this._foreignModuleFactory = n, this._foreignModule = null;
}
dispose() {
this._models = /* @__PURE__ */ Object.create(null);
}
_getModel(t) {
return this._models[t];
}
_getModels() {
const t = [];
return Object.keys(this._models).forEach((n) => t.push(this._models[n])), t;
}
acceptNewModel(t) {
this._models[t.url] = new r1(Ce.parse(t.url), t.lines, t.EOL, t.versionId);
}
acceptModelChanged(t, n) {
if (!this._models[t])
return;
this._models[t].onEvents(n);
}
acceptRemovedModel(t) {
this._models[t] && delete this._models[t];
}
computeUnicodeHighlights(t, n, r) {
return ge(this, void 0, void 0, function* () {
const s = this._getModel(t);
return s ? Ci.computeUnicodeHighlights(s, n, r) : { ranges: [], hasMore: !1, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };
});
}
// ---- BEGIN diff --------------------------------------------------------------------------
computeDiff(t, n, r, s) {
return ge(this, void 0, void 0, function* () {
const i = this._getModel(t), a = this._getModel(n);
return !i || !a ? null : Ae.computeDiff(i, a, r, s);
});
}
static computeDiff(t, n, r, s) {
const i = s === "advanced" ? br.getDefault() : br.getLegacy(), a = t.getLinesContent(), o = n.getLinesContent(), c = i.computeDiff(a, o, r), u = c.changes.length > 0 ? !1 : this._modelsAreIdentical(t, n);
function h(f) {
return f.map((m) => {
var d;
return [m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, (d = m.innerChanges) === null || d === void 0 ? void 0 : d.map((g) => [
g.originalRange.startLineNumber,
g.originalRange.startColumn,
g.originalRange.endLineNumber,
g.originalRange.endColumn,
g.modifiedRange.startLineNumber,
g.modifiedRange.startColumn,
g.modifiedRange.endLineNumber,
g.modifiedRange.endColumn
])];
});
}
return {
identical: u,
quitEarly: c.hitTimeout,
changes: h(c.changes),
moves: c.moves.map((f) => [
f.lineRangeMapping.original.startLineNumber,
f.lineRangeMapping.original.endLineNumberExclusive,
f.lineRangeMapping.modified.startLineNumber,
f.lineRangeMapping.modified.endLineNumberExclusive,
h(f.changes)
])
};
}
static _modelsAreIdentical(t, n) {
const r = t.getLineCount(), s = n.getLineCount();
if (r !== s)
return !1;
for (let i = 1; i <= r; i++) {
const a = t.getLineContent(i), o = n.getLineContent(i);
if (a !== o)
return !1;
}
return !0;
}
computeMoreMinimalEdits(t, n, r) {
return ge(this, void 0, void 0, function* () {
const s = this._getModel(t);
if (!s)
return n;
const i = [];
let a;
n = n.slice(0).sort((c, u) => {
if (c.range && u.range)
return D.compareRangesUsingStarts(c.range, u.range);
const h = c.range ? 0 : 1, f = u.range ? 0 : 1;
return h - f;
});
let o = 0;
for (let c = 1; c < n.length; c++)
D.getEndPosition(n[o].range).equals(D.getStartPosition(n[c].range)) ? (n[o].range = D.fromPositions(D.getStartPosition(n[o].range), D.getEndPosition(n[c].range)), n[o].text += n[c].text) : (o++, n[o] = n[c]);
n.length = o + 1;
for (let { range: c, text: u, eol: h } of n) {
if (typeof h == "number" && (a = h), D.isEmpty(c) && !u)
continue;
const f = s.getValueInRange(c);
if (u = u.replace(/\r\n|\n|\r/g, s.eol), f === u)
continue;
if (Math.max(u.length, f.length) > Ae._diffLimit) {
i.push({ range: c, text: u });
continue;
}
const m = Ms(f, u, r), d = s.offsetAt(D.lift(c).getStartPosition());
for (const g of m) {
const b = s.positionAt(d + g.originalStart), w = s.positionAt(d + g.originalStart + g.originalLength), L = {
text: u.substr(g.modifiedStart, g.modifiedLength),
range: { startLineNumber: b.lineNumber, startColumn: b.column, endLineNumber: w.lineNumber, endColumn: w.column }
};
s.getValueInRange(L.range) !== L.text && i.push(L);
}
}
return typeof a == "number" && i.push({ eol: a, text: "", range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } }), i;
});
}
// ---- END minimal edits ---------------------------------------------------------------
computeLinks(t) {
return ge(this, void 0, void 0, function* () {
const n = this._getModel(t);
return n ? ci(n) : null;
});
}
// --- BEGIN default document colors -----------------------------------------------------------
computeDefaultDocumentColors(t) {
return ge(this, void 0, void 0, function* () {
const n = this._getModel(t);
return n ? n1(n) : null;
});
}
textualSuggest(t, n, r, s) {
return ge(this, void 0, void 0, function* () {
const i = new _t(), a = new RegExp(r, s), o = /* @__PURE__ */ new Set();
e:
for (const c of t) {
const u = this._getModel(c);
if (u) {
for (const h of u.words(a))
if (!(h === n || !isNaN(Number(h))) && (o.add(h), o.size > Ae._suggestionsLimit))
break e;
}
}
return { words: Array.from(o), duration: i.elapsed() };
});
}
// ---- END suggest --------------------------------------------------------------------------
//#region -- word ranges --
computeWordRanges(t, n, r, s) {
return ge(this, void 0, void 0, function* () {
const i = this._getModel(t);
if (!i)
return /* @__PURE__ */ Object.create(null);
const a = new RegExp(r, s), o = /* @__PURE__ */ Object.create(null);
for (let c = n.startLineNumber; c < n.endLineNumber; c++) {
const u = i.getLineWords(c, a);
for (const h of u) {
if (!isNaN(Number(h.word)))
continue;
let f = o[h.word];
f || (f = [], o[h.word] = f), f.push({
startLineNumber: c,
startColumn: h.startColumn,
endLineNumber: c,
endColumn: h.endColumn
});
}
}
return o;
});
}
//#endregion
navigateValueSet(t, n, r, s, i) {
return ge(this, void 0, void 0, function* () {
const a = this._getModel(t);
if (!a)
return null;
const o = new RegExp(s, i);
n.startColumn === n.endColumn && (n = {
startLineNumber: n.startLineNumber,
startColumn: n.startColumn,
endLineNumber: n.endLineNumber,
endColumn: n.endColumn + 1
});
const c = a.getValueInRange(n), u = a.getWordAtPosition({ lineNumber: n.startLineNumber, column: n.startColumn }, o);
if (!u)
return null;
const h = a.getValueInRange(u);
return Dt.INSTANCE.navigateValueSet(n, c, u, h, r);
});
}
// ---- BEGIN foreign module support --------------------------------------------------------------------------
loadForeignModule(t, n, r) {
const a = {
host: ts(r, (o, c) => this._host.fhr(o, c)),
getMirrorModels: () => this._getModels()
};
return this._foreignModuleFactory ? (this._foreignModule = this._foreignModuleFactory(a, n), Promise.resolve(Rt(this._foreignModule))) : Promise.reject(new Error("Unexpected usage"));
}
// foreign method request
fmr(t, n) {
if (!this._foreignModule || typeof this._foreignModule[t] != "function")
return Promise.reject(new Error("Missing requestHandler or method: " + t));
try {
return Promise.resolve(this._foreignModule[t].apply(this._foreignModule, n));
} catch (r) {
return Promise.reject(r);
}
}
}
Ae._diffLimit = 1e5;
Ae._suggestionsLimit = 1e4;
typeof importScripts == "function" && (globalThis.monaco = pi());
let Gt = !1;
function s1(e) {
if (Gt)
return;
Gt = !0;
const t = new Rs((n) => {
globalThis.postMessage(n);
}, (n) => new Ae(n, e));
globalThis.onmessage = (n) => {
t.onmessage(n.data);
};
}
globalThis.onmessage = (e) => {
Gt || s1(null);
};
export {
s1 as initialize
};