/*!
Copyright (c) 2026 Lenovo SSG BASD. All rights reserved.
@license Proprietary

This software is the confidential and proprietary property of Lenovo SSG BASD.
You shall not disclose such Confidential Information and shall use it only in
accordance with the terms of the license agreement.

--- Build Info ---
Version: 1.1.1
Build Time: 2026/2/26 17:21:00
Build Commit: 81e556ed827e2f043668506dae6fae8dbb9ef395
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../@marijn/find-cluster-break/src/index.js");class e{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,n){[t,e]=c(this,t,e);let s=[];return this.decompose(0,t,s,2),n.length&&n.decompose(0,n.length,s,3),this.decompose(e,this.length,s,1),i.from(s,this.length-(e-t)+n.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){[t,e]=c(this,t,e);let n=[];return this.decompose(t,e,n,0),i.from(n,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),n=this.length-this.scanIdentical(t,-1),i=new h(this),s=new h(t);for(let r=e,h=e;;){if(i.next(r),s.next(r),r=0,i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return!1;if(h+=i.value.length,i.done||h>=n)return!0}}iter(t=1){return new h(this,t)}iterRange(t,e=this.length){return new o(this,t,e)}iterLines(t,e){let n;if(null==t)n=this.iter();else{null==e&&(e=this.lines+1);let i=this.line(t).from;n=this.iterRange(i,Math.max(i,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new l(n)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(t){if(0==t.length)throw new RangeError("A document must have at least one line");return 1!=t.length||t[0]?t.length<=32?new n(t):i.from(n.split(t,[])):e.empty}}class n extends e{constructor(t,e=function(t){let e=-1;for(let n of t)e+=n.length+1;return e}(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,n,i){for(let s=0;;s++){let r=this.text[s],h=i+r.length;if((e?n:h)>=t)return new a(i,h,n,r);i=h+1,n++}}decompose(t,e,i,h){let o=t<=0&&e>=this.length?this:new n(r(this.text,t,e),Math.min(e,this.length)-Math.max(0,t));if(1&h){let t=i.pop(),e=s(o.text,t.text.slice(),0,o.length);if(e.length<=32)i.push(new n(e,t.length+o.length));else{let t=e.length>>1;i.push(new n(e.slice(0,t)),new n(e.slice(t)))}}else i.push(o)}replace(t,e,h){if(!(h instanceof n))return super.replace(t,e,h);[t,e]=c(this,t,e);let o=s(this.text,s(h.text,r(this.text,0,t)),e),l=this.length+h.length-(e-t);return o.length<=32?new n(o,l):i.from(n.split(o,[]),l)}sliceString(t,e=this.length,n="\n"){[t,e]=c(this,t,e);let i="";for(let s=0,r=0;s<=e&&r<this.text.length;r++){let h=this.text[r],o=s+h.length;s>t&&r&&(i+=n),t<o&&e>s&&(i+=h.slice(Math.max(0,t-s),e-s)),s=o+1}return i}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,e){let i=[],s=-1;for(let r of t)i.push(r),s+=r.length+1,32==i.length&&(e.push(new n(i,s)),i=[],s=-1);return s>-1&&e.push(new n(i,s)),e}}class i extends e{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let n of t)this.lines+=n.lines}lineInner(t,e,n,i){for(let s=0;;s++){let r=this.children[s],h=i+r.length,o=n+r.lines-1;if((e?o:h)>=t)return r.lineInner(t,e,n,i);i=h+1,n=o+1}}decompose(t,e,n,i){for(let s=0,r=0;r<=e&&s<this.children.length;s++){let h=this.children[s],o=r+h.length;if(t<=o&&e>=r){let s=i&((r<=t?1:0)|(o>=e?2:0));r>=t&&o<=e&&!s?n.push(h):h.decompose(t-r,e-r,n,s)}r=o+1}}replace(t,e,n){if([t,e]=c(this,t,e),n.lines<this.lines)for(let s=0,r=0;s<this.children.length;s++){let h=this.children[s],o=r+h.length;if(t>=r&&e<=o){let l=h.replace(t-r,e-r,n),a=this.lines-h.lines+l.lines;if(l.lines<a>>4&&l.lines>a>>6){let r=this.children.slice();return r[s]=l,new i(r,this.length-(e-t)+n.length)}return super.replace(r,o,l)}r=o+1}return super.replace(t,e,n)}sliceString(t,e=this.length,n="\n"){[t,e]=c(this,t,e);let i="";for(let s=0,r=0;s<this.children.length&&r<=e;s++){let h=this.children[s],o=r+h.length;r>t&&s&&(i+=n),t<o&&e>r&&(i+=h.sliceString(t-r,e-r,n)),r=o+1}return i}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof i))return 0;let n=0,[s,r,h,o]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;s+=e,r+=e){if(s==h||r==o)return n;let i=this.children[s],l=t.children[r];if(i!=l)return n+i.scanIdentical(l,e);n+=i.length+1}}static from(t,e=t.reduce((t,e)=>t+e.length+1,-1)){let s=0;for(let n of t)s+=n.lines;if(s<32){let i=[];for(let e of t)e.flatten(i);return new n(i,e)}let r=Math.max(32,s>>5),h=r<<1,o=r>>1,l=[],a=0,c=-1,f=[];function u(t){let e;if(t.lines>h&&t instanceof i)for(let n of t.children)u(n);else t.lines>o&&(a>o||!a)?(g(),l.push(t)):t instanceof n&&a&&(e=f[f.length-1])instanceof n&&t.lines+e.lines<=32?(a+=t.lines,c+=t.length+1,f[f.length-1]=new n(e.text.concat(t.text),e.length+1+t.length)):(a+t.lines>r&&g(),a+=t.lines,c+=t.length+1,f.push(t))}function g(){0!=a&&(l.push(1==f.length?f[0]:i.from(f,c)),c=-1,a=f.length=0)}for(let n of t)u(n);return g(),1==l.length?l[0]:new i(l,e)}}function s(t,e,n=0,i=1e9){for(let s=0,r=0,h=!0;r<t.length&&s<=i;r++){let o=t[r],l=s+o.length;l>=n&&(l>i&&(o=o.slice(0,i-s)),s<n&&(o=o.slice(n-s)),h?(e[e.length-1]+=o,h=!1):e.push(o)),s=l+1}return e}function r(t,e,n){return s(t,[""],e,n)}e.empty=new n([""],0);class h{constructor(t,e=1){this.dir=e,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[t],this.offsets=[e>0?1:(t instanceof n?t.text.length:t.children.length)<<1]}nextInner(t,e){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],h=r>>1,o=s instanceof n?s.text.length:s.children.length;if(h==(e>0?o:0)){if(0==i)return this.done=!0,this.value="",this;e>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&r)==(e>0?0:1)){if(this.offsets[i]+=e,0==t)return this.lineBreak=!0,this.value="\n",this;t--}else if(s instanceof n){let n=s.text[h+(e<0?-1:0)];if(this.offsets[i]+=e,n.length>Math.max(0,t))return this.value=0==t?n:e>0?n.slice(t):n.slice(0,n.length-t),this;t-=n.length}else{let r=s.children[h+(e<0?-1:0)];t>r.length?(t-=r.length,this.offsets[i]+=e):(e<0&&this.offsets[i]--,this.nodes.push(r),this.offsets.push(e>0?1:(r instanceof n?r.text.length:r.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}}class o{constructor(t,e,n){this.value="",this.done=!1,this.cursor=new h(t,e>n?-1:1),this.pos=e>n?t.length:0,this.from=Math.min(e,n),this.to=Math.max(e,n)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let n=e<0?this.pos-this.from:this.to-this.pos;t>n&&(t=n),n-=t;let{value:i}=this.cursor.next(t);return this.pos+=(i.length+t)*e,this.value=i.length<=n?i:e<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class l{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:n,value:i}=this.inner.next(t);return e&&this.afterBreak?(this.value="",this.afterBreak=!1):e?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(e.prototype[Symbol.iterator]=function(){return this.iter()},h.prototype[Symbol.iterator]=o.prototype[Symbol.iterator]=l.prototype[Symbol.iterator]=function(){return this});class a{constructor(t,e,n,i){this.from=t,this.to=e,this.number=n,this.text=i}get length(){return this.to-this.from}}function c(t,e,n){return[e=Math.max(0,Math.min(t.length,e)),Math.max(e,Math.min(t.length,n))]}function f(e,n,i=!0,s=!0){return t.findClusterBreak(e,n,i,s)}const u=/\r\n?|\n/;exports.MapMode=function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t}(exports.MapMode||(exports.MapMode={}));class g{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;e<this.sections.length;e+=2)t+=this.sections[e];return t}get newLength(){let t=0;for(let e=0;e<this.sections.length;e+=2){let n=this.sections[e+1];t+=n<0?this.sections[e]:n}return t}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(t){for(let e=0,n=0,i=0;e<this.sections.length;){let s=this.sections[e++],r=this.sections[e++];r<0?(t(n,i,s),i+=s):i+=r,n+=s}}iterChangedRanges(t,e=!1){x(this,t,e)}get invertedDesc(){let t=[];for(let e=0;e<this.sections.length;){let n=this.sections[e++],i=this.sections[e++];i<0?t.push(n,i):t.push(i,n)}return new g(t)}composeDesc(t){return this.empty?t:t.empty?this:w(this,t)}mapDesc(t,e=!1){return t.empty?this:v(this,t,e)}mapPos(t,e=-1,n=exports.MapMode.Simple){let i=0,s=0;for(let r=0;r<this.sections.length;){let h=this.sections[r++],o=this.sections[r++],l=i+h;if(o<0){if(l>t)return s+(t-i);s+=h}else{if(n!=exports.MapMode.Simple&&l>=t&&(n==exports.MapMode.TrackDel&&i<t&&l>t||n==exports.MapMode.TrackBefore&&i<t||n==exports.MapMode.TrackAfter&&l>t))return null;if(l>t||l==t&&e<0&&!h)return t==i||e<0?s:s+o;s+=o}i=l}if(t>i)throw new RangeError(`Position ${t} is out of range for changeset of length ${i}`);return s}touchesRange(t,e=t){for(let n=0,i=0;n<this.sections.length&&i<=e;){let s=i+this.sections[n++];if(this.sections[n++]>=0&&i<=e&&s>=t)return!(i<t&&s>e)||"cover";i=s}return!1}toString(){let t="";for(let e=0;e<this.sections.length;){let n=this.sections[e++],i=this.sections[e++];t+=(t?" ":"")+n+(i>=0?":"+i:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(t=>"number"!=typeof t))throw new RangeError("Invalid JSON representation of ChangeDesc");return new g(t)}static create(t){return new g(t)}}class d extends g{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return x(this,(e,n,i,s,r)=>t=t.replace(i,i+(n-e),r),!1),t}mapDesc(t,e=!1){return v(this,t,e,!0)}invert(t){let n=this.sections.slice(),i=[];for(let s=0,r=0;s<n.length;s+=2){let h=n[s],o=n[s+1];if(o>=0){n[s]=o,n[s+1]=h;let l=s>>1;for(;i.length<l;)i.push(e.empty);i.push(h?t.slice(r,r+h):e.empty)}r+=h}return new d(n,i)}compose(t){return this.empty?t:t.empty?this:w(this,t,!0)}map(t,e=!1){return t.empty?this:v(this,t,e,!0)}iterChanges(t,e=!1){x(this,t,e)}get desc(){return g.create(this.sections)}filter(t){let e=[],n=[],i=[],s=new y(this);t:for(let r=0,h=0;;){let o=r==t.length?1e9:t[r++];for(;h<o||h==o&&0==s.len;){if(s.done)break t;let t=Math.min(s.len,o-h);p(i,t,-1);let r=-1==s.ins?-1:0==s.off?s.ins:0;p(e,t,r),r>0&&m(n,e,s.text),s.forward(t),h+=t}let l=t[r++];for(;h<l;){if(s.done)break t;let t=Math.min(s.len,l-h);p(e,t,-1),p(i,t,-1==s.ins?-1:0==s.off?s.ins:0),s.forward(t),h+=t}}return{changes:new d(e,n),filtered:g.create(i)}}toJSON(){let t=[];for(let e=0;e<this.sections.length;e+=2){let n=this.sections[e],i=this.sections[e+1];i<0?t.push(n):0==i?t.push([n]):t.push([n].concat(this.inserted[e>>1].toJSON()))}return t}static of(t,n,i){let s=[],r=[],h=0,o=null;function l(t=!1){if(!t&&!s.length)return;h<n&&p(s,n-h,-1);let e=new d(s,r);o=o?o.compose(e.map(o)):e,s=[],r=[],h=0}return function t(a){if(Array.isArray(a))for(let e of a)t(e);else if(a instanceof d){if(a.length!=n)throw new RangeError(`Mismatched change set length (got ${a.length}, expected ${n})`);l(),o=o?o.compose(a.map(o)):a}else{let{from:t,to:o=t,insert:c}=a;if(t>o||t<0||o>n)throw new RangeError(`Invalid change range ${t} to ${o} (in doc of length ${n})`);let f=c?"string"==typeof c?e.of(c.split(i||u)):c:e.empty,g=f.length;if(t==o&&0==g)return;t<h&&l(),t>h&&p(s,t-h,-1),p(s,o-t,g),m(r,s,f),h=o}}(t),l(!o),o}static empty(t){return new d(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],i=[];for(let s=0;s<t.length;s++){let r=t[s];if("number"==typeof r)n.push(r,-1);else{if(!Array.isArray(r)||"number"!=typeof r[0]||r.some((t,e)=>e&&"string"!=typeof t))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==r.length)n.push(r[0],0);else{for(;i.length<s;)i.push(e.empty);i[s]=e.of(r.slice(1)),n.push(r[0],i[s].length)}}}return new d(n,i)}static createSet(t,e){return new d(t,e)}}function p(t,e,n,i=!1){if(0==e&&n<=0)return;let s=t.length-2;s>=0&&n<=0&&n==t[s+1]?t[s]+=e:s>=0&&0==e&&0==t[s]?t[s+1]+=n:i?(t[s]+=e,t[s+1]+=n):t.push(e,n)}function m(t,n,i){if(0==i.length)return;let s=n.length-2>>1;if(s<t.length)t[t.length-1]=t[t.length-1].append(i);else{for(;t.length<s;)t.push(e.empty);t.push(i)}}function x(t,n,i){let s=t.inserted;for(let r=0,h=0,o=0;o<t.sections.length;){let l=t.sections[o++],a=t.sections[o++];if(a<0)r+=l,h+=l;else{let c=r,f=h,u=e.empty;for(;c+=l,f+=a,a&&s&&(u=u.append(s[o-2>>1])),!(i||o==t.sections.length||t.sections[o+1]<0);)l=t.sections[o++],a=t.sections[o++];n(r,c,h,f,u),r=c,h=f}}}function v(t,e,n,i=!1){let s=[],r=i?[]:null,h=new y(t),o=new y(e);for(let l=-1;;){if(h.done&&o.len||o.done&&h.len)throw new Error("Mismatched change set lengths");if(-1==h.ins&&-1==o.ins){let t=Math.min(h.len,o.len);p(s,t,-1),h.forward(t),o.forward(t)}else if(o.ins>=0&&(h.ins<0||l==h.i||0==h.off&&(o.len<h.len||o.len==h.len&&!n))){let t=o.len;for(p(s,o.ins,-1);t;){let e=Math.min(h.len,t);h.ins>=0&&l<h.i&&h.len<=e&&(p(s,0,h.ins),r&&m(r,s,h.text),l=h.i),h.forward(e),t-=e}o.next()}else{if(!(h.ins>=0)){if(h.done&&o.done)return r?d.createSet(s,r):g.create(s);throw new Error("Mismatched change set lengths")}{let t=0,e=h.len;for(;e;)if(-1==o.ins){let n=Math.min(e,o.len);t+=n,e-=n,o.forward(n)}else{if(!(0==o.ins&&o.len<e))break;e-=o.len,o.next()}p(s,t,l<h.i?h.ins:0),r&&l<h.i&&m(r,s,h.text),l=h.i,h.forward(h.len-e)}}}}function w(t,e,n=!1){let i=[],s=n?[]:null,r=new y(t),h=new y(e);for(let o=!1;;){if(r.done&&h.done)return s?d.createSet(i,s):g.create(i);if(0==r.ins)p(i,r.len,0,o),r.next();else if(0!=h.len||h.done){if(r.done||h.done)throw new Error("Mismatched change set lengths");{let t=Math.min(r.len2,h.len),e=i.length;if(-1==r.ins){let e=-1==h.ins?-1:h.off?0:h.ins;p(i,t,e,o),s&&e&&m(s,i,h.text)}else-1==h.ins?(p(i,r.off?0:r.len,t,o),s&&m(s,i,r.textBit(t))):(p(i,r.off?0:r.len,h.off?0:h.ins,o),s&&!h.off&&m(s,i,h.text));o=(r.ins>t||h.ins>=0&&h.len>t)&&(o||i.length>e),r.forward2(t),h.forward(t)}}else p(i,0,h.ins,o),s&&m(s,i,h.text),h.next()}}class y{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i<t.length?(this.len=t[this.i++],this.ins=t[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return-2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length?e.empty:t[n]}textBit(t){let{inserted:n}=this.set,i=this.i-2>>1;return i>=n.length&&!t?e.empty:n[i].slice(this.off,null==t?void 0:this.off+t)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}}class S{constructor(t,e,n){this.from=t,this.to=e,this.flags=n}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let t=7&this.flags;return 7==t?null:t}get goalColumn(){let t=this.flags>>6;return 16777215==t?void 0:t}map(t,e=-1){let n,i;return this.empty?n=i=t.mapPos(this.from,e):(n=t.mapPos(this.from,1),i=t.mapPos(this.to,-1)),n==this.from&&i==this.to?this:new S(n,i,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return k.range(t,e);let n=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return k.range(this.anchor,n)}eq(t,e=!1){return!(this.anchor!=t.anchor||this.head!=t.head||this.goalColumn!=t.goalColumn||e&&this.empty&&this.assoc!=t.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return k.range(t.anchor,t.head)}static create(t,e,n){return new S(t,e,n)}}class k{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:k.create(this.ranges.map(n=>n.map(t,e)),this.mainIndex)}eq(t,e=!1){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(t.ranges[n],e))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new k([this.main],0)}addRange(t,e=!0){return k.create([t].concat(this.ranges),e?0:this.mainIndex+1)}replaceRange(t,e=this.mainIndex){let n=this.ranges.slice();return n[e]=t,k.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(t=>t.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||"number"!=typeof t.main||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new k(t.ranges.map(t=>S.fromJSON(t)),t.main)}static single(t,e=t){return new k([k.range(t,e)],0)}static create(t,e=0){if(0==t.length)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;i<t.length;i++){let s=t[i];if(s.empty?s.from<=n:s.from<n)return k.normalized(t.slice(),e);n=s.to}return new k(t,e)}static cursor(t,e=0,n,i){return S.create(t,t,(0==e?0:e<0?8:16)|(null==n?7:Math.min(6,n))|(null!=i?i:16777215)<<6)}static range(t,e,n,i){let s=(null!=n?n:16777215)<<6|(null==i?7:Math.min(6,i));return e<t?S.create(e,t,48|s):S.create(t,e,(e>t?8:0)|s)}static normalized(t,e=0){let n=t[e];t.sort((t,e)=>t.from-e.from),e=t.indexOf(n);for(let i=1;i<t.length;i++){let n=t[i],s=t[i-1];if(n.empty?n.from<=s.to:n.from<s.to){let r=s.from,h=Math.max(n.to,s.to);i<=e&&e--,t.splice(--i,2,n.anchor>n.head?k.range(h,r):k.range(r,h))}}return new k(t,e)}}function I(t,e){for(let n of t.ranges)if(n.to>e)throw new RangeError("Selection points outside of document")}let b=0;class M{constructor(t,e,n,i,s){this.combine=t,this.compareInput=e,this.compare=n,this.isStatic=i,this.id=b++,this.default=t([]),this.extensions="function"==typeof s?s(this):s}get reader(){return this}static define(t={}){return new M(t.combine||(t=>t),t.compareInput||((t,e)=>t===e),t.compare||(t.combine?(t,e)=>t===e:P),!!t.static,t.enables)}of(t){return new E([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new E(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new E(t,this,2,e)}from(t,e){return e||(e=t=>t),this.compute([t],n=>e(n.field(t)))}}function P(t,e){return t==e||t.length==e.length&&t.every((t,n)=>t===e[n])}class E{constructor(t,e,n,i){this.dependencies=t,this.facet=e,this.type=n,this.value=i,this.id=b++}dynamicSlot(t){var e;let n=this.value,i=this.facet.compareInput,s=this.id,r=t[s]>>1,h=2==this.type,o=!1,l=!1,a=[];for(let c of this.dependencies)"doc"==c?o=!0:"selection"==c?l=!0:1&(null!==(e=t[c.id])&&void 0!==e?e:1)||a.push(t[c.id]);return{create:t=>(t.values[r]=n(t),1),update(t,e){if(o&&e.docChanged||l&&(e.docChanged||e.selection)||A(t,a)){let e=n(t);if(h?!C(e,t.values[r],i):!i(e,t.values[r]))return t.values[r]=e,1}return 0},reconfigure:(t,e)=>{let o,l=e.config.address[s];if(null!=l){let s=_(e,l);if(this.dependencies.every(n=>n instanceof M?e.facet(n)===t.facet(n):!(n instanceof T)||e.field(n,!1)==t.field(n,!1))||(h?C(o=n(t),s,i):i(o=n(t),s)))return t.values[r]=s,0}else o=n(t);return t.values[r]=o,1}}}}function C(t,e,n){if(t.length!=e.length)return!1;for(let i=0;i<t.length;i++)if(!n(t[i],e[i]))return!1;return!0}function A(t,e){let n=!1;for(let i of e)1&q(t,i)&&(n=!0);return n}function R(t,e,n){let i=n.map(e=>t[e.id]),s=n.map(t=>t.type),r=i.filter(t=>!(1&t)),h=t[e.id]>>1;function o(t){let n=[];for(let e=0;e<i.length;e++){let r=_(t,i[e]);if(2==s[e])for(let t of r)n.push(t);else n.push(r)}return e.combine(n)}return{create(t){for(let e of i)q(t,e);return t.values[h]=o(t),1},update(t,n){if(!A(t,r))return 0;let i=o(t);return e.compare(i,t.values[h])?0:(t.values[h]=i,1)},reconfigure(t,s){let r=A(t,i),l=s.config.facets[e.id],a=s.facet(e);if(l&&!r&&P(n,l))return t.values[h]=a,0;let c=o(t);return e.compare(c,a)?(t.values[h]=a,0):(t.values[h]=c,1)}}}const O=M.define({static:!0});class T{constructor(t,e,n,i,s){this.id=t,this.createF=e,this.updateF=n,this.compareF=i,this.spec=s,this.provides=void 0}static define(t){let e=new T(b++,t.create,t.update,t.compare||((t,e)=>t===e),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(O).find(t=>t.field==this);return((null==e?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:t=>(t.values[e]=this.create(t),1),update:(t,n)=>{let i=t.values[e],s=this.updateF(i,n);return this.compareF(i,s)?0:(t.values[e]=s,1)},reconfigure:(t,n)=>{let i,s=t.facet(O),r=n.facet(O);return(i=s.find(t=>t.field==this))&&i!=r.find(t=>t.field==this)?(t.values[e]=i.create(t),1):null!=n.config.address[this.id]?(t.values[e]=n.field(this),0):(t.values[e]=this.create(t),1)}}}init(t){return[this,O.of({field:this,create:t})]}get extension(){return this}}const B=4,F=3,N=2,D=1;function J(t){return e=>new $(e,t)}const L={highest:J(0),high:J(D),default:J(N),low:J(F),lowest:J(B)};class ${constructor(t,e){this.inner=t,this.prec=e}}class j{of(t){return new V(this,t)}reconfigure(t){return j.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}}class V{constructor(t,e){this.compartment=t,this.inner=e}}class z{constructor(t,e,n,i,s,r){for(this.base=t,this.compartments=e,this.dynamicSlots=n,this.address=i,this.staticValues=s,this.facets=r,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(t){let e=this.address[t.id];return null==e?t.default:this.staticValues[e>>1]}static resolve(t,e,n){let i=[],s=Object.create(null),r=new Map;for(let f of function(t,e,n){let i=[[],[],[],[],[]],s=new Map;function r(t,h){let o=s.get(t);if(null!=o){if(o<=h)return;let e=i[o].indexOf(t);e>-1&&i[o].splice(e,1),t instanceof V&&n.delete(t.compartment)}if(s.set(t,h),Array.isArray(t))for(let e of t)r(e,h);else if(t instanceof V){if(n.has(t.compartment))throw new RangeError("Duplicate use of compartment in extensions");let i=e.get(t.compartment)||t.inner;n.set(t.compartment,i),r(i,h)}else if(t instanceof $)r(t.inner,t.prec);else if(t instanceof T)i[h].push(t),t.provides&&r(t.provides,h);else if(t instanceof E)i[h].push(t),t.facet.extensions&&r(t.facet.extensions,N);else{let e=t.extension;if(!e)throw new Error(`Unrecognized extension value in extension set (${t}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(e,h)}}return r(t,N),i.reduce((t,e)=>t.concat(e))}(t,e,r))f instanceof T?i.push(f):(s[f.facet.id]||(s[f.facet.id]=[])).push(f);let h=Object.create(null),o=[],l=[];for(let f of i)h[f.id]=l.length<<1,l.push(t=>f.slot(t));let a=null==n?void 0:n.config.facets;for(let f in s){let t=s[f],e=t[0].facet,i=a&&a[f]||[];if(t.every(t=>0==t.type))if(h[e.id]=o.length<<1|1,P(i,t))o.push(n.facet(e));else{let i=e.combine(t.map(t=>t.value));o.push(n&&e.compare(i,n.facet(e))?n.facet(e):i)}else{for(let e of t)0==e.type?(h[e.id]=o.length<<1|1,o.push(e.value)):(h[e.id]=l.length<<1,l.push(t=>e.dynamicSlot(t)));h[e.id]=l.length<<1,l.push(n=>R(n,e,t))}}let c=l.map(t=>t(h));return new z(t,r,c,h,o,s)}}function q(t,e){if(1&e)return 2;let n=e>>1,i=t.status[n];if(4==i)throw new Error("Cyclic dependency between fields and/or facets");if(2&i)return i;t.status[n]=4;let s=t.computeSlot(t,t.config.dynamicSlots[n]);return t.status[n]=2|s}function _(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}const W=M.define(),U=M.define({combine:t=>t.some(t=>t),static:!0}),G=M.define({combine:t=>t.length?t[0]:void 0,static:!0}),H=M.define(),K=M.define(),Q=M.define(),X=M.define({combine:t=>!!t.length&&t[0]});class Y{constructor(t,e){this.type=t,this.value=e}static define(){return new Z}}class Z{of(t){return new Y(this,t)}}class tt{constructor(t){this.map=t}of(t){return new et(this,t)}}class et{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return void 0===e?void 0:e==this.value?this:new et(this.type,e)}is(t){return this.type==t}static define(t={}){return new tt(t.map||(t=>t))}static mapEffects(t,e){if(!t.length)return t;let n=[];for(let i of t){let t=i.map(e);t&&n.push(t)}return n}}et.reconfigure=et.define(),et.appendConfig=et.define();class nt{constructor(t,e,n,i,s,r){this.startState=t,this.changes=e,this.selection=n,this.effects=i,this.annotations=s,this.scrollIntoView=r,this._doc=null,this._state=null,n&&I(n,e.newLength),s.some(t=>t.type==nt.time)||(this.annotations=s.concat(nt.time.of(Date.now())))}static create(t,e,n,i,s,r){return new nt(t,e,n,i,s,r)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(nt.userEvent);return!(!e||!(e==t||e.length>t.length&&e.slice(0,t.length)==t&&"."==e[t.length]))}}function it(t,e){let n=[];for(let i=0,s=0;;){let r,h;if(i<t.length&&(s==e.length||e[s]>=t[i]))r=t[i++],h=t[i++];else{if(!(s<e.length))return n;r=e[s++],h=e[s++]}!n.length||n[n.length-1]<r?n.push(r,h):n[n.length-1]<h&&(n[n.length-1]=h)}}function st(t,e,n){var i;let s,r,h;return n?(s=e.changes,r=d.empty(e.changes.length),h=t.changes.compose(e.changes)):(s=e.changes.map(t.changes),r=t.changes.mapDesc(e.changes,!0),h=t.changes.compose(s)),{changes:h,selection:e.selection?e.selection.map(r):null===(i=t.selection)||void 0===i?void 0:i.map(s),effects:et.mapEffects(t.effects,s).concat(et.mapEffects(e.effects,r)),annotations:t.annotations.length?t.annotations.concat(e.annotations):e.annotations,scrollIntoView:t.scrollIntoView||e.scrollIntoView}}function rt(t,e,n){let i=e.selection,s=lt(e.annotations);return e.userEvent&&(s=s.concat(nt.userEvent.of(e.userEvent))),{changes:e.changes instanceof d?e.changes:d.of(e.changes||[],n,t.facet(G)),selection:i&&(i instanceof k?i:k.single(i.anchor,i.head)),effects:lt(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function ht(t,e,n){let i=rt(t,e.length?e[0]:{},t.doc.length);e.length&&!1===e[0].filter&&(n=!1);for(let r=1;r<e.length;r++){!1===e[r].filter&&(n=!1);let s=!!e[r].sequential;i=st(i,rt(t,e[r],s?i.changes.newLength:t.doc.length),s)}let s=nt.create(t,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return function(t){let e=t.startState,n=e.facet(Q),i=t;for(let s=n.length-1;s>=0;s--){let r=n[s](t);r&&Object.keys(r).length&&(i=st(i,rt(e,r,t.changes.newLength),!0))}return i==t?t:nt.create(e,t.changes,t.selection,i.effects,i.annotations,i.scrollIntoView)}(n?function(t){let e=t.startState,n=!0;for(let s of e.facet(H)){let e=s(t);if(!1===e){n=!1;break}Array.isArray(e)&&(n=!0===n?e:it(n,e))}if(!0!==n){let i,s;if(!1===n)s=t.changes.invertedDesc,i=d.empty(e.doc.length);else{let e=t.changes.filter(n);i=e.changes,s=e.filtered.mapDesc(e.changes).invertedDesc}t=nt.create(e,i,t.selection&&t.selection.map(s),et.mapEffects(t.effects,s),t.annotations,t.scrollIntoView)}let i=e.facet(K);for(let s=i.length-1;s>=0;s--){let n=i[s](t);t=n instanceof nt?n:Array.isArray(n)&&1==n.length&&n[0]instanceof nt?n[0]:ht(e,lt(n),!1)}return t}(s):s)}nt.time=Y.define(),nt.userEvent=Y.define(),nt.addToHistory=Y.define(),nt.remote=Y.define();const ot=[];function lt(t){return null==t?ot:Array.isArray(t)?t:[t]}exports.CharCategory=function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t}(exports.CharCategory||(exports.CharCategory={}));const at=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let ct;try{ct=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(Rt){}function ft(t){return e=>{if(!/\S/.test(e))return exports.CharCategory.Space;if(function(t){if(ct)return ct.test(t);for(let e=0;e<t.length;e++){let n=t[e];if(/\w/.test(n)||n>""&&(n.toUpperCase()!=n.toLowerCase()||at.test(n)))return!0}return!1}(e))return exports.CharCategory.Word;for(let n=0;n<t.length;n++)if(e.indexOf(t[n])>-1)return exports.CharCategory.Word;return exports.CharCategory.Other}}class ut{constructor(t,e,n,i,s,r){this.config=t,this.doc=e,this.selection=n,this.values=i,this.status=t.statusTemplate.slice(),this.computeSlot=s,r&&(r._state=this);for(let h=0;h<this.config.dynamicSlots.length;h++)q(this,h<<1);this.computeSlot=null}field(t,e=!0){let n=this.config.address[t.id];if(null!=n)return q(this,n),_(this,n);if(e)throw new RangeError("Field is not present in this state")}update(...t){return ht(this,t,!0)}applyTransaction(t){let e,n=this.config,{base:i,compartments:s}=n;for(let h of t.effects)h.is(j.reconfigure)?(n&&(s=new Map,n.compartments.forEach((t,e)=>s.set(e,t)),n=null),s.set(h.value.compartment,h.value.extension)):h.is(et.reconfigure)?(n=null,i=h.value):h.is(et.appendConfig)&&(n=null,i=lt(i).concat(h.value));if(n)e=t.startState.values.slice();else{n=z.resolve(i,s,this),e=new ut(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(t,e)=>e.reconfigure(t,this),null).values}let r=t.startState.facet(U)?t.newSelection:t.newSelection.asSingle();new ut(n,t.newDoc,r,e,(e,n)=>n.update(e,t),t)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:t},range:k.cursor(e.from+t.length)}))}changeByRange(t){let e=this.selection,n=t(e.ranges[0]),i=this.changes(n.changes),s=[n.range],r=lt(n.effects);for(let h=1;h<e.ranges.length;h++){let n=t(e.ranges[h]),o=this.changes(n.changes),l=o.map(i);for(let t=0;t<h;t++)s[t]=s[t].map(l);let a=i.mapDesc(o,!0);s.push(n.range.map(a)),i=i.compose(l),r=et.mapEffects(r,l).concat(et.mapEffects(lt(n.effects),a))}return{changes:i,selection:k.create(s,e.mainIndex),effects:r}}changes(t=[]){return t instanceof d?t:d.of(t,this.doc.length,this.facet(ut.lineSeparator))}toText(t){return e.of(t.split(this.facet(ut.lineSeparator)||u))}sliceDoc(t=0,e=this.doc.length){return this.doc.sliceString(t,e,this.lineBreak)}facet(t){let e=this.config.address[t.id];return null==e?t.default:(q(this,e),_(this,e))}toJSON(t){let e={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(t)for(let n in t){let i=t[n];i instanceof T&&null!=this.config.address[i.id]&&(e[n]=i.spec.toJSON(this.field(t[n]),this))}return e}static fromJSON(t,e={},n){if(!t||"string"!=typeof t.doc)throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(n)for(let s in n)if(Object.prototype.hasOwnProperty.call(t,s)){let e=n[s],r=t[s];i.push(e.init(t=>e.spec.fromJSON(r,t)))}return ut.create({doc:t.doc,selection:k.fromJSON(t.selection),extensions:e.extensions?i.concat([e.extensions]):i})}static create(t={}){let n=z.resolve(t.extensions||[],new Map),i=t.doc instanceof e?t.doc:e.of((t.doc||"").split(n.staticFacet(ut.lineSeparator)||u)),s=t.selection?t.selection instanceof k?t.selection:k.single(t.selection.anchor,t.selection.head):k.single(0);return I(s,i.length),n.staticFacet(U)||(s=s.asSingle()),new ut(n,i,s,n.dynamicSlots.map(()=>null),(t,e)=>e.create(t),null)}get tabSize(){return this.facet(ut.tabSize)}get lineBreak(){return this.facet(ut.lineSeparator)||"\n"}get readOnly(){return this.facet(X)}phrase(t,...e){for(let n of this.facet(ut.phrases))if(Object.prototype.hasOwnProperty.call(n,t)){t=n[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,(t,n)=>{if("$"==n)return"$";let i=+(n||1);return!i||i>e.length?t:e[i-1]})),t}languageDataAt(t,e,n=-1){let i=[];for(let s of this.facet(W))for(let r of s(this,e,n))Object.prototype.hasOwnProperty.call(r,t)&&i.push(r[t]);return i}charCategorizer(t){let e=this.languageDataAt("wordChars",t);return ft(e.length?e[0]:"")}wordAt(t){let{text:e,from:n,length:i}=this.doc.lineAt(t),s=this.charCategorizer(t),r=t-n,h=t-n;for(;r>0;){let t=f(e,r,!1);if(s(e.slice(t,r))!=exports.CharCategory.Word)break;r=t}for(;h<i;){let t=f(e,h);if(s(e.slice(h,t))!=exports.CharCategory.Word)break;h=t}return r==h?null:k.range(r+n,h+n)}}ut.allowMultipleSelections=U,ut.tabSize=M.define({combine:t=>t.length?t[0]:4}),ut.lineSeparator=G,ut.readOnly=X,ut.phrases=M.define({compare(t,e){let n=Object.keys(t),i=Object.keys(e);return n.length==i.length&&n.every(n=>t[n]==e[n])}}),ut.languageData=W,ut.changeFilter=H,ut.transactionFilter=K,ut.transactionExtender=Q,j.reconfigure=et.define();class gt{eq(t){return this==t}range(t,e=t){return pt.create(t,e,this)}}function dt(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}gt.prototype.startSide=gt.prototype.endSide=0,gt.prototype.point=!1,gt.prototype.mapMode=exports.MapMode.TrackDel;class pt{constructor(t,e,n){this.from=t,this.to=e,this.value=n}static create(t,e,n){return new pt(t,e,n)}}function mt(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class xt{constructor(t,e,n,i){this.from=t,this.to=e,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(t,e,n,i=0){let s=n?this.to:this.from;for(let r=i,h=s.length;;){if(r==h)return r;let i=r+h>>1,o=s[i]-t||(n?this.value[i].endSide:this.value[i].startSide)-e;if(i==r)return o>=0?r:h;o>=0?h=i:r=i+1}}between(t,e,n,i){for(let s=this.findIndex(e,-1e9,!0),r=this.findIndex(n,1e9,!1,s);s<r;s++)if(!1===i(this.from[s]+t,this.to[s]+t,this.value[s]))return!1}map(t,e){let n=[],i=[],s=[],r=-1,h=-1;for(let o=0;o<this.value.length;o++){let l,a,c=this.value[o],f=this.from[o]+t,u=this.to[o]+t;if(f==u){let t=e.mapPos(f,c.startSide,c.mapMode);if(null==t)continue;if(l=a=t,c.startSide!=c.endSide&&(a=e.mapPos(f,c.endSide),a<l))continue}else if(l=e.mapPos(f,c.startSide),a=e.mapPos(u,c.endSide),l>a||l==a&&c.startSide>0&&c.endSide<=0)continue;(a-l||c.endSide-c.startSide)<0||(r<0&&(r=l),c.point&&(h=Math.max(h,a-l)),n.push(c),i.push(l-r),s.push(a-r))}return{mapped:n.length?new xt(i,s,n,h):null,pos:r}}}class vt{constructor(t,e,n,i){this.chunkPos=t,this.chunk=e,this.nextLayer=n,this.maxPoint=i}static create(t,e,n,i){return new vt(t,e,n,i)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=t,r=t.filter;if(0==e.length&&!r)return this;if(n&&(e=e.slice().sort(mt)),this.isEmpty)return e.length?vt.of(e):this;let h=new St(this,null,-1).goto(0),o=0,l=[],a=new wt;for(;h.value||o<e.length;)if(o<e.length&&(h.from-e[o].from||h.startSide-e[o].value.startSide)>=0){let t=e[o++];a.addInner(t.from,t.to,t.value)||l.push(t)}else 1==h.rangeIndex&&h.chunkIndex<this.chunk.length&&(o==e.length||this.chunkEnd(h.chunkIndex)<e[o].from)&&(!r||i>this.chunkEnd(h.chunkIndex)||s<this.chunkPos[h.chunkIndex])&&a.addChunk(this.chunkPos[h.chunkIndex],this.chunk[h.chunkIndex])?h.nextChunk():((!r||i>h.to||s<h.from||r(h.from,h.to,h.value))&&(a.addInner(h.from,h.to,h.value)||l.push(pt.create(h.from,h.to,h.value))),h.next());return a.finishInner(this.nextLayer.isEmpty&&!l.length?vt.empty:this.nextLayer.update({add:l,filter:r,filterFrom:i,filterTo:s}))}map(t){if(t.empty||this.isEmpty)return this;let e=[],n=[],i=-1;for(let r=0;r<this.chunk.length;r++){let s=this.chunkPos[r],h=this.chunk[r],o=t.touchesRange(s,s+h.length);if(!1===o)i=Math.max(i,h.maxPoint),e.push(h),n.push(t.mapPos(s));else if(!0===o){let{mapped:r,pos:o}=h.map(s,t);r&&(i=Math.max(i,r.maxPoint),e.push(r),n.push(o))}}let s=this.nextLayer.map(t);return 0==e.length?s:new vt(n,e,s||vt.empty,i)}between(t,e,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let s=this.chunkPos[i],r=this.chunk[i];if(e>=s&&t<=s+r.length&&!1===r.between(s,t-s,e-s,n))return}this.nextLayer.between(t,e,n)}}iter(t=0){return kt.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return kt.from(t).goto(e)}static compare(t,e,n,i,s=-1){let r=t.filter(t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=s),h=e.filter(t=>t.maxPoint>0||!t.isEmpty&&t.maxPoint>=s),o=yt(r,h,n),l=new bt(r,o,s),a=new bt(h,o,s);n.iterGaps((t,e,n)=>Mt(l,t,a,e,n,i)),n.empty&&0==n.length&&Mt(l,0,a,0,0,i)}static eq(t,e,n=0,i){null==i&&(i=999999999);let s=t.filter(t=>!t.isEmpty&&e.indexOf(t)<0),r=e.filter(e=>!e.isEmpty&&t.indexOf(e)<0);if(s.length!=r.length)return!1;if(!s.length)return!0;let h=yt(s,r),o=new bt(s,h,0).goto(n),l=new bt(r,h,0).goto(n);for(;;){if(o.to!=l.to||!Pt(o.active,l.active)||o.point&&(!l.point||!dt(o.point,l.point)))return!1;if(o.to>i)return!0;o.next(),l.next()}}static spans(t,e,n,i,s=-1){let r=new bt(t,null,s).goto(e),h=e,o=r.openStart;for(;;){let t=Math.min(r.to,n);if(r.point){let n=r.activeForPoint(r.to),s=r.pointFrom<e?n.length+1:r.point.startSide<0?n.length:Math.min(n.length,o);i.point(h,t,r.point,n,s,r.pointRank),o=Math.min(r.openEnd(t),n.length)}else t>h&&(i.span(h,t,r.active,o),o=r.openEnd(t));if(r.to>n)return o+(r.point&&r.to>n?1:0);h=r.to,r.next()}}static of(t,e=!1){let n=new wt;for(let i of t instanceof pt?[t]:e?function(t){if(t.length>1)for(let e=t[0],n=1;n<t.length;n++){let i=t[n];if(mt(e,i)>0)return t.slice().sort(mt);e=i}return t}(t):t)n.add(i.from,i.to,i.value);return n.finish()}static join(t){if(!t.length)return vt.empty;let e=t[t.length-1];for(let n=t.length-2;n>=0;n--)for(let i=t[n];i!=vt.empty;i=i.nextLayer)e=new vt(i.chunkPos,i.chunk,e,Math.max(i.maxPoint,e.maxPoint));return e}}vt.empty=new vt([],[],null,-1),vt.empty.nextLayer=vt.empty;class wt{finishChunk(t){this.chunks.push(new xt(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,n){this.addInner(t,e,n)||(this.nextLayer||(this.nextLayer=new wt)).add(t,e,n)}addInner(t,e,n){let i=t-this.lastTo||n.startSide-this.last.endSide;if(i<=0&&(t-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(i<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=n,this.lastFrom=t,this.lastTo=e,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),!0)}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let n=e.value.length-1;return this.last=e.value[n],this.lastFrom=e.from[n]+t,this.lastTo=e.to[n]+t,!0}finish(){return this.finishInner(vt.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;let e=vt.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}function yt(t,e,n){let i=new Map;for(let r of t)for(let t=0;t<r.chunk.length;t++)r.chunk[t].maxPoint<=0&&i.set(r.chunk[t],r.chunkPos[t]);let s=new Set;for(let r of e)for(let t=0;t<r.chunk.length;t++){let e=i.get(r.chunk[t]);null==e||(n?n.mapPos(e):e)!=r.chunkPos[t]||(null==n?void 0:n.touchesRange(e,e+r.chunk[t].length))||s.add(r.chunk[t])}return s}class St{constructor(t,e,n,i=0){this.layer=t,this.skip=e,this.minPoint=n,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(t,e=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(t,e,!1),this}gotoInner(t,e,n){for(;this.chunkIndex<this.layer.chunk.length;){let e=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(e)||this.layer.chunkEnd(this.chunkIndex)<t||e.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(t-this.layer.chunkPos[this.chunkIndex],e,!0);(!n||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(t,e){(this.to-t||this.endSide-e)<0&&this.gotoInner(t,e,!0)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}{let t=this.layer.chunkPos[this.chunkIndex],e=this.layer.chunk[this.chunkIndex],n=t+e.from[this.rangeIndex];if(this.from=n,this.to=t+e.to[this.rangeIndex],this.value=e.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=t}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(t){return this.from-t.from||this.startSide-t.startSide||this.rank-t.rank||this.to-t.to||this.endSide-t.endSide}}class kt{constructor(t){this.heap=t}static from(t,e=null,n=-1){let i=[];for(let s=0;s<t.length;s++)for(let r=t[s];!r.isEmpty;r=r.nextLayer)r.maxPoint>=n&&i.push(new St(r,e,n,s));return 1==i.length?i[0]:new kt(i)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let n of this.heap)n.goto(t,e);for(let n=this.heap.length>>1;n>=0;n--)It(this.heap,n);return this.next(),this}forward(t,e){for(let n of this.heap)n.forward(t,e);for(let n=this.heap.length>>1;n>=0;n--)It(this.heap,n);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),It(this.heap,0)}}}function It(t,e){for(let n=t[e];;){let i=1+(e<<1);if(i>=t.length)break;let s=t[i];if(i+1<t.length&&s.compare(t[i+1])>=0&&(s=t[i+1],i++),n.compare(s)<0)break;t[i]=n,t[e]=s,e=i}}class bt{constructor(t,e,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=kt.from(t,e,n)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Et(this.active,t),Et(this.activeTo,t),Et(this.activeRank,t),this.minActive=At(this.active,this.activeTo)}addActive(t){let e=0,{value:n,to:i,rank:s}=this.cursor;for(;e<this.activeRank.length&&(s-this.activeRank[e]||i-this.activeTo[e])>0;)e++;Ct(this.active,e,n),Ct(this.activeTo,e,i),Ct(this.activeRank,e,s),t&&Ct(t,e,this.cursor.from),this.minActive=At(this.active,this.activeTo)}next(){let t=this.to,e=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>t){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),n&&Et(n,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let t=this.cursor.value;if(t.point){if(!(e&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)){this.point=t,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=t.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(n),this.cursor.next()}}}if(n){this.openStart=0;for(let e=n.length-1;e>=0&&n[e]<t;e--)this.openStart++}}activeForPoint(t){if(!this.active.length)return this.active;let e=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>t||this.activeTo[n]==t&&this.active[n].endSide>=this.point.endSide)&&e.push(this.active[n]);return e.reverse()}openEnd(t){let e=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>t;n--)e++;return e}}function Mt(t,e,n,i,s,r){t.goto(e),n.goto(i);let h=i+s,o=i,l=i-e,a=!!r.boundChange;for(let c=!1;;){let e=t.to+l-n.to,i=e||t.endSide-n.endSide,s=i<0?t.to+l:n.to,f=Math.min(s,h);if(t.point||n.point?(t.point&&n.point&&dt(t.point,n.point)&&Pt(t.activeForPoint(t.to),n.activeForPoint(n.to))||r.comparePoint(o,f,t.point,n.point),c=!1):(c&&r.boundChange(o),f>o&&!Pt(t.active,n.active)&&r.compareRange(o,f,t.active,n.active),a&&f<h&&(e||t.openEnd(s)!=n.openEnd(s))&&(c=!0)),s>h)break;o=s,i<=0&&t.next(),i>=0&&n.next()}}function Pt(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!=e[n]&&!dt(t[n],e[n]))return!1;return!0}function Et(t,e){for(let n=e,i=t.length-1;n<i;n++)t[n]=t[n+1];t.pop()}function Ct(t,e,n){for(let i=t.length-1;i>=e;i--)t[i+1]=t[i];t[e]=n}function At(t,e){let n=-1,i=1e9;for(let s=0;s<e.length;s++)(e[s]-i||t[s].endSide-t[n].endSide)<0&&(n=s,i=e[s]);return n}exports.Annotation=Y,exports.AnnotationType=Z,exports.ChangeDesc=g,exports.ChangeSet=d,exports.Compartment=j,exports.EditorSelection=k,exports.EditorState=ut,exports.Facet=M,exports.Line=a,exports.Prec=L,exports.Range=pt,exports.RangeSet=vt,exports.RangeSetBuilder=wt,exports.RangeValue=gt,exports.SelectionRange=S,exports.StateEffect=et,exports.StateEffectType=tt,exports.StateField=T,exports.Text=e,exports.Transaction=nt,exports.codePointAt=function(t,e){let n=t.charCodeAt(e);if(!(i=n,i>=55296&&i<56320&&e+1!=t.length))return n;var i;let s=t.charCodeAt(e+1);return function(t){return t>=56320&&t<57344}(s)?s-56320+(n-55296<<10)+65536:n},exports.codePointSize=function(t){return t<65536?1:2},exports.combineConfig=function(t,e,n={}){let i={};for(let s of t)for(let t of Object.keys(s)){let e=s[t],r=i[t];if(void 0===r)i[t]=e;else if(r===e||void 0===e);else{if(!Object.hasOwnProperty.call(n,t))throw new Error("Config merge conflict for field "+t);i[t]=n[t](r,e)}}for(let s in e)void 0===i[s]&&(i[s]=e[s]);return i},exports.countColumn=function(t,e,n=t.length){let i=0;for(let s=0;s<n&&s<t.length;)9==t.charCodeAt(s)?(i+=e-i%e,s++):(i++,s=f(t,s));return i},exports.findClusterBreak=f,exports.findColumn=function(t,e,n,i){for(let s=0,r=0;;){if(r>=e)return s;if(s==t.length)break;r+=9==t.charCodeAt(s)?n-r%n:1,s=f(t,s)}return!0===i?-1:t.length},exports.fromCodePoint=function(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t)))};