@github/copilot-language-server 1.350.0 → 1.351.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
- "use strict";var Et=Object.defineProperty;var s=(i,e)=>Et(i,"name",{value:e,configurable:!0});var bn=(i,e)=>{for(var t in e)Et(i,t,{get:e[t],enumerable:!0})};var D=typeof document>"u"?require("node:url").pathToFileURL(__filename).href:D;var dn=require("worker_threads");var _t={};bn(_t,{computeDiff:()=>Vn,computeDiffSync:()=>mn});function J(i,e){let t=Y(i,e);return t===-1?void 0:i[t]}s(J,"findLastMonotonous");function Y(i,e,t=0,n=i.length){let r=t,o=n;for(;r<o;){let u=Math.floor((r+o)/2);e(i[u])?r=u+1:o=u}return r-1}s(Y,"findLastIdxMonotonous");function Rt(i,e){let t=Ee(i,e);return t===i.length?void 0:i[t]}s(Rt,"findFirstMonotonous");function Ee(i,e,t=0,n=i.length){let r=t,o=n;for(;r<o;){let u=Math.floor((r+o)/2);e(i[u])?o=u:r=u+1}return r}s(Ee,"findFirstIdxMonotonousOrArrLen");var ve=class i{constructor(e){this._array=e;this._findLastMonotonousLastIdx=0}static{s(this,"MonotonousArray")}static{this.assertInvariants=!1}findLastMonotonous(e){if(i.assertInvariants){if(this._prevFindLastPredicate){for(let n of this._array)if(this._prevFindLastPredicate(n)&&!e(n))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=e}let t=Y(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=t+1,t===-1?void 0:this._array[t]}};var He=class{static{s(this,"ErrorHandler")}constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Ue.isErrorNoTelemetry(e)?new Ue(e.message+`
1
+ "use strict";var Rt=Object.defineProperty;var s=(i,e)=>Rt(i,"name",{value:e,configurable:!0});var bn=(i,e)=>{for(var t in e)Rt(i,t,{get:e[t],enumerable:!0})};var D=typeof document>"u"?require("node:url").pathToFileURL(__filename).href:D;var dn=require("worker_threads");var _t={};bn(_t,{computeDiff:()=>Kn,computeDiffSync:()=>mn});function J(i,e){let t=Y(i,e);return t===-1?void 0:i[t]}s(J,"findLastMonotonous");function Y(i,e,t=0,n=i.length){let r=t,o=n;for(;r<o;){let u=Math.floor((r+o)/2);e(i[u])?r=u+1:o=u}return r-1}s(Y,"findLastIdxMonotonous");function Et(i,e){let t=Re(i,e);return t===i.length?void 0:i[t]}s(Et,"findFirstMonotonous");function Re(i,e,t=0,n=i.length){let r=t,o=n;for(;r<o;){let u=Math.floor((r+o)/2);e(i[u])?o=u:r=u+1}return r}s(Re,"findFirstIdxMonotonousOrArrLen");var ve=class i{constructor(e){this._array=e;this._findLastMonotonousLastIdx=0}static{s(this,"MonotonousArray")}static{this.assertInvariants=!1}findLastMonotonous(e){if(i.assertInvariants){if(this._prevFindLastPredicate){for(let n of this._array)if(this._prevFindLastPredicate(n)&&!e(n))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=e}let t=Y(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=t+1,t===-1?void 0:this._array[t]}};var Qe=class{static{s(this,"ErrorHandler")}constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?ke.isErrorNoTelemetry(e)?new ke(e.message+`
2
2
 
3
3
  `+e.stack):new Error(e.message+`
4
4
 
5
- `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},hn=new He;function le(i){Tn(i)||hn.onUnexpectedError(i)}s(le,"onUnexpectedError");var Qe="Canceled";function Tn(i){return i instanceof Me?!0:i instanceof Error&&i.name===Qe&&i.message===Qe}s(Tn,"isCancellationError");var Me=class extends Error{static{s(this,"CancellationError")}constructor(){super(Qe),this.name=this.message}};var Ue=class i extends Error{static{s(this,"ErrorNoTelemetry")}constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof i)return e;let t=new i;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}},F=class i extends Error{static{s(this,"BugIndicatingError")}constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function ke(i,e,t=(n,r)=>n===r){if(i===e)return!0;if(!i||!e||i.length!==e.length)return!1;for(let n=0,r=i.length;n<r;n++)if(!t(i[n],e[n]))return!1;return!0}s(ke,"equals");function*It(i,e){let t,n;for(let r of i)n!==void 0&&e(n,r)?t.push(r):(t&&(yield t),t=[r]),n=r;t&&(yield t)}s(It,"groupAdjacentBy");function yt(i,e){for(let t=0;t<=i.length;t++)e(t===0?void 0:i[t-1],t===i.length?void 0:i[t])}s(yt,"forEachAdjacent");function wt(i,e){for(let t=0;t<i.length;t++)e(t===0?void 0:i[t-1],i[t],t+1===i.length?void 0:i[t+1])}s(wt,"forEachWithNeighbors");function Nt(i,e){for(let t of e)i.push(t)}s(Nt,"pushMany");var Dt;(l=>{function i(a){return a<0}l.isLessThan=i,s(i,"isLessThan");function e(a){return a<=0}l.isLessThanOrEqual=e,s(e,"isLessThanOrEqual");function t(a){return a>0}l.isGreaterThan=t,s(t,"isGreaterThan");function n(a){return a===0}l.isNeitherLessOrGreaterThan=n,s(n,"isNeitherLessOrGreaterThan"),l.greaterThan=1,l.lessThan=-1,l.neitherLessOrGreaterThan=0})(Dt||={});function te(i,e){return(t,n)=>e(i(t),i(n))}s(te,"compareBy");var ne=s((i,e)=>i-e,"numberComparator");function St(i){return(e,t)=>-i(e,t)}s(St,"reverseOrder");var Lt=class i{constructor(e){this.iterate=e}static{s(this,"CallbackIterable")}static{this.empty=new i(e=>{})}forEach(e){this.iterate(t=>(e(t),!0))}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new i(t=>this.iterate(n=>e(n)?t(n):!0))}map(e){return new i(t=>this.iterate(n=>t(e(n))))}some(e){let t=!1;return this.iterate(n=>(t=e(n),!t)),t}findFirst(e){let t;return this.iterate(n=>e(n)?(t=n,!1):!0),t}findLast(e){let t;return this.iterate(n=>(e(n)&&(t=n),!0)),t}findLastMaxBy(e){let t,n=!0;return this.iterate(r=>((n||Dt.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};function At(i,e="unexpected state"){if(!i)throw new F(`Assertion Failed: ${e}`)}s(At,"assert");function ie(i){if(!i()){debugger;i(),le(new F("Assertion Failed"))}}s(ie,"assertFn");function Pe(i,e){let t=0;for(;t<i.length-1;){let n=i[t],r=i[t+1];if(!e(n,r))return!1;t++}return!0}s(Pe,"checkAdjacentItems");var A=class i{constructor(e,t){this.start=e;this.endExclusive=t;if(e>t)throw new F(`Invalid range: ${this.toString()}`)}static{s(this,"OffsetRange")}static fromTo(e,t){return new i(e,t)}static addRange(e,t){let n=0;for(;n<t.length&&t[n].endExclusive<e.start;)n++;let r=n;for(;r<t.length&&t[r].start<=e.endExclusive;)r++;if(n===r)t.splice(n,0,e);else{let o=Math.min(e.start,t[n].start),u=Math.max(e.endExclusive,t[r-1].endExclusive);t.splice(n,r-n,new i(o,u))}}static tryCreate(e,t){if(!(e>t))return new i(e,t)}static ofLength(e){return new i(0,e)}static ofStartAndLength(e,t){return new i(e,e+t)}static emptyAt(e){return new i(e,e)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new i(this.start+e,this.endExclusive+e)}deltaStart(e){return new i(this.start+e,this.endExclusive)}deltaEnd(e){return new i(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(e){return new i(Math.min(this.start,e.start),Math.max(this.endExclusive,e.endExclusive))}intersect(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);if(t<=n)return new i(t,n)}intersectionLength(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);return Math.max(0,n-t)}intersects(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);return t<n}intersectsOrTouches(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);return t<=n}isBefore(e){return this.endExclusive<=e.start}isAfter(e){return this.start>=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new F(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new F(`Invalid clipping range: ${this.toString()}`);return e<this.start?this.endExclusive-(this.start-e)%this.length:e>=this.endExclusive?this.start+(e-this.start)%this.length:e}map(e){let t=[];for(let n=this.start;n<this.endExclusive;n++)t.push(e(n));return t}forEach(e){for(let t=this.start;t<this.endExclusive;t++)e(t)}joinRightTouching(e){if(this.endExclusive!==e.start)throw new F(`Invalid join: ${this.toString()} and ${e.toString()}`);return new i(this.start,e.endExclusive)}};var U=class i{static{s(this,"Position")}constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new i(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return i.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return i.isBefore(this,e)}static isBefore(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<t.column}isBeforeOrEqual(e){return i.isBeforeOrEqual(this,e)}static isBeforeOrEqual(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<=t.column}static compare(e,t){let n=e.lineNumber|0,r=t.lineNumber|0;if(n===r){let o=e.column|0,u=t.column|0;return o-u}return n-r}clone(){return new i(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(e){return new i(e.lineNumber,e.column)}static isIPosition(e){return e&&typeof e.lineNumber=="number"&&typeof e.column=="number"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}};var w=class i{static{s(this,"Range")}constructor(e,t,n,r){e>n||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}isEmpty(){return i.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return i.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<e.startColumn||t.lineNumber===e.endLineNumber&&t.column>e.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return i.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)}strictContainsRange(e){return i.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return i.plusRange(this,e)}static plusRange(e,t){let n,r,o,u;return t.startLineNumber<e.startLineNumber?(n=t.startLineNumber,r=t.startColumn):t.startLineNumber===e.startLineNumber?(n=t.startLineNumber,r=Math.min(t.startColumn,e.startColumn)):(n=e.startLineNumber,r=e.startColumn),t.endLineNumber>e.endLineNumber?(o=t.endLineNumber,u=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,u=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,u=e.endColumn),new i(n,r,o,u)}intersectRanges(e){return i.intersectRanges(this,e)}static intersectRanges(e,t){let n=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,u=e.endColumn,l=t.startLineNumber,a=t.startColumn,c=t.endLineNumber,f=t.endColumn;return n<l?(n=l,r=a):n===l&&(r=Math.max(r,a)),o>c?(o=c,u=f):o===c&&(u=Math.min(u,f)),n>o||n===o&&r>u?null:new i(n,r,o,u)}equalsRange(e){return i.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return i.getEndPosition(this)}static getEndPosition(e){return new U(e.endLineNumber,e.endColumn)}getStartPosition(){return i.getStartPosition(this)}static getStartPosition(e){return new U(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new i(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new i(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return i.collapseToStart(this)}static collapseToStart(e){return new i(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return i.collapseToEnd(this)}static collapseToEnd(e){return new i(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new i(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(e,t=e){return new i(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new i(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}static areIntersecting(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}static compareRangesUsingStarts(e,t){if(e&&t){let o=e.startLineNumber|0,u=t.startLineNumber|0;if(o===u){let l=e.startColumn|0,a=t.startColumn|0;if(l===a){let c=e.endLineNumber|0,f=t.endLineNumber|0;if(c===f){let m=e.endColumn|0,p=t.endColumn|0;return m-p}return c-f}return l-a}return o-u}return(e?1:0)-(t?1:0)}static compareRangesUsingEnds(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}static spansMultipleLines(e){return e.endLineNumber>e.startLineNumber}toJSON(){return this}};var O=class i{static{s(this,"LineRange")}static fromRange(e){return new i(e.startLineNumber,e.endLineNumber)}static fromRangeInclusive(e){return new i(e.startLineNumber,e.endLineNumber+1)}static subtract(e,t){return t?e.startLineNumber<t.startLineNumber&&t.endLineNumberExclusive<e.endLineNumberExclusive?[new i(e.startLineNumber,t.startLineNumber),new i(t.endLineNumberExclusive,e.endLineNumberExclusive)]:t.startLineNumber<=e.startLineNumber&&e.endLineNumberExclusive<=t.endLineNumberExclusive?[]:t.endLineNumberExclusive<e.endLineNumberExclusive?[new i(Math.max(t.endLineNumberExclusive,e.startLineNumber),e.endLineNumberExclusive)]:[new i(e.startLineNumber,Math.min(t.startLineNumber,e.endLineNumberExclusive))]:[e]}static joinMany(e){if(e.length===0)return[];let t=new re(e[0].slice());for(let n=1;n<e.length;n++)t=t.getUnion(new re(e[n].slice()));return t.ranges}static join(e){if(e.length===0)throw new F("lineRanges cannot be empty");let t=e[0].startLineNumber,n=e[0].endLineNumberExclusive;for(let r=1;r<e.length;r++)t=Math.min(t,e[r].startLineNumber),n=Math.max(n,e[r].endLineNumberExclusive);return new i(t,n)}static ofLength(e,t){return new i(e,e+t)}static deserialize(e){return new i(e[0],e[1])}constructor(e,t){if(e>t)throw new F(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}delta(e){return new i(this.startLineNumber+e,this.endLineNumberExclusive+e)}deltaLength(e){return new i(this.startLineNumber,this.endLineNumberExclusive+e)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(e){return new i(Math.min(this.startLineNumber,e.startLineNumber),Math.max(this.endLineNumberExclusive,e.endLineNumberExclusive))}toString(){return`[${this.startLineNumber},${this.endLineNumberExclusive})`}intersect(e){let t=Math.max(this.startLineNumber,e.startLineNumber),n=Math.min(this.endLineNumberExclusive,e.endLineNumberExclusive);if(t<=n)return new i(t,n)}intersectsStrict(e){return this.startLineNumber<e.endLineNumberExclusive&&e.startLineNumber<this.endLineNumberExclusive}overlapOrTouch(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}equals(e){return this.startLineNumber===e.startLineNumber&&this.endLineNumberExclusive===e.endLineNumberExclusive}toInclusiveRange(){return this.isEmpty?null:new w(this.startLineNumber,1,this.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER)}toExclusiveRange(){return new w(this.startLineNumber,1,this.endLineNumberExclusive,1)}mapToLineArray(e){let t=[];for(let n=this.startLineNumber;n<this.endLineNumberExclusive;n++)t.push(e(n));return t}forEach(e){for(let t=this.startLineNumber;t<this.endLineNumberExclusive;t++)e(t)}serialize(){return[this.startLineNumber,this.endLineNumberExclusive]}includes(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}toOffsetRange(){return new A(this.startLineNumber-1,this.endLineNumberExclusive-1)}distanceToRange(e){return this.endLineNumberExclusive<=e.startLineNumber?e.startLineNumber-this.endLineNumberExclusive:e.endLineNumberExclusive<=this.startLineNumber?this.startLineNumber-e.endLineNumberExclusive:0}distanceToLine(e){return this.contains(e)?0:e<this.startLineNumber?this.startLineNumber-e:e-this.endLineNumberExclusive}addMargin(e,t){return new i(this.startLineNumber-e,this.endLineNumberExclusive+t)}},re=class i{constructor(e=[]){this._normalizedRanges=e}static{s(this,"LineRangeSet")}get ranges(){return this._normalizedRanges}addRange(e){if(e.length===0)return;let t=Ee(this._normalizedRanges,r=>r.endLineNumberExclusive>=e.startLineNumber),n=Y(this._normalizedRanges,r=>r.startLineNumber<=e.endLineNumberExclusive)+1;if(t===n)this._normalizedRanges.splice(t,0,e);else if(t===n-1){let r=this._normalizedRanges[t];this._normalizedRanges[t]=r.join(e)}else{let r=this._normalizedRanges[t].join(this._normalizedRanges[n-1]).join(e);this._normalizedRanges.splice(t,n-t,r)}}contains(e){let t=J(this._normalizedRanges,n=>n.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){let t=J(this._normalizedRanges,n=>n.startLineNumber<e.endLineNumberExclusive);return!!t&&t.endLineNumberExclusive>e.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;let t=[],n=0,r=0,o=null;for(;n<this._normalizedRanges.length||r<e._normalizedRanges.length;){let u=null;if(n<this._normalizedRanges.length&&r<e._normalizedRanges.length){let l=this._normalizedRanges[n],a=e._normalizedRanges[r];l.startLineNumber<a.startLineNumber?(u=l,n++):(u=a,r++)}else n<this._normalizedRanges.length?(u=this._normalizedRanges[n],n++):(u=e._normalizedRanges[r],r++);o===null?o=u:o.endLineNumberExclusive>=u.startLineNumber?o=new O(o.startLineNumber,Math.max(o.endLineNumberExclusive,u.endLineNumberExclusive)):(t.push(o),o=u)}return o!==null&&t.push(o),new i(t)}subtractFrom(e){let t=Ee(this._normalizedRanges,u=>u.endLineNumberExclusive>=e.startLineNumber),n=Y(this._normalizedRanges,u=>u.startLineNumber<=e.endLineNumberExclusive)+1;if(t===n)return new i([e]);let r=[],o=e.startLineNumber;for(let u=t;u<n;u++){let l=this._normalizedRanges[u];l.startLineNumber>o&&r.push(new O(o,l.startLineNumber)),o=l.endLineNumberExclusive}return o<e.endLineNumberExclusive&&r.push(new O(o,e.endLineNumberExclusive)),new i(r)}toString(){return this._normalizedRanges.map(e=>e.toString()).join(", ")}getIntersection(e){let t=[],n=0,r=0;for(;n<this._normalizedRanges.length&&r<e._normalizedRanges.length;){let o=this._normalizedRanges[n],u=e._normalizedRanges[r],l=o.intersect(u);l&&!l.isEmpty&&t.push(l),o.endLineNumberExclusive<u.endLineNumberExclusive?n++:r++}return new i(t)}getWithDelta(e){return new i(this._normalizedRanges.map(t=>t.delta(e)))}};function kt(i,e){let t=Object.create(null);for(let n of i){let r=e(n),o=t[r];o||(o=t[r]=[]),o.push(n)}return t}s(kt,"groupBy");var Mt,Ut,Ot=class{constructor(e,t){this.toKey=t;this._map=new Map;this[Mt]="SetWithKey";for(let n of e)this.add(n)}static{s(this,"SetWithKey")}get size(){return this._map.size}add(e){let t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(let e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(let e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(n=>e.call(t,n,n,this))}[(Ut=Symbol.iterator,Mt=Symbol.toStringTag,Ut)](){return this.values()}};function Xe(i,e){let t=this,n=!1,r;return function(){if(n)return r;if(n=!0,e)try{r=i.apply(t,arguments)}finally{e()}else r=i.apply(t,arguments);return r}}s(Xe,"createSingleCallFunction");var Je;(P=>{function i(b){return b&&typeof b=="object"&&typeof b[Symbol.iterator]=="function"}P.is=i,s(i,"is");let e=Object.freeze([]);function t(){return e}P.empty=t,s(t,"empty");function*n(b){yield b}P.single=n,s(n,"single");function r(b){return i(b)?b:n(b)}P.wrap=r,s(r,"wrap");function o(b){return b||e}P.from=o,s(o,"from");function*u(b){for(let T=b.length-1;T>=0;T--)yield b[T]}P.reverse=u,s(u,"reverse");function l(b){return!b||b[Symbol.iterator]().next().done===!0}P.isEmpty=l,s(l,"isEmpty");function a(b){return b[Symbol.iterator]().next().value}P.first=a,s(a,"first");function c(b,T){let _=0;for(let L of b)if(T(L,_++))return!0;return!1}P.some=c,s(c,"some");function f(b,T){for(let _ of b)if(T(_))return _}P.find=f,s(f,"find");function*m(b,T){for(let _ of b)T(_)&&(yield _)}P.filter=m,s(m,"filter");function*p(b,T){let _=0;for(let L of b)yield T(L,_++)}P.map=p,s(p,"map");function*d(b,T){let _=0;for(let L of b)yield*T(L,_++)}P.flatMap=d,s(d,"flatMap");function*g(...b){for(let T of b)yield*T}P.concat=g,s(g,"concat");function x(b,T,_){let L=_;for(let B of b)L=T(L,B);return L}P.reduce=x,s(x,"reduce");function*y(b,T,_=b.length){for(T<-b.length&&(T=0),T<0&&(T+=b.length),_<0?_+=b.length:_>b.length&&(_=b.length);T<_;T++)yield b[T]}P.slice=y,s(y,"slice");function M(b,T=Number.POSITIVE_INFINITY){let _=[];if(T===0)return[_,b];let L=b[Symbol.iterator]();for(let B=0;B<T;B++){let W=L.next();if(W.done)return[_,P.empty()];_.push(W.value)}return[_,{[Symbol.iterator](){return L}}]}P.consume=M,s(M,"consume");async function S(b){let T=[];for await(let _ of b)T.push(_);return Promise.resolve(T)}P.asyncToArray=S,s(S,"asyncToArray")})(Je||={});var Ye=class{constructor(e,t){this.uri=e;this.value=t}static{s(this,"ResourceMapEntry")}};function _n(i){return Array.isArray(i)}s(_n,"isEntries");var Ft,qe=class i{constructor(e,t){this[Ft]="ResourceMap";if(e instanceof i)this.map=new Map(e.map),this.toKey=t??i.defaultToKey;else if(_n(e)){this.map=new Map,this.toKey=t??i.defaultToKey;for(let[n,r]of e)this.set(n,r)}else this.map=new Map,this.toKey=e??i.defaultToKey}static{s(this,"ResourceMap")}static{this.defaultToKey=s(e=>e.toString(),"defaultToKey")}set(e,t){return this.map.set(this.toKey(e),new Ye(e,t)),this}get(e){return this.map.get(this.toKey(e))?.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<"u"&&(e=e.bind(t));for(let[n,r]of this.map)e(r.value,r.uri,this)}*values(){for(let e of this.map.values())yield e.value}*keys(){for(let e of this.map.values())yield e.uri}*entries(){for(let e of this.map.values())yield[e.uri,e.value]}*[(Ft=Symbol.toStringTag,Symbol.iterator)](){for(let[,e]of this.map)yield[e.uri,e.value]}},Bt,Pt=class{constructor(e,t){this[Bt]="ResourceSet";!e||typeof e=="function"?this._map=new qe(e):(this._map=new qe(t),e.forEach(this.add,this))}static{s(this,"ResourceSet")}get size(){return this._map.size}add(e){return this._map.set(e,e),this}clear(){this._map.clear()}delete(e){return this._map.delete(e)}forEach(e,t){this._map.forEach((n,r)=>e.call(t,r,r,this))}has(e){return this._map.has(e)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(Bt=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var Kt,qt=class{constructor(){this[Kt]="LinkedMap";this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}static{s(this,"LinkedMap")}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=0){let n=this._map.get(e);if(n)return t!==0&&this.touch(n,t),n.value}set(e,t,n=0){let r=this._map.get(e);if(r)r.value=t,n!==0&&this.touch(r,n);else{switch(r={key:e,value:t,next:void 0,previous:void 0},n){case 0:this.addItemLast(r);break;case 1:this.addItemFirst(r);break;case 2:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let n=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this,t=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.key,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}values(){let e=this,t=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.value,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}entries(){let e=this,t=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:[n.key,n.value],done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}[(Kt=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.previous,n--;this._tail=t,this._size=n,t&&(t.next=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,n=e.previous;if(!t||!n)throw new Error("Invalid list");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;let n=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(n.previous=r,r.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;let n=e.next,r=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=r,r.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,n)=>{e.push([n,t])}),e}fromJSON(e){this.clear();for(let[t,n]of e)this.set(t,n)}};var ae=class{constructor(){this.map=new Map}static{s(this,"SetMap")}add(e,t){let n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)}delete(e,t){let n=this.map.get(e);n&&(n.delete(t),n.size===0&&this.map.delete(e))}forEach(e,t){let n=this.map.get(e);n&&n.forEach(t)}get(e){let t=this.map.get(e);return t||new Set}};var xn=!1,ce=null;var Vt=class i{constructor(){this.livingDisposables=new Map}static{s(this,"DisposableTracker")}static{this.idx=0}getDisposableData(e){let t=this.livingDisposables.get(e);return t||(t={parent:null,source:null,isSingleton:!1,value:e,idx:i.idx++},this.livingDisposables.set(e,t)),t}trackDisposable(e){let t=this.getDisposableData(e);t.source||(t.source=new Error().stack)}setParent(e,t){let n=this.getDisposableData(e);n.parent=t}markAsDisposed(e){this.livingDisposables.delete(e)}markAsSingleton(e){this.getDisposableData(e).isSingleton=!0}getRootParent(e,t){let n=t.get(e);if(n)return n;let r=e.parent?this.getRootParent(this.getDisposableData(e.parent),t):e;return t.set(e,r),r}getTrackedDisposables(){let e=new Map;return[...this.livingDisposables.entries()].filter(([,n])=>n.source!==null&&!this.getRootParent(n,e).isSingleton).flatMap(([n])=>n)}computeLeakingDisposables(e=10,t){let n;if(t)n=t;else{let a=new Map,c=[...this.livingDisposables.values()].filter(m=>m.source!==null&&!this.getRootParent(m,a).isSingleton);if(c.length===0)return;let f=new Set(c.map(m=>m.value));if(n=c.filter(m=>!(m.parent&&f.has(m.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function r(a){function c(m,p){for(;m.length>0&&p.some(d=>typeof d=="string"?d===m[0]:m[0].match(d));)m.shift()}s(c,"removePrefix");let f=a.source.split(`
6
- `).map(m=>m.trim().replace("at ","")).filter(m=>m!=="");return c(f,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),f.reverse()}s(r,"getStackTracePath");let o=new ae;for(let a of n){let c=r(a);for(let f=0;f<=c.length;f++)o.add(c.slice(0,f).join(`
7
- `),a)}n.sort(te(a=>a.idx,ne));let u="",l=0;for(let a of n.slice(0,e)){l++;let c=r(a),f=[];for(let m=0;m<c.length;m++){let p=c[m];p=`(shared with ${o.get(c.slice(0,m+1).join(`
5
+ `+e.stack):e},0)}}addListener(e){return this.listeners.push(e),()=>{this._removeListener(e)}}emit(e){this.listeners.forEach(t=>{t(e)})}_removeListener(e){this.listeners.splice(this.listeners.indexOf(e),1)}setUnexpectedErrorHandler(e){this.unexpectedErrorHandler=e}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}},hn=new Qe;function ae(i){Tn(i)||hn.onUnexpectedError(i)}s(ae,"onUnexpectedError");var Xe="Canceled";function Tn(i){return i instanceof Ue?!0:i instanceof Error&&i.name===Xe&&i.message===Xe}s(Tn,"isCancellationError");var Ue=class extends Error{static{s(this,"CancellationError")}constructor(){super(Xe),this.name=this.message}};var ke=class i extends Error{static{s(this,"ErrorNoTelemetry")}constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof i)return e;let t=new i;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}},F=class i extends Error{static{s(this,"BugIndicatingError")}constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}};function Pe(i,e,t=(n,r)=>n===r){if(i===e)return!0;if(!i||!e||i.length!==e.length)return!1;for(let n=0,r=i.length;n<r;n++)if(!t(i[n],e[n]))return!1;return!0}s(Pe,"equals");function*It(i,e){let t,n;for(let r of i)n!==void 0&&e(n,r)?t.push(r):(t&&(yield t),t=[r]),n=r;t&&(yield t)}s(It,"groupAdjacentBy");function yt(i,e){for(let t=0;t<=i.length;t++)e(t===0?void 0:i[t-1],t===i.length?void 0:i[t])}s(yt,"forEachAdjacent");function wt(i,e){for(let t=0;t<i.length;t++)e(t===0?void 0:i[t-1],i[t],t+1===i.length?void 0:i[t+1])}s(wt,"forEachWithNeighbors");function Nt(i,e){for(let t of e)i.push(t)}s(Nt,"pushMany");var Dt;(a=>{function i(l){return l<0}a.isLessThan=i,s(i,"isLessThan");function e(l){return l<=0}a.isLessThanOrEqual=e,s(e,"isLessThanOrEqual");function t(l){return l>0}a.isGreaterThan=t,s(t,"isGreaterThan");function n(l){return l===0}a.isNeitherLessOrGreaterThan=n,s(n,"isNeitherLessOrGreaterThan"),a.greaterThan=1,a.lessThan=-1,a.neitherLessOrGreaterThan=0})(Dt||={});function Z(i,e){return(t,n)=>e(i(t),i(n))}s(Z,"compareBy");var C=s((i,e)=>i-e,"numberComparator");function St(i){return(e,t)=>-i(e,t)}s(St,"reverseOrder");var Lt=class i{constructor(e){this.iterate=e}static{s(this,"CallbackIterable")}static{this.empty=new i(e=>{})}forEach(e){this.iterate(t=>(e(t),!0))}toArray(){let e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new i(t=>this.iterate(n=>e(n)?t(n):!0))}map(e){return new i(t=>this.iterate(n=>t(e(n))))}some(e){let t=!1;return this.iterate(n=>(t=e(n),!t)),t}findFirst(e){let t;return this.iterate(n=>e(n)?(t=n,!1):!0),t}findLast(e){let t;return this.iterate(n=>(e(n)&&(t=n),!0)),t}findLastMaxBy(e){let t,n=!0;return this.iterate(r=>((n||Dt.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};function At(i,e="unexpected state"){if(!i)throw new F(`Assertion Failed: ${e}`)}s(At,"assert");function ie(i){if(!i()){debugger;i(),ae(new F("Assertion Failed"))}}s(ie,"assertFn");function qe(i,e){let t=0;for(;t<i.length-1;){let n=i[t],r=i[t+1];if(!e(n,r))return!1;t++}return!0}s(qe,"checkAdjacentItems");function kt(i,e){let t=Object.create(null);for(let n of i){let r=e(n),o=t[r];o||(o=t[r]=[]),o.push(n)}return t}s(kt,"groupBy");var Mt,Ut,Ot=class{constructor(e,t){this.toKey=t;this._map=new Map;this[Mt]="SetWithKey";for(let n of e)this.add(n)}static{s(this,"SetWithKey")}get size(){return this._map.size}add(e){let t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(let e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(let e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(n=>e.call(t,n,n,this))}[(Ut=Symbol.iterator,Mt=Symbol.toStringTag,Ut)](){return this.values()}};function Je(i,e){let t=this,n=!1,r;return function(){if(n)return r;if(n=!0,e)try{r=i.apply(t,arguments)}finally{e()}else r=i.apply(t,arguments);return r}}s(Je,"createSingleCallFunction");var Ye;(P=>{function i(b){return b&&typeof b=="object"&&typeof b[Symbol.iterator]=="function"}P.is=i,s(i,"is");let e=Object.freeze([]);function t(){return e}P.empty=t,s(t,"empty");function*n(b){yield b}P.single=n,s(n,"single");function r(b){return i(b)?b:n(b)}P.wrap=r,s(r,"wrap");function o(b){return b||e}P.from=o,s(o,"from");function*u(b){for(let T=b.length-1;T>=0;T--)yield b[T]}P.reverse=u,s(u,"reverse");function a(b){return!b||b[Symbol.iterator]().next().done===!0}P.isEmpty=a,s(a,"isEmpty");function l(b){return b[Symbol.iterator]().next().value}P.first=l,s(l,"first");function c(b,T){let _=0;for(let L of b)if(T(L,_++))return!0;return!1}P.some=c,s(c,"some");function f(b,T){for(let _ of b)if(T(_))return _}P.find=f,s(f,"find");function*m(b,T){for(let _ of b)T(_)&&(yield _)}P.filter=m,s(m,"filter");function*p(b,T){let _=0;for(let L of b)yield T(L,_++)}P.map=p,s(p,"map");function*d(b,T){let _=0;for(let L of b)yield*T(L,_++)}P.flatMap=d,s(d,"flatMap");function*g(...b){for(let T of b)yield*T}P.concat=g,s(g,"concat");function x(b,T,_){let L=_;for(let B of b)L=T(L,B);return L}P.reduce=x,s(x,"reduce");function*w(b,T,_=b.length){for(T<-b.length&&(T=0),T<0&&(T+=b.length),_<0?_+=b.length:_>b.length&&(_=b.length);T<_;T++)yield b[T]}P.slice=w,s(w,"slice");function M(b,T=Number.POSITIVE_INFINITY){let _=[];if(T===0)return[_,b];let L=b[Symbol.iterator]();for(let B=0;B<T;B++){let W=L.next();if(W.done)return[_,P.empty()];_.push(W.value)}return[_,{[Symbol.iterator](){return L}}]}P.consume=M,s(M,"consume");async function S(b){let T=[];for await(let _ of b)T.push(_);return Promise.resolve(T)}P.asyncToArray=S,s(S,"asyncToArray")})(Ye||={});var Ze=class{constructor(e,t){this.uri=e;this.value=t}static{s(this,"ResourceMapEntry")}};function _n(i){return Array.isArray(i)}s(_n,"isEntries");var Ft,Fe=class i{constructor(e,t){this[Ft]="ResourceMap";if(e instanceof i)this.map=new Map(e.map),this.toKey=t??i.defaultToKey;else if(_n(e)){this.map=new Map,this.toKey=t??i.defaultToKey;for(let[n,r]of e)this.set(n,r)}else this.map=new Map,this.toKey=e??i.defaultToKey}static{s(this,"ResourceMap")}static{this.defaultToKey=s(e=>e.toString(),"defaultToKey")}set(e,t){return this.map.set(this.toKey(e),new Ze(e,t)),this}get(e){return this.map.get(this.toKey(e))?.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<"u"&&(e=e.bind(t));for(let[n,r]of this.map)e(r.value,r.uri,this)}*values(){for(let e of this.map.values())yield e.value}*keys(){for(let e of this.map.values())yield e.uri}*entries(){for(let e of this.map.values())yield[e.uri,e.value]}*[(Ft=Symbol.toStringTag,Symbol.iterator)](){for(let[,e]of this.map)yield[e.uri,e.value]}},Bt,Pt=class{constructor(e,t){this[Bt]="ResourceSet";!e||typeof e=="function"?this._map=new Fe(e):(this._map=new Fe(t),e.forEach(this.add,this))}static{s(this,"ResourceSet")}get size(){return this._map.size}add(e){return this._map.set(e,e),this}clear(){this._map.clear()}delete(e){return this._map.delete(e)}forEach(e,t){this._map.forEach((n,r)=>e.call(t,r,r,this))}has(e){return this._map.has(e)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(Bt=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}};var Vt,qt=class{constructor(){this[Vt]="LinkedMap";this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}static{s(this,"LinkedMap")}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=0){let n=this._map.get(e);if(n)return t!==0&&this.touch(n,t),n.value}set(e,t,n=0){let r=this._map.get(e);if(r)r.value=t,n!==0&&this.touch(r,n);else{switch(r={key:e,value:t,next:void 0,previous:void 0},n){case 0:this.addItemLast(r);break;case 1:this.addItemFirst(r);break;case 2:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let n=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==n)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this,t=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.key,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}values(){let e=this,t=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:n.value,done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}entries(){let e=this,t=this._state,n=this._head,r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(n){let o={value:[n.key,n.value],done:!1};return n=n.next,o}else return{value:void 0,done:!0}}};return r}[(Vt=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,n=this.size;for(;t&&n>e;)this._map.delete(t.key),t=t.previous,n--;this._tail=t,this._size=n,t&&(t.next=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,n=e.previous;if(!t||!n)throw new Error("Invalid list");t.previous=n,n.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;let n=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(n.previous=r,r.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;let n=e.next,r=e.previous;e===this._head?(n.previous=void 0,this._head=n):(n.previous=r,r.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,n)=>{e.push([n,t])}),e}fromJSON(e){this.clear();for(let[t,n]of e)this.set(t,n)}};var le=class{constructor(){this.map=new Map}static{s(this,"SetMap")}add(e,t){let n=this.map.get(e);n||(n=new Set,this.map.set(e,n)),n.add(t)}delete(e,t){let n=this.map.get(e);n&&(n.delete(t),n.size===0&&this.map.delete(e))}forEach(e,t){let n=this.map.get(e);n&&n.forEach(t)}get(e){let t=this.map.get(e);return t||new Set}};var xn=!1,ce=null;var Kt=class i{constructor(){this.livingDisposables=new Map}static{s(this,"DisposableTracker")}static{this.idx=0}getDisposableData(e){let t=this.livingDisposables.get(e);return t||(t={parent:null,source:null,isSingleton:!1,value:e,idx:i.idx++},this.livingDisposables.set(e,t)),t}trackDisposable(e){let t=this.getDisposableData(e);t.source||(t.source=new Error().stack)}setParent(e,t){let n=this.getDisposableData(e);n.parent=t}markAsDisposed(e){this.livingDisposables.delete(e)}markAsSingleton(e){this.getDisposableData(e).isSingleton=!0}getRootParent(e,t){let n=t.get(e);if(n)return n;let r=e.parent?this.getRootParent(this.getDisposableData(e.parent),t):e;return t.set(e,r),r}getTrackedDisposables(){let e=new Map;return[...this.livingDisposables.entries()].filter(([,n])=>n.source!==null&&!this.getRootParent(n,e).isSingleton).flatMap(([n])=>n)}computeLeakingDisposables(e=10,t){let n;if(t)n=t;else{let l=new Map,c=[...this.livingDisposables.values()].filter(m=>m.source!==null&&!this.getRootParent(m,l).isSingleton);if(c.length===0)return;let f=new Set(c.map(m=>m.value));if(n=c.filter(m=>!(m.parent&&f.has(m.parent))),n.length===0)throw new Error("There are cyclic diposable chains!")}if(!n)return;function r(l){function c(m,p){for(;m.length>0&&p.some(d=>typeof d=="string"?d===m[0]:m[0].match(d));)m.shift()}s(c,"removePrefix");let f=l.source.split(`
6
+ `).map(m=>m.trim().replace("at ","")).filter(m=>m!=="");return c(f,["Error",/^trackDisposable \(.*\)$/,/^DisposableTracker.trackDisposable \(.*\)$/]),f.reverse()}s(r,"getStackTracePath");let o=new le;for(let l of n){let c=r(l);for(let f=0;f<=c.length;f++)o.add(c.slice(0,f).join(`
7
+ `),l)}n.sort(Z(l=>l.idx,C));let u="",a=0;for(let l of n.slice(0,e)){a++;let c=r(l),f=[];for(let m=0;m<c.length;m++){let p=c[m];p=`(shared with ${o.get(c.slice(0,m+1).join(`
8
8
  `)).size}/${n.length} leaks) at ${p}`;let g=o.get(c.slice(0,m).join(`
9
- `)),x=kt([...g].map(y=>r(y)[m]),y=>y);delete x[c[m]];for(let[y,M]of Object.entries(x))f.unshift(` - stacktraces of ${M.length} other leaks continue with ${y}`);f.unshift(p)}u+=`
9
+ `)),x=kt([...g].map(w=>r(w)[m]),w=>w);delete x[c[m]];for(let[w,M]of Object.entries(x))f.unshift(` - stacktraces of ${M.length} other leaks continue with ${w}`);f.unshift(p)}u+=`
10
10
 
11
11
 
12
- ==================== Leaking disposable ${l}/${n.length}: ${a.value.constructor.name} ====================
12
+ ==================== Leaking disposable ${a}/${n.length}: ${l.value.constructor.name} ====================
13
13
  ${f.join(`
14
14
  `)}
15
15
  ============================================================
@@ -19,23 +19,25 @@ ${f.join(`
19
19
 
20
20
  ... and ${n.length-e} more leaking disposables
21
21
 
22
- `),{leaks:n,details:u}}};function vn(i){ce=i}s(vn,"setDisposableTracker");if(xn){let i="__is_disposable_tracked__";vn(new class{trackDisposable(e){let t=new Error("Potentially leaked disposable").stack;setTimeout(()=>{e[i]||console.log(t)},3e3)}setParent(e,t){if(e&&e!==Z.None)try{e[i]=!0}catch{}}markAsDisposed(e){if(e&&e!==Z.None)try{e[i]=!0}catch{}}markAsSingleton(e){}})}function Ce(i){return ce?.trackDisposable(i),i}s(Ce,"trackDisposable");function et(i){ce?.markAsDisposed(i)}s(et,"markAsDisposed");function Ze(i,e){ce?.setParent(i,e)}s(Ze,"setParentOfDisposable");function En(i,e){if(ce)for(let t of i)ce.setParent(t,e)}s(En,"setParentOfDisposables");function zt(i){if(Je.is(i)){let e=[];for(let t of i)if(t)try{t.dispose()}catch(n){e.push(n)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(i)?[]:i}else if(i)return i.dispose(),i}s(zt,"dispose");function Wt(...i){let e=tt(()=>zt(i));return En(i,e),e}s(Wt,"combinedDisposable");function tt(i){let e=Ce({dispose:Xe(()=>{et(e),i()})});return e}s(tt,"toDisposable");var fe=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;Ce(this)}static{s(this,"DisposableStore")}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(et(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{zt(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return Ze(e,this),this._isDisposed?i.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}delete(e){if(e){if(e===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(e),e.dispose()}}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),Ze(e,null))}},Z=class{constructor(){this._store=new fe;Ce(this),Ze(this._store,this)}static{s(this,"Disposable")}static{this.None=Object.freeze({dispose(){}})}dispose(){et(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};var jt=class i{static{s(this,"Node")}static{this.Undefined=new i(void 0)}constructor(e){this.element=e,this.next=i.Undefined,this.prev=i.Undefined}};var Rn=globalThis.performance&&typeof globalThis.performance.now=="function",Fe=class i{static{s(this,"StopWatch")}static create(e){return new i(e)}constructor(e){this._now=Rn&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}};var Gt=!1,Ln=!1,ut;(oe=>{oe.None=s(()=>Z.None,"None");function e(R){if(Ln){let{onDidAddListener:h}=R,E=Re.create(),v=0;R.onDidAddListener=()=>{++v===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),E.print()),h?.()}}}s(e,"_addLeakageTraceLogic");function t(R,h){return d(R,()=>{},0,void 0,!0,void 0,h)}oe.defer=t,s(t,"defer");function n(R){return(h,E=null,v)=>{let I=!1,N;return N=R(k=>{if(!I)return N?N.dispose():I=!0,h.call(E,k)},null,v),I&&N.dispose(),N}}oe.once=n,s(n,"once");function r(R,h){return oe.once(oe.filter(R,h))}oe.onceIf=r,s(r,"onceIf");function o(R,h,E){return m((v,I=null,N)=>R(k=>v.call(I,h(k)),null,N),E)}oe.map=o,s(o,"map");function u(R,h,E){return m((v,I=null,N)=>R(k=>{h(k),v.call(I,k)},null,N),E)}oe.forEach=u,s(u,"forEach");function l(R,h,E){return m((v,I=null,N)=>R(k=>h(k)&&v.call(I,k),null,N),E)}oe.filter=l,s(l,"filter");function a(R){return R}oe.signal=a,s(a,"signal");function c(...R){return(h,E=null,v)=>{let I=Wt(...R.map(N=>N(k=>h.call(E,k))));return p(I,v)}}oe.any=c,s(c,"any");function f(R,h,E,v){let I=E;return o(R,N=>(I=h(I,N),I),v)}oe.reduce=f,s(f,"reduce");function m(R,h){let E,v={onWillAddFirstListener(){E=R(I.fire,I)},onDidRemoveLastListener(){E?.dispose()}};h||e(v);let I=new j(v);return h?.add(I),I.event}s(m,"snapshot");function p(R,h){return h instanceof Array?h.push(R):h&&h.add(R),R}s(p,"addAndReturnDisposable");function d(R,h,E=100,v=!1,I=!1,N,k){let K,V,ue,Ae=0,xe,vt={leakWarningThreshold:N,onWillAddFirstListener(){K=R(pn=>{Ae++,V=h(V,pn),v&&!ue&&(Oe.fire(V),V=void 0),xe=s(()=>{let gn=V;V=void 0,ue=void 0,(!v||Ae>1)&&Oe.fire(gn),Ae=0},"doFire"),typeof E=="number"?(clearTimeout(ue),ue=setTimeout(xe,E)):ue===void 0&&(ue=0,queueMicrotask(xe))})},onWillRemoveListener(){I&&Ae>0&&xe?.()},onDidRemoveLastListener(){xe=void 0,K.dispose()}};k||e(vt);let Oe=new j(vt);return k?.add(Oe),Oe.event}oe.debounce=d,s(d,"debounce");function g(R,h=0,E){return oe.debounce(R,(v,I)=>v?(v.push(I),v):[I],h,void 0,!0,void 0,E)}oe.accumulate=g,s(g,"accumulate");function x(R,h=(v,I)=>v===I,E){let v=!0,I;return l(R,N=>{let k=v||!h(N,I);return v=!1,I=N,k},E)}oe.latch=x,s(x,"latch");function y(R,h,E){return[oe.filter(R,h,E),oe.filter(R,v=>!h(v),E)]}oe.split=y,s(y,"split");function M(R,h=!1,E=[],v){let I=E.slice(),N=R(V=>{I?I.push(V):K.fire(V)});v&&v.add(N);let k=s(()=>{I?.forEach(V=>K.fire(V)),I=null},"flush"),K=new j({onWillAddFirstListener(){N||(N=R(V=>K.fire(V)),v&&v.add(N))},onDidAddFirstListener(){I&&(h?setTimeout(k):k())},onDidRemoveLastListener(){N&&N.dispose(),N=null}});return v&&v.add(K),K.event}oe.buffer=M,s(M,"buffer");function S(R,h){return s((v,I,N)=>{let k=h(new b);return R(function(K){let V=k.evaluate(K);V!==P&&v.call(I,V)},void 0,N)},"fn")}oe.chain=S,s(S,"chain");let P=Symbol("HaltChainable");class b{constructor(){this.steps=[]}static{s(this,"ChainableSynthesis")}map(h){return this.steps.push(h),this}forEach(h){return this.steps.push(E=>(h(E),E)),this}filter(h){return this.steps.push(E=>h(E)?E:P),this}reduce(h,E){let v=E;return this.steps.push(I=>(v=h(v,I),v)),this}latch(h=(E,v)=>E===v){let E=!0,v;return this.steps.push(I=>{let N=E||!h(I,v);return E=!1,v=I,N?I:P}),this}evaluate(h){for(let E of this.steps)if(h=E(h),h===P)break;return h}}function T(R,h,E=v=>v){let v=s((...K)=>k.fire(E(...K)),"fn"),I=s(()=>R.on(h,v),"onFirstListenerAdd"),N=s(()=>R.removeListener(h,v),"onLastListenerRemove"),k=new j({onWillAddFirstListener:I,onDidRemoveLastListener:N});return k.event}oe.fromNodeEventEmitter=T,s(T,"fromNodeEventEmitter");function _(R,h,E=v=>v){let v=s((...K)=>k.fire(E(...K)),"fn"),I=s(()=>R.addEventListener(h,v),"onFirstListenerAdd"),N=s(()=>R.removeEventListener(h,v),"onLastListenerRemove"),k=new j({onWillAddFirstListener:I,onDidRemoveLastListener:N});return k.event}oe.fromDOMEventEmitter=_,s(_,"fromDOMEventEmitter");function L(R,h){return new Promise(E=>n(R)(E,null,h))}oe.toPromise=L,s(L,"toPromise");function B(R){let h=new j;return R.then(E=>{h.fire(E)},()=>{h.fire(void 0)}).finally(()=>{h.dispose()}),h.event}oe.fromPromise=B,s(B,"fromPromise");function W(R,h){return R(E=>h.fire(E))}oe.forward=W,s(W,"forward");function De(R,h,E){return h(E),R(v=>h(v))}oe.runAndSubscribe=De,s(De,"runAndSubscribe");class Se{constructor(h,E){this._observable=h;this._counter=0;this._hasChanged=!1;let v={onWillAddFirstListener:s(()=>{h.addObserver(this),this._observable.reportChanges()},"onWillAddFirstListener"),onDidRemoveLastListener:s(()=>{h.removeObserver(this)},"onDidRemoveLastListener")};E||e(v),this.emitter=new j(v),E&&E.add(this.emitter)}static{s(this,"EmitterObserver")}beginUpdate(h){this._counter++}handlePossibleChange(h){}handleChange(h,E){this._hasChanged=!0}endUpdate(h){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function _e(R,h){return new Se(R,h).emitter.event}oe.fromObservable=_e,s(_e,"fromObservable");function xt(R){return(h,E,v)=>{let I=0,N=!1,k={beginUpdate(){I++},endUpdate(){I--,I===0&&(R.reportChanges(),N&&(N=!1,h.call(E)))},handlePossibleChange(){},handleChange(){N=!0}};R.addObserver(k),R.reportChanges();let K={dispose(){R.removeObserver(k)}};return v instanceof fe?v.add(K):Array.isArray(v)&&v.push(K),K}}oe.fromObservableLight=xt,s(xt,"fromObservableLight")})(ut||={});var nt=class i{constructor(e){this.listenerCount=0;this.invocationCount=0;this.elapsedOverall=0;this.durations=[];this.name=`${e}_${i._idPool++}`,i.all.add(this)}static{s(this,"EventProfiling")}static{this.all=new Set}static{this._idPool=0}start(e){this._stopWatch=new Fe,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}},$t=-1;var it=class i{constructor(e,t,n=(i._idPool++).toString(16).padStart(3,"0")){this._errorHandler=e;this.threshold=t;this.name=n;this._warnCountdown=0}static{s(this,"LeakageMonitor")}static{this._idPool=1}dispose(){this._stacks?.clear()}check(e,t){let n=this.threshold;if(n<=0||t<n)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[o,u]=this.getMostFrequentStack(),l=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${u}):`;console.warn(l),console.warn(o);let a=new rt(l,o);this._errorHandler(a)}return()=>{let o=this._stacks.get(e.value)||0;this._stacks.set(e.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[n,r]of this._stacks)(!e||t<r)&&(e=[n,r],t=r);return e}},Re=class i{constructor(e){this.value=e}static{s(this,"Stacktrace")}static create(){let e=new Error;return new i(e.stack??"")}print(){console.warn(this.value.split(`
22
+ `),{leaks:n,details:u}}};function vn(i){ce=i}s(vn,"setDisposableTracker");if(xn){let i="__is_disposable_tracked__";vn(new class{trackDisposable(e){let t=new Error("Potentially leaked disposable").stack;setTimeout(()=>{e[i]||console.log(t)},3e3)}setParent(e,t){if(e&&e!==ee.None)try{e[i]=!0}catch{}}markAsDisposed(e){if(e&&e!==ee.None)try{e[i]=!0}catch{}}markAsSingleton(e){}})}function et(i){return ce?.trackDisposable(i),i}s(et,"trackDisposable");function tt(i){ce?.markAsDisposed(i)}s(tt,"markAsDisposed");function Ce(i,e){ce?.setParent(i,e)}s(Ce,"setParentOfDisposable");function Rn(i,e){if(ce)for(let t of i)ce.setParent(t,e)}s(Rn,"setParentOfDisposables");function zt(i){if(Ye.is(i)){let e=[];for(let t of i)if(t)try{t.dispose()}catch(n){e.push(n)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(i)?[]:i}else if(i)return i.dispose(),i}s(zt,"dispose");function Wt(...i){let e=nt(()=>zt(i));return Rn(i,e),e}s(Wt,"combinedDisposable");function nt(i){let e=et({dispose:Je(()=>{tt(e),i()})});return e}s(nt,"toDisposable");var fe=class i{constructor(){this._toDispose=new Set;this._isDisposed=!1;et(this)}static{s(this,"DisposableStore")}static{this.DISABLE_DISPOSED_WARNING=!1}dispose(){this._isDisposed||(tt(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{zt(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return Ce(e,this),this._isDisposed?i.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}delete(e){if(e){if(e===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(e),e.dispose()}}deleteAndLeak(e){e&&this._toDispose.has(e)&&(this._toDispose.delete(e),Ce(e,null))}},ee=class{constructor(){this._store=new fe;et(this),Ce(this._store,this)}static{s(this,"Disposable")}static{this.None=Object.freeze({dispose(){}})}dispose(){tt(this),this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}};var jt=class i{static{s(this,"Node")}static{this.Undefined=new i(void 0)}constructor(e){this.element=e,this.next=i.Undefined,this.prev=i.Undefined}};var En=globalThis.performance&&typeof globalThis.performance.now=="function",Be=class i{static{s(this,"StopWatch")}static create(e){return new i(e)}constructor(e){this._now=En&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}};var Gt=!1,Ln=!1,at;(oe=>{oe.None=s(()=>ee.None,"None");function e(E){if(Ln){let{onDidAddListener:h}=E,R=Ee.create(),v=0;E.onDidAddListener=()=>{++v===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),R.print()),h?.()}}}s(e,"_addLeakageTraceLogic");function t(E,h){return d(E,()=>{},0,void 0,!0,void 0,h)}oe.defer=t,s(t,"defer");function n(E){return(h,R=null,v)=>{let I=!1,N;return N=E(k=>{if(!I)return N?N.dispose():I=!0,h.call(R,k)},null,v),I&&N.dispose(),N}}oe.once=n,s(n,"once");function r(E,h){return oe.once(oe.filter(E,h))}oe.onceIf=r,s(r,"onceIf");function o(E,h,R){return m((v,I=null,N)=>E(k=>v.call(I,h(k)),null,N),R)}oe.map=o,s(o,"map");function u(E,h,R){return m((v,I=null,N)=>E(k=>{h(k),v.call(I,k)},null,N),R)}oe.forEach=u,s(u,"forEach");function a(E,h,R){return m((v,I=null,N)=>E(k=>h(k)&&v.call(I,k),null,N),R)}oe.filter=a,s(a,"filter");function l(E){return E}oe.signal=l,s(l,"signal");function c(...E){return(h,R=null,v)=>{let I=Wt(...E.map(N=>N(k=>h.call(R,k))));return p(I,v)}}oe.any=c,s(c,"any");function f(E,h,R,v){let I=R;return o(E,N=>(I=h(I,N),I),v)}oe.reduce=f,s(f,"reduce");function m(E,h){let R,v={onWillAddFirstListener(){R=E(I.fire,I)},onDidRemoveLastListener(){R?.dispose()}};h||e(v);let I=new j(v);return h?.add(I),I.event}s(m,"snapshot");function p(E,h){return h instanceof Array?h.push(E):h&&h.add(E),E}s(p,"addAndReturnDisposable");function d(E,h,R=100,v=!1,I=!1,N,k){let V,K,ue,Oe=0,xe,vt={leakWarningThreshold:N,onWillAddFirstListener(){V=E(pn=>{Oe++,K=h(K,pn),v&&!ue&&(Me.fire(K),K=void 0),xe=s(()=>{let gn=K;K=void 0,ue=void 0,(!v||Oe>1)&&Me.fire(gn),Oe=0},"doFire"),typeof R=="number"?(clearTimeout(ue),ue=setTimeout(xe,R)):ue===void 0&&(ue=0,queueMicrotask(xe))})},onWillRemoveListener(){I&&Oe>0&&xe?.()},onDidRemoveLastListener(){xe=void 0,V.dispose()}};k||e(vt);let Me=new j(vt);return k?.add(Me),Me.event}oe.debounce=d,s(d,"debounce");function g(E,h=0,R){return oe.debounce(E,(v,I)=>v?(v.push(I),v):[I],h,void 0,!0,void 0,R)}oe.accumulate=g,s(g,"accumulate");function x(E,h=(v,I)=>v===I,R){let v=!0,I;return a(E,N=>{let k=v||!h(N,I);return v=!1,I=N,k},R)}oe.latch=x,s(x,"latch");function w(E,h,R){return[oe.filter(E,h,R),oe.filter(E,v=>!h(v),R)]}oe.split=w,s(w,"split");function M(E,h=!1,R=[],v){let I=R.slice(),N=E(K=>{I?I.push(K):V.fire(K)});v&&v.add(N);let k=s(()=>{I?.forEach(K=>V.fire(K)),I=null},"flush"),V=new j({onWillAddFirstListener(){N||(N=E(K=>V.fire(K)),v&&v.add(N))},onDidAddFirstListener(){I&&(h?setTimeout(k):k())},onDidRemoveLastListener(){N&&N.dispose(),N=null}});return v&&v.add(V),V.event}oe.buffer=M,s(M,"buffer");function S(E,h){return s((v,I,N)=>{let k=h(new b);return E(function(V){let K=k.evaluate(V);K!==P&&v.call(I,K)},void 0,N)},"fn")}oe.chain=S,s(S,"chain");let P=Symbol("HaltChainable");class b{constructor(){this.steps=[]}static{s(this,"ChainableSynthesis")}map(h){return this.steps.push(h),this}forEach(h){return this.steps.push(R=>(h(R),R)),this}filter(h){return this.steps.push(R=>h(R)?R:P),this}reduce(h,R){let v=R;return this.steps.push(I=>(v=h(v,I),v)),this}latch(h=(R,v)=>R===v){let R=!0,v;return this.steps.push(I=>{let N=R||!h(I,v);return R=!1,v=I,N?I:P}),this}evaluate(h){for(let R of this.steps)if(h=R(h),h===P)break;return h}}function T(E,h,R=v=>v){let v=s((...V)=>k.fire(R(...V)),"fn"),I=s(()=>E.on(h,v),"onFirstListenerAdd"),N=s(()=>E.removeListener(h,v),"onLastListenerRemove"),k=new j({onWillAddFirstListener:I,onDidRemoveLastListener:N});return k.event}oe.fromNodeEventEmitter=T,s(T,"fromNodeEventEmitter");function _(E,h,R=v=>v){let v=s((...V)=>k.fire(R(...V)),"fn"),I=s(()=>E.addEventListener(h,v),"onFirstListenerAdd"),N=s(()=>E.removeEventListener(h,v),"onLastListenerRemove"),k=new j({onWillAddFirstListener:I,onDidRemoveLastListener:N});return k.event}oe.fromDOMEventEmitter=_,s(_,"fromDOMEventEmitter");function L(E,h){return new Promise(R=>n(E)(R,null,h))}oe.toPromise=L,s(L,"toPromise");function B(E){let h=new j;return E.then(R=>{h.fire(R)},()=>{h.fire(void 0)}).finally(()=>{h.dispose()}),h.event}oe.fromPromise=B,s(B,"fromPromise");function W(E,h){return E(R=>h.fire(R))}oe.forward=W,s(W,"forward");function Se(E,h,R){return h(R),E(v=>h(v))}oe.runAndSubscribe=Se,s(Se,"runAndSubscribe");class Ae{constructor(h,R){this._observable=h;this._counter=0;this._hasChanged=!1;let v={onWillAddFirstListener:s(()=>{h.addObserver(this),this._observable.reportChanges()},"onWillAddFirstListener"),onDidRemoveLastListener:s(()=>{h.removeObserver(this)},"onDidRemoveLastListener")};R||e(v),this.emitter=new j(v),R&&R.add(this.emitter)}static{s(this,"EmitterObserver")}beginUpdate(h){this._counter++}handlePossibleChange(h){}handleChange(h,R){this._hasChanged=!0}endUpdate(h){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function _e(E,h){return new Ae(E,h).emitter.event}oe.fromObservable=_e,s(_e,"fromObservable");function xt(E){return(h,R,v)=>{let I=0,N=!1,k={beginUpdate(){I++},endUpdate(){I--,I===0&&(E.reportChanges(),N&&(N=!1,h.call(R)))},handlePossibleChange(){},handleChange(){N=!0}};E.addObserver(k),E.reportChanges();let V={dispose(){E.removeObserver(k)}};return v instanceof fe?v.add(V):Array.isArray(v)&&v.push(V),V}}oe.fromObservableLight=xt,s(xt,"fromObservableLight")})(at||={});var it=class i{constructor(e){this.listenerCount=0;this.invocationCount=0;this.elapsedOverall=0;this.durations=[];this.name=`${e}_${i._idPool++}`,i.all.add(this)}static{s(this,"EventProfiling")}static{this.all=new Set}static{this._idPool=0}start(e){this._stopWatch=new Be,this.listenerCount=e}stop(){if(this._stopWatch){let e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}},$t=-1;var rt=class i{constructor(e,t,n=(i._idPool++).toString(16).padStart(3,"0")){this._errorHandler=e;this.threshold=t;this.name=n;this._warnCountdown=0}static{s(this,"LeakageMonitor")}static{this._idPool=1}dispose(){this._stacks?.clear()}check(e,t){let n=this.threshold;if(n<=0||t<n)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=n*.5;let[o,u]=this.getMostFrequentStack(),a=`[${this.name}] potential listener LEAK detected, having ${t} listeners already. MOST frequent listener (${u}):`;console.warn(a),console.warn(o);let l=new st(a,o);this._errorHandler(l)}return()=>{let o=this._stacks.get(e.value)||0;this._stacks.set(e.value,o-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(let[n,r]of this._stacks)(!e||t<r)&&(e=[n,r],t=r);return e}},Ee=class i{constructor(e){this.value=e}static{s(this,"Stacktrace")}static create(){let e=new Error;return new i(e.stack??"")}print(){console.warn(this.value.split(`
23
23
  `).slice(2).join(`
24
- `))}},rt=class extends Error{static{s(this,"ListenerLeakError")}constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},st=class extends Error{static{s(this,"ListenerRefusalError")}constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},In=0,me=class{constructor(e){this.value=e;this.id=In++}static{s(this,"UniqueContainer")}},yn=2,wn=s((i,e)=>{if(i instanceof me)e(i);else for(let t=0;t<i.length;t++){let n=i[t];n&&e(n)}},"forEachListener"),j=class{constructor(e){this._size=0;this._options=e,this._leakageMon=$t>0||this._options?.leakWarningThreshold?new it(e?.onListenerError??le,this._options?.leakWarningThreshold??$t):void 0,this._perfMon=this._options?._profName?new nt(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}static{s(this,"Emitter")}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(Gt){let e=this._listeners;queueMicrotask(()=>{wn(e,t=>t.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(e,t,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let a=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(a);let c=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],f=new st(`${a}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0]);return(this._options?.onListenerError||le)(f),Z.None}if(this._disposed)return Z.None;t&&(e=e.bind(t));let r=new me(e),o,u;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=Re.create(),o=this._leakageMon.check(r.stack,this._size+1)),Gt&&(r.stack=u??Re.create()),this._listeners?this._listeners instanceof me?(this._deliveryQueue??=new ot,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let l=tt(()=>{o?.(),this._removeListener(r)});return n instanceof fe?n.add(l):Array.isArray(n)&&n.push(l),l},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,n=t.indexOf(e);if(n===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*yn<=t.length){let o=0;for(let u=0;u<t.length;u++)t[u]?t[o++]=t[u]:r&&o<this._deliveryQueue.end&&(this._deliveryQueue.end--,o<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=o}}_deliver(e,t){if(!e)return;let n=this._options?.onListenerError||le;if(!n){e.value(t);return}try{e.value(t)}catch(r){n(r)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof me)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}};var ot=class{constructor(){this.i=-1;this.end=0}static{s(this,"EventDeliveryQueuePrivate")}enqueue(e,t,n){this.i=0,this.end=n,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}};var Ht=Object.freeze(function(i,e){let t=setTimeout(i.bind(e),0);return{dispose(){clearTimeout(t)}}}),Nn;(n=>{function i(r){return r===n.None||r===n.Cancelled||r instanceof lt?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}n.isCancellationToken=i,s(i,"isCancellationToken"),n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:ut.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Ht})})(Nn||={});var lt=class{constructor(){this._isCancelled=!1;this._emitter=null}static{s(this,"MutableToken")}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?Ht:(this._emitter||(this._emitter=new j),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}};function Dn(i){return i}s(Dn,"identity");var Be=class{constructor(e,t){this.lastCache=void 0;this.lastArgKey=void 0;typeof e=="function"?(this._fn=e,this._computeKey=Dn):(this._fn=t,this._computeKey=e.getCacheKey)}static{s(this,"LRUCachedFunction")}get(e){let t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}};var Le=class{constructor(e){this.executor=e;this._didRun=!1}static{s(this,"Lazy")}get hasValue(){return this._didRun}get value(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}};function Yt(i){return i.split(/\r\n|\r|\n/)}s(Yt,"splitLines");function ct(i,e){let t=Math.min(i.length,e.length),n;for(n=0;n<t;n++)if(i.charCodeAt(n)!==e.charCodeAt(n))return n;return t}s(ct,"commonPrefixLength");function Zt(i,e){let t=Math.min(i.length,e.length),n,r=i.length-1,o=e.length-1;for(n=0;n<t;n++)if(i.charCodeAt(r-n)!==e.charCodeAt(o-n))return n;return t}s(Zt,"commonSuffixLength");var U1=String.fromCharCode(65279);var Qt=class i{static{s(this,"GraphemeBreakTree")}static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=Sn()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;let t=this._data,n=t.length/3,r=1;for(;r<=n;)if(e<t[3*r])r=2*r;else if(e>t[3*r+1])r=2*r+1;else return t[3*r+2];return 0}};function Sn(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}s(Sn,"getGraphemeBreakRawData");var Xt=class i{constructor(e){this.confusableDictionary=e}static{s(this,"AmbiguousCharacters")}static{this.ambiguousCharacterData=new Le(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))}static{this.cache=new Be({getCacheKey:JSON.stringify},e=>{function t(f){let m=new Map;for(let p=0;p<f.length;p+=2)m.set(f[p],f[p+1]);return m}s(t,"arrayToMap");function n(f,m){let p=new Map(f);for(let[d,g]of m)p.set(d,g);return p}s(n,"mergeMaps");function r(f,m){if(!f)return m;let p=new Map;for(let[d,g]of f)m.has(d)&&p.set(d,g);return p}s(r,"intersectMaps");let o=this.ambiguousCharacterData.value,u=e.filter(f=>!f.startsWith("_")&&f in o);u.length===0&&(u=["_default"]);let l;for(let f of u){let m=t(o[f]);l=r(l,m)}let a=t(o._common),c=n(a,l);return new i(c)})}static getInstance(e){return i.cache.get(Array.from(e))}static{this._locales=new Le(()=>Object.keys(i.ambiguousCharacterData.value).filter(e=>!e.startsWith("_")))}static getLocales(){return i._locales.value}isAmbiguous(e){return this.confusableDictionary.has(e)}containsAmbiguousCharacter(e){for(let t=0;t<e.length;t++){let n=e.codePointAt(t);if(typeof n=="number"&&this.isAmbiguous(n))return!0}return!1}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}},Jt=class i{static{s(this,"InvisibleCharacters")}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{this._data=void 0}static getData(){return this._data||(this._data=new Set(i.getRawData())),this._data}static isInvisibleCharacter(e){return i.getData().has(e)}static containsInvisibleCharacter(e){for(let t=0;t<e.length;t++){let n=e.codePointAt(t);if(typeof n=="number"&&i.isInvisibleCharacter(n))return!0}return!1}static get codePoints(){return i.getData()}};var G=class i{constructor(e,t){this.lineCount=e;this.columnCount=t}static{s(this,"TextLength")}static{this.zero=new i(0,0)}static lengthDiffNonNegative(e,t){return t.isLessThan(e)?i.zero:e.lineCount===t.lineCount?new i(0,t.columnCount-e.columnCount):new i(t.lineCount-e.lineCount,t.columnCount)}static betweenPositions(e,t){return e.lineNumber===t.lineNumber?new i(0,t.column-e.column):new i(t.lineNumber-e.lineNumber,t.column-1)}static fromPosition(e){return new i(e.lineNumber-1,e.column-1)}static ofRange(e){return i.betweenPositions(e.getStartPosition(),e.getEndPosition())}static ofText(e){let t=0,n=0;for(let r of e)r===`
25
- `?(t++,n=0):n++;return new i(t,n)}isZero(){return this.lineCount===0&&this.columnCount===0}isLessThan(e){return this.lineCount!==e.lineCount?this.lineCount<e.lineCount:this.columnCount<e.columnCount}isGreaterThan(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>e.columnCount}isGreaterThanOrEqualTo(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>=e.columnCount}equals(e){return this.lineCount===e.lineCount&&this.columnCount===e.columnCount}compare(e){return this.lineCount!==e.lineCount?this.lineCount-e.lineCount:this.columnCount-e.columnCount}add(e){return e.lineCount===0?new i(this.lineCount,this.columnCount+e.columnCount):new i(this.lineCount+e.lineCount,e.columnCount)}createRange(e){return this.lineCount===0?new w(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new w(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}toRange(){return new w(1,1,this.lineCount+1,this.columnCount+1)}toLineRange(){return O.ofLength(1,this.lineCount)}addToPosition(e){return this.lineCount===0?new U(e.lineNumber,e.column+this.columnCount):new U(e.lineNumber+this.lineCount,this.columnCount+1)}addToRange(e){return w.fromPositions(this.addToPosition(e.getStartPosition()),this.addToPosition(e.getEndPosition()))}toString(){return`${this.lineCount},${this.columnCount}`}};var Ie=class{constructor(e){this.text=e;this.lineStartOffsetByLineIdx=[],this.lineEndOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)e.charAt(t)===`
26
- `&&(this.lineStartOffsetByLineIdx.push(t+1),t>0&&e.charAt(t-1)==="\r"?this.lineEndOffsetByLineIdx.push(t-1):this.lineEndOffsetByLineIdx.push(t));this.lineEndOffsetByLineIdx.push(e.length)}static{s(this,"PositionOffsetTransformer")}getOffset(e){return this.lineStartOffsetByLineIdx[e.lineNumber-1]+e.column-1}getOffsetRange(e){return new A(this.getOffset(e.getStartPosition()),this.getOffset(e.getEndPosition()))}getPosition(e){let t=Y(this.lineStartOffsetByLineIdx,o=>o<=e),n=t+1,r=e-this.lineStartOffsetByLineIdx[t]+1;return new U(n,r)}getRange(e){return w.fromPositions(this.getPosition(e.start),this.getPosition(e.endExclusive))}getTextLength(e){return G.ofRange(this.getRange(e))}get textLength(){let e=this.lineStartOffsetByLineIdx.length-1;return new G(e,this.text.length-this.lineStartOffsetByLineIdx[e])}getLineLength(e){return this.lineEndOffsetByLineIdx[e-1]-this.lineStartOffsetByLineIdx[e-1]}};var ft=class i{constructor(e){this.edits=e;ie(()=>Pe(e,(t,n)=>t.range.getEndPosition().isBeforeOrEqual(n.range.getStartPosition())))}static{s(this,"TextEdit")}static fromOffsetEdit(e,t){let n=e.edits.map(r=>new $(t.getTransformer().getRange(r.replaceRange),r.newText));return new i(n)}static single(e,t){return new i([new $(e,t)])}static insert(e,t){return new i([new $(w.fromPositions(e,e),t)])}normalize(){let e=[];for(let t of this.edits)if(e.length>0&&e[e.length-1].range.getEndPosition().equals(t.range.getStartPosition())){let n=e[e.length-1];e[e.length-1]=new $(n.range.plusRange(t.range),n.text+t.text)}else t.isEmpty||e.push(t);return new i(e)}mapPosition(e){let t=0,n=0,r=0;for(let o of this.edits){let u=o.range.getStartPosition();if(e.isBeforeOrEqual(u))break;let l=o.range.getEndPosition(),a=G.ofText(o.text);if(e.isBefore(l)){let c=new U(u.lineNumber+t,u.column+(u.lineNumber+t===n?r:0)),f=a.addToPosition(c);return Ke(c,f)}u.lineNumber+t!==n&&(r=0),t+=a.lineCount-(o.range.endLineNumber-o.range.startLineNumber),a.lineCount===0?l.lineNumber!==u.lineNumber?r+=a.columnCount-(l.column-1):r+=a.columnCount-(l.column-u.column):r=a.columnCount,n=l.lineNumber+t}return new U(e.lineNumber+t,e.column+(e.lineNumber+t===n?r:0))}mapRange(e){function t(u){return u instanceof U?u:u.getStartPosition()}s(t,"getStart");function n(u){return u instanceof U?u:u.getEndPosition()}s(n,"getEnd");let r=t(this.mapPosition(e.getStartPosition())),o=n(this.mapPosition(e.getEndPosition()));return Ke(r,o)}inverseMapPosition(e,t){return this.inverse(t).mapPosition(e)}inverseMapRange(e,t){return this.inverse(t).mapRange(e)}apply(e){let t="",n=new U(1,1);for(let o of this.edits){let u=o.range,l=u.getStartPosition(),a=u.getEndPosition(),c=Ke(n,l);c.isEmpty()||(t+=e.getValueOfRange(c)),t+=o.text,n=a}let r=Ke(n,e.endPositionExclusive);return r.isEmpty()||(t+=e.getValueOfRange(r)),t}applyToString(e){let t=new dt(e);return this.apply(t)}inverse(e){let t=this.getNewRanges();return new i(this.edits.map((n,r)=>new $(t[r],e.getValueOfRange(n.range))))}getNewRanges(){let e=[],t=0,n=0,r=0;for(let o of this.edits){let u=G.ofText(o.text),l=U.lift({lineNumber:o.range.startLineNumber+n,column:o.range.startColumn+(o.range.startLineNumber===t?r:0)}),a=u.createRange(l);e.push(a),n=a.endLineNumber-o.range.endLineNumber,r=a.endColumn-o.range.endColumn,t=o.range.endLineNumber}return e}toSingle(e){if(this.edits.length===0)throw new F;if(this.edits.length===1)return this.edits[0];let t=this.edits[0].range.getStartPosition(),n=this.edits[this.edits.length-1].range.getEndPosition(),r="";for(let o=0;o<this.edits.length;o++){let u=this.edits[o];if(r+=u.text,o<this.edits.length-1){let l=this.edits[o+1],a=w.fromPositions(u.range.getEndPosition(),l.range.getStartPosition()),c=e.getValueOfRange(a);r+=c}}return new $(w.fromPositions(t,n),r)}equals(e){return ke(this.edits,e.edits,(t,n)=>t.equals(n))}},$=class i{constructor(e,t){this.range=e;this.text=t}static{s(this,"SingleTextEdit")}static joinEdits(e,t){if(e.length===0)throw new F;if(e.length===1)return e[0];let n=e[0].range.getStartPosition(),r=e[e.length-1].range.getEndPosition(),o="";for(let u=0;u<e.length;u++){let l=e[u];if(o+=l.text,u<e.length-1){let a=e[u+1],c=w.fromPositions(l.range.getEndPosition(),a.range.getStartPosition()),f=t.getValueOfRange(c);o+=f}}return new i(w.fromPositions(n,r),o)}get isEmpty(){return this.range.isEmpty()&&this.text.length===0}static equals(e,t){return e.range.equalsRange(t.range)&&e.text===t.text}toSingleEditOperation(){return{range:this.range,text:this.text}}toEdit(){return new ft([this])}equals(e){return i.equals(this,e)}extendToCoverRange(e,t){if(this.range.containsRange(e))return this;let n=this.range.plusRange(e),r=t.getValueOfRange(w.fromPositions(n.getStartPosition(),this.range.getStartPosition())),o=t.getValueOfRange(w.fromPositions(this.range.getEndPosition(),n.getEndPosition())),u=r+this.text+o;return new i(n,u)}extendToFullLine(e){let t=new w(this.range.startLineNumber,1,this.range.endLineNumber,e.getTransformer().getLineLength(this.range.endLineNumber)+1);return this.extendToCoverRange(t,e)}removeCommonPrefix(e){let t=e.getValueOfRange(this.range).replaceAll(`\r
24
+ `))}},st=class extends Error{static{s(this,"ListenerLeakError")}constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}},ot=class extends Error{static{s(this,"ListenerRefusalError")}constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}},In=0,me=class{constructor(e){this.value=e;this.id=In++}static{s(this,"UniqueContainer")}},yn=2,wn=s((i,e)=>{if(i instanceof me)e(i);else for(let t=0;t<i.length;t++){let n=i[t];n&&e(n)}},"forEachListener"),j=class{constructor(e){this._size=0;this._options=e,this._leakageMon=$t>0||this._options?.leakWarningThreshold?new rt(e?.onListenerError??ae,this._options?.leakWarningThreshold??$t):void 0,this._perfMon=this._options?._profName?new it(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}static{s(this,"Emitter")}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(Gt){let e=this._listeners;queueMicrotask(()=>{wn(e,t=>t.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(e,t,n)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let l=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(l);let c=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],f=new ot(`${l}. HINT: Stack shows most frequent listener (${c[1]}-times)`,c[0]);return(this._options?.onListenerError||ae)(f),ee.None}if(this._disposed)return ee.None;t&&(e=e.bind(t));let r=new me(e),o,u;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=Ee.create(),o=this._leakageMon.check(r.stack,this._size+1)),Gt&&(r.stack=u??Ee.create()),this._listeners?this._listeners instanceof me?(this._deliveryQueue??=new ut,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._options?.onDidAddListener?.(this),this._size++;let a=nt(()=>{o?.(),this._removeListener(r)});return n instanceof fe?n.add(a):Array.isArray(n)&&n.push(a),a},this._event}_removeListener(e){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let t=this._listeners,n=t.indexOf(e);if(n===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,t[n]=void 0;let r=this._deliveryQueue.current===this;if(this._size*yn<=t.length){let o=0;for(let u=0;u<t.length;u++)t[u]?t[o++]=t[u]:r&&o<this._deliveryQueue.end&&(this._deliveryQueue.end--,o<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=o}}_deliver(e,t){if(!e)return;let n=this._options?.onListenerError||ae;if(!n){e.value(t);return}try{e.value(t)}catch(r){n(r)}}_deliverQueue(e){let t=e.current._listeners;for(;e.i<e.end;)this._deliver(t[e.i++],e.value);e.reset()}fire(e){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof me)this._deliver(this._listeners,e);else{let t=this._deliveryQueue;t.enqueue(this,e,this._listeners.length),this._deliverQueue(t)}this._perfMon?.stop()}hasListeners(){return this._size>0}};var ut=class{constructor(){this.i=-1;this.end=0}static{s(this,"EventDeliveryQueuePrivate")}enqueue(e,t,n){this.i=0,this.end=n,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}};var Ht=Object.freeze(function(i,e){let t=setTimeout(i.bind(e),0);return{dispose(){clearTimeout(t)}}}),Nn;(n=>{function i(r){return r===n.None||r===n.Cancelled||r instanceof lt?!0:!r||typeof r!="object"?!1:typeof r.isCancellationRequested=="boolean"&&typeof r.onCancellationRequested=="function"}n.isCancellationToken=i,s(i,"isCancellationToken"),n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:at.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Ht})})(Nn||={});var lt=class{constructor(){this._isCancelled=!1;this._emitter=null}static{s(this,"MutableToken")}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?Ht:(this._emitter||(this._emitter=new j),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}};function Dn(i){return i}s(Dn,"identity");var Ve=class{constructor(e,t){this.lastCache=void 0;this.lastArgKey=void 0;typeof e=="function"?(this._fn=e,this._computeKey=Dn):(this._fn=t,this._computeKey=e.getCacheKey)}static{s(this,"LRUCachedFunction")}get(e){let t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}};var Le=class{constructor(e){this.executor=e;this._didRun=!1}static{s(this,"Lazy")}get hasValue(){return this._didRun}get value(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}};function Yt(i){return i.split(/\r\n|\r|\n/)}s(Yt,"splitLines");function ft(i,e){let t=Math.min(i.length,e.length),n;for(n=0;n<t;n++)if(i.charCodeAt(n)!==e.charCodeAt(n))return n;return t}s(ft,"commonPrefixLength");function Zt(i,e){let t=Math.min(i.length,e.length),n,r=i.length-1,o=e.length-1;for(n=0;n<t;n++)if(i.charCodeAt(r-n)!==e.charCodeAt(o-n))return n;return t}s(Zt,"commonSuffixLength");var g1=String.fromCharCode(65279);var Qt=class i{static{s(this,"GraphemeBreakTree")}static{this._INSTANCE=null}static getInstance(){return i._INSTANCE||(i._INSTANCE=new i),i._INSTANCE}constructor(){this._data=Sn()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;let t=this._data,n=t.length/3,r=1;for(;r<=n;)if(e<t[3*r])r=2*r;else if(e>t[3*r+1])r=2*r+1;else return t[3*r+2];return 0}};function Sn(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}s(Sn,"getGraphemeBreakRawData");var Xt=class i{constructor(e){this.confusableDictionary=e}static{s(this,"AmbiguousCharacters")}static{this.ambiguousCharacterData=new Le(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))}static{this.cache=new Ve({getCacheKey:JSON.stringify},e=>{function t(f){let m=new Map;for(let p=0;p<f.length;p+=2)m.set(f[p],f[p+1]);return m}s(t,"arrayToMap");function n(f,m){let p=new Map(f);for(let[d,g]of m)p.set(d,g);return p}s(n,"mergeMaps");function r(f,m){if(!f)return m;let p=new Map;for(let[d,g]of f)m.has(d)&&p.set(d,g);return p}s(r,"intersectMaps");let o=this.ambiguousCharacterData.value,u=e.filter(f=>!f.startsWith("_")&&f in o);u.length===0&&(u=["_default"]);let a;for(let f of u){let m=t(o[f]);a=r(a,m)}let l=t(o._common),c=n(l,a);return new i(c)})}static getInstance(e){return i.cache.get(Array.from(e))}static{this._locales=new Le(()=>Object.keys(i.ambiguousCharacterData.value).filter(e=>!e.startsWith("_")))}static getLocales(){return i._locales.value}isAmbiguous(e){return this.confusableDictionary.has(e)}containsAmbiguousCharacter(e){for(let t=0;t<e.length;t++){let n=e.codePointAt(t);if(typeof n=="number"&&this.isAmbiguous(n))return!0}return!1}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}},Jt=class i{static{s(this,"InvisibleCharacters")}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{this._data=void 0}static getData(){return this._data||(this._data=new Set(i.getRawData())),this._data}static isInvisibleCharacter(e){return i.getData().has(e)}static containsInvisibleCharacter(e){for(let t=0;t<e.length;t++){let n=e.codePointAt(t);if(typeof n=="number"&&i.isInvisibleCharacter(n))return!0}return!1}static get codePoints(){return i.getData()}};var U=class i{static{s(this,"Position")}constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new i(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return i.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return i.isBefore(this,e)}static isBefore(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<t.column}isBeforeOrEqual(e){return i.isBeforeOrEqual(this,e)}static isBeforeOrEqual(e,t){return e.lineNumber<t.lineNumber?!0:t.lineNumber<e.lineNumber?!1:e.column<=t.column}static compare(e,t){let n=e.lineNumber|0,r=t.lineNumber|0;if(n===r){let o=e.column|0,u=t.column|0;return o-u}return n-r}clone(){return new i(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(e){return new i(e.lineNumber,e.column)}static isIPosition(e){return e&&typeof e.lineNumber=="number"&&typeof e.column=="number"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}};var A=class i{constructor(e,t){this.start=e;this.endExclusive=t;if(e>t)throw new F(`Invalid range: ${this.toString()}`)}static{s(this,"OffsetRange")}static fromTo(e,t){return new i(e,t)}static addRange(e,t){let n=0;for(;n<t.length&&t[n].endExclusive<e.start;)n++;let r=n;for(;r<t.length&&t[r].start<=e.endExclusive;)r++;if(n===r)t.splice(n,0,e);else{let o=Math.min(e.start,t[n].start),u=Math.max(e.endExclusive,t[r-1].endExclusive);t.splice(n,r-n,new i(o,u))}}static tryCreate(e,t){if(!(e>t))return new i(e,t)}static ofLength(e){return new i(0,e)}static ofStartAndLength(e,t){return new i(e,e+t)}static emptyAt(e){return new i(e,e)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new i(this.start+e,this.endExclusive+e)}deltaStart(e){return new i(this.start+e,this.endExclusive)}deltaEnd(e){return new i(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}equals(e){return this.start===e.start&&this.endExclusive===e.endExclusive}containsRange(e){return this.start<=e.start&&e.endExclusive<=this.endExclusive}contains(e){return this.start<=e&&e<this.endExclusive}join(e){return new i(Math.min(this.start,e.start),Math.max(this.endExclusive,e.endExclusive))}intersect(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);if(t<=n)return new i(t,n)}intersectionLength(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);return Math.max(0,n-t)}intersects(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);return t<n}intersectsOrTouches(e){let t=Math.max(this.start,e.start),n=Math.min(this.endExclusive,e.endExclusive);return t<=n}isBefore(e){return this.endExclusive<=e.start}isAfter(e){return this.start>=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new F(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new F(`Invalid clipping range: ${this.toString()}`);return e<this.start?this.endExclusive-(this.start-e)%this.length:e>=this.endExclusive?this.start+(e-this.start)%this.length:e}map(e){let t=[];for(let n=this.start;n<this.endExclusive;n++)t.push(e(n));return t}forEach(e){for(let t=this.start;t<this.endExclusive;t++)e(t)}joinRightTouching(e){if(this.endExclusive!==e.start)throw new F(`Invalid join: ${this.toString()} and ${e.toString()}`);return new i(this.start,e.endExclusive)}};var y=class i{static{s(this,"Range")}constructor(e,t,n,r){e>n||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}isEmpty(){return i.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return i.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<e.startColumn||t.lineNumber===e.endLineNumber&&t.column>e.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumber<e.startLineNumber||t.lineNumber>e.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return i.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>e.endColumn)}strictContainsRange(e){return i.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumber<e.startLineNumber||t.endLineNumber<e.startLineNumber||t.startLineNumber>e.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return i.plusRange(this,e)}static plusRange(e,t){let n,r,o,u;return t.startLineNumber<e.startLineNumber?(n=t.startLineNumber,r=t.startColumn):t.startLineNumber===e.startLineNumber?(n=t.startLineNumber,r=Math.min(t.startColumn,e.startColumn)):(n=e.startLineNumber,r=e.startColumn),t.endLineNumber>e.endLineNumber?(o=t.endLineNumber,u=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,u=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,u=e.endColumn),new i(n,r,o,u)}intersectRanges(e){return i.intersectRanges(this,e)}static intersectRanges(e,t){let n=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,u=e.endColumn,a=t.startLineNumber,l=t.startColumn,c=t.endLineNumber,f=t.endColumn;return n<a?(n=a,r=l):n===a&&(r=Math.max(r,l)),o>c?(o=c,u=f):o===c&&(u=Math.min(u,f)),n>o||n===o&&r>u?null:new i(n,r,o,u)}equalsRange(e){return i.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return i.getEndPosition(this)}static getEndPosition(e){return new U(e.endLineNumber,e.endColumn)}getStartPosition(){return i.getStartPosition(this)}static getStartPosition(e){return new U(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new i(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new i(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return i.collapseToStart(this)}static collapseToStart(e){return new i(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return i.collapseToEnd(this)}static collapseToEnd(e){return new i(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new i(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(e,t=e){return new i(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new i(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn)}static areIntersecting(e,t){return!(e.endLineNumber<t.startLineNumber||e.endLineNumber===t.startLineNumber&&e.endColumn<=t.startColumn||t.endLineNumber<e.startLineNumber||t.endLineNumber===e.startLineNumber&&t.endColumn<=e.startColumn)}static compareRangesUsingStarts(e,t){if(e&&t){let o=e.startLineNumber|0,u=t.startLineNumber|0;if(o===u){let a=e.startColumn|0,l=t.startColumn|0;if(a===l){let c=e.endLineNumber|0,f=t.endLineNumber|0;if(c===f){let m=e.endColumn|0,p=t.endColumn|0;return m-p}return c-f}return a-l}return o-u}return(e?1:0)-(t?1:0)}static compareRangesUsingEnds(e,t){return e.endLineNumber===t.endLineNumber?e.endColumn===t.endColumn?e.startLineNumber===t.startLineNumber?e.startColumn-t.startColumn:e.startLineNumber-t.startLineNumber:e.endColumn-t.endColumn:e.endLineNumber-t.endLineNumber}static spansMultipleLines(e){return e.endLineNumber>e.startLineNumber}toJSON(){return this}};var O=class i{static{s(this,"LineRange")}static ofLength(e,t){return new i(e,e+t)}static fromRange(e){return new i(e.startLineNumber,e.endLineNumber)}static fromRangeInclusive(e){return new i(e.startLineNumber,e.endLineNumber+1)}static{this.compareByStart=Z(e=>e.startLineNumber,C)}static subtract(e,t){return t?e.startLineNumber<t.startLineNumber&&t.endLineNumberExclusive<e.endLineNumberExclusive?[new i(e.startLineNumber,t.startLineNumber),new i(t.endLineNumberExclusive,e.endLineNumberExclusive)]:t.startLineNumber<=e.startLineNumber&&e.endLineNumberExclusive<=t.endLineNumberExclusive?[]:t.endLineNumberExclusive<e.endLineNumberExclusive?[new i(Math.max(t.endLineNumberExclusive,e.startLineNumber),e.endLineNumberExclusive)]:[new i(e.startLineNumber,Math.min(t.startLineNumber,e.endLineNumberExclusive))]:[e]}static joinMany(e){if(e.length===0)return[];let t=new re(e[0].slice());for(let n=1;n<e.length;n++)t=t.getUnion(new re(e[n].slice()));return t.ranges}static join(e){if(e.length===0)throw new F("lineRanges cannot be empty");let t=e[0].startLineNumber,n=e[0].endLineNumberExclusive;for(let r=1;r<e.length;r++)t=Math.min(t,e[r].startLineNumber),n=Math.max(n,e[r].endLineNumberExclusive);return new i(t,n)}static deserialize(e){return new i(e[0],e[1])}constructor(e,t){if(e>t)throw new F(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&e<this.endLineNumberExclusive}containsRange(e){return this.startLineNumber<=e.startLineNumber&&e.endLineNumberExclusive<=this.endLineNumberExclusive}get isEmpty(){return this.startLineNumber===this.endLineNumberExclusive}delta(e){return new i(this.startLineNumber+e,this.endLineNumberExclusive+e)}deltaLength(e){return new i(this.startLineNumber,this.endLineNumberExclusive+e)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(e){return new i(Math.min(this.startLineNumber,e.startLineNumber),Math.max(this.endLineNumberExclusive,e.endLineNumberExclusive))}toString(){return`[${this.startLineNumber},${this.endLineNumberExclusive})`}intersect(e){let t=Math.max(this.startLineNumber,e.startLineNumber),n=Math.min(this.endLineNumberExclusive,e.endLineNumberExclusive);if(t<=n)return new i(t,n)}intersectsStrict(e){return this.startLineNumber<e.endLineNumberExclusive&&e.startLineNumber<this.endLineNumberExclusive}intersectsOrTouches(e){return this.startLineNumber<=e.endLineNumberExclusive&&e.startLineNumber<=this.endLineNumberExclusive}equals(e){return this.startLineNumber===e.startLineNumber&&this.endLineNumberExclusive===e.endLineNumberExclusive}toInclusiveRange(){return this.isEmpty?null:new y(this.startLineNumber,1,this.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER)}toExclusiveRange(){return new y(this.startLineNumber,1,this.endLineNumberExclusive,1)}mapToLineArray(e){let t=[];for(let n=this.startLineNumber;n<this.endLineNumberExclusive;n++)t.push(e(n));return t}forEach(e){for(let t=this.startLineNumber;t<this.endLineNumberExclusive;t++)e(t)}serialize(){return[this.startLineNumber,this.endLineNumberExclusive]}toOffsetRange(){return new A(this.startLineNumber-1,this.endLineNumberExclusive-1)}distanceToRange(e){return this.endLineNumberExclusive<=e.startLineNumber?e.startLineNumber-this.endLineNumberExclusive:e.endLineNumberExclusive<=this.startLineNumber?this.startLineNumber-e.endLineNumberExclusive:0}distanceToLine(e){return this.contains(e)?0:e<this.startLineNumber?this.startLineNumber-e:e-this.endLineNumberExclusive}addMargin(e,t){return new i(this.startLineNumber-e,this.endLineNumberExclusive+t)}},re=class i{constructor(e=[]){this._normalizedRanges=e}static{s(this,"LineRangeSet")}get ranges(){return this._normalizedRanges}addRange(e){if(e.length===0)return;let t=Re(this._normalizedRanges,r=>r.endLineNumberExclusive>=e.startLineNumber),n=Y(this._normalizedRanges,r=>r.startLineNumber<=e.endLineNumberExclusive)+1;if(t===n)this._normalizedRanges.splice(t,0,e);else if(t===n-1){let r=this._normalizedRanges[t];this._normalizedRanges[t]=r.join(e)}else{let r=this._normalizedRanges[t].join(this._normalizedRanges[n-1]).join(e);this._normalizedRanges.splice(t,n-t,r)}}contains(e){let t=J(this._normalizedRanges,n=>n.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){let t=J(this._normalizedRanges,n=>n.startLineNumber<e.endLineNumberExclusive);return!!t&&t.endLineNumberExclusive>e.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;let t=[],n=0,r=0,o=null;for(;n<this._normalizedRanges.length||r<e._normalizedRanges.length;){let u=null;if(n<this._normalizedRanges.length&&r<e._normalizedRanges.length){let a=this._normalizedRanges[n],l=e._normalizedRanges[r];a.startLineNumber<l.startLineNumber?(u=a,n++):(u=l,r++)}else n<this._normalizedRanges.length?(u=this._normalizedRanges[n],n++):(u=e._normalizedRanges[r],r++);o===null?o=u:o.endLineNumberExclusive>=u.startLineNumber?o=new O(o.startLineNumber,Math.max(o.endLineNumberExclusive,u.endLineNumberExclusive)):(t.push(o),o=u)}return o!==null&&t.push(o),new i(t)}subtractFrom(e){let t=Re(this._normalizedRanges,u=>u.endLineNumberExclusive>=e.startLineNumber),n=Y(this._normalizedRanges,u=>u.startLineNumber<=e.endLineNumberExclusive)+1;if(t===n)return new i([e]);let r=[],o=e.startLineNumber;for(let u=t;u<n;u++){let a=this._normalizedRanges[u];a.startLineNumber>o&&r.push(new O(o,a.startLineNumber)),o=a.endLineNumberExclusive}return o<e.endLineNumberExclusive&&r.push(new O(o,e.endLineNumberExclusive)),new i(r)}toString(){return this._normalizedRanges.map(e=>e.toString()).join(", ")}getIntersection(e){let t=[],n=0,r=0;for(;n<this._normalizedRanges.length&&r<e._normalizedRanges.length;){let o=this._normalizedRanges[n],u=e._normalizedRanges[r],a=o.intersect(u);a&&!a.isEmpty&&t.push(a),o.endLineNumberExclusive<u.endLineNumberExclusive?n++:r++}return new i(t)}getWithDelta(e){return new i(this._normalizedRanges.map(t=>t.delta(e)))}};var G=class i{constructor(e,t){this.lineCount=e;this.columnCount=t}static{s(this,"TextLength")}static{this.zero=new i(0,0)}static lengthDiffNonNegative(e,t){return t.isLessThan(e)?i.zero:e.lineCount===t.lineCount?new i(0,t.columnCount-e.columnCount):new i(t.lineCount-e.lineCount,t.columnCount)}static betweenPositions(e,t){return e.lineNumber===t.lineNumber?new i(0,t.column-e.column):new i(t.lineNumber-e.lineNumber,t.column-1)}static fromPosition(e){return new i(e.lineNumber-1,e.column-1)}static ofRange(e){return i.betweenPositions(e.getStartPosition(),e.getEndPosition())}static ofText(e){let t=0,n=0;for(let r of e)r===`
25
+ `?(t++,n=0):n++;return new i(t,n)}isZero(){return this.lineCount===0&&this.columnCount===0}isLessThan(e){return this.lineCount!==e.lineCount?this.lineCount<e.lineCount:this.columnCount<e.columnCount}isGreaterThan(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>e.columnCount}isGreaterThanOrEqualTo(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>=e.columnCount}equals(e){return this.lineCount===e.lineCount&&this.columnCount===e.columnCount}compare(e){return this.lineCount!==e.lineCount?this.lineCount-e.lineCount:this.columnCount-e.columnCount}add(e){return e.lineCount===0?new i(this.lineCount,this.columnCount+e.columnCount):new i(this.lineCount+e.lineCount,e.columnCount)}createRange(e){return this.lineCount===0?new y(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new y(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}toRange(){return new y(1,1,this.lineCount+1,this.columnCount+1)}toLineRange(){return O.ofLength(1,this.lineCount)}addToPosition(e){return this.lineCount===0?new U(e.lineNumber,e.column+this.columnCount):new U(e.lineNumber+this.lineCount,this.columnCount+1)}addToRange(e){return y.fromPositions(this.addToPosition(e.getStartPosition()),this.addToPosition(e.getEndPosition()))}toString(){return`${this.lineCount},${this.columnCount}`}};var Ie=class{constructor(e){this.text=e;this.lineStartOffsetByLineIdx=[],this.lineEndOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)e.charAt(t)===`
26
+ `&&(this.lineStartOffsetByLineIdx.push(t+1),t>0&&e.charAt(t-1)==="\r"?this.lineEndOffsetByLineIdx.push(t-1):this.lineEndOffsetByLineIdx.push(t));this.lineEndOffsetByLineIdx.push(e.length)}static{s(this,"PositionOffsetTransformer")}getOffset(e){return this.lineStartOffsetByLineIdx[e.lineNumber-1]+e.column-1}getOffsetRange(e){return new A(this.getOffset(e.getStartPosition()),this.getOffset(e.getEndPosition()))}getPosition(e){let t=Y(this.lineStartOffsetByLineIdx,o=>o<=e),n=t+1,r=e-this.lineStartOffsetByLineIdx[t]+1;return new U(n,r)}getRange(e){return y.fromPositions(this.getPosition(e.start),this.getPosition(e.endExclusive))}getTextLength(e){return G.ofRange(this.getRange(e))}get textLength(){let e=this.lineStartOffsetByLineIdx.length-1;return new G(e,this.text.length-this.lineStartOffsetByLineIdx[e])}getLineLength(e){return this.lineEndOffsetByLineIdx[e-1]-this.lineStartOffsetByLineIdx[e-1]}};var Ke=class{constructor(){this._transformer=void 0}static{s(this,"AbstractText")}get endPositionExclusive(){return this.length.addToPosition(new U(1,1))}get lineRange(){return this.length.toLineRange()}getValue(){return this.getValueOfRange(this.length.toRange())}getLineLength(e){return this.getValueOfRange(new y(e,1,e,Number.MAX_SAFE_INTEGER)).length}getTransformer(){return this._transformer||(this._transformer=new Ie(this.getValue())),this._transformer}getLineAt(e){return this.getValueOfRange(new y(e,1,e,Number.MAX_SAFE_INTEGER))}getLines(){let e=this.getValue();return Yt(e)}equals(e){return this===e?!0:this.getValue()===e.getValue()}},mt=class extends Ke{constructor(t,n){At(n>=1);super();this._getLineContent=t;this._lineCount=n}static{s(this,"LineBasedText")}getValueOfRange(t){if(t.startLineNumber===t.endLineNumber)return this._getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);let n=this._getLineContent(t.startLineNumber).substring(t.startColumn-1);for(let r=t.startLineNumber+1;r<t.endLineNumber;r++)n+=`
27
+ `+this._getLineContent(r);return n+=`
28
+ `+this._getLineContent(t.endLineNumber).substring(0,t.endColumn-1),n}getLineLength(t){return this._getLineContent(t).length}get length(){let t=this._getLineContent(this._lineCount);return new G(this._lineCount-1,t.length)}},se=class extends mt{static{s(this,"ArrayText")}constructor(e){super(t=>e[t-1],e.length)}},ye=class extends Ke{constructor(t){super();this.value=t;this._t=new Ie(this.value)}static{s(this,"StringText")}getValueOfRange(t){return this._t.getOffsetRange(t).substring(this.value)}get length(){return this._t.textLength}};var de=class{constructor(e,t,n){this.changes=e;this.moves=t;this.hitTimeout=n}static{s(this,"LinesDiff")}},ze=class i{static{s(this,"MovedText")}constructor(e,t){this.lineRangeMapping=e,this.changes=t}flip(){return new i(this.lineRangeMapping.flip(),this.changes.map(e=>e.flip()))}};var dt=class i{constructor(e){this.replacements=e;ie(()=>qe(e,(t,n)=>t.range.getEndPosition().isBeforeOrEqual(n.range.getStartPosition())))}static{s(this,"TextEdit")}static fromStringEdit(e,t){let n=e.replacements.map(r=>$.fromStringReplacement(r,t));return new i(n)}static replace(e,t){return new i([new $(e,t)])}static insert(e,t){return new i([new $(y.fromPositions(e,e),t)])}normalize(){let e=[];for(let t of this.replacements)if(e.length>0&&e[e.length-1].range.getEndPosition().equals(t.range.getStartPosition())){let n=e[e.length-1];e[e.length-1]=new $(n.range.plusRange(t.range),n.text+t.text)}else t.isEmpty||e.push(t);return new i(e)}mapPosition(e){let t=0,n=0,r=0;for(let o of this.replacements){let u=o.range.getStartPosition();if(e.isBeforeOrEqual(u))break;let a=o.range.getEndPosition(),l=G.ofText(o.text);if(e.isBefore(a)){let c=new U(u.lineNumber+t,u.column+(u.lineNumber+t===n?r:0)),f=l.addToPosition(c);return We(c,f)}u.lineNumber+t!==n&&(r=0),t+=l.lineCount-(o.range.endLineNumber-o.range.startLineNumber),l.lineCount===0?a.lineNumber!==u.lineNumber?r+=l.columnCount-(a.column-1):r+=l.columnCount-(a.column-u.column):r=l.columnCount,n=a.lineNumber+t}return new U(e.lineNumber+t,e.column+(e.lineNumber+t===n?r:0))}mapRange(e){function t(u){return u instanceof U?u:u.getStartPosition()}s(t,"getStart");function n(u){return u instanceof U?u:u.getEndPosition()}s(n,"getEnd");let r=t(this.mapPosition(e.getStartPosition())),o=n(this.mapPosition(e.getEndPosition()));return We(r,o)}inverseMapPosition(e,t){return this.inverse(t).mapPosition(e)}inverseMapRange(e,t){return this.inverse(t).mapRange(e)}apply(e){let t="",n=new U(1,1);for(let o of this.replacements){let u=o.range,a=u.getStartPosition(),l=u.getEndPosition(),c=We(n,a);c.isEmpty()||(t+=e.getValueOfRange(c)),t+=o.text,n=l}let r=We(n,e.endPositionExclusive);return r.isEmpty()||(t+=e.getValueOfRange(r)),t}applyToString(e){let t=new ye(e);return this.apply(t)}inverse(e){let t=this.getNewRanges();return new i(this.replacements.map((n,r)=>new $(t[r],e.getValueOfRange(n.range))))}getNewRanges(){let e=[],t=0,n=0,r=0;for(let o of this.replacements){let u=G.ofText(o.text),a=U.lift({lineNumber:o.range.startLineNumber+n,column:o.range.startColumn+(o.range.startLineNumber===t?r:0)}),l=u.createRange(a);e.push(l),n=l.endLineNumber-o.range.endLineNumber,r=l.endColumn-o.range.endColumn,t=o.range.endLineNumber}return e}toReplacement(e){if(this.replacements.length===0)throw new F;if(this.replacements.length===1)return this.replacements[0];let t=this.replacements[0].range.getStartPosition(),n=this.replacements[this.replacements.length-1].range.getEndPosition(),r="";for(let o=0;o<this.replacements.length;o++){let u=this.replacements[o];if(r+=u.text,o<this.replacements.length-1){let a=this.replacements[o+1],l=y.fromPositions(u.range.getEndPosition(),a.range.getStartPosition()),c=e.getValueOfRange(l);r+=c}}return new $(y.fromPositions(t,n),r)}equals(e){return Pe(this.replacements,e.replacements,(t,n)=>t.equals(n))}toString(e){return e===void 0?this.replacements.map(t=>t.toString()).join(`
29
+ `):typeof e=="string"?this.toString(new ye(e)):this.replacements.length===0?"":this.replacements.map(t=>{let r=e.getValueOfRange(t.range),o=y.fromPositions(new U(Math.max(1,t.range.startLineNumber-1),1),t.range.getStartPosition()),u=e.getValueOfRange(o);u.length>10&&(u="..."+u.substring(u.length-10));let a=y.fromPositions(t.range.getEndPosition(),new U(t.range.endLineNumber+1,1)),l=e.getValueOfRange(a);l.length>10&&(l=l.substring(0,10)+"...");let c=r;if(c.length>10){let m=Math.floor(5);c=c.substring(0,m)+"..."+c.substring(c.length-m)}let f=t.text;if(f.length>10){let m=Math.floor(5);f=f.substring(0,m)+"..."+f.substring(f.length-m)}return c.length===0?`${u}\u2770${f}\u2771${l}`:`${u}\u2770${c}\u21A6${f}\u2771${l}`}).join(`
30
+ `)}},$=class i{constructor(e,t){this.range=e;this.text=t}static{s(this,"TextReplacement")}static joinReplacements(e,t){if(e.length===0)throw new F;if(e.length===1)return e[0];let n=e[0].range.getStartPosition(),r=e[e.length-1].range.getEndPosition(),o="";for(let u=0;u<e.length;u++){let a=e[u];if(o+=a.text,u<e.length-1){let l=e[u+1],c=y.fromPositions(a.range.getEndPosition(),l.range.getStartPosition()),f=t.getValueOfRange(c);o+=f}}return new i(y.fromPositions(n,r),o)}static fromStringReplacement(e,t){return new i(t.getTransformer().getRange(e.replaceRange),e.newText)}get isEmpty(){return this.range.isEmpty()&&this.text.length===0}static equals(e,t){return e.range.equalsRange(t.range)&&e.text===t.text}toSingleEditOperation(){return{range:this.range,text:this.text}}toEdit(){return new dt([this])}equals(e){return i.equals(this,e)}extendToCoverRange(e,t){if(this.range.containsRange(e))return this;let n=this.range.plusRange(e),r=t.getValueOfRange(y.fromPositions(n.getStartPosition(),this.range.getStartPosition())),o=t.getValueOfRange(y.fromPositions(this.range.getEndPosition(),n.getEndPosition())),u=r+this.text+o;return new i(n,u)}extendToFullLine(e){let t=new y(this.range.startLineNumber,1,this.range.endLineNumber,e.getTransformer().getLineLength(this.range.endLineNumber)+1);return this.extendToCoverRange(t,e)}removeCommonPrefix(e){let t=e.getValueOfRange(this.range).replaceAll(`\r
27
31
  `,`
28
32
  `),n=this.text.replaceAll(`\r
29
33
  `,`
30
- `),r=ct(t,n),o=G.ofText(t.substring(0,r)).addToPosition(this.range.getStartPosition()),u=n.substring(r),l=w.fromPositions(o,this.range.getEndPosition());return new i(l,u)}isEffectiveDeletion(e){let t=this.text.replaceAll(`\r
34
+ `),r=ft(t,n),o=G.ofText(t.substring(0,r)).addToPosition(this.range.getStartPosition()),u=n.substring(r),a=y.fromPositions(o,this.range.getEndPosition());return new i(a,u)}isEffectiveDeletion(e){let t=this.text.replaceAll(`\r
31
35
  `,`
32
36
  `),n=e.getValueOfRange(this.range).replaceAll(`\r
33
37
  `,`
34
- `),r=ct(t,n);t=t.substring(r),n=n.substring(r);let o=Zt(t,n);return t=t.substring(0,t.length-o),n=n.substring(0,n.length-o),t===""}};function Ke(i,e){if(i.lineNumber===e.lineNumber&&i.column===Number.MAX_SAFE_INTEGER)return w.fromPositions(e,e);if(!i.isBeforeOrEqual(e))throw new F("start must be before end");return new w(i.lineNumber,i.column,e.lineNumber,e.column)}s(Ke,"rangeFromPositions");var Ve=class{constructor(){this._transformer=void 0}static{s(this,"AbstractText")}get endPositionExclusive(){return this.length.addToPosition(new U(1,1))}get lineRange(){return this.length.toLineRange()}getValue(){return this.getValueOfRange(this.length.toRange())}getLineLength(e){return this.getValueOfRange(new w(e,1,e,Number.MAX_SAFE_INTEGER)).length}getTransformer(){return this._transformer||(this._transformer=new Ie(this.getValue())),this._transformer}getLineAt(e){return this.getValueOfRange(new w(e,1,e,Number.MAX_SAFE_INTEGER))}getLines(){let e=this.getValue();return Yt(e)}},mt=class extends Ve{constructor(t,n){At(n>=1);super();this._getLineContent=t;this._lineCount=n}static{s(this,"LineBasedText")}getValueOfRange(t){if(t.startLineNumber===t.endLineNumber)return this._getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);let n=this._getLineContent(t.startLineNumber).substring(t.startColumn-1);for(let r=t.startLineNumber+1;r<t.endLineNumber;r++)n+=`
35
- `+this._getLineContent(r);return n+=`
36
- `+this._getLineContent(t.endLineNumber).substring(0,t.endColumn-1),n}getLineLength(t){return this._getLineContent(t).length}get length(){let t=this._getLineContent(this._lineCount);return new G(this._lineCount-1,t.length)}},se=class extends mt{static{s(this,"ArrayText")}constructor(e){super(t=>e[t-1],e.length)}},dt=class extends Ve{constructor(t){super();this.value=t;this._t=new Ie(this.value)}static{s(this,"StringText")}getValueOfRange(t){return this._t.getOffsetRange(t).substring(this.value)}get length(){return this._t.textLength}};var de=class{constructor(e,t,n){this.changes=e;this.moves=t;this.hitTimeout=n}static{s(this,"LinesDiff")}},ze=class i{static{s(this,"MovedText")}constructor(e,t){this.lineRangeMapping=e,this.changes=t}flip(){return new i(this.lineRangeMapping.flip(),this.changes.map(e=>e.flip()))}};var H=class i{static{s(this,"LineRangeMapping")}static inverse(e,t,n){let r=[],o=1,u=1;for(let a of e){let c=new i(new O(o,a.original.startLineNumber),new O(u,a.modified.startLineNumber));c.modified.isEmpty||r.push(c),o=a.original.endLineNumberExclusive,u=a.modified.endLineNumberExclusive}let l=new i(new O(o,t+1),new O(u,n+1));return l.modified.isEmpty||r.push(l),r}static clip(e,t,n){let r=[];for(let o of e){let u=o.original.intersect(t),l=o.modified.intersect(n);u&&!u.isEmpty&&l&&!l.isEmpty&&r.push(new i(u,l))}return r}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new i(this.modified,this.original)}join(e){return new i(this.original.join(e.original),this.modified.join(e.modified))}get changedLineCount(){return Math.max(this.original.length,this.modified.length)}toRangeMapping(){let e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new z(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new F("not a valid diff");return new z(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new z(new w(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new w(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,t){if(Ct(this.original.endLineNumberExclusive,e)&&Ct(this.modified.endLineNumberExclusive,t))return new z(new w(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new w(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new z(w.fromPositions(new U(this.original.startLineNumber,1),pe(new U(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),w.fromPositions(new U(this.modified.startLineNumber,1),pe(new U(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new z(w.fromPositions(pe(new U(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),pe(new U(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),w.fromPositions(pe(new U(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),pe(new U(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));throw new F}};function pe(i,e){if(i.lineNumber<1)return new U(1,1);if(i.lineNumber>e.length)return new U(e.length,e[e.length-1].length+1);let t=e[i.lineNumber-1];return i.column>t.length+1?new U(i.lineNumber,t.length+1):i}s(pe,"normalizePosition");function Ct(i,e){return i>=1&&i<=e.length}s(Ct,"isValidLineNumber");var ge=class i extends H{static{s(this,"DetailedLineRangeMapping")}static fromRangeMappings(e){let t=O.join(e.map(r=>O.fromRangeInclusive(r.originalRange))),n=O.join(e.map(r=>O.fromRangeInclusive(r.modifiedRange)));return new i(t,n,e)}constructor(e,t,n){super(e,t),this.innerChanges=n}flip(){return new i(this.modified,this.original,this.innerChanges?.map(e=>e.flip()))}withInnerChangesFromLineRanges(){return new i(this.original,this.modified,[this.toRangeMapping()])}},z=class i{static{s(this,"RangeMapping")}static fromEdit(e){let t=e.getNewRanges();return e.edits.map((r,o)=>new i(r.range,t[o]))}static fromEditJoin(e){let t=e.getNewRanges(),n=e.edits.map((r,o)=>new i(r.range,t[o]));return i.join(n)}static join(e){if(e.length===0)throw new F("Cannot join an empty list of range mappings");let t=e[0];for(let n=1;n<e.length;n++)t=t.join(e[n]);return t}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.getEndPosition().isBeforeOrEqual(r.originalRange.getStartPosition())&&n.modifiedRange.getEndPosition().isBeforeOrEqual(r.modifiedRange.getStartPosition())))throw new F("Range mappings must be sorted")}}constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new i(this.modifiedRange,this.originalRange)}toTextEdit(e){let t=e.getValueOfRange(this.modifiedRange);return new $(this.originalRange,t)}join(e){return new i(this.originalRange.plusRange(e.originalRange),this.modifiedRange.plusRange(e.modifiedRange))}};function pt(i,e,t,n=!1){let r=[];for(let o of It(i.map(u=>An(u,e,t)),(u,l)=>u.original.overlapOrTouch(l.original)||u.modified.overlapOrTouch(l.modified))){let u=o[0],l=o[o.length-1];r.push(new ge(u.original.join(l.original),u.modified.join(l.modified),o.map(a=>a.innerChanges[0])))}return ie(()=>!n&&r.length>0&&(r[0].modified.startLineNumber!==r[0].original.startLineNumber||t.length.lineCount-r[r.length-1].modified.endLineNumberExclusive!==e.length.lineCount-r[r.length-1].original.endLineNumberExclusive)?!1:Pe(r,(o,u)=>u.original.startLineNumber-o.original.endLineNumberExclusive===u.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive<u.original.startLineNumber&&o.modified.endLineNumberExclusive<u.modified.startLineNumber)),r}s(pt,"lineRangeMappingFromRangeMappings");function An(i,e,t){let n=0,r=0;i.modifiedRange.endColumn===1&&i.originalRange.endColumn===1&&i.originalRange.startLineNumber+n<=i.originalRange.endLineNumber&&i.modifiedRange.startLineNumber+n<=i.modifiedRange.endLineNumber&&(r=-1),i.modifiedRange.startColumn-1>=t.getLineLength(i.modifiedRange.startLineNumber)&&i.originalRange.startColumn-1>=e.getLineLength(i.originalRange.startLineNumber)&&i.originalRange.startLineNumber<=i.originalRange.endLineNumber+r&&i.modifiedRange.startLineNumber<=i.modifiedRange.endLineNumber+r&&(n=1);let o=new O(i.originalRange.startLineNumber+n,i.originalRange.endLineNumber+1+r),u=new O(i.modifiedRange.startLineNumber+n,i.modifiedRange.endLineNumber+1+r);return new ge(o,u,[i])}s(An,"getLineRangeMapping");var X=class i{constructor(e,t){this.diffs=e;this.hitTimeout=t}static{s(this,"DiffAlgorithmResult")}static trivial(e,t){return new i([new q(A.ofLength(e.length),A.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new i([new q(A.ofLength(e.length),A.ofLength(t.length))],!0)}},q=class i{constructor(e,t){this.seq1Range=e;this.seq2Range=t}static{s(this,"SequenceDiff")}static invert(e,t){let n=[];return yt(e,(r,o)=>{n.push(i.fromOffsetPairs(r?r.getEndExclusives():Q.zero,o?o.getStarts():new Q(t,(r?r.seq2Range.endExclusive-r.seq1Range.endExclusive:0)+t)))}),n}static fromOffsetPairs(e,t){return new i(new A(e.offset1,t.offset1),new A(e.offset2,t.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw new F("Sequence diffs must be sorted");t=n}}swap(){return new i(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new i(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new i(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new i(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new i(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(e){let t=this.seq1Range.intersect(e.seq1Range),n=this.seq2Range.intersect(e.seq2Range);if(!(!t||!n))return new i(t,n)}getStarts(){return new Q(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Q(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},Q=class i{constructor(e,t){this.offset1=e;this.offset2=t}static{s(this,"OffsetPair")}static{this.zero=new i(0,0)}static{this.max=new i(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new i(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},C=class i{static{s(this,"InfiniteTimeout")}static{this.instance=new i}isValid(){return!0}},We=class{constructor(e){this.timeout=e;this.startTime=Date.now();this.valid=!0;if(e<=0)throw new F("timeout must be positive")}static{s(this,"DateTimeout")}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}disable(){this.timeout=Number.MAX_SAFE_INTEGER,this.isValid=()=>!0,this.valid=!0}};var be=class{constructor(e,t){this.width=e;this.height=t;this.array=[];this.array=new Array(e*t)}static{s(this,"Array2D")}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}};function we(i){return i===32||i===9}s(we,"isSpace");var ye=class i{constructor(e,t,n){this.range=e;this.lines=t;this.source=n;this.histogram=[];let r=0;for(let o=e.startLineNumber-1;o<e.endLineNumberExclusive-1;o++){let u=t[o];for(let a=0;a<u.length;a++){r++;let c=u[a],f=i.getKey(c);this.histogram[f]=(this.histogram[f]||0)+1}r++;let l=i.getKey(`
37
- `);this.histogram[l]=(this.histogram[l]||0)+1}this.totalCount=r}static{s(this,"LineRangeFragment")}static{this.chrKeys=new Map}static getKey(e){let t=this.chrKeys.get(e);return t===void 0&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}computeSimilarity(e){let t=0,n=Math.max(this.histogram.length,e.histogram.length);for(let r=0;r<n;r++)t+=Math.abs((this.histogram[r]??0)-(e.histogram[r]??0));return 1-t/(this.totalCount+e.totalCount)}};var je=class{static{s(this,"DynamicProgrammingDiffing")}compute(e,t,n=C.instance,r){if(e.length===0||t.length===0)return X.trivial(e,t);let o=new be(e.length,t.length),u=new be(e.length,t.length),l=new be(e.length,t.length);for(let g=0;g<e.length;g++)for(let x=0;x<t.length;x++){if(!n.isValid())return X.trivialTimedOut(e,t);let y=g===0?0:o.get(g-1,x),M=x===0?0:o.get(g,x-1),S;e.getElement(g)===t.getElement(x)?(g===0||x===0?S=0:S=o.get(g-1,x-1),g>0&&x>0&&u.get(g-1,x-1)===3&&(S+=l.get(g-1,x-1)),S+=r?r(g,x):1):S=-1;let P=Math.max(y,M,S);if(P===S){let b=g>0&&x>0?l.get(g-1,x-1):0;l.set(g,x,b+1),u.set(g,x,3)}else P===y?(l.set(g,x,0),u.set(g,x,1)):P===M&&(l.set(g,x,0),u.set(g,x,2));o.set(g,x,P)}let a=[],c=e.length,f=t.length;function m(g,x){(g+1!==c||x+1!==f)&&a.push(new q(new A(g+1,c),new A(x+1,f))),c=g,f=x}s(m,"reportDecreasingAligningPositions");let p=e.length-1,d=t.length-1;for(;p>=0&&d>=0;)u.get(p,d)===3?(m(p,d),p--,d--):u.get(p,d)===1?p--:d--;return m(-1,-1),a.reverse(),new X(a,!1)}};var he=class{static{s(this,"MyersDiffAlgorithm")}compute(e,t,n=C.instance){if(e.length===0||t.length===0)return X.trivial(e,t);let r=e,o=t;function u(x,y){for(;x<r.length&&y<o.length&&r.getElement(x)===o.getElement(y);)x++,y++;return x}s(u,"getXAfterSnake");let l=0,a=new gt;a.set(0,u(0,0));let c=new bt;c.set(0,a.get(0)===0?null:new Ge(null,0,0,a.get(0)));let f=0;e:for(;;){if(l++,!n.isValid())return X.trivialTimedOut(r,o);let x=-Math.min(l,o.length+l%2),y=Math.min(l,r.length+l%2);for(f=x;f<=y;f+=2){let M=0,S=f===y?-1:a.get(f+1),P=f===x?-1:a.get(f-1)+1;M++;let b=Math.min(Math.max(S,P),r.length),T=b-f;if(M++,b>r.length||T>o.length)continue;let _=u(b,T);a.set(f,_);let L=b===S?c.get(f+1):c.get(f-1);if(c.set(f,_!==b?new Ge(L,b,T,_-b):L),a.get(f)===r.length&&a.get(f)-f===o.length)break e}}let m=c.get(f),p=[],d=r.length,g=o.length;for(;;){let x=m?m.x+m.length:0,y=m?m.y+m.length:0;if((x!==d||y!==g)&&p.push(new q(new A(x,d),new A(y,g))),!m)break;d=m.x,g=m.y,m=m.prev}return p.reverse(),new X(p,!1)}},Ge=class{constructor(e,t,n,r){this.prev=e;this.x=t;this.y=n;this.length=r}static{s(this,"SnakePath")}},gt=class{constructor(){this.positiveArr=new Int32Array(10);this.negativeArr=new Int32Array(10)}static{s(this,"FastInt32Array")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let n=this.negativeArr;this.negativeArr=new Int32Array(n.length*2),this.negativeArr.set(n)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let n=this.positiveArr;this.positiveArr=new Int32Array(n.length*2),this.positiveArr.set(n)}this.positiveArr[e]=t}}},bt=class{constructor(){this.positiveArr=[];this.negativeArr=[]}static{s(this,"FastArrayNegativeIndices")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};var ee=class{constructor(e,t,n){this.lines=e;this.range=t;this.considerWhitespaceChanges=n;this.elements=[];this.firstElementOffsetByLineIdx=[];this.lineStartOffsets=[];this.trimmedWsLengthsByLineIdx=[];this.firstElementOffsetByLineIdx.push(0);for(let r=this.range.startLineNumber;r<=this.range.endLineNumber;r++){let o=e[r-1],u=0;r===this.range.startLineNumber&&this.range.startColumn>1&&(u=this.range.startColumn-1,o=o.substring(u)),this.lineStartOffsets.push(u);let l=0;if(!n){let c=o.trimStart();l=o.length-c.length,o=c.trimEnd()}this.trimmedWsLengthsByLineIdx.push(l);let a=r===this.range.endLineNumber?Math.min(this.range.endColumn-1-u-l,o.length):o.length;for(let c=0;c<a;c++)this.elements.push(o.charCodeAt(c));r<this.range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}static{s(this,"LinesSliceCharSequence")}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new A(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(t=>String.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=nn(e>0?this.elements[e-1]:-1),n=nn(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=tn(t),r+=tn(n),r}translateOffset(e,t="right"){let n=Y(this.firstElementOffsetByLineIdx,o=>o<=e),r=e-this.firstElementOffsetByLineIdx[n];return new U(this.range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t==="left"?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,"right"),n=this.translateOffset(e.endExclusive,"left");return n.isBefore(t)?w.fromPositions(n,n):w.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!Te(this.elements[e]))return;let t=e;for(;t>0&&Te(this.elements[t-1]);)t--;let n=e;for(;n<this.elements.length&&Te(this.elements[n]);)n++;return new A(t,n)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!Te(this.elements[e]))return;let t=e;for(;t>0&&Te(this.elements[t-1])&&!en(this.elements[t]);)t--;let n=e;for(;n<this.elements.length&&Te(this.elements[n])&&!en(this.elements[n]);)n++;return new A(t,n)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){let t=J(this.firstElementOffsetByLineIdx,r=>r<=e.start)??0,n=Rt(this.firstElementOffsetByLineIdx,r=>e.endExclusive<=r)??this.elements.length;return new A(t,n)}};function Te(i){return i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57}s(Te,"isWordChar");function en(i){return i>=65&&i<=90}s(en,"isUpperCase");var On={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function tn(i){return On[i]}s(tn,"getCategoryBoundaryScore");function nn(i){return i===10?8:i===13?7:we(i)?6:i>=97&&i<=122?0:i>=65&&i<=90?1:i>=48&&i<=57?2:i===-1?3:i===44||i===59?5:4}s(nn,"getCategory");function sn(i,e,t,n,r,o){let{moves:u,excludedChanges:l}=Un(i,e,t,o);if(!o.isValid())return[];let a=i.filter(f=>!l.has(f)),c=kn(a,n,r,e,t,o);return Nt(u,c),u=Pn(u),u=u.filter(f=>{let m=f.original.toOffsetRange().slice(e).map(d=>d.trim());return m.join(`
38
- `).length>=15&&Mn(m,d=>d.length>=2)>=2}),u=qn(i,u),u}s(sn,"computeMovedLines");function Mn(i,e){let t=0;for(let n of i)e(n)&&t++;return t}s(Mn,"countWhere");function Un(i,e,t,n){let r=[],o=i.filter(a=>a.modified.isEmpty&&a.original.length>=3).map(a=>new ye(a.original,e,a)),u=new Set(i.filter(a=>a.original.isEmpty&&a.modified.length>=3).map(a=>new ye(a.modified,t,a))),l=new Set;for(let a of o){let c=-1,f;for(let m of u){let p=a.computeSimilarity(m);p>c&&(c=p,f=m)}if(c>.9&&f&&(u.delete(f),r.push(new H(a.range,f.range)),l.add(a.source),l.add(f.source)),!n.isValid())return{moves:r,excludedChanges:l}}return{moves:r,excludedChanges:l}}s(Un,"computeMovesFromSimpleDeletionsToSimpleInsertions");function kn(i,e,t,n,r,o){let u=[],l=new ae;for(let p of i)for(let d=p.original.startLineNumber;d<p.original.endLineNumberExclusive-2;d++){let g=`${e[d-1]}:${e[d+1-1]}:${e[d+2-1]}`;l.add(g,{range:new O(d,d+3)})}let a=[];i.sort(te(p=>p.modified.startLineNumber,ne));for(let p of i){let d=[];for(let g=p.modified.startLineNumber;g<p.modified.endLineNumberExclusive-2;g++){let x=`${t[g-1]}:${t[g+1-1]}:${t[g+2-1]}`,y=new O(g,g+3),M=[];l.forEach(x,({range:S})=>{for(let b of d)if(b.originalLineRange.endLineNumberExclusive+1===S.endLineNumberExclusive&&b.modifiedLineRange.endLineNumberExclusive+1===y.endLineNumberExclusive){b.originalLineRange=new O(b.originalLineRange.startLineNumber,S.endLineNumberExclusive),b.modifiedLineRange=new O(b.modifiedLineRange.startLineNumber,y.endLineNumberExclusive),M.push(b);return}let P={modifiedLineRange:y,originalLineRange:S};a.push(P),M.push(P)}),d=M}if(!o.isValid())return[]}a.sort(St(te(p=>p.modifiedLineRange.length,ne)));let c=new re,f=new re;for(let p of a){let d=p.modifiedLineRange.startLineNumber-p.originalLineRange.startLineNumber,g=c.subtractFrom(p.modifiedLineRange),x=f.subtractFrom(p.originalLineRange).getWithDelta(d),y=g.getIntersection(x);for(let M of y.ranges){if(M.length<3)continue;let S=M,P=M.delta(-d);u.push(new H(P,S)),c.addRange(S),f.addRange(P)}}u.sort(te(p=>p.original.startLineNumber,ne));let m=new ve(i);for(let p=0;p<u.length;p++){let d=u[p],g=m.findLastMonotonous(_=>_.original.startLineNumber<=d.original.startLineNumber),x=J(i,_=>_.modified.startLineNumber<=d.modified.startLineNumber),y=Math.max(d.original.startLineNumber-g.original.startLineNumber,d.modified.startLineNumber-x.modified.startLineNumber),M=m.findLastMonotonous(_=>_.original.startLineNumber<d.original.endLineNumberExclusive),S=J(i,_=>_.modified.startLineNumber<d.modified.endLineNumberExclusive),P=Math.max(M.original.endLineNumberExclusive-d.original.endLineNumberExclusive,S.modified.endLineNumberExclusive-d.modified.endLineNumberExclusive),b;for(b=0;b<y;b++){let _=d.original.startLineNumber-b-1,L=d.modified.startLineNumber-b-1;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}b>0&&(f.addRange(new O(d.original.startLineNumber-b,d.original.startLineNumber)),c.addRange(new O(d.modified.startLineNumber-b,d.modified.startLineNumber)));let T;for(T=0;T<P;T++){let _=d.original.endLineNumberExclusive+T,L=d.modified.endLineNumberExclusive+T;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}T>0&&(f.addRange(new O(d.original.endLineNumberExclusive,d.original.endLineNumberExclusive+T)),c.addRange(new O(d.modified.endLineNumberExclusive,d.modified.endLineNumberExclusive+T))),(b>0||T>0)&&(u[p]=new H(new O(d.original.startLineNumber-b,d.original.endLineNumberExclusive+T),new O(d.modified.startLineNumber-b,d.modified.endLineNumberExclusive+T)))}return u}s(kn,"computeUnchangedMoves");function rn(i,e,t){if(i.trim()===e.trim())return!0;if(i.length>300&&e.length>300)return!1;let r=new he().compute(new ee([i],new w(1,1,1,i.length),!1),new ee([e],new w(1,1,1,e.length),!1),t),o=0,u=q.invert(r.diffs,i.length);for(let f of u)f.seq1Range.forEach(m=>{we(i.charCodeAt(m))||o++});function l(f){let m=0;for(let p=0;p<i.length;p++)we(f.charCodeAt(p))||m++;return m}s(l,"countNonWsChars");let a=l(i.length>e.length?i:e);return o/a>.6&&a>10}s(rn,"areLinesSimilar");function Pn(i){if(i.length===0)return i;i.sort(te(t=>t.original.startLineNumber,ne));let e=[i[0]];for(let t=1;t<i.length;t++){let n=e[e.length-1],r=i[t],o=r.original.startLineNumber-n.original.endLineNumberExclusive,u=r.modified.startLineNumber-n.modified.endLineNumberExclusive;if(o>=0&&u>=0&&o+u<=2){e[e.length-1]=n.join(r);continue}e.push(r)}return e}s(Pn,"joinCloseConsecutiveMoves");function qn(i,e){let t=new ve(i);return e=e.filter(n=>{let r=t.findLastMonotonous(l=>l.original.startLineNumber<n.original.endLineNumberExclusive)||new H(new O(1,1),new O(1,1)),o=J(i,l=>l.modified.startLineNumber<n.modified.endLineNumberExclusive);return r!==o}),e}s(qn,"removeMovesInSameDiff");function ht(i,e,t){let n=t;return n=on(i,e,n),n=on(i,e,n),n=Fn(i,e,n),n}s(ht,"optimizeSequenceDiffs");function on(i,e,t){if(t.length===0)return t;let n=[];n.push(t[0]);for(let o=1;o<t.length;o++){let u=n[n.length-1],l=t[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let a=l.seq1Range.start-u.seq1Range.endExclusive,c;for(c=1;c<=a&&!(i.getElement(l.seq1Range.start-c)!==i.getElement(l.seq1Range.endExclusive-c)||e.getElement(l.seq2Range.start-c)!==e.getElement(l.seq2Range.endExclusive-c));c++);if(c--,c===a){n[n.length-1]=new q(new A(u.seq1Range.start,l.seq1Range.endExclusive-a),new A(u.seq2Range.start,l.seq2Range.endExclusive-a));continue}l=l.delta(-c)}n.push(l)}let r=[];for(let o=0;o<n.length-1;o++){let u=n[o+1],l=n[o];if(l.seq1Range.isEmpty||l.seq2Range.isEmpty){let a=u.seq1Range.start-l.seq1Range.endExclusive,c;for(c=0;c<a&&!(!i.isStronglyEqual(l.seq1Range.start+c,l.seq1Range.endExclusive+c)||!e.isStronglyEqual(l.seq2Range.start+c,l.seq2Range.endExclusive+c));c++);if(c===a){n[o+1]=new q(new A(l.seq1Range.start+a,u.seq1Range.endExclusive),new A(l.seq2Range.start+a,u.seq2Range.endExclusive));continue}c>0&&(l=l.delta(c))}r.push(l)}return n.length>0&&r.push(n[n.length-1]),r}s(on,"joinSequenceDiffsByShifting");function Fn(i,e,t){if(!i.getBoundaryScore||!e.getBoundaryScore)return t;for(let n=0;n<t.length;n++){let r=n>0?t[n-1]:void 0,o=t[n],u=n+1<t.length?t[n+1]:void 0,l=new A(r?r.seq1Range.endExclusive+1:0,u?u.seq1Range.start-1:i.length),a=new A(r?r.seq2Range.endExclusive+1:0,u?u.seq2Range.start-1:e.length);o.seq1Range.isEmpty?t[n]=un(o,i,e,l,a):o.seq2Range.isEmpty&&(t[n]=un(o.swap(),e,i,a,l).swap())}return t}s(Fn,"shiftSequenceDiffs");function un(i,e,t,n,r){let u=1;for(;i.seq1Range.start-u>=n.start&&i.seq2Range.start-u>=r.start&&t.isStronglyEqual(i.seq2Range.start-u,i.seq2Range.endExclusive-u)&&u<100;)u++;u--;let l=0;for(;i.seq1Range.start+l<n.endExclusive&&i.seq2Range.endExclusive+l<r.endExclusive&&t.isStronglyEqual(i.seq2Range.start+l,i.seq2Range.endExclusive+l)&&l<100;)l++;if(u===0&&l===0)return i;let a=0,c=-1;for(let f=-u;f<=l;f++){let m=i.seq2Range.start+f,p=i.seq2Range.endExclusive+f,d=i.seq1Range.start+f,g=e.getBoundaryScore(d)+t.getBoundaryScore(m)+t.getBoundaryScore(p);g>c&&(c=g,a=f)}return i.delta(a)}s(un,"shiftDiffToBetterPosition");function ln(i,e,t){let n=[];for(let r of t){let o=n[n.length-1];if(!o){n.push(r);continue}r.seq1Range.start-o.seq1Range.endExclusive<=2||r.seq2Range.start-o.seq2Range.endExclusive<=2?n[n.length-1]=new q(o.seq1Range.join(r.seq1Range),o.seq2Range.join(r.seq2Range)):n.push(r)}return n}s(ln,"removeShortMatches");function Tt(i,e,t,n,r=!1){let o=q.invert(t,i.length),u=[],l=new Q(0,0);function a(f,m){if(f.offset1<l.offset1||f.offset2<l.offset2)return;let p=n(i,f.offset1),d=n(e,f.offset2);if(!p||!d)return;let g=new q(p,d),x=g.intersect(m),y=x.seq1Range.length,M=x.seq2Range.length;for(;o.length>0;){let S=o[0];if(!(S.seq1Range.intersects(g.seq1Range)||S.seq2Range.intersects(g.seq2Range)))break;let b=n(i,S.seq1Range.start),T=n(e,S.seq2Range.start),_=new q(b,T),L=_.intersect(S);if(y+=L.seq1Range.length,M+=L.seq2Range.length,g=g.join(_),g.seq1Range.endExclusive>=S.seq1Range.endExclusive)o.shift();else break}(r&&y+M<g.seq1Range.length+g.seq2Range.length||y+M<(g.seq1Range.length+g.seq2Range.length)*2/3)&&u.push(g),l=g.getEndExclusives()}for(s(a,"scanWord");o.length>0;){let f=o.shift();f.seq1Range.isEmpty||(a(f.getStarts(),f),a(f.getEndExclusives().delta(-1),f))}return Bn(t,u)}s(Tt,"extendDiffsToEntireWordIfAppropriate");function Bn(i,e){let t=[];for(;i.length>0||e.length>0;){let n=i[0],r=e[0],o;n&&(!r||n.seq1Range.start<r.seq1Range.start)?o=i.shift():o=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}s(Bn,"mergeSequenceDiffs");function an(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let l=[n[0]];for(let a=1;a<n.length;a++){let m=function(d,g){let x=new A(f.seq1Range.endExclusive,c.seq1Range.start);return i.getText(x).replace(/\s/g,"").length<=4&&(d.seq1Range.length+d.seq2Range.length>5||g.seq1Range.length+g.seq2Range.length>5)};var u=m;s(m,"shouldJoinDiffs");let c=n[a],f=l[l.length-1];m(f,c)?(o=!0,l[l.length-1]=l[l.length-1].join(c)):l.push(c)}n=l}while(r++<10&&o);return n}s(an,"removeVeryShortMatchingLinesBetweenDiffs");function cn(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let a=[n[0]];for(let c=1;c<n.length;c++){let p=function(g,x){let y=new A(m.seq1Range.endExclusive,f.seq1Range.start);if(i.countLinesIn(y)>5||y.length>500)return!1;let S=i.getText(y).trim();if(S.length>20||S.split(/\r\n|\r|\n/).length>1)return!1;let P=i.countLinesIn(g.seq1Range),b=g.seq1Range.length,T=e.countLinesIn(g.seq2Range),_=g.seq2Range.length,L=i.countLinesIn(x.seq1Range),B=x.seq1Range.length,W=e.countLinesIn(x.seq2Range),De=x.seq2Range.length,Se=130;function _e(xt){return Math.min(xt,Se)}return s(_e,"cap"),Math.pow(Math.pow(_e(P*40+b),1.5)+Math.pow(_e(T*40+_),1.5),1.5)+Math.pow(Math.pow(_e(L*40+B),1.5)+Math.pow(_e(W*40+De),1.5),1.5)>(Se**1.5)**1.5*1.3};var l=p;s(p,"shouldJoinDiffs");let f=n[c],m=a[a.length-1];p(m,f)?(o=!0,a[a.length-1]=a[a.length-1].join(f)):a.push(f)}n=a}while(r++<10&&o);let u=[];return wt(n,(a,c,f)=>{let m=c;function p(S){return S.length>0&&S.trim().length<=3&&c.seq1Range.length+c.seq2Range.length>100}s(p,"shouldMarkAsChanged");let d=i.extendToFullLines(c.seq1Range),g=i.getText(new A(d.start,c.seq1Range.start));p(g)&&(m=m.deltaStart(-g.length));let x=i.getText(new A(c.seq1Range.endExclusive,d.endExclusive));p(x)&&(m=m.deltaEnd(x.length));let y=q.fromOffsetPairs(a?a.getEndExclusives():Q.zero,f?f.getStarts():Q.max),M=m.intersect(y);u.length>0&&M.getStarts().equals(u[u.length-1].getEndExclusives())?u[u.length-1]=u[u.length-1].join(M):u.push(M)}),u}s(cn,"removeVeryShortMatchingTextBetweenLongDiffs");var Ne=class{constructor(e,t){this.trimmedHash=e;this.lines=t}static{s(this,"LineSequence")}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){let t=e===0?0:fn(this.lines[e-1]),n=e===this.lines.length?0:fn(this.lines[e]);return 1e3-(t+n)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
39
- `)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function fn(i){let e=0;for(;e<i.length&&(i.charCodeAt(e)===32||i.charCodeAt(e)===9);)e++;return e}s(fn,"getIndentation");var $e=class{constructor(){this.dynamicProgrammingDiffing=new je;this.myersDiffingAlgorithm=new he}static{s(this,"DefaultLinesDiffComputer")}computeDiff(e,t,n){if(e.length<=1&&ke(e,t,(T,_)=>T===_))return new de([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new de([new ge(new O(1,e.length+1),new O(1,t.length+1),[new z(new w(1,1,e.length,e[e.length-1].length+1),new w(1,1,t.length,t[t.length-1].length+1))])],[],!1);let r=n.maxComputationTimeMs===0?C.instance:new We(n.maxComputationTimeMs),o=!n.ignoreTrimWhitespace,u=new Map;function l(T){let _=u.get(T);return _===void 0&&(_=u.size,u.set(T,_)),_}s(l,"getOrCreateHash");let a=e.map(T=>l(T.trim())),c=t.map(T=>l(T.trim())),f=new Ne(a,e),m=new Ne(c,t),p=f.length+m.length<1700?this.dynamicProgrammingDiffing.compute(f,m,r,(T,_)=>e[T]===t[_]?t[_].length===0?.1:1+Math.log(1+t[_].length):.99):this.myersDiffingAlgorithm.compute(f,m,r),d=p.diffs,g=p.hitTimeout;d=ht(f,m,d),d=an(f,m,d);let x=[],y=s(T=>{if(o)for(let _=0;_<T;_++){let L=M+_,B=S+_;if(e[L]!==t[B]){let W=this.refineDiff(e,t,new q(new A(L,L+1),new A(B,B+1)),r,o,n);for(let De of W.mappings)x.push(De);W.hitTimeout&&(g=!0)}}},"scanForWhitespaceChanges"),M=0,S=0;for(let T of d){ie(()=>T.seq1Range.start-M===T.seq2Range.start-S);let _=T.seq1Range.start-M;y(_),M=T.seq1Range.endExclusive,S=T.seq2Range.endExclusive;let L=this.refineDiff(e,t,T,r,o,n);L.hitTimeout&&(g=!0);for(let B of L.mappings)x.push(B)}y(e.length-M);let P=pt(x,new se(e),new se(t)),b=[];return n.computeMoves&&(b=this.computeMoves(P,e,t,a,c,r,o,n)),ie(()=>{function T(L,B){if(L.lineNumber<1||L.lineNumber>B.length)return!1;let W=B[L.lineNumber-1];return!(L.column<1||L.column>W.length+1)}s(T,"validatePosition");function _(L,B){return!(L.startLineNumber<1||L.startLineNumber>B.length+1||L.endLineNumberExclusive<1||L.endLineNumberExclusive>B.length+1)}s(_,"validateRange");for(let L of P){if(!L.innerChanges)return!1;for(let B of L.innerChanges)if(!(T(B.modifiedRange.getStartPosition(),t)&&T(B.modifiedRange.getEndPosition(),t)&&T(B.originalRange.getStartPosition(),e)&&T(B.originalRange.getEndPosition(),e)))return!1;if(!_(L.modified,t)||!_(L.original,e))return!1}return!0}),new de(P,b,g)}computeMoves(e,t,n,r,o,u,l,a){return sn(e,t,n,r,o,u).map(m=>{let p=this.refineDiff(t,n,new q(m.original.toOffsetRange(),m.modified.toOffsetRange()),u,l,a),d=pt(p.mappings,new se(t),new se(n),!0);return new ze(m,d)})}refineDiff(e,t,n,r,o,u){let a=Kn(n).toRangeMapping2(e,t),c=new ee(e,a.originalRange,o),f=new ee(t,a.modifiedRange,o),m=c.length+f.length<500?this.dynamicProgrammingDiffing.compute(c,f,r):this.myersDiffingAlgorithm.compute(c,f,r),p=!1,d=m.diffs;p&&q.assertSorted(d),d=ht(c,f,d),p&&q.assertSorted(d),d=Tt(c,f,d,(x,y)=>x.findWordContaining(y)),p&&q.assertSorted(d),u.extendToSubwords&&(d=Tt(c,f,d,(x,y)=>x.findSubWordContaining(y),!0),p&&q.assertSorted(d)),d=ln(c,f,d),p&&q.assertSorted(d),d=cn(c,f,d),p&&q.assertSorted(d);let g=d.map(x=>new z(c.translateRange(x.seq1Range),f.translateRange(x.seq2Range)));return p&&z.assertSorted(g),{mappings:g,hitTimeout:m.hitTimeout}}};function Kn(i){return new H(new O(i.seq1Range.start+1,i.seq1Range.endExclusive+1),new O(i.seq2Range.start+1,i.seq2Range.endExclusive+1))}s(Kn,"toLineRangeMapping");async function Vn(i,e,t){return mn(i,e,t)}s(Vn,"computeDiff");function mn(i,e,t){let n=i.split(/\r\n|\r|\n/),r=e.split(/\r\n|\r|\n/),u=new $e().computeDiff(n,r,t),l=u.changes.length>0?!1:i===e;function a(c){return c.map(f=>[f.original.startLineNumber,f.original.endLineNumberExclusive,f.modified.startLineNumber,f.modified.endLineNumberExclusive,f.innerChanges?.map(m=>[m.originalRange.startLineNumber,m.originalRange.startColumn,m.originalRange.endLineNumber,m.originalRange.endColumn,m.modifiedRange.startLineNumber,m.modifiedRange.startColumn,m.modifiedRange.endLineNumber,m.modifiedRange.endColumn])])}return s(a,"getLineChanges"),{identical:l,quitEarly:u.hitTimeout,changes:a(u.changes),moves:u.moves.map(c=>[c.lineRangeMapping.original.startLineNumber,c.lineRangeMapping.original.endLineNumberExclusive,c.lineRangeMapping.modified.startLineNumber,c.lineRangeMapping.modified.endLineNumberExclusive,a(c.changes)])}}s(mn,"computeDiffSync");function zn(){let i=dn.parentPort;if(!i)throw new Error("This module should only be used in a worker thread.");i.on("message",async({id:e,fn:t,args:n})=>{try{let r=await _t[t](...n);i.postMessage({id:e,res:r})}catch(r){i.postMessage({id:e,err:r})}})}s(zn,"main");zn();
38
+ `),r=ft(t,n);t=t.substring(r),n=n.substring(r);let o=Zt(t,n);return t=t.substring(0,t.length-o),n=n.substring(0,n.length-o),t===""}};function We(i,e){if(i.lineNumber===e.lineNumber&&i.column===Number.MAX_SAFE_INTEGER)return y.fromPositions(e,e);if(!i.isBeforeOrEqual(e))throw new F("start must be before end");return new y(i.lineNumber,i.column,e.lineNumber,e.column)}s(We,"rangeFromPositions");var H=class i{static{s(this,"LineRangeMapping")}static inverse(e,t,n){let r=[],o=1,u=1;for(let l of e){let c=new i(new O(o,l.original.startLineNumber),new O(u,l.modified.startLineNumber));c.modified.isEmpty||r.push(c),o=l.original.endLineNumberExclusive,u=l.modified.endLineNumberExclusive}let a=new i(new O(o,t+1),new O(u,n+1));return a.modified.isEmpty||r.push(a),r}static clip(e,t,n){let r=[];for(let o of e){let u=o.original.intersect(t),a=o.modified.intersect(n);u&&!u.isEmpty&&a&&!a.isEmpty&&r.push(new i(u,a))}return r}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new i(this.modified,this.original)}join(e){return new i(this.original.join(e.original),this.modified.join(e.modified))}get changedLineCount(){return Math.max(this.original.length,this.modified.length)}toRangeMapping(){let e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new z(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new F("not a valid diff");return new z(new y(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new y(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new z(new y(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new y(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,t){if(Ct(this.original.endLineNumberExclusive,e)&&Ct(this.modified.endLineNumberExclusive,t))return new z(new y(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new y(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new z(y.fromPositions(new U(this.original.startLineNumber,1),pe(new U(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),y.fromPositions(new U(this.modified.startLineNumber,1),pe(new U(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new z(y.fromPositions(pe(new U(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),pe(new U(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),y.fromPositions(pe(new U(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),pe(new U(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));throw new F}};function pe(i,e){if(i.lineNumber<1)return new U(1,1);if(i.lineNumber>e.length)return new U(e.length,e[e.length-1].length+1);let t=e[i.lineNumber-1];return i.column>t.length+1?new U(i.lineNumber,t.length+1):i}s(pe,"normalizePosition");function Ct(i,e){return i>=1&&i<=e.length}s(Ct,"isValidLineNumber");var ge=class i extends H{static{s(this,"DetailedLineRangeMapping")}static fromRangeMappings(e){let t=O.join(e.map(r=>O.fromRangeInclusive(r.originalRange))),n=O.join(e.map(r=>O.fromRangeInclusive(r.modifiedRange)));return new i(t,n,e)}constructor(e,t,n){super(e,t),this.innerChanges=n}flip(){return new i(this.modified,this.original,this.innerChanges?.map(e=>e.flip()))}withInnerChangesFromLineRanges(){return new i(this.original,this.modified,[this.toRangeMapping()])}},z=class i{static{s(this,"RangeMapping")}static fromEdit(e){let t=e.getNewRanges();return e.replacements.map((r,o)=>new i(r.range,t[o]))}static fromEditJoin(e){let t=e.getNewRanges(),n=e.replacements.map((r,o)=>new i(r.range,t[o]));return i.join(n)}static join(e){if(e.length===0)throw new F("Cannot join an empty list of range mappings");let t=e[0];for(let n=1;n<e.length;n++)t=t.join(e[n]);return t}static assertSorted(e){for(let t=1;t<e.length;t++){let n=e[t-1],r=e[t];if(!(n.originalRange.getEndPosition().isBeforeOrEqual(r.originalRange.getStartPosition())&&n.modifiedRange.getEndPosition().isBeforeOrEqual(r.modifiedRange.getStartPosition())))throw new F("Range mappings must be sorted")}}constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new i(this.modifiedRange,this.originalRange)}toTextEdit(e){let t=e.getValueOfRange(this.modifiedRange);return new $(this.originalRange,t)}join(e){return new i(this.originalRange.plusRange(e.originalRange),this.modifiedRange.plusRange(e.modifiedRange))}};function pt(i,e,t,n=!1){let r=[];for(let o of It(i.map(u=>An(u,e,t)),(u,a)=>u.original.intersectsOrTouches(a.original)||u.modified.intersectsOrTouches(a.modified))){let u=o[0],a=o[o.length-1];r.push(new ge(u.original.join(a.original),u.modified.join(a.modified),o.map(l=>l.innerChanges[0])))}return ie(()=>!n&&r.length>0&&(r[0].modified.startLineNumber!==r[0].original.startLineNumber||t.length.lineCount-r[r.length-1].modified.endLineNumberExclusive!==e.length.lineCount-r[r.length-1].original.endLineNumberExclusive)?!1:qe(r,(o,u)=>u.original.startLineNumber-o.original.endLineNumberExclusive===u.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive<u.original.startLineNumber&&o.modified.endLineNumberExclusive<u.modified.startLineNumber)),r}s(pt,"lineRangeMappingFromRangeMappings");function An(i,e,t){let n=0,r=0;i.modifiedRange.endColumn===1&&i.originalRange.endColumn===1&&i.originalRange.startLineNumber+n<=i.originalRange.endLineNumber&&i.modifiedRange.startLineNumber+n<=i.modifiedRange.endLineNumber&&(r=-1),i.modifiedRange.startColumn-1>=t.getLineLength(i.modifiedRange.startLineNumber)&&i.originalRange.startColumn-1>=e.getLineLength(i.originalRange.startLineNumber)&&i.originalRange.startLineNumber<=i.originalRange.endLineNumber+r&&i.modifiedRange.startLineNumber<=i.modifiedRange.endLineNumber+r&&(n=1);let o=new O(i.originalRange.startLineNumber+n,i.originalRange.endLineNumber+1+r),u=new O(i.modifiedRange.startLineNumber+n,i.modifiedRange.endLineNumber+1+r);return new ge(o,u,[i])}s(An,"getLineRangeMapping");var X=class i{constructor(e,t){this.diffs=e;this.hitTimeout=t}static{s(this,"DiffAlgorithmResult")}static trivial(e,t){return new i([new q(A.ofLength(e.length),A.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new i([new q(A.ofLength(e.length),A.ofLength(t.length))],!0)}},q=class i{constructor(e,t){this.seq1Range=e;this.seq2Range=t}static{s(this,"SequenceDiff")}static invert(e,t){let n=[];return yt(e,(r,o)=>{n.push(i.fromOffsetPairs(r?r.getEndExclusives():Q.zero,o?o.getStarts():new Q(t,(r?r.seq2Range.endExclusive-r.seq1Range.endExclusive:0)+t)))}),n}static fromOffsetPairs(e,t){return new i(new A(e.offset1,t.offset1),new A(e.offset2,t.offset2))}static assertSorted(e){let t;for(let n of e){if(t&&!(t.seq1Range.endExclusive<=n.seq1Range.start&&t.seq2Range.endExclusive<=n.seq2Range.start))throw new F("Sequence diffs must be sorted");t=n}}swap(){return new i(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new i(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new i(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new i(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new i(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersectsOrTouches(e){return this.seq1Range.intersectsOrTouches(e.seq1Range)||this.seq2Range.intersectsOrTouches(e.seq2Range)}intersect(e){let t=this.seq1Range.intersect(e.seq1Range),n=this.seq2Range.intersect(e.seq2Range);if(!(!t||!n))return new i(t,n)}getStarts(){return new Q(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Q(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}},Q=class i{constructor(e,t){this.offset1=e;this.offset2=t}static{s(this,"OffsetPair")}static{this.zero=new i(0,0)}static{this.max=new i(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new i(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}},te=class i{static{s(this,"InfiniteTimeout")}static{this.instance=new i}isValid(){return!0}},je=class{constructor(e){this.timeout=e;this.startTime=Date.now();this.valid=!0;if(e<=0)throw new F("timeout must be positive")}static{s(this,"DateTimeout")}isValid(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),this.valid}disable(){this.timeout=Number.MAX_SAFE_INTEGER,this.isValid=()=>!0,this.valid=!0}};var be=class{constructor(e,t){this.width=e;this.height=t;this.array=[];this.array=new Array(e*t)}static{s(this,"Array2D")}get(e,t){return this.array[e+t*this.width]}set(e,t,n){this.array[e+t*this.width]=n}};function Ne(i){return i===32||i===9}s(Ne,"isSpace");var we=class i{constructor(e,t,n){this.range=e;this.lines=t;this.source=n;this.histogram=[];let r=0;for(let o=e.startLineNumber-1;o<e.endLineNumberExclusive-1;o++){let u=t[o];for(let l=0;l<u.length;l++){r++;let c=u[l],f=i.getKey(c);this.histogram[f]=(this.histogram[f]||0)+1}r++;let a=i.getKey(`
39
+ `);this.histogram[a]=(this.histogram[a]||0)+1}this.totalCount=r}static{s(this,"LineRangeFragment")}static{this.chrKeys=new Map}static getKey(e){let t=this.chrKeys.get(e);return t===void 0&&(t=this.chrKeys.size,this.chrKeys.set(e,t)),t}computeSimilarity(e){let t=0,n=Math.max(this.histogram.length,e.histogram.length);for(let r=0;r<n;r++)t+=Math.abs((this.histogram[r]??0)-(e.histogram[r]??0));return 1-t/(this.totalCount+e.totalCount)}};var Ge=class{static{s(this,"DynamicProgrammingDiffing")}compute(e,t,n=te.instance,r){if(e.length===0||t.length===0)return X.trivial(e,t);let o=new be(e.length,t.length),u=new be(e.length,t.length),a=new be(e.length,t.length);for(let g=0;g<e.length;g++)for(let x=0;x<t.length;x++){if(!n.isValid())return X.trivialTimedOut(e,t);let w=g===0?0:o.get(g-1,x),M=x===0?0:o.get(g,x-1),S;e.getElement(g)===t.getElement(x)?(g===0||x===0?S=0:S=o.get(g-1,x-1),g>0&&x>0&&u.get(g-1,x-1)===3&&(S+=a.get(g-1,x-1)),S+=r?r(g,x):1):S=-1;let P=Math.max(w,M,S);if(P===S){let b=g>0&&x>0?a.get(g-1,x-1):0;a.set(g,x,b+1),u.set(g,x,3)}else P===w?(a.set(g,x,0),u.set(g,x,1)):P===M&&(a.set(g,x,0),u.set(g,x,2));o.set(g,x,P)}let l=[],c=e.length,f=t.length;function m(g,x){(g+1!==c||x+1!==f)&&l.push(new q(new A(g+1,c),new A(x+1,f))),c=g,f=x}s(m,"reportDecreasingAligningPositions");let p=e.length-1,d=t.length-1;for(;p>=0&&d>=0;)u.get(p,d)===3?(m(p,d),p--,d--):u.get(p,d)===1?p--:d--;return m(-1,-1),l.reverse(),new X(l,!1)}};var he=class{static{s(this,"MyersDiffAlgorithm")}compute(e,t,n=te.instance){if(e.length===0||t.length===0)return X.trivial(e,t);let r=e,o=t;function u(x,w){for(;x<r.length&&w<o.length&&r.getElement(x)===o.getElement(w);)x++,w++;return x}s(u,"getXAfterSnake");let a=0,l=new gt;l.set(0,u(0,0));let c=new bt;c.set(0,l.get(0)===0?null:new $e(null,0,0,l.get(0)));let f=0;e:for(;;){if(a++,!n.isValid())return X.trivialTimedOut(r,o);let x=-Math.min(a,o.length+a%2),w=Math.min(a,r.length+a%2);for(f=x;f<=w;f+=2){let M=0,S=f===w?-1:l.get(f+1),P=f===x?-1:l.get(f-1)+1;M++;let b=Math.min(Math.max(S,P),r.length),T=b-f;if(M++,b>r.length||T>o.length)continue;let _=u(b,T);l.set(f,_);let L=b===S?c.get(f+1):c.get(f-1);if(c.set(f,_!==b?new $e(L,b,T,_-b):L),l.get(f)===r.length&&l.get(f)-f===o.length)break e}}let m=c.get(f),p=[],d=r.length,g=o.length;for(;;){let x=m?m.x+m.length:0,w=m?m.y+m.length:0;if((x!==d||w!==g)&&p.push(new q(new A(x,d),new A(w,g))),!m)break;d=m.x,g=m.y,m=m.prev}return p.reverse(),new X(p,!1)}},$e=class{constructor(e,t,n,r){this.prev=e;this.x=t;this.y=n;this.length=r}static{s(this,"SnakePath")}},gt=class{constructor(){this.positiveArr=new Int32Array(10);this.negativeArr=new Int32Array(10)}static{s(this,"FastInt32Array")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){let n=this.negativeArr;this.negativeArr=new Int32Array(n.length*2),this.negativeArr.set(n)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){let n=this.positiveArr;this.positiveArr=new Int32Array(n.length*2),this.positiveArr.set(n)}this.positiveArr[e]=t}}},bt=class{constructor(){this.positiveArr=[];this.negativeArr=[]}static{s(this,"FastArrayNegativeIndices")}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}};var ne=class{constructor(e,t,n){this.lines=e;this.range=t;this.considerWhitespaceChanges=n;this.elements=[];this.firstElementOffsetByLineIdx=[];this.lineStartOffsets=[];this.trimmedWsLengthsByLineIdx=[];this.firstElementOffsetByLineIdx.push(0);for(let r=this.range.startLineNumber;r<=this.range.endLineNumber;r++){let o=e[r-1],u=0;r===this.range.startLineNumber&&this.range.startColumn>1&&(u=this.range.startColumn-1,o=o.substring(u)),this.lineStartOffsets.push(u);let a=0;if(!n){let c=o.trimStart();a=o.length-c.length,o=c.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);let l=r===this.range.endLineNumber?Math.min(this.range.endColumn-1-u-a,o.length):o.length;for(let c=0;c<l;c++)this.elements.push(o.charCodeAt(c));r<this.range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}static{s(this,"LinesSliceCharSequence")}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new A(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(t=>String.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){let t=nn(e>0?this.elements[e-1]:-1),n=nn(e<this.elements.length?this.elements[e]:-1);if(t===7&&n===8)return 0;if(t===8)return 150;let r=0;return t!==n&&(r+=10,t===0&&n===1&&(r+=1)),r+=tn(t),r+=tn(n),r}translateOffset(e,t="right"){let n=Y(this.firstElementOffsetByLineIdx,o=>o<=e),r=e-this.firstElementOffsetByLineIdx[n];return new U(this.range.startLineNumber+n,1+this.lineStartOffsets[n]+r+(r===0&&t==="left"?0:this.trimmedWsLengthsByLineIdx[n]))}translateRange(e){let t=this.translateOffset(e.start,"right"),n=this.translateOffset(e.endExclusive,"left");return n.isBefore(t)?y.fromPositions(n,n):y.fromPositions(t,n)}findWordContaining(e){if(e<0||e>=this.elements.length||!Te(this.elements[e]))return;let t=e;for(;t>0&&Te(this.elements[t-1]);)t--;let n=e;for(;n<this.elements.length&&Te(this.elements[n]);)n++;return new A(t,n)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!Te(this.elements[e]))return;let t=e;for(;t>0&&Te(this.elements[t-1])&&!en(this.elements[t]);)t--;let n=e;for(;n<this.elements.length&&Te(this.elements[n])&&!en(this.elements[n]);)n++;return new A(t,n)}countLinesIn(e){return this.translateOffset(e.endExclusive).lineNumber-this.translateOffset(e.start).lineNumber}isStronglyEqual(e,t){return this.elements[e]===this.elements[t]}extendToFullLines(e){let t=J(this.firstElementOffsetByLineIdx,r=>r<=e.start)??0,n=Et(this.firstElementOffsetByLineIdx,r=>e.endExclusive<=r)??this.elements.length;return new A(t,n)}};function Te(i){return i>=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57}s(Te,"isWordChar");function en(i){return i>=65&&i<=90}s(en,"isUpperCase");var On={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function tn(i){return On[i]}s(tn,"getCategoryBoundaryScore");function nn(i){return i===10?8:i===13?7:Ne(i)?6:i>=97&&i<=122?0:i>=65&&i<=90?1:i>=48&&i<=57?2:i===-1?3:i===44||i===59?5:4}s(nn,"getCategory");function sn(i,e,t,n,r,o){let{moves:u,excludedChanges:a}=Un(i,e,t,o);if(!o.isValid())return[];let l=i.filter(f=>!a.has(f)),c=kn(l,n,r,e,t,o);return Nt(u,c),u=Pn(u),u=u.filter(f=>{let m=f.original.toOffsetRange().slice(e).map(d=>d.trim());return m.join(`
40
+ `).length>=15&&Mn(m,d=>d.length>=2)>=2}),u=qn(i,u),u}s(sn,"computeMovedLines");function Mn(i,e){let t=0;for(let n of i)e(n)&&t++;return t}s(Mn,"countWhere");function Un(i,e,t,n){let r=[],o=i.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new we(l.original,e,l)),u=new Set(i.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new we(l.modified,t,l))),a=new Set;for(let l of o){let c=-1,f;for(let m of u){let p=l.computeSimilarity(m);p>c&&(c=p,f=m)}if(c>.9&&f&&(u.delete(f),r.push(new H(l.range,f.range)),a.add(l.source),a.add(f.source)),!n.isValid())return{moves:r,excludedChanges:a}}return{moves:r,excludedChanges:a}}s(Un,"computeMovesFromSimpleDeletionsToSimpleInsertions");function kn(i,e,t,n,r,o){let u=[],a=new le;for(let p of i)for(let d=p.original.startLineNumber;d<p.original.endLineNumberExclusive-2;d++){let g=`${e[d-1]}:${e[d+1-1]}:${e[d+2-1]}`;a.add(g,{range:new O(d,d+3)})}let l=[];i.sort(Z(p=>p.modified.startLineNumber,C));for(let p of i){let d=[];for(let g=p.modified.startLineNumber;g<p.modified.endLineNumberExclusive-2;g++){let x=`${t[g-1]}:${t[g+1-1]}:${t[g+2-1]}`,w=new O(g,g+3),M=[];a.forEach(x,({range:S})=>{for(let b of d)if(b.originalLineRange.endLineNumberExclusive+1===S.endLineNumberExclusive&&b.modifiedLineRange.endLineNumberExclusive+1===w.endLineNumberExclusive){b.originalLineRange=new O(b.originalLineRange.startLineNumber,S.endLineNumberExclusive),b.modifiedLineRange=new O(b.modifiedLineRange.startLineNumber,w.endLineNumberExclusive),M.push(b);return}let P={modifiedLineRange:w,originalLineRange:S};l.push(P),M.push(P)}),d=M}if(!o.isValid())return[]}l.sort(St(Z(p=>p.modifiedLineRange.length,C)));let c=new re,f=new re;for(let p of l){let d=p.modifiedLineRange.startLineNumber-p.originalLineRange.startLineNumber,g=c.subtractFrom(p.modifiedLineRange),x=f.subtractFrom(p.originalLineRange).getWithDelta(d),w=g.getIntersection(x);for(let M of w.ranges){if(M.length<3)continue;let S=M,P=M.delta(-d);u.push(new H(P,S)),c.addRange(S),f.addRange(P)}}u.sort(Z(p=>p.original.startLineNumber,C));let m=new ve(i);for(let p=0;p<u.length;p++){let d=u[p],g=m.findLastMonotonous(_=>_.original.startLineNumber<=d.original.startLineNumber),x=J(i,_=>_.modified.startLineNumber<=d.modified.startLineNumber),w=Math.max(d.original.startLineNumber-g.original.startLineNumber,d.modified.startLineNumber-x.modified.startLineNumber),M=m.findLastMonotonous(_=>_.original.startLineNumber<d.original.endLineNumberExclusive),S=J(i,_=>_.modified.startLineNumber<d.modified.endLineNumberExclusive),P=Math.max(M.original.endLineNumberExclusive-d.original.endLineNumberExclusive,S.modified.endLineNumberExclusive-d.modified.endLineNumberExclusive),b;for(b=0;b<w;b++){let _=d.original.startLineNumber-b-1,L=d.modified.startLineNumber-b-1;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}b>0&&(f.addRange(new O(d.original.startLineNumber-b,d.original.startLineNumber)),c.addRange(new O(d.modified.startLineNumber-b,d.modified.startLineNumber)));let T;for(T=0;T<P;T++){let _=d.original.endLineNumberExclusive+T,L=d.modified.endLineNumberExclusive+T;if(_>n.length||L>r.length||c.contains(L)||f.contains(_)||!rn(n[_-1],r[L-1],o))break}T>0&&(f.addRange(new O(d.original.endLineNumberExclusive,d.original.endLineNumberExclusive+T)),c.addRange(new O(d.modified.endLineNumberExclusive,d.modified.endLineNumberExclusive+T))),(b>0||T>0)&&(u[p]=new H(new O(d.original.startLineNumber-b,d.original.endLineNumberExclusive+T),new O(d.modified.startLineNumber-b,d.modified.endLineNumberExclusive+T)))}return u}s(kn,"computeUnchangedMoves");function rn(i,e,t){if(i.trim()===e.trim())return!0;if(i.length>300&&e.length>300)return!1;let r=new he().compute(new ne([i],new y(1,1,1,i.length),!1),new ne([e],new y(1,1,1,e.length),!1),t),o=0,u=q.invert(r.diffs,i.length);for(let f of u)f.seq1Range.forEach(m=>{Ne(i.charCodeAt(m))||o++});function a(f){let m=0;for(let p=0;p<i.length;p++)Ne(f.charCodeAt(p))||m++;return m}s(a,"countNonWsChars");let l=a(i.length>e.length?i:e);return o/l>.6&&l>10}s(rn,"areLinesSimilar");function Pn(i){if(i.length===0)return i;i.sort(Z(t=>t.original.startLineNumber,C));let e=[i[0]];for(let t=1;t<i.length;t++){let n=e[e.length-1],r=i[t],o=r.original.startLineNumber-n.original.endLineNumberExclusive,u=r.modified.startLineNumber-n.modified.endLineNumberExclusive;if(o>=0&&u>=0&&o+u<=2){e[e.length-1]=n.join(r);continue}e.push(r)}return e}s(Pn,"joinCloseConsecutiveMoves");function qn(i,e){let t=new ve(i);return e=e.filter(n=>{let r=t.findLastMonotonous(a=>a.original.startLineNumber<n.original.endLineNumberExclusive)||new H(new O(1,1),new O(1,1)),o=J(i,a=>a.modified.startLineNumber<n.modified.endLineNumberExclusive);return r!==o}),e}s(qn,"removeMovesInSameDiff");function ht(i,e,t){let n=t;return n=on(i,e,n),n=on(i,e,n),n=Fn(i,e,n),n}s(ht,"optimizeSequenceDiffs");function on(i,e,t){if(t.length===0)return t;let n=[];n.push(t[0]);for(let o=1;o<t.length;o++){let u=n[n.length-1],a=t[o];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){let l=a.seq1Range.start-u.seq1Range.endExclusive,c;for(c=1;c<=l&&!(i.getElement(a.seq1Range.start-c)!==i.getElement(a.seq1Range.endExclusive-c)||e.getElement(a.seq2Range.start-c)!==e.getElement(a.seq2Range.endExclusive-c));c++);if(c--,c===l){n[n.length-1]=new q(new A(u.seq1Range.start,a.seq1Range.endExclusive-l),new A(u.seq2Range.start,a.seq2Range.endExclusive-l));continue}a=a.delta(-c)}n.push(a)}let r=[];for(let o=0;o<n.length-1;o++){let u=n[o+1],a=n[o];if(a.seq1Range.isEmpty||a.seq2Range.isEmpty){let l=u.seq1Range.start-a.seq1Range.endExclusive,c;for(c=0;c<l&&!(!i.isStronglyEqual(a.seq1Range.start+c,a.seq1Range.endExclusive+c)||!e.isStronglyEqual(a.seq2Range.start+c,a.seq2Range.endExclusive+c));c++);if(c===l){n[o+1]=new q(new A(a.seq1Range.start+l,u.seq1Range.endExclusive),new A(a.seq2Range.start+l,u.seq2Range.endExclusive));continue}c>0&&(a=a.delta(c))}r.push(a)}return n.length>0&&r.push(n[n.length-1]),r}s(on,"joinSequenceDiffsByShifting");function Fn(i,e,t){if(!i.getBoundaryScore||!e.getBoundaryScore)return t;for(let n=0;n<t.length;n++){let r=n>0?t[n-1]:void 0,o=t[n],u=n+1<t.length?t[n+1]:void 0,a=new A(r?r.seq1Range.endExclusive+1:0,u?u.seq1Range.start-1:i.length),l=new A(r?r.seq2Range.endExclusive+1:0,u?u.seq2Range.start-1:e.length);o.seq1Range.isEmpty?t[n]=un(o,i,e,a,l):o.seq2Range.isEmpty&&(t[n]=un(o.swap(),e,i,l,a).swap())}return t}s(Fn,"shiftSequenceDiffs");function un(i,e,t,n,r){let u=1;for(;i.seq1Range.start-u>=n.start&&i.seq2Range.start-u>=r.start&&t.isStronglyEqual(i.seq2Range.start-u,i.seq2Range.endExclusive-u)&&u<100;)u++;u--;let a=0;for(;i.seq1Range.start+a<n.endExclusive&&i.seq2Range.endExclusive+a<r.endExclusive&&t.isStronglyEqual(i.seq2Range.start+a,i.seq2Range.endExclusive+a)&&a<100;)a++;if(u===0&&a===0)return i;let l=0,c=-1;for(let f=-u;f<=a;f++){let m=i.seq2Range.start+f,p=i.seq2Range.endExclusive+f,d=i.seq1Range.start+f,g=e.getBoundaryScore(d)+t.getBoundaryScore(m)+t.getBoundaryScore(p);g>c&&(c=g,l=f)}return i.delta(l)}s(un,"shiftDiffToBetterPosition");function an(i,e,t){let n=[];for(let r of t){let o=n[n.length-1];if(!o){n.push(r);continue}r.seq1Range.start-o.seq1Range.endExclusive<=2||r.seq2Range.start-o.seq2Range.endExclusive<=2?n[n.length-1]=new q(o.seq1Range.join(r.seq1Range),o.seq2Range.join(r.seq2Range)):n.push(r)}return n}s(an,"removeShortMatches");function Tt(i,e,t,n,r=!1){let o=q.invert(t,i.length),u=[],a=new Q(0,0);function l(f,m){if(f.offset1<a.offset1||f.offset2<a.offset2)return;let p=n(i,f.offset1),d=n(e,f.offset2);if(!p||!d)return;let g=new q(p,d),x=g.intersect(m),w=x.seq1Range.length,M=x.seq2Range.length;for(;o.length>0;){let S=o[0];if(!(S.seq1Range.intersects(g.seq1Range)||S.seq2Range.intersects(g.seq2Range)))break;let b=n(i,S.seq1Range.start),T=n(e,S.seq2Range.start),_=new q(b,T),L=_.intersect(S);if(w+=L.seq1Range.length,M+=L.seq2Range.length,g=g.join(_),g.seq1Range.endExclusive>=S.seq1Range.endExclusive)o.shift();else break}(r&&w+M<g.seq1Range.length+g.seq2Range.length||w+M<(g.seq1Range.length+g.seq2Range.length)*2/3)&&u.push(g),a=g.getEndExclusives()}for(s(l,"scanWord");o.length>0;){let f=o.shift();f.seq1Range.isEmpty||(l(f.getStarts(),f),l(f.getEndExclusives().delta(-1),f))}return Bn(t,u)}s(Tt,"extendDiffsToEntireWordIfAppropriate");function Bn(i,e){let t=[];for(;i.length>0||e.length>0;){let n=i[0],r=e[0],o;n&&(!r||n.seq1Range.start<r.seq1Range.start)?o=i.shift():o=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}s(Bn,"mergeSequenceDiffs");function ln(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let a=[n[0]];for(let l=1;l<n.length;l++){let m=function(d,g){let x=new A(f.seq1Range.endExclusive,c.seq1Range.start);return i.getText(x).replace(/\s/g,"").length<=4&&(d.seq1Range.length+d.seq2Range.length>5||g.seq1Range.length+g.seq2Range.length>5)};var u=m;s(m,"shouldJoinDiffs");let c=n[l],f=a[a.length-1];m(f,c)?(o=!0,a[a.length-1]=a[a.length-1].join(c)):a.push(c)}n=a}while(r++<10&&o);return n}s(ln,"removeVeryShortMatchingLinesBetweenDiffs");function cn(i,e,t){let n=t;if(n.length===0)return n;let r=0,o;do{o=!1;let l=[n[0]];for(let c=1;c<n.length;c++){let p=function(g,x){let w=new A(m.seq1Range.endExclusive,f.seq1Range.start);if(i.countLinesIn(w)>5||w.length>500)return!1;let S=i.getText(w).trim();if(S.length>20||S.split(/\r\n|\r|\n/).length>1)return!1;let P=i.countLinesIn(g.seq1Range),b=g.seq1Range.length,T=e.countLinesIn(g.seq2Range),_=g.seq2Range.length,L=i.countLinesIn(x.seq1Range),B=x.seq1Range.length,W=e.countLinesIn(x.seq2Range),Se=x.seq2Range.length,Ae=130;function _e(xt){return Math.min(xt,Ae)}return s(_e,"cap"),Math.pow(Math.pow(_e(P*40+b),1.5)+Math.pow(_e(T*40+_),1.5),1.5)+Math.pow(Math.pow(_e(L*40+B),1.5)+Math.pow(_e(W*40+Se),1.5),1.5)>(Ae**1.5)**1.5*1.3};var a=p;s(p,"shouldJoinDiffs");let f=n[c],m=l[l.length-1];p(m,f)?(o=!0,l[l.length-1]=l[l.length-1].join(f)):l.push(f)}n=l}while(r++<10&&o);let u=[];return wt(n,(l,c,f)=>{let m=c;function p(S){return S.length>0&&S.trim().length<=3&&c.seq1Range.length+c.seq2Range.length>100}s(p,"shouldMarkAsChanged");let d=i.extendToFullLines(c.seq1Range),g=i.getText(new A(d.start,c.seq1Range.start));p(g)&&(m=m.deltaStart(-g.length));let x=i.getText(new A(c.seq1Range.endExclusive,d.endExclusive));p(x)&&(m=m.deltaEnd(x.length));let w=q.fromOffsetPairs(l?l.getEndExclusives():Q.zero,f?f.getStarts():Q.max),M=m.intersect(w);u.length>0&&M.getStarts().equals(u[u.length-1].getEndExclusives())?u[u.length-1]=u[u.length-1].join(M):u.push(M)}),u}s(cn,"removeVeryShortMatchingTextBetweenLongDiffs");var De=class{constructor(e,t){this.trimmedHash=e;this.lines=t}static{s(this,"LineSequence")}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){let t=e===0?0:fn(this.lines[e-1]),n=e===this.lines.length?0:fn(this.lines[e]);return 1e3-(t+n)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(`
41
+ `)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function fn(i){let e=0;for(;e<i.length&&(i.charCodeAt(e)===32||i.charCodeAt(e)===9);)e++;return e}s(fn,"getIndentation");var He=class{constructor(){this.dynamicProgrammingDiffing=new Ge;this.myersDiffingAlgorithm=new he}static{s(this,"DefaultLinesDiffComputer")}computeDiff(e,t,n){if(e.length<=1&&Pe(e,t,(T,_)=>T===_))return new de([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new de([new ge(new O(1,e.length+1),new O(1,t.length+1),[new z(new y(1,1,e.length,e[e.length-1].length+1),new y(1,1,t.length,t[t.length-1].length+1))])],[],!1);let r=n.maxComputationTimeMs===0?te.instance:new je(n.maxComputationTimeMs),o=!n.ignoreTrimWhitespace,u=new Map;function a(T){let _=u.get(T);return _===void 0&&(_=u.size,u.set(T,_)),_}s(a,"getOrCreateHash");let l=e.map(T=>a(T.trim())),c=t.map(T=>a(T.trim())),f=new De(l,e),m=new De(c,t),p=f.length+m.length<1700?this.dynamicProgrammingDiffing.compute(f,m,r,(T,_)=>e[T]===t[_]?t[_].length===0?.1:1+Math.log(1+t[_].length):.99):this.myersDiffingAlgorithm.compute(f,m,r),d=p.diffs,g=p.hitTimeout;d=ht(f,m,d),d=ln(f,m,d);let x=[],w=s(T=>{if(o)for(let _=0;_<T;_++){let L=M+_,B=S+_;if(e[L]!==t[B]){let W=this.refineDiff(e,t,new q(new A(L,L+1),new A(B,B+1)),r,o,n);for(let Se of W.mappings)x.push(Se);W.hitTimeout&&(g=!0)}}},"scanForWhitespaceChanges"),M=0,S=0;for(let T of d){ie(()=>T.seq1Range.start-M===T.seq2Range.start-S);let _=T.seq1Range.start-M;w(_),M=T.seq1Range.endExclusive,S=T.seq2Range.endExclusive;let L=this.refineDiff(e,t,T,r,o,n);L.hitTimeout&&(g=!0);for(let B of L.mappings)x.push(B)}w(e.length-M);let P=pt(x,new se(e),new se(t)),b=[];return n.computeMoves&&(b=this.computeMoves(P,e,t,l,c,r,o,n)),ie(()=>{function T(L,B){if(L.lineNumber<1||L.lineNumber>B.length)return!1;let W=B[L.lineNumber-1];return!(L.column<1||L.column>W.length+1)}s(T,"validatePosition");function _(L,B){return!(L.startLineNumber<1||L.startLineNumber>B.length+1||L.endLineNumberExclusive<1||L.endLineNumberExclusive>B.length+1)}s(_,"validateRange");for(let L of P){if(!L.innerChanges)return!1;for(let B of L.innerChanges)if(!(T(B.modifiedRange.getStartPosition(),t)&&T(B.modifiedRange.getEndPosition(),t)&&T(B.originalRange.getStartPosition(),e)&&T(B.originalRange.getEndPosition(),e)))return!1;if(!_(L.modified,t)||!_(L.original,e))return!1}return!0}),new de(P,b,g)}computeMoves(e,t,n,r,o,u,a,l){return sn(e,t,n,r,o,u).map(m=>{let p=this.refineDiff(t,n,new q(m.original.toOffsetRange(),m.modified.toOffsetRange()),u,a,l),d=pt(p.mappings,new se(t),new se(n),!0);return new ze(m,d)})}refineDiff(e,t,n,r,o,u){let l=Vn(n).toRangeMapping2(e,t),c=new ne(e,l.originalRange,o),f=new ne(t,l.modifiedRange,o),m=c.length+f.length<500?this.dynamicProgrammingDiffing.compute(c,f,r):this.myersDiffingAlgorithm.compute(c,f,r),p=!1,d=m.diffs;p&&q.assertSorted(d),d=ht(c,f,d),p&&q.assertSorted(d),d=Tt(c,f,d,(x,w)=>x.findWordContaining(w)),p&&q.assertSorted(d),u.extendToSubwords&&(d=Tt(c,f,d,(x,w)=>x.findSubWordContaining(w),!0),p&&q.assertSorted(d)),d=an(c,f,d),p&&q.assertSorted(d),d=cn(c,f,d),p&&q.assertSorted(d);let g=d.map(x=>new z(c.translateRange(x.seq1Range),f.translateRange(x.seq2Range)));return p&&z.assertSorted(g),{mappings:g,hitTimeout:m.hitTimeout}}};function Vn(i){return new H(new O(i.seq1Range.start+1,i.seq1Range.endExclusive+1),new O(i.seq2Range.start+1,i.seq2Range.endExclusive+1))}s(Vn,"toLineRangeMapping");async function Kn(i,e,t){return mn(i,e,t)}s(Kn,"computeDiff");function mn(i,e,t){let n=i.split(/\r\n|\r|\n/),r=e.split(/\r\n|\r|\n/),u=new He().computeDiff(n,r,t),a=u.changes.length>0?!1:i===e;function l(c){return c.map(f=>[f.original.startLineNumber,f.original.endLineNumberExclusive,f.modified.startLineNumber,f.modified.endLineNumberExclusive,f.innerChanges?.map(m=>[m.originalRange.startLineNumber,m.originalRange.startColumn,m.originalRange.endLineNumber,m.originalRange.endColumn,m.modifiedRange.startLineNumber,m.modifiedRange.startColumn,m.modifiedRange.endLineNumber,m.modifiedRange.endColumn])])}return s(l,"getLineChanges"),{identical:a,quitEarly:u.hitTimeout,changes:l(u.changes),moves:u.moves.map(c=>[c.lineRangeMapping.original.startLineNumber,c.lineRangeMapping.original.endLineNumberExclusive,c.lineRangeMapping.modified.startLineNumber,c.lineRangeMapping.modified.endLineNumberExclusive,l(c.changes)])}}s(mn,"computeDiffSync");function zn(){let i=dn.parentPort;if(!i)throw new Error("This module should only be used in a worker thread.");i.on("message",async({id:e,fn:t,args:n})=>{try{let r=await _t[t](...n);i.postMessage({id:e,res:r})}catch(r){i.postMessage({id:e,err:r})}})}s(zn,"main");zn();
40
42
  //!!! DO NOT modify, this file was COPIED from 'microsoft/vscode'
41
43
  //# sourceMappingURL=diffWorker.js.map