85 lines
1.0 MiB
JavaScript
Raw Normal View History

(function(){"use strict";class gh{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?zt.isErrorNoTelemetry(e)?new zt(e.message+`
`+e.stack):new Error(e.message+`
`+e.stack):e},0)}}emit(e){this.listeners.forEach(n=>{n(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const Us=new gh;function Bs(t){qs(t)||Us.onUnexpectedError(t)}function c1(t){qs(t)||Us.onUnexpectedExternalError(t)}function Vs(t){if(t instanceof Error){const{name:e,message:n}=t,r=t.stacktrace||t.stack;return{$isError:!0,name:e,message:n,stack:r,noTelemetry:zt.isErrorNoTelemetry(t)}}return t}const Zn="Canceled";function qs(t){return t instanceof bh?!0:t instanceof Error&&t.name===Zn&&t.message===Zn}class bh extends Error{constructor(){super(Zn),this.name=this.message}}function h1(){const t=new Error(Zn);return t.name=t.message,t}function u1(t){return t?new Error(`Illegal argument: ${t}`):new Error("Illegal argument")}function d1(t){return t?new Error(`Illegal state: ${t}`):new Error("Illegal state")}class p1 extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class zt extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof zt)return e;const n=new zt;return n.message=e.message,n.stack=e.stack,n}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}}class tt extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,tt.prototype)}}function vh(t,e){const n=this;let r=!1,i;return function(){if(r)return i;if(r=!0,e)try{i=t.apply(n,arguments)}finally{e()}else i=t.apply(n,arguments);return i}}var er;(function(t){function e(w){return w&&typeof w=="object"&&typeof w[Symbol.iterator]=="function"}t.is=e;const n=Object.freeze([]);function r(){return n}t.empty=r;function*i(w){yield w}t.single=i;function s(w){return e(w)?w:i(w)}t.wrap=s;function o(w){return w||n}t.from=o;function*a(w){for(let C=w.length-1;C>=0;C--)yield w[C]}t.reverse=a;function l(w){return!w||w[Symbol.iterator]().next().done===!0}t.isEmpty=l;function c(w){return w[Symbol.iterator]().next().value}t.first=c;function h(w,C){for(const R of w)if(C(R))return!0;return!1}t.some=h;function d(w,C){for(const R of w)if(C(R))return R}t.find=d;function*f(w,C){for(const R of w)C(R)&&(yield R)}t.filter=f;function*m(w,C){let R=0;for(const z of w)yield C(z,R++)}t.map=m;function*b(...w){for(const C of w)yield*C}t.concat=b;function g(w,C,R){let z=R;for(const W of w)z=C(z,W);return z}t.reduce=g;function*y(w,C,R=w.length){for(C<0&&(C+=w.length),R<0?R+=w.length:R>w.length&&(R=w.length);C<R;C++)yield w[C]}t.slice=y;function _(w,C=Number.POSITIVE_INFINITY){const R=[];if(C===0)return[R,w];const z=w[Symbol.iterator]();for(let W=0;W<C;W++){const T=z.next();if(T.done)return[R,t.empty()];R.push(T.value)}return[R,{[Symbol.iterator](){return z}}]}t.consume=_;async function E(w){const C=[];for await(const R of w)C.push(R);return Promise.resolve(C)}t.asyncToArray=E})(er||(er={}));const yh=!1;let Fe=null;function wh(t){Fe=t}if(yh){const t="__is_disposable_tracked__";wh(new class{trackDisposable(e){const n=new Error("Potentially leaked disposable").stack;setTimeout(()=>{e[t]||console.log(n)},3e3)}setParent(e,n){if(e&&e!==pt.None)try{e[t]=!0}catch{}}markAsDisposed(e){if(e&&e!==pt.None)try{e[t]=!0}catch{}}markAsSingleton(e){}})}function an(t){return Fe?.trackDisposable(t),t}function ln(t){Fe?.markAsDisposed(t)}function tr(t,e){Fe?.setParent(t,e)}function xh(t,e){if(Fe)for(const n of t)Fe.setParent(n,e)}function f1(t){return Fe?.markAsSingleton(t),t}function m1(t){return typeof t.dispose=="function"&&t.dispose.length===0}function Gr(t){if(er.is(t)){const e=[];for(const n of t)if(n)try{n.dispose()}catch(r){e.push(r)}if(e.length===1)throw e[0];if(e.length>1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(t)?[]:t}else if(t)return t.dispose(),t}function Sh(...t){const e=nr(()=>Gr(t));return xh(t,e),e}function nr(t){const e=an({dispose:vh(()=>{ln(e),t()})});return e}class It{constructor(){this._toDispose=new Set,this._isDisposed=!1,an(this)}dispose(){this._isDisposed||(ln(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(th
`).slice(2).join(`
`))}}class sr{constructor(e){this.value=e}}const Fh=2,Rh=(t,e)=>{if(t instanceof sr)e(t);else for(let n=0;n<t.length;n++){const r=t[n];r&&e(r)}},hn=Ch?new FinalizationRegistry(t=>{typeof t=="string"&&(console.warn("[LEAKING LISTENER] GC'ed a listener that was NOT yet disposed. This is where is was created:"),console.warn(t))}):void 0;class Re{constructor(e){var n,r,i,s,o;this._size=0,this._options=e,this._leakageMon=Hs>0||!((n=this._options)===null||n===void 0)&&n.leakWarningThreshold?new Eh((i=(r=this._options)===null||r===void 0?void 0:r.leakWarningThreshold)!==null&&i!==void 0?i:Hs):void 0,this._perfMon=!((s=this._options)===null||s===void 0)&&s._profName?new Pt(this._options._profName):void 0,this._deliveryQueue=(o=this._options)===null||o===void 0?void 0:o.deliveryQueue}dispose(){var e,n,r,i;if(!this._disposed){if(this._disposed=!0,((e=this._deliveryQueue)===null||e===void 0?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners){if($s){const s=this._listeners;queueMicrotask(()=>{Rh(s,o=>{var a;return(a=o.stack)===null||a===void 0?void 0:a.print()})})}this._listeners=void 0,this._size=0}(r=(n=this._options)===null||n===void 0?void 0:n.onDidRemoveLastListener)===null||r===void 0||r.call(n),(i=this._leakageMon)===null||i===void 0||i.dispose()}}get event(){var e;return(e=this._event)!==null&&e!==void 0||(this._event=(n,r,i)=>{var s,o,a,l,c;if(this._leakageMon&&this._size>this._leakageMon.threshold*3)return console.warn(`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far`),pt.None;if(this._disposed)return pt.None;r&&(n=n.bind(r));const h=new sr(n);let d,f;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(h.stack=cn.create(),d=this._leakageMon.check(h.stack,this._size+1)),$s&&(h.stack=f??cn.create()),this._listeners?this._listeners instanceof sr?((c=this._deliveryQueue)!==null&&c!==void 0||(this._deliveryQueue=new Gs),this._listeners=[this._listeners,h]):this._listeners.push(h):((o=(s=this._options)===null||s===void 0?void 0:s.onWillAddFirstListener)===null||o===void 0||o.call(s,this),this._listeners=h,(l=(a=this._options)===null||a===void 0?void 0:a.onDidAddFirstListener)===null||l===void 0||l.call(a,this)),this._size++;const m=nr(()=>{hn?.unregister(m),d?.(),this._removeListener(h)});if(i instanceof It?i.add(m):Array.isArray(i)&&i.push(m),hn){const b=new Error().stack.split(`
`).slice(2).join(`
`).trim();hn.register(m,b,m)}return m}),this._event}_removeListener(e){var n,r,i,s;if((r=(n=this._options)===null||n===void 0?void 0:n.onWillRemoveListener)===null||r===void 0||r.call(n,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(s=(i=this._options)===null||i===void 0?void 0:i.onDidRemoveLastListener)===null||s===void 0||s.call(i,this),this._size=0;return}const o=this._listeners,a=o.indexOf(e);if(a===-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--,o[a]=void 0;const l=this._deliveryQueue.current===this;if(this._size*Fh<=o.length){let c=0;for(let h=0;h<o.length;h++)o[h]?o[c++]=o[h]:l&&(this._deliveryQueue.end--,c<this._deliveryQueue.i&&this._deliveryQueue.i--);o.length=c}}_deliver(e,n){var r;if(!e)return;const i=((r=this._options)===null||r===void 0?void 0:r.onListenerError)||Bs;if(!i){e.value(n);return}try{e.value(n)}catch(s){i(s)}}_deliverQueue(e){const n=e.current._listeners;for(;e.i<e.end;)this._deliver(n[e.i++],e.value);e.reset()}fire(e){var n,r,i,s;if(!((n=this._deliveryQueue)===null||n===void 0)&&n.current&&(this._deliverQueue(this._deliveryQueue),(r=this._perfMon)===null||r===void 0||r.stop()),(i=this._perfMon)===null||i===void 0||i.start(this._size),this._listeners)if(this._listeners instanceof sr)this._deliver(this._listeners,e);else{const o=this._deliveryQueue;o.enqueue(this,e,this._listeners.length),this._deliverQueue(o)}(s=this._perfMon)===null||s===void 0||s.stop()}hasListeners(){return this._size>0}}const w1=()=>new Gs;class Gs{constructor(){this.i=-1,this.end=0}enqueue(e,n,r){this.i=0,this.end=r,this.current=e,this.value=n}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class Dh extends Re{constructor(e){super(e),this._isPaused=0,this._eventQueue=new js,this._mergeFn=e?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class x1 extends Dh{constructor(e){var n;super(e),this._delay=(n=e.delay)!==null&&n!==void 0?n:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class S1 extends Re{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e?.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(n=>super.fire(n)),this._queuedEvents=[]}))}}class _1{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new Re({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const n={event:e,listener:null};this.events.push(n),this.hasListeners&&this.hook(n);const r=()=>{this.hasListeners&&this.unhook(n);const i=this.events.indexOf(n);this.events.splice(i,1)};return toDisposable(createSingleCallFunction(r))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(n=>this.emitter.fire(n))}unhook(e){var n;(n=e.listener)===null||n===void 0||n.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const n of this.events)(e=n.listener)===null||e===void 0||e.dispose();this.events=[]}}class C1{constructor(){this.buffers=[]}wrapEvent(e){return(n,r,i)=>e(s=>{const o=this.buffers[this.buffers.length-1];o?o.push(()=>n.call(r,s)):n.call(r,s)},void 0,i)}bufferEvents(e){const n=[];this.buffers.push(n);const r=e();return this.buffers.pop(),n.forEach(i=>i()),r}}class k1{constructor(){this.listening=!1,this.inputEvent=ir.None,this.in
`)>=0;let n=null;try{n=strings.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!n)return null;let r=!this.isRegex&&!e;return r&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(r=this.matchCase),new SearchData(n,this.wordSeparators?getMapForWordSeparators(this.wordSeparators,[]):null,r?this.searchString:null)}}function Fd(t){if(!t||t.length===0)return!1;for(let e=0,n=t.length;e<n;e++){const r=t.charCodeAt(e);if(r===10)return!0;if(r===92){if(e++,e>=n)break;const i=t.charCodeAt(e);if(i===110||i===114||i===87)return!0}}return!1}function Sn(t,e,n){if(!n)return new FindMatch(t,null);const r=[];for(let i=0,s=e.length;i<s;i++)r[i]=e[i];return new FindMatch(t,r)}class Oa{constructor(e){const n=[];let r=0;for(let i=0,s=e.length;i<s;i++)e.charCodeAt(i)===10&&(n[r++]=i);this._lineFeedsOffsets=n}findLineFeedCountBeforeOffset(e){const n=this._lineFeedsOffsets;let r=0,i=n.length-1;if(i===-1||e<=n[0])return 0;for(;r<i;){const s=r+((i-r)/2>>0);n[s]>=e?i=s-1:n[s+1]>=e?(r=s,i=s):r=s+1}return r+1}}class D0{static findMatches(e,n,r,i,s){const o=n.parseSearchRequest();return o?o.regex.multiline?this._doFindMatchesMultiline(e,r,new _n(o.wordSeparators,o.regex),i,s):this._doFindMatchesLineByLine(e,r,o,i,s):[]}static _getMultilineMatchRange(e,n,r,i,s,o){let a,l=0;i?(l=i.findLineFeedCountBeforeOffset(s),a=n+s+l):a=n+s;let c;if(i){const m=i.findLineFeedCountBeforeOffset(s+o.length)-l;c=a+o.length+m}else c=a+o.length;const h=e.getPositionAt(a),d=e.getPositionAt(c);return new Range(h.lineNumber,h.column,d.lineNumber,d.column)}static _doFindMatchesMultiline(e,n,r,i,s){const o=e.getOffsetAt(n.getStartPosition()),a=e.getValueInRange(n,1),l=e.getEOL()===`\r
`?new Oa(a):null,c=[];let h=0,d;for(r.reset(0);d=r.next(a);)if(c[h++]=Sn(this._getMultilineMatchRange(e,o,a,l,d.index,d[0]),d,i),h>=s)return c;return c}static _doFindMatchesLineByLine(e,n,r,i,s){const o=[];let a=0;if(n.startLineNumber===n.endLineNumber){const c=e.getLineContent(n.startLineNumber).substring(n.startColumn-1,n.endColumn-1);return a=this._findMatchesInLine(r,c,n.startLineNumber,n.startColumn-1,a,o,i,s),o}const l=e.getLineContent(n.startLineNumber).substring(n.startColumn-1);a=this._findMatchesInLine(r,l,n.startLineNumber,n.startColumn-1,a,o,i,s);for(let c=n.startLineNumber+1;c<n.endLineNumber&&a<s;c++)a=this._findMatchesInLine(r,e.getLineContent(c),c,0,a,o,i,s);if(a<s){const c=e.getLineContent(n.endLineNumber).substring(0,n.endColumn-1);a=this._findMatchesInLine(r,c,n.endLineNumber,0,a,o,i,s)}return o}static _findMatchesInLine(e,n,r,i,s,o,a,l){const c=e.wordSeparators;if(!a&&e.simpleSearch){const f=e.simpleSearch,m=f.length,b=n.length;let g=-m;for(;(g=n.indexOf(f,g+m))!==-1;)if((!c||Ua(c,n,b,g,m))&&(o[s++]=new FindMatch(new Range(r,g+1+i,r,g+1+m+i),null),s>=l))return s;return s}const h=new _n(e.wordSeparators,e.regex);let d;h.reset(0);do if(d=h.next(n),d&&(o[s++]=Sn(new Range(r,d.index+1+i,r,d.index+1+d[0].length+i),d,a),s>=l))return s;while(d);return s}static findNextMatch(e,n,r,i){const s=n.parseSearchRequest();if(!s)return null;const o=new _n(s.wordSeparators,s.regex);return s.regex.multiline?this._doFindNextMatchMultiline(e,r,o,i):this._doFindNextMatchLineByLine(e,r,o,i)}static _doFindNextMatchMultiline(e,n,r,i){const s=new Position(n.lineNumber,1),o=e.getOffsetAt(s),a=e.getLineCount(),l=e.getValueInRange(new Range(s.lineNumber,s.column,a,e.getLineMaxColumn(a)),1),c=e.getEOL()===`\r
`?new Oa(l):null;r.reset(n.column-1);const h=r.next(l);return h?Sn(this._getMultilineMatchRange(e,o,l,c,h.index,h[0]),h,i):n.lineNumber!==1||n.column!==1?this._doFindNextMatchMultiline(e,new Position(1,1),r,i):null}static _doFindNextMatchLineByLine(e,n,r,i){const s=e.getLineCount(),o=n.lineNumber,a=e.getLineContent(o),l=this._findFirstMatchInLine(r,a,o,n.column,i);if(l)return l;for(let c=1;c<=s;c++){const h=(o+c-1)%s,d=e.getLineContent(h+1),f=this._findFirstMatchInLine(r,d,h+1,1,i);if(f)return f}return null}static _findFirstMatchInLine(e,n,r,i,s){e.reset(i-1);const o=e.next(n);return o?Sn(new Range(r,o.index+1,r,o.index+1+o[0].length),o,s):null}static findPreviousMatch(e,n,r,i){const s=n.parseSearchRequest();if(!s)return null;const o=new _n(s.wordSeparators,s.regex);return s.regex.multiline?this._doFindPreviousMatchMultiline(e,r,o,i):this._doFindPreviousMatchLineByLine(e,r,o,i)}static _doFindPreviousMatchMultiline(e,n,r,i){const s=this._doFindMatchesMultiline(e,new Range(1,1,n.lineNumber,n.column),r,i,10*Ed);if(s.length>0)return s[s.length-1];const o=e.getLineCount();return n.lineNumber!==o||n.column!==e.getLineMaxColumn(o)?this._doFindPreviousMatchMultiline(e,new Position(o,e.getLineMaxColumn(o)),r,i):null}static _doFindPreviousMatchLineByLine(e,n,r,i){const s=e.getLineCount(),o=n.lineNumber,a=e.getLineContent(o).substring(0,n.column-1),l=this._findLastMatchInLine(r,a,o,i);if(l)return l;for(let c=1;c<=s;c++){const h=(s+o-c-1)%s,d=e.getLineContent(h+1),f=this._findLastMatchInLine(r,d,h+1,i);if(f)return f}return null}static _findLastMatchInLine(e,n,r,i){let s=null,o;for(e.reset(0);o=e.next(n);)s=Sn(new Range(r,o.index+1,r,o.index+1+o[0].length),o,i);return s}}function Rd(t,e,n,r,i){if(r===0)return!0;const s=e.charCodeAt(r-1);if(t.get(s)!==0||s===13||s===10)return!0;if(i>0){const o=e.charCodeAt(r);if(t.get(o)!==0)return!0}return!1}function Dd(t,e,n,r,i){if(r+i===n)return!0;const s=e.charCodeAt(r+i);if(t.get(s)!==0||s===13||s===10)return!0;if(i>0){const o=e.charCodeAt(r+i-1);if(t.get(o)!==0)return!0}return!1}function Ua(t,e,n,r,i){return Rd(t,e,n,r,i)&&Dd(t,e,n,r,i)}class _n{constructor(e,n){this._wordSeparators=e,this._searchRegex=n,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const n=e.length;let r;do{if(this._prevMatchStartIndex+this._prevMatchLength===n||(r=this._searchRegex.exec(e),!r))return null;const i=r.index,s=r[0].length;if(i===this._prevMatchStartIndex&&s===this._prevMatchLength){if(s===0){oo(e,n,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=i,this._prevMatchLength=s,!this._wordSeparators||Ua(this._wordSeparators,e,n,i,s))return r}while(r);return null}}function A0(t,e){if(!t)throw new Error(e?`Assertion failed (${e})`:"Assertion Failed")}function Ad(t,e="Unreachable"){throw new Error(e)}function M0(t){t||onUnexpectedError(new BugIndicatingError("Soft Assertion Failed"))}function wr(t){if(!t()){debugger;t(),Bs(new tt("Assertion Failed"))}}function Ba(t,e){let n=0;for(;n<t.length-1;){const r=t[n],i=t[n+1];if(!e(r,i))return!1;n++}return!0}class Md{static computeUnicodeHighlights(e,n,r){const i=r?r.startLineNumber:1,s=r?r.endLineNumber:e.getLineCount(),o=new Va(n),a=o.getCandidateCodePoints();let l;a==="allNonBasicAscii"?l=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):l=new RegExp(`${Nd(Array.from(a))}`,"g");const c=new _n(null,l),h=[];let d=!1,f,m=0,b=0,g=0;e:for(let y=i,_=s;y<=_;y++){const E=e.getLineContent(y),w=E.length;c.reset(0);do if(f=c.next(E),f){let C=f.index,R=f.index+f[0].length;if(C>0){const G=E.charCodeAt(C-1);pn(G)&&C--}if(R+1<w){const G=E.charCodeAt(R-1);pn(G)&&R++}const z=E.substring(C,R);let W=vi(C+1,Ao,E,0);W&&W.endColumn<=C+1&&(W=null);const T=o.shouldHighlightNonBasicASCII(z,W?W.word:null);if(T!==0){if(T===3?m++:T===2?b++:T===1?g++:Ad(T),h.length>=1e3){d=!0;break e}h.push(new K(y,C+1,y,R+1))}}while(f)}return{ranges:h,hasMore:d,ambiguousCharacterCount:m,invisibleCharacterCount:b,nonBasicAsciiCh
`||t===" "}class xr{constructor(e,n,r){this.changes=e,this.moves=n,this.hitTimeout=r}}class Ld{constructor(e,n){this.lineRangeMapping=e,this.changes=n}}class Q{static addRange(e,n){let r=0;for(;r<n.length&&n[r].endExclusive<e.start;)r++;let i=r;for(;i<n.length&&n[i].start<=e.endExclusive;)i++;if(r===i)n.splice(r,0,e);else{const s=Math.min(e.start,n[r].start),o=Math.max(e.endExclusive,n[i-1].endExclusive);n.splice(r,i-r,new Q(s,o))}}static tryCreate(e,n){if(!(e>n))return new Q(e,n)}static ofLength(e){return new Q(0,e)}static ofStartAndLength(e,n){return new Q(e,e+n)}constructor(e,n){if(this.start=e,this.endExclusive=n,e>n)throw new tt(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new Q(this.start+e,this.endExclusive+e)}deltaStart(e){return new Q(this.start+e,this.endExclusive)}deltaEnd(e){return new Q(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(e){return this.start<=e&&e<this.endExclusive}join(e){return new Q(Math.min(this.start,e.start),Math.max(this.endExclusive,e.endExclusive))}intersect(e){const n=Math.max(this.start,e.start),r=Math.min(this.endExclusive,e.endExclusive);if(n<=r)return new Q(n,r)}intersects(e){const n=Math.max(this.start,e.start),r=Math.min(this.endExclusive,e.endExclusive);return n<r}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 tt(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new tt(`Invalid clipping range: ${this.toString()}`);return e<this.start?this.endExclusive-(this.start-e)%this.length:e>=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let n=this.start;n<this.endExclusive;n++)e(n)}}class ja{constructor(){this._sortedRanges=[]}addRange(e){let n=0;for(;n<this._sortedRanges.length&&this._sortedRanges[n].endExclusive<e.start;)n++;let r=n;for(;r<this._sortedRanges.length&&this._sortedRanges[r].start<=e.endExclusive;)r++;if(n===r)this._sortedRanges.splice(n,0,e);else{const i=Math.min(e.start,this._sortedRanges[n].start),s=Math.max(e.endExclusive,this._sortedRanges[r-1].endExclusive);this._sortedRanges.splice(n,r-n,new Q(i,s))}}toString(){return this._sortedRanges.map(e=>e.toString()).join(", ")}intersectsStrict(e){let n=0;for(;n<this._sortedRanges.length&&this._sortedRanges[n].endExclusive<=e.start;)n++;return n<this._sortedRanges.length&&this._sortedRanges[n].start<e.endExclusive}intersectWithRange(e){const n=new ja;for(const r of this._sortedRanges){const i=r.intersect(e);i&&n.addRange(i)}return n}intersectWithRangeLength(e){return this.intersectWithRange(e).length}get length(){return this._sortedRanges.reduce((e,n)=>e+n.length,0)}}function N0(t,e,n){const r=zd(t,e);if(r!==-1)return t[r]}function zd(t,e,n=t.length-1){for(let r=n;r>=0;r--){const i=t[r];if(e(i))return r}return-1}function jt(t,e){const n=Cn(t,e);return n===-1?void 0:t[n]}function Cn(t,e,n=0,r=t.length){let i=n,s=r;for(;i<s;){const o=Math.floor((i+s)/2);e(t[o])?i=o+1:s=o}return i-1}function Id(t,e){const n=Mi(t,e);return n===t.length?void 0:t[n]}function Mi(t,e,n=0,r=t.length){let i=n,s=r;for(;i<s;){const o=Math.floor((i+s)/2);e(t[o])?s=o:i=o+1}return i}class kn{constructor(e){this._array=e,this._findLastMonotonousLastIdx=0}findLastMonotonous(e){if(kn.assertInvariants){if(this._prevFindLastPredicate){for(const r of this._array)if(this._prevFindLastPredicate(r)&&!e(r))throw new Error("MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.")}this._prevFindLastPredicate=e}const n=Cn(this._array,e,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=n+1,n===-1?void 0:this._array[n]}}kn.assertInvariants=!1;function Pd(t,e){if(t.length===0)return;let n=t[0];for(let r=1;r<t.length;r++){const i=t[r];e(i,n)>0&&(n=i)}re
`);this.histogram[a]=(this.histogram[a]||0)+1}this.totalCount=i}computeSimilarity(e){var n,r;let i=0;const s=Math.max(this.histogram.length,e.histogram.length);for(let o=0;o<s;o++)i+=Math.abs(((n=this.histogram[o])!==null&&n!==void 0?n:0)-((r=e.histogram[o])!==null&&r!==void 0?r:0));return 1-i/(this.totalCount+e.totalCount)}}Gt.chrKeys=new Map;class qd{compute(e,n,r=Fn.instance,i){if(e.length===0||n.length===0)return st.trivial(e,n);const s=new zi(e.length,n.length),o=new zi(e.length,n.length),a=new zi(e.length,n.length);for(let b=0;b<e.length;b++)for(let g=0;g<n.length;g++){if(!r.isValid())return st.trivialTimedOut(e,n);const y=b===0?0:s.get(b-1,g),_=g===0?0:s.get(b,g-1);let E;e.getElement(b)===n.getElement(g)?(b===0||g===0?E=0:E=s.get(b-1,g-1),b>0&&g>0&&o.get(b-1,g-1)===3&&(E+=a.get(b-1,g-1)),E+=i?i(b,g):1):E=-1;const w=Math.max(y,_,E);if(w===E){const C=b>0&&g>0?a.get(b-1,g-1):0;a.set(b,g,C+1),o.set(b,g,3)}else w===y?(a.set(b,g,0),o.set(b,g,1)):w===_&&(a.set(b,g,0),o.set(b,g,2));s.set(b,g,w)}const l=[];let c=e.length,h=n.length;function d(b,g){(b+1!==c||g+1!==h)&&l.push(new ue(new Q(b+1,c),new Q(g+1,h))),c=b,h=g}let f=e.length-1,m=n.length-1;for(;f>=0&&m>=0;)o.get(f,m)===3?(d(f,m),f--,m--):o.get(f,m)===1?f--:m--;return d(-1,-1),l.reverse(),new st(l,!1)}}class Ja{compute(e,n,r=Fn.instance){if(e.length===0||n.length===0)return st.trivial(e,n);const i=e,s=n;function o(g,y){for(;g<i.length&&y<s.length&&i.getElement(g)===s.getElement(y);)g++,y++;return g}let a=0;const l=new jd;l.set(0,o(0,0));const c=new $d;c.set(0,l.get(0)===0?null:new Xa(null,0,0,l.get(0)));let h=0;e:for(;;){if(a++,!r.isValid())return st.trivialTimedOut(i,s);const g=-Math.min(a,s.length+a%2),y=Math.min(a,i.length+a%2);for(h=g;h<=y;h+=2){let _=0;const E=h===y?-1:l.get(h+1),w=h===g?-1:l.get(h-1)+1;_++;const C=Math.min(Math.max(E,w),i.length),R=C-h;if(_++,C>i.length||R>s.length)continue;const z=o(C,R);l.set(h,z);const W=C===E?c.get(h+1):c.get(h-1);if(c.set(h,z!==C?new Xa(W,C,R,z-C):W),l.get(h)===i.length&&l.get(h)-h===s.length)break e}}let d=c.get(h);const f=[];let m=i.length,b=s.length;for(;;){const g=d?d.x+d.length:0,y=d?d.y+d.length:0;if((g!==m||y!==b)&&f.push(new ue(new Q(g,m),new Q(y,b))),!d)break;m=d.x,b=d.y,d=d.prev}return f.reverse(),new st(f,!1)}}class Xa{constructor(e,n,r,i){this.prev=e,this.x=n,this.y=r,this.length=i}}class jd{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,n){if(e<0){if(e=-e-1,e>=this.negativeArr.length){const r=this.negativeArr;this.negativeArr=new Int32Array(r.length*2),this.negativeArr.set(r)}this.negativeArr[e]=n}else{if(e>=this.positiveArr.length){const r=this.positiveArr;this.positiveArr=new Int32Array(r.length*2),this.positiveArr.set(r)}this.positiveArr[e]=n}}}class $d{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,n){e<0?(e=-e-1,this.negativeArr[e]=n):this.positiveArr[e]=n}}class Sr{constructor(e,n,r){this.lines=e,this.considerWhitespaceChanges=r,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let i=!1;n.start>0&&n.endExclusive>=e.length&&(n=new Q(n.start-1,n.endExclusive),i=!0),this.lineRange=n,this.firstCharOffsetByLine[0]=0;for(let s=this.lineRange.start;s<this.lineRange.endExclusive;s++){let o=e[s],a=0;if(i)a=o.length,o="",i=!1;else if(!r){const l=o.trimStart();a=o.length-l.length,o=l.trimEnd()}this.additionalOffsetByLine.push(a);for(let l=0;l<o.length;l++)this.elements.push(o.charCodeAt(l));s<e.length-1&&(this.elements.push(10),this.firstCharOffsetByLine[s-this.lineRange.start+1]=this.elements.length)}this.additionalOffsetByLine.push(0)}toString(){return`Slice: "${this.text}"`}get text(){return this.getText(new Q(0,this.length))}getText(e){return this.elements.slice(e.start,e.endExclusive).map(n=>String.fromCharCode(n)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const n=Ka(e>0?this.elements[e-1]:-1),r=Ka(e<this.elements.length?this.ele
`).length>=15&&Jd(d,m=>m.length>=2)>=2}),o=Qd(t,o),o}function Jd(t,e){let n=0;for(const r of t)e(r)&&n++;return n}function Xd(t,e,n,r){const i=[],s=t.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new Gt(l.original,e,l)),o=new Set(t.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new Gt(l.modified,n,l))),a=new Set;for(const l of s){let c=-1,h;for(const d of o){const f=l.computeSimilarity(d);f>c&&(c=f,h=d)}if(c>.9&&h&&(o.delete(h),i.push(new Ge(l.range,h.range)),a.add(l.source),a.add(h.source)),!r.isValid())return{moves:i,excludedChanges:a}}return{moves:i,excludedChanges:a}}function Yd(t,e,n,r,i,s){const o=[],a=new Cd;for(const f of t)for(let m=f.original.startLineNumber;m<f.original.endLineNumberExclusive-2;m++){const b=`${e[m-1]}:${e[m+1-1]}:${e[m+2-1]}`;a.add(b,{range:new Z(m,m+3)})}const l=[];t.sort(mr(f=>f.modified.startLineNumber,bn));for(const f of t){let m=[];for(let b=f.modified.startLineNumber;b<f.modified.endLineNumberExclusive-2;b++){const g=`${n[b-1]}:${n[b+1-1]}:${n[b+2-1]}`,y=new Z(b,b+3),_=[];a.forEach(g,({range:E})=>{for(const C of m)if(C.originalLineRange.endLineNumberExclusive+1===E.endLineNumberExclusive&&C.modifiedLineRange.endLineNumberExclusive+1===y.endLineNumberExclusive){C.originalLineRange=new Z(C.originalLineRange.startLineNumber,E.endLineNumberExclusive),C.modifiedLineRange=new Z(C.modifiedLineRange.startLineNumber,y.endLineNumberExclusive),_.push(C);return}const w={modifiedLineRange:y,originalLineRange:E};l.push(w),_.push(w)}),m=_}if(!s.isValid())return[]}l.sort(Hu(mr(f=>f.modifiedLineRange.length,bn)));const c=new Ke,h=new Ke;for(const f of l){const m=f.modifiedLineRange.startLineNumber-f.originalLineRange.startLineNumber,b=c.subtractFrom(f.modifiedLineRange),g=h.subtractFrom(f.originalLineRange).getWithDelta(m),y=b.getIntersection(g);for(const _ of y.ranges){if(_.length<3)continue;const E=_,w=_.delta(-m);o.push(new Ge(w,E)),c.addRange(E),h.addRange(w)}}o.sort(mr(f=>f.original.startLineNumber,bn));const d=new kn(t);for(let f=0;f<o.length;f++){const m=o[f],b=d.findLastMonotonous(z=>z.original.startLineNumber<=m.original.startLineNumber),g=jt(t,z=>z.modified.startLineNumber<=m.modified.startLineNumber),y=Math.max(m.original.startLineNumber-b.original.startLineNumber,m.modified.startLineNumber-g.modified.startLineNumber),_=d.findLastMonotonous(z=>z.original.startLineNumber<m.original.endLineNumberExclusive),E=jt(t,z=>z.modified.startLineNumber<m.modified.endLineNumberExclusive),w=Math.max(_.original.endLineNumberExclusive-m.original.endLineNumberExclusive,E.modified.endLineNumberExclusive-m.modified.endLineNumberExclusive);let C;for(C=0;C<y;C++){const z=m.original.startLineNumber-C-1,W=m.modified.startLineNumber-C-1;if(z>r.length||W>i.length||c.contains(W)||h.contains(z)||!Qa(r[z-1],i[W-1],s))break}C>0&&(h.addRange(new Z(m.original.startLineNumber-C,m.original.startLineNumber)),c.addRange(new Z(m.modified.startLineNumber-C,m.modified.startLineNumber)));let R;for(R=0;R<w;R++){const z=m.original.endLineNumberExclusive+R,W=m.modified.endLineNumberExclusive+R;if(z>r.length||W>i.length||c.contains(W)||h.contains(z)||!Qa(r[z-1],i[W-1],s))break}R>0&&(h.addRange(new Z(m.original.endLineNumberExclusive,m.original.endLineNumberExclusive+R)),c.addRange(new Z(m.modified.endLineNumberExclusive,m.modified.endLineNumberExclusive+R))),(C>0||R>0)&&(o[f]=new Ge(new Z(m.original.startLineNumber-C,m.original.endLineNumberExclusive+R),new Z(m.modified.startLineNumber-C,m.modified.endLineNumberExclusive+R)))}return o}function Qa(t,e,n){if(t.trim()===e.trim())return!0;if(t.length>300&&e.length>300)return!1;const i=new Ja().compute(new Sr([t],new Q(0,1),!1),new Sr([e],new Q(0,1),!1),n);let s=0;const o=ue.invert(i.diffs,t.length);for(const h of o)h.seq1Range.forEach(d=>{Ii(t.charCodeAt(d))||s++});function a(h){let d=0;for(let f=0;f<t.length;f++)Ii(h.charCodeAt(f))||d++;return d}const l=a(t.length>e.length?t:e);return s/l>.6&&l>10}function Kd(t){if(t.length===0)return t;t.sort(mr(n=>n.original.startLineNumber,bn));const e=[t[0]];for(let n=1;n<t.length;n++){const r=e[e.length-1],i=t[n],s=i.origina
`)}isStronglyEqual(e,n){return this.lines[e]===this.lines[n]}}function rl(t){let e=0;for(;e<t.length&&(t.charCodeAt(e)===32||t.charCodeAt(e)===9);)e++;return e}class sp{constructor(){this.dynamicProgrammingDiffing=new qd,this.myersDiffingAlgorithm=new Ja}computeDiff(e,n,r){if(e.length<=1&&Ou(e,n,(R,z)=>R===z))return new xr([],[],!1);if(e.length===1&&e[0].length===0||n.length===1&&n[0].length===0)return new xr([new it(new Z(1,e.length+1),new Z(1,n.length+1),[new $t(new K(1,1,e.length,e[0].length+1),new K(1,1,n.length,n[0].length+1))])],[],!1);const i=r.maxComputationTimeMs===0?Fn.instance:new Vd(r.maxComputationTimeMs),s=!r.ignoreTrimWhitespace,o=new Map;function a(R){let z=o.get(R);return z===void 0&&(z=o.size,o.set(R,z)),z}const l=e.map(R=>a(R.trim())),c=n.map(R=>a(R.trim())),h=new nl(l,e),d=new nl(c,n),f=h.length+d.length<1700?this.dynamicProgrammingDiffing.compute(h,d,i,(R,z)=>e[R]===n[z]?n[z].length===0?.1:1+Math.log(1+n[z].length):.99):this.myersDiffingAlgorithm.compute(h,d);let m=f.diffs,b=f.hitTimeout;m=Za(h,d,m),m=rp(h,d,m);const g=[],y=R=>{if(s)for(let z=0;z<R;z++){const W=_+z,T=E+z;if(e[W]!==n[T]){const G=this.refineDiff(e,n,new ue(new Q(W,W+1),new Q(T,T+1)),i,s);for(const se of G.mappings)g.push(se);G.hitTimeout&&(b=!0)}}};let _=0,E=0;for(const R of m){wr(()=>R.seq1Range.start-_===R.seq2Range.start-E);const z=R.seq1Range.start-_;y(z),_=R.seq1Range.endExclusive,E=R.seq2Range.endExclusive;const W=this.refineDiff(e,n,R,i,s);W.hitTimeout&&(b=!0);for(const T of W.mappings)g.push(T)}y(e.length-_);const w=il(g,e,n);let C=[];return r.computeMoves&&(C=this.computeMoves(w,e,n,l,c,i,s)),wr(()=>{function R(W,T){if(W.lineNumber<1||W.lineNumber>T.length)return!1;const G=T[W.lineNumber-1];return!(W.column<1||W.column>G.length+1)}function z(W,T){return!(W.startLineNumber<1||W.startLineNumber>T.length+1||W.endLineNumberExclusive<1||W.endLineNumberExclusive>T.length+1)}for(const W of w){if(!W.innerChanges)return!1;for(const T of W.innerChanges)if(!(R(T.modifiedRange.getStartPosition(),n)&&R(T.modifiedRange.getEndPosition(),n)&&R(T.originalRange.getStartPosition(),e)&&R(T.originalRange.getEndPosition(),e)))return!1;if(!z(W.modified,n)||!z(W.original,e))return!1}return!0}),new xr(w,C,b)}computeMoves(e,n,r,i,s,o,a){return Gd(e,n,r,i,s,o).map(h=>{const d=this.refineDiff(n,r,new ue(h.original.toOffsetRange(),h.modified.toOffsetRange()),o,a),f=il(d.mappings,n,r,!0);return new Ld(h,f)})}refineDiff(e,n,r,i,s){const o=new Sr(e,r.seq1Range,s),a=new Sr(n,r.seq2Range,s),l=o.length+a.length<500?this.dynamicProgrammingDiffing.compute(o,a,i):this.myersDiffingAlgorithm.compute(o,a,i);let c=l.diffs;return c=Za(o,a,c),c=tp(o,a,c),c=ep(o,a,c),c=ip(o,a,c),{mappings:c.map(d=>new $t(o.translateRange(d.seq1Range),a.translateRange(d.seq2Range))),hitTimeout:l.hitTimeout}}}function il(t,e,n,r=!1){const i=[];for(const s of Bu(t.map(o=>op(o,e,n)),(o,a)=>o.original.overlapOrTouch(a.original)||o.modified.overlapOrTouch(a.modified))){const o=s[0],a=s[s.length-1];i.push(new it(o.original.join(a.original),o.modified.join(a.modified),s.map(l=>l.innerChanges[0])))}return wr(()=>!r&&i.length>0&&(i[0].modified.startLineNumber!==i[0].original.startLineNumber||n.length-i[i.length-1].modified.endLineNumberExclusive!==e.length-i[i.length-1].original.endLineNumberExclusive)?!1:Ba(i,(s,o)=>o.original.startLineNumber-s.original.endLineNumberExclusive===o.modified.startLineNumber-s.modified.endLineNumberExclusive&&s.original.endLineNumberExclusive<o.original.startLineNumber&&s.modified.endLineNumberExclusive<o.modified.startLineNumber)),i}function op(t,e,n){let r=0,i=0;t.modifiedRange.endColumn===1&&t.originalRange.endColumn===1&&t.originalRange.startLineNumber+r<=t.originalRange.endLineNumber&&t.modifiedRange.startLineNumber+r<=t.modifiedRange.endLineNumber&&(i=-1),t.modifiedRange.startColumn-1>=n[t.modifiedRange.startLineNumber-1].length&&t.originalRange.startColumn-1>=e[t.originalRange.startLineNumber-1].length&&t.originalRange.startLineNumber<=t.originalRange.endLineNumber+i&&t.modifiedRange.startLineNumber<=t.modifiedRange.endLineNumber+i&&(r=1);const s=new Z(t.orig
`),!0}return!1},t.prototype._escape=function(e,n){var r=this.stream.peekChar();if(r===Ui){this.stream.advance(1),r=this.stream.peekChar();for(var i=0;i<6&&(r>=An&&r<=Mn||r>=_r&&r<=pl||r>=Cr&&r<=ml);)this.stream.advance(1),r=this.stream.peekChar(),i++;if(i>0){try{var s=parseInt(this.stream.substring(this.stream.pos()-i),16);s&&e.push(String.fromCharCode(s))}catch{}return r===Bi||r===Vi?this.stream.advance(1):this._newline([]),!0}if(r!==Yt&&r!==Ln&&r!==Xt)return this.stream.advance(1),e.push(String.fromCharCode(r)),!0;if(n)return this._newline(e)}return!1},t.prototype._stringChar=function(e,n){var r=this.stream.peekChar();return r!==0&&r!==e&&r!==Ui&&r!==Yt&&r!==Ln&&r!==Xt?(this.stream.advance(1),n.push(String.fromCharCode(r)),!0):!1},t.prototype._string=function(e){if(this.stream.peekChar()===Sl||this.stream.peekChar()===xl){var n=this.stream.nextChar();for(e.push(String.fromCharCode(n));this._stringChar(n,e)||this._escape(e,!0););return this.stream.peekChar()===n?(this.stream.nextChar(),e.push(String.fromCharCode(n)),p.String):p.BadString}return null},t.prototype._unquotedChar=function(e){var n=this.stream.peekChar();return n!==0&&n!==Ui&&n!==Sl&&n!==xl&&n!==vl&&n!==yl&&n!==Bi&&n!==Vi&&n!==Xt&&n!==Ln&&n!==Yt?(this.stream.advance(1),e.push(String.fromCharCode(n)),!0):!1},t.prototype._unquotedString=function(e){for(var n=!1;this._unquotedChar(e)||this._escape(e);)n=!0;return n},t.prototype._whitespace=function(){var e=this.stream.advanceWhileChar(function(n){return n===Bi||n===Vi||n===Xt||n===Ln||n===Yt});return e>0},t.prototype._name=function(e){for(var n=!1;this._identChar(e)||this._escape(e);)n=!0;return n},t.prototype.ident=function(e){var n=this.stream.pos(),r=this._minus(e);if(r){if(this._minus(e)||this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(n),!1},t.prototype._identFirstChar=function(e){var n=this.stream.peekChar();return n===bl||n>=_r&&n<=fl||n>=Cr&&n<=gl||n>=128&&n<=65535?(this.stream.advance(1),e.push(String.fromCharCode(n)),!0):!1},t.prototype._minus=function(e){var n=this.stream.peekChar();return n===Dt?(this.stream.advance(1),e.push(String.fromCharCode(n)),!0):!1},t.prototype._identChar=function(e){var n=this.stream.peekChar();return n===bl||n===Dt||n>=_r&&n<=fl||n>=Cr&&n<=gl||n>=An&&n<=Mn||n>=128&&n<=65535?(this.stream.advance(1),e.push(String.fromCharCode(n)),!0):!1},t.prototype._unicodeRange=function(){if(this.stream.advanceIfChar(Lp)){var e=function(i){return i>=An&&i<=Mn||i>=_r&&i<=pl||i>=Cr&&i<=ml},n=this.stream.advanceWhileChar(e)+this.stream.advanceWhileChar(function(i){return i===Np});if(n>=1&&n<=6)if(this.stream.advanceIfChar(Dt)){var r=this.stream.advanceWhileChar(e);if(r>=1&&r<=6)return!0}else return!0}return!1},t}();function be(t,e){if(t.length<e.length)return!1;for(var n=0;n<e.length;n++)if(t[n]!==e[n])return!1;return!0}function kl(t,e){var n=t.length-e.length;return n>0?t.lastIndexOf(e)===n:n===0?t===e:!1}function zp(t,e,n){n===void 0&&(n=4);var r=Math.abs(t.length-e.length);if(r>n)return 0;var i=[],s=[],o,a;for(o=0;o<e.length+1;++o)s.push(0);for(o=0;o<t.length+1;++o)i.push(s);for(o=1;o<t.length+1;++o)for(a=1;a<e.length+1;++a)t[o-1]===e[a-1]?i[o][a]=i[o-1][a-1]+1:i[o][a]=Math.max(i[o-1][a],i[o][a-1]);return i[t.length][e.length]-Math.sqrt(r)}function El(t,e){return e===void 0&&(e=!0),t?t.length<140?t:t.slice(0,140)+(e?"\u2026":""):""}function Ip(t,e){var n=e.exec(t);return n&&n[0].length?t.substr(0,t.length-n[0].length):t}function Fl(t,e){for(var n="";e>0;)(e&1)===1&&(n+=t),t+=t,e=e>>>1;return n}var U=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Obje
`,s==="\r"&&i+1<n.length&&n.charAt(i+1)===`
`&&i++}r&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets},t.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return Ae.create(0,e);for(;r<i;){var s=Math.floor((r+i)/2);n[s]>e?i=s:r=s+1}var o=r-1;return Ae.create(o,e-n[o])},t.prototype.offsetAt=function(e){var n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;var r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)},Object.defineProperty(t.prototype,"lineCount",{get:function(){return this.getLineOffsets().length},enumerable:!1,configurable:!0}),t}(),F;(function(t){var e=Object.prototype.toString;function n(m){return typeof m<"u"}t.defined=n;function r(m){return typeof m>"u"}t.undefined=r;function i(m){return m===!0||m===!1}t.boolean=i;function s(m){return e.call(m)==="[object String]"}t.string=s;function o(m){return e.call(m)==="[object Number]"}t.number=o;function a(m,b,g){return e.call(m)==="[object Number]"&&b<=m&&m<=g}t.numberRange=a;function l(m){return e.call(m)==="[object Number]"&&-2147483648<=m&&m<=2147483647}t.integer=l;function c(m){return e.call(m)==="[object Number]"&&0<=m&&m<=2147483647}t.uinteger=c;function h(m){return e.call(m)==="[object Function]"}t.func=h;function d(m){return m!==null&&typeof m=="object"}t.objectLiteral=d;function f(m,b){return Array.isArray(m)&&m.every(b)}t.typedArray=f})(F||(F={}));var dc=class Os{constructor(e,n,r,i){this._uri=e,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){const n=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(n,r)}return this._content}update(e,n){for(let r of e)if(Os.isIncremental(r)){const i=fc(r.range),s=this.offsetAt(i.start),o=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(o,this._content.length);const a=Math.max(i.start.line,0),l=Math.max(i.end.line,0);let c=this._lineOffsets;const h=pc(r.text,!1,s);if(l-a===h.length)for(let f=0,m=h.length;f<m;f++)c[f+a+1]=h[f];else h.length<1e4?c.splice(a+1,l-a,...h):this._lineOffsets=c=c.slice(0,a+1).concat(h,c.slice(l+1));const d=r.text.length-(o-s);if(d!==0)for(let f=a+1+h.length,m=c.length;f<m;f++)c[f]=c[f]+d}else if(Os.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=pc(this._content,!0)),this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return{line:0,character:e};for(;r<i;){let o=Math.floor((r+i)/2);n[o]>e?i=o:r=o+1}let s=r-1;return{line:s,character:e-n[s]}}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let r=n[e.line],i=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(r+e.character,i),r)}get lineCount(){return this.getLineOffsets().length}static isIncremental(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(e){let n=e;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},ls;(function(t){function e(i,s,o,a){return new dc(i,s,o,a)}t.create=e;function n(i,s,o){if(i instanceof dc)return i.update(s,o),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}t.update=n;function r(i,s){let o=i.getText(),a=cs(s.map(wf),(h,d)=>{let f=h.range.start.line-d.range.start.line;return f===0?h.range.start.character-d.range.start.character:f}),l=0;const c=[];for(const h of a){let d=i.offsetAt(h.range.start);if(d<l)throw new Error("Overlapping edit");d>l&&c.push(o.substring(l,d)),h.newText.length&&c.push(h.newText),l=i.offsetAt(h.range.end)}return c.push(o.substr(l)),c.join("")}t.applyEdits=r}
`;case"nonstandard":return`\u{1F6A8}\uFE0F Property is nonstandard. Avoid using it.
`;case"obsolete":return`\u{1F6A8}\uFE0F\uFE0F\uFE0F Property is obsolete. Avoid using it.
`;default:return""}}function kt(t,e,n){var r;if(e?r={kind:"markdown",value:Sf(t,n)}:r={kind:"plaintext",value:xf(t,n)},r.value!=="")return r}function Pr(t){return t=t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&"),t.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function xf(t,e){if(!t.description||t.description==="")return"";if(typeof t.description!="string")return t.description.value;var n="";if(e?.documentation!==!1){t.status&&(n+=bc(t.status)),n+=t.description;var r=vc(t.browsers);r&&(n+=`
(`+r+")"),"syntax"in t&&(n+=`
Syntax: `.concat(t.syntax))}return t.references&&t.references.length>0&&e?.references!==!1&&(n.length>0&&(n+=`
`),n+=t.references.map(function(i){return"".concat(i.name,": ").concat(i.url)}).join(" | ")),n}function Sf(t,e){if(!t.description||t.description==="")return"";var n="";if(e?.documentation!==!1){t.status&&(n+=bc(t.status)),typeof t.description=="string"?n+=Pr(t.description):n+=t.description.kind===Be.Markdown?t.description.value:Pr(t.description.value);var r=vc(t.browsers);r&&(n+=`
(`+Pr(r)+")"),"syntax"in t&&t.syntax&&(n+=`
Syntax: `.concat(Pr(t.syntax)))}return t.references&&t.references.length>0&&e?.references!==!1&&(n.length>0&&(n+=`
`),n+=t.references.map(function(i){return"[".concat(i.name,"](").concat(i.url,")")}).join(" | ")),n}function vc(t){return t===void 0&&(t=[]),t.length===0?null:t.map(function(e){var n="",r=e.match(/([A-Z]+)(\d+)?/),i=r[1],s=r[2];return i in gc&&(n+=gc[i]),s&&(n+=" "+s),n}).join(", ")}var Hn=Je(),_f=[{func:"rgb($red, $green, $blue)",desc:Hn("css.builtin.rgb","Creates a Color from red, green, and blue values.")},{func:"rgba($red, $green, $blue, $alpha)",desc:Hn("css.builtin.rgba","Creates a Color from red, green, blue, and alpha values.")},{func:"hsl($hue, $saturation, $lightness)",desc:Hn("css.builtin.hsl","Creates a Color from hue, saturation, and lightness values.")},{func:"hsla($hue, $saturation, $lightness, $alpha)",desc:Hn("css.builtin.hsla","Creates a Color from hue, saturation, lightness, and alpha values.")},{func:"hwb($hue $white $black)",desc:Hn("css.builtin.hwb","Creates a Color from hue, white and black.")}],Tr={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},yc={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' propert
\r":{[()]},*>+`.indexOf(r.charAt(n))===-1;)n--;return r.substring(n+1,e)}function qc(t){return t.toLowerCase()in Tr||/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}var jc=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Qf=Je(),ys=function(){function t(){this.parent=null,this.children=null,this.attributes=null}return t.prototype.findAttribute=function(e){if(this.attributes)for(var n=0,r=this.attributes;n<r.length;n++){var i=r[n];if(i.name===e)return i.value}return null},t.prototype.addChild=function(e){e instanceof t&&(e.parent=this),this.children||(this.children=[]),this.children.push(e)},t.prototype.append=function(e){if(this.attributes){var n=this.attributes[this.attributes.length-1];n.value=n.value+e}},t.prototype.prepend=function(e){if(this.attributes){var n=this.attributes[0];n.value=e+n.value}},t.prototype.findRoot=function(){for(var e=this;e.parent&&!(e.parent instanceof sn);)e=e.parent;return e},t.prototype.removeChild=function(e){if(this.children){var n=this.children.indexOf(e);if(n!==-1)return this.children.splice(n,1),!0}return!1},t.prototype.addAttr=function(e,n){this.attributes||(this.attributes=[]);for(var r=0,i=this.attributes;r<i.length;r++){var s=i[r];if(s.name===e){s.value+=" "+n;return}}this.attributes.push({name:e,value:n})},t.prototype.clone=function(e){e===void 0&&(e=!0);var n=new t;if(this.attributes){n.attributes=[];for(var r=0,i=this.attributes;r<i.length;r++){var s=i[r];n.addAttr(s.name,s.value)}}if(e&&this.children){n.children=[];for(var o=0;o<this.children.length;o++)n.addChild(this.children[o].clone())}return n},t.prototype.cloneWithParent=function(){var e=this.clone(!1);if(this.parent&&!(this.parent instanceof sn)){var n=this.parent.cloneWithParent();n.addChild(e)}return e},t}(),sn=function(t){jc(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e}(ys),ws=function(t){jc(e,t);function e(n){var r=t.call(this)||this;return r.addAttr("name",n),r}return e}(ys),$c=function(){function t(e){this.quote=e,this.result=[]}return t.prototype.print=function(e){this.result=[],e instanceof sn?e.children&&this.doPrint(e.children,0):this.doPrint([e],0);var n=this.result.join(`
`);return[{language:"html",value:n}]},t.prototype.doPrint=function(e,n){for(var r=0,i=e;r<i.length;r++){var s=i[r];this.doPrintElement(s,n),s.children&&this.doPrint(s.children,n+1)}},t.prototype.writeLine=function(e,n){var r=new Array(e+1).join(" ");this.result.push(r+n)},t.prototype.doPrintElement=function(e,n){var r=e.findAttribute("name");if(e instanceof ws||r==="\u2026"){this.writeLine(n,r);return}var i=["<"];if(r?i.push(r):i.push("element"),e.attributes)for(var s=0,o=e.attributes;s<o.length;s++){var a=o[s];if(a.name!=="name"){i.push(" "),i.push(a.name);var l=a.value;l&&(i.push("="),i.push(at.ensure(l,this.quote)))}}i.push(">"),this.writeLine(n,i.join(""))},t}(),at;(function(t){function e(r,i){return i+n(r)+i}t.ensure=e;function n(r){var i=r.match(/^['"](.*)["']$/);return i?i[1]:r}t.remove=n})(at||(at={}));var Hc=function(){function t(){this.id=0,this.attr=0,this.tag=0}return t}();function Gc(t,e){for(var n=new ys,r=0,i=t.getChildren();r<i.length;r++){var s=i[r];switch(s.type){case v.SelectorCombinator:if(e){var o=s.getText().split("&");if(o.length===1){n.addAttr("name",o[0]);break}if(n=e.cloneWithParent(),o[0]){var a=n.findRoot();a.prepend(o[0])}for(var l=1;l<o.length;l++){if(l>1){var c=e.cloneWithParent();n.addChild(c.findRoot()),n=c}n.append(o[l])}}break;case v.SelectorPlaceholder:if(s.matches("@at-root"))return n;case v.ElementNameSelector:var h=s.getText();n.addAttr("name",h==="*"?"element":qe(h));break;case v.ClassSelector:n.addAttr("class",qe(s.getText().substring(1)));break;case v.IdentifierSelector:n.addAttr("id",qe(s.getText().substring(1)));break;case v.MixinDeclaration:n.addAttr("class",s.getName());break;case v.PseudoSelector:n.addAttr(qe(s.getText()),"");break;case v.AttributeSelector:var d=s,f=d.getIdentifier();if(f){var m=d.getValue(),b=d.getOperator(),g=void 0;if(m&&b)switch(qe(b.getText())){case"|=":g="".concat(at.remove(qe(m.getText())),"-\u2026");break;case"^=":g="".concat(at.remove(qe(m.getText())),"\u2026");break;case"$=":g="\u2026".concat(at.remove(qe(m.getText())));break;case"~=":g=" \u2026 ".concat(at.remove(qe(m.getText()))," \u2026 ");break;case"*=":g="\u2026".concat(at.remove(qe(m.getText())),"\u2026");break;default:g=at.remove(qe(m.getText()));break}n.addAttr(qe(f.getText()),g)}break}}return n}function qe(t){var e=new zn;e.setSource(t);var n=e.scanUnquotedString();return n?n.text:t}var Zf=function(){function t(e){this.cssDataManager=e}return t.prototype.selectorToMarkedString=function(e){var n=nm(e);if(n){var r=new $c('"').print(n);return r.push(this.selectorToSpecificityMarkedString(e)),r}else return[]},t.prototype.simpleSelectorToMarkedString=function(e){var n=Gc(e),r=new $c('"').print(n);return r.push(this.selectorToSpecificityMarkedString(e)),r},t.prototype.isPseudoElementIdentifier=function(e){var n=e.match(/^::?([\w-]+)/);return n?!!this.cssDataManager.getPseudoElement("::"+n[1]):!1},t.prototype.selectorToSpecificityMarkedString=function(e){var n=this,r=function(s){var o=new Hc;e:for(var a=0,l=s.getChildren();a<l.length;a++){var c=l[a];switch(c.type){case v.IdentifierSelector:o.id++;break;case v.ClassSelector:case v.AttributeSelector:o.attr++;break;case v.ElementNameSelector:if(c.matches("*"))break;o.tag++;break;case v.PseudoSelector:var h=c.getText();if(n.isPseudoElementIdentifier(h)){o.tag++;break}if(h.match(/^:where/i))continue e;if(h.match(/^:(not|has|is)/i)&&c.getChildren().length>0){for(var d=new Hc,f=0,m=c.getChildren();f<m.length;f++){var b=m[f],g=void 0;b.type===v.Undefined?g=b.getChildren():g=[b];for(var y=0,_=b.getChildren();y<_.length;y++){var E=_[y],w=r(E);if(w.id>d.id){d=w;continue}else if(w.id<d.id)continue;if(w.attr>d.attr){d=w;continue}else if(w.attr<d.attr)continue;if(w.tag>d.tag){d=w;continue}}}o.id+=d.id,o.attr+=d.attr,o.tag+=d.tag;continue e}o.attr++;break}if(c.getChildren().length>0){var w=r(c);o.id+=w.id,o.attr+=w.attr,o.tag+=w.tag}}return o},i=r(e);return Qf("specificity","[Selector Specificity](https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity): ({0}, {1}, {2})",i.id,i.attr,i.tag)},t}(),em=function(){function t(e){this.prev=null,this.element=e}r
$0
}`,insertTextFormat:Te.Snippet,kind:j.Keyword},{label:"@for",documentation:N("scss.builtin.@for","For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."),insertText:"@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n $0\n}",insertTextFormat:Te.Snippet,kind:j.Keyword},{label:"@each",documentation:N("scss.builtin.@each","Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."),insertText:"@each \\$${1:var} in ${2:list} {\n $0\n}",insertTextFormat:Te.Snippet,kind:j.Keyword},{label:"@while",documentation:N("scss.builtin.@while","While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."),insertText:`@while \${1:condition} {
$0
}`,insertTextFormat:Te.Snippet,kind:j.Keyword},{label:"@mixin",documentation:N("scss.builtin.@mixin","Defines styles that can be re-used throughout the stylesheet with `@include`."),insertText:`@mixin \${1:name} {
$0
}`,insertTextFormat:Te.Snippet,kind:j.Keyword},{label:"@include",documentation:N("scss.builtin.@include","Includes the styles defined by another mixin into the current rule."),kind:j.Keyword},{label:"@function",documentation:N("scss.builtin.@function","Defines complex operations that can be re-used throughout stylesheets."),kind:j.Keyword}],e.scssModuleLoaders=[{label:"@use",documentation:N("scss.builtin.@use","Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/at-rules/use"}],insertText:"@use $0;",insertTextFormat:Te.Snippet,kind:j.Keyword},{label:"@forward",documentation:N("scss.builtin.@forward","Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/at-rules/forward"}],insertText:"@forward $0;",insertTextFormat:Te.Snippet,kind:j.Keyword}],e.scssModuleBuiltIns=[{label:"sass:math",documentation:N("scss.builtin.sass:math","Provides functions that operate on numbers."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/math"}]},{label:"sass:string",documentation:N("scss.builtin.sass:string","Makes it easy to combine, search, or split apart strings."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/string"}]},{label:"sass:color",documentation:N("scss.builtin.sass:color","Generates new colors based on existing ones, making it easy to build color themes."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/color"}]},{label:"sass:list",documentation:N("scss.builtin.sass:list","Lets you access and modify values in lists."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/list"}]},{label:"sass:map",documentation:N("scss.builtin.sass:map","Makes it possible to look up the value associated with a key in a map, and much more."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/map"}]},{label:"sass:selector",documentation:N("scss.builtin.sass:selector","Provides access to Sass\u2019s powerful selector engine."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/selector"}]},{label:"sass:meta",documentation:N("scss.builtin.sass:meta","Exposes the details of Sass\u2019s inner workings."),references:[{name:"Sass documentation",url:"https://sass-lang.com/documentation/modules/meta"}]}],e}(bs);function ah(t){t.forEach(function(e){if(e.documentation&&e.references&&e.references.length>0){var n=typeof e.documentation=="string"?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};n.value+=`
`,n.value+=e.references.map(function(r){return"[".concat(r.name,"](").concat(r.url,")")}).join(" | "),e.documentation=n}})}var Am=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),lh=47,Mm=10,Nm=13,Lm=12,Ns=96,Ls=46,zm=p.CustomToken,zs=zm++,ch=function(t){Am(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.scanNext=function(n){var r=this.escapedJavaScript();return r!==null?this.finishToken(n,r):this.stream.advanceIfChars([Ls,Ls,Ls])?this.finishToken(n,zs):t.prototype.scanNext.call(this,n)},e.prototype.comment=function(){return t.prototype.comment.call(this)?!0:!this.inURL&&this.stream.advanceIfChars([lh,lh])?(this.stream.advanceWhileChar(function(n){switch(n){case Mm:case Nm:case Lm:return!1;default:return!0}}),!0):!1},e.prototype.escapedJavaScript=function(){var n=this.stream.peekChar();return n===Ns?(this.stream.advance(1),this.stream.advanceWhileChar(function(r){return r!==Ns}),this.stream.advanceIfChar(Ns)?p.EscapedJavaScript:p.BadEscapedJavaScript):null},e}(zn),Im=function(){var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,i){r.__proto__=i}||function(r,i){for(var s in i)Object.prototype.hasOwnProperty.call(i,s)&&(r[s]=i[s])},t(e,n)};return function(e,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(e,n);function r(){this.constructor=e}e.prototype=n===null?Object.create(n):(r.prototype=n.prototype,new r)}}(),Pm=function(t){Im(e,t);function e(){return t.call(this,new ch)||this}return e.prototype._parseStylesheetStatement=function(n){return n===void 0&&(n=!1),this.peek(p.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||t.prototype._parseStylesheetAtStatement.call(this,n):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)},e.prototype._parseImport=function(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;var n=this.create(Ji);if(this.consumeToken(),this.accept(p.ParenthesisL)){if(!this.accept(p.Ident))return this.finish(n,S.IdentifierExpected,[p.SemiColon]);do if(!this.accept(p.Comma))break;while(this.accept(p.Ident));if(!this.accept(p.ParenthesisR))return this.finish(n,S.RightParenthesisExpected,[p.SemiColon])}return!n.addChild(this._parseURILiteral())&&!n.addChild(this._parseStringLiteral())?this.finish(n,S.URIOrStringExpected,[p.SemiColon]):(!this.peek(p.SemiColon)&&!this.peek(p.EOF)&&n.setMedialist(this._parseMediaQueryList()),this.finish(n))},e.prototype._parsePlugin=function(){if(!this.peekKeyword("@plugin"))return null;var n=this.createNode(v.Plugin);return this.consumeToken(),n.addChild(this._parseStringLiteral())?this.accept(p.SemiColon)?this.finish(n):this.finish(n,S.SemiColonExpected):this.finish(n,S.StringLiteralExpected)},e.prototype._parseMediaQuery=function(){var n=t.prototype._parseMediaQuery.call(this);if(!n){var r=this.create(zl);return r.addChild(this._parseVariable())?this.finish(r):null}return n},e.prototype._parseMediaDeclaration=function(n){return n===void 0&&(n=!1),this._tryParseRuleset(n)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(n)},e.prototype._parseMediaFeatureName=function(){return this._parseIdent()||this._parseVariable()},e.prototype._parseVariableDeclaration=function(n){n===void 0&&(n=[]);var r=this.create(Fr),i=this.mark();if(!r.setVariable(this._parseVariable(!0)))return null;if(this.accept(p.Colon)){if(this.prevToken&&(r.colonPosition=this.prevToken.offset),r.setValue(this._parseDetachedRu
`);c!==-1?this.__character_count=l.length-c:this.__character_count+=l.length},s.prototype.pop=function(){var l=null;return this.is_empty()||(l=this.__items.pop(),this.__character_count-=l.length),l},s.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},s.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},s.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},s.prototype.toString=function(){var l="";return this.is_empty()?this.__parent.indent_empty_lines&&(l=this.__parent.get_indent_string(this.__indent_count)):(l=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),l+=this.__items.join("")),l};function o(l,c){this.__cache=[""],this.__indent_size=l.indent_size,this.__indent_string=l.indent_char,l.indent_with_tabs||(this.__indent_string=new Array(l.indent_size+1).join(l.indent_char)),c=c||"",l.indent_level>0&&(c=new Array(l.indent_level+1).join(this.__indent_string)),this.__base_string=c,this.__base_string_length=c.length}o.prototype.get_indent_size=function(l,c){var h=this.__base_string_length;return c=c||0,l<0&&(h=0),h+=l*this.__indent_size,h+=c,h},o.prototype.get_indent_string=function(l,c){var h=this.__base_string;return c=c||0,l<0&&(l=0,h=""),c+=l*this.__indent_size,this.__ensure_cache(c),h+=this.__cache[c],h},o.prototype.__ensure_cache=function(l){for(;l>=this.__cache.length;)this.__add_column()},o.prototype.__add_column=function(){var l=this.__cache.length,c=0,h="";this.__indent_size&&l>=this.__indent_size&&(c=Math.floor(l/this.__indent_size),l-=c*this.__indent_size,h=new Array(c+1).join(this.__indent_string)),l&&(h+=new Array(l+1).join(" ")),this.__cache.push(h)};function a(l,c){this.__indent_cache=new o(l,c),this.raw=!1,this._end_with_newline=l.end_with_newline,this.indent_size=l.indent_size,this.wrap_line_length=l.wrap_line_length,this.indent_empty_lines=l.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new s(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}a.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},a.prototype.get_line_number=function(){return this.__lines.length},a.prototype.get_indent_string=function(l,c){return this.__indent_cache.get_indent_string(l,c)},a.prototype.get_indent_size=function(l,c){return this.__indent_cache.get_indent_size(l,c)},a.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},a.prototype.add_new_line=function(l){return this.is_empty()||!l&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},a.prototype.get_code=function(l){this.trim(!0);var c=this.current_line.pop();c&&(c[c.length-1]===`
`&&(c=c.replace(/\n+$/g,"")),this.current_line.push(c)),this._end_with_newline&&this.__add_outputline();var h=this.__lines.join(`
`);return l!==`
`&&(h=h.replace(/[\n]/g,l)),h},a.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},a.prototype.set_indent=function(l,c){return l=l||0,c=c||0,this.next_line.set_indent(l,c),this.__lines.length>1?(this.current_line.set_indent(l,c),!0):(this.current_line.set_indent(),!1)},a.prototype.add_raw_token=function(l){for(var c=0;c<l.newlines;c++)this.__add_outputline();this.current_line.set_indent(-1),this.current_line.push(l.whitespace_before),this.current_line.push(l.text),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1},a.prototype.add_token=function(l){this.__add_space_before_token(),this.current_line.push(l),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=this.current_line._allow_wrap()},a.prototype.__add_space_before_token=function(){this.space_before_token&&!this.just_added_newline()&&(this.non_breaking_space||this.set_wrap_point(),this.current_line.push(" "))},a.prototype.remove_indent=function(l){for(var c=this.__lines.length;l<c;)this.__lines[l]._remove_indent(),l++;this.current_line._remove_wrap_indent()},a.prototype.trim=function(l){for(l=l===void 0?!1:l,this.current_line.trim();l&&this.__lines.length>1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},a.prototype.just_added_newline=function(){return this.current_line.is_empty()},a.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},a.prototype.ensure_empty_line_above=function(l,c){for(var h=this.__lines.length-2;h>=0;){var d=this.__lines[h];if(d.is_empty())break;if(d.item(0).indexOf(l)!==0&&d.item(-1)!==c){this.__lines.splice(h+1,0,new s(this)),this.previous_line=this.__lines[this.__lines.length-2];break}h--}},i.exports.Output=a},,,,function(i){function s(l,c){this.raw_options=o(l,c),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs",this.indent_char===" "),this.indent_with_tabs&&(this.indent_char=" ",this.indent_size===1&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","django","erb","handlebars","php","smarty"],["auto"])}s.prototype._get_array=function(l,c){var h=this.raw_options[l],d=c||[];return typeof h=="object"?h!==null&&typeof h.concat=="function"&&(d=h.concat()):typeof h=="string"&&(d=h.split(/[^a-zA-Z0-9_\/\-]+/)),d},s.prototype._get_boolean=function(l,c){var h=this.raw_options[l],d=h===void 0?!!c:!!h;return d},s.prototype._get_characters=function(l,c){var h=this.raw_options[l],d=c||"";return typeof h=="string"&&(d=h.replace(/\\r/,"\r").replace(/\\n/,`
`).replace(/\\t/," ")),d},s.prototype._get_number=function(l,c){var h=this.raw_options[l];c=parseInt(c,10),isNaN(c)&&(c=0);var d=parseInt(h,10);return isNaN(d)&&(d=c),d},s.prototype._get_selection=function(l,c,h){var d=this._get_selection_list(l,c,h);if(d.length!==1)throw new Error("Invalid Option Value: The option '"+l+`' can only be one of the following values:
`+c+`
You passed in: '`+this.raw_options[l]+"'");return d[0]},s.prototype._get_selection_list=function(l,c,h){if(!c||c.length===0)throw new Error("Selection list cannot be empty.");if(h=h||[c[0]],!this._is_valid_selection(h,c))throw new Error("Invalid Default Value!");var d=this._get_array(l,h);if(!this._is_valid_selection(d,c))throw new Error("Invalid Option Value: The option '"+l+`' can contain only the following values:
`+c+`
You passed in: '`+this.raw_options[l]+"'");return d},s.prototype._is_valid_selection=function(l,c){return l.length&&c.length&&!l.some(function(h){return c.indexOf(h)===-1})};function o(l,c){var h={};l=a(l);var d;for(d in l)d!==c&&(h[d]=l[d]);if(c&&l[c])for(d in l[c])h[d]=l[c][d];return h}function a(l){var c={},h;for(h in l){var d=h.replace(/-/g,"_");c[d]=l[h]}return c}i.exports.Options=s,i.exports.normalizeOpts=a,i.exports.mergeOpts=o},,function(i){var s=RegExp.prototype.hasOwnProperty("sticky");function o(a){this.__input=a||"",this.__input_length=this.__input.length,this.__position=0}o.prototype.restart=function(){this.__position=0},o.prototype.back=function(){this.__position>0&&(this.__position-=1)},o.prototype.hasNext=function(){return this.__position<this.__input_length},o.prototype.next=function(){var a=null;return this.hasNext()&&(a=this.__input.charAt(this.__position),this.__position+=1),a},o.prototype.peek=function(a){var l=null;return a=a||0,a+=this.__position,a>=0&&a<this.__input_length&&(l=this.__input.charAt(a)),l},o.prototype.__match=function(a,l){a.lastIndex=l;var c=a.exec(this.__input);return c&&!(s&&a.sticky)&&c.index!==l&&(c=null),c},o.prototype.test=function(a,l){return l=l||0,l+=this.__position,l>=0&&l<this.__input_length?!!this.__match(a,l):!1},o.prototype.testChar=function(a,l){var c=this.peek(l);return a.lastIndex=0,c!==null&&a.test(c)},o.prototype.match=function(a){var l=this.__match(a,this.__position);return l?this.__position+=l[0].length:l=null,l},o.prototype.read=function(a,l,c){var h="",d;return a&&(d=this.match(a),d&&(h+=d[0])),l&&(d||!a)&&(h+=this.readUntil(l,c)),h},o.prototype.readUntil=function(a,l){var c="",h=this.__position;a.lastIndex=this.__position;var d=a.exec(this.__input);return d?(h=d.index,l&&(h+=d[0].length)):h=this.__input_length,c=this.__input.substring(this.__position,h),this.__position=h,c},o.prototype.readUntilAfter=function(a){return this.readUntil(a,!0)},o.prototype.get_regexp=function(a,l){var c=null,h="g";return l&&s&&(h="y"),typeof a=="string"&&a!==""?c=new RegExp(a,h):a&&(c=new RegExp(a.source,h)),c},o.prototype.get_literal_regexp=function(a){return RegExp(a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"))},o.prototype.peekUntilAfter=function(a){var l=this.__position,c=this.readUntilAfter(a);return this.__position=l,c},o.prototype.lookBack=function(a){var l=this.__position-1;return l>=a.length&&this.__input.substring(l-a.length,l).toLowerCase()===a},i.exports.InputScanner=o},,,,,function(i){function s(o,a){o=typeof o=="string"?o:o.source,a=typeof a=="string"?a:a.source,this.__directives_block_pattern=new RegExp(o+/ beautify( \w+[:]\w+)+ /.source+a,"g"),this.__directive_pattern=/ (\w+)[:](\w+)/g,this.__directives_end_ignore_pattern=new RegExp(o+/\sbeautify\signore:end\s/.source+a,"g")}s.prototype.get_directives=function(o){if(!o.match(this.__directives_block_pattern))return null;var a={};this.__directive_pattern.lastIndex=0;for(var l=this.__directive_pattern.exec(o);l;)a[l[1]]=l[2],l=this.__directive_pattern.exec(o);return a},s.prototype.readIgnored=function(o){return o.readUntilAfter(this.__directives_end_ignore_pattern)},i.exports.Directives=s},,function(i,s,o){var a=o(16).Beautifier,l=o(17).Options;function c(h,d){var f=new a(h,d);return f.beautify()}i.exports=c,i.exports.defaultOptions=function(){return new l}},function(i,s,o){var a=o(17).Options,l=o(2).Output,c=o(8).InputScanner,h=o(13).Directives,d=new h(/\/\*/,/\*\//),f=/\r\n|[\r\n]/,m=/\r\n|[\r\n]/g,b=/\s/,g=/(?:\s|\n)+/g,y=/\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,_=/\/\/(?:[^\n\r\u2028\u2029]*)/g;function E(w,C){this._source_text=w||"",this._options=new a(C),this._ch=null,this._input=null,this.NESTED_AT_RULE={"@page":!0,"@font-face":!0,"@keyframes":!0,"@media":!0,"@supports":!0,"@document":!0},this.CONDITIONAL_GROUP_RULE={"@media":!0,"@supports":!0,"@document":!0}}E.prototype.eatString=function(w){var C="";for(this._ch=this._input.next();this._ch;){if(C+=this._ch,this._ch==="\\")C+=this._input.next();else if(w.indexOf(this._ch)!==-1||this._ch===`
`)break;this._ch=this._input.next()}return C},E.prototype.eatWhitespace=function(w){for(var C=b.test(this._input.peek()),R=0;b.test(this._input.peek());)this._ch=this._input.next(),w&&this._ch===`
`&&(R===0||R<this._options.max_preserve_newlines)&&(R++,this._output.add_new_line(!0));return C},E.prototype.foundNestedPseudoClass=function(){for(var w=0,C=1,R=this._input.peek(C);R;){if(R==="{")return!0;if(R==="(")w+=1;else if(R===")"){if(w===0)return!1;w-=1}else if(R===";"||R==="}")return!1;C++,R=this._input.peek(C)}return!1},E.prototype.print_string=function(w){this._output.set_indent(this._indentLevel),this._output.non_breaking_space=!0,this._output.add_token(w)},E.prototype.preserveSingleSpace=function(w){w&&(this._output.space_before_token=!0)},E.prototype.indent=function(){this._indentLevel++},E.prototype.outdent=function(){this._indentLevel>0&&this._indentLevel--},E.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var w=this._source_text,C=this._options.eol;C==="auto"&&(C=`
`,w&&f.test(w||"")&&(C=w.match(f)[0])),w=w.replace(m,`
`);var R=w.match(/^[\t ]*/)[0];this._output=new l(this._options,R),this._input=new c(w),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var z=0,W=!1,T=!1,G=!1,se=!1,J=!1,A=this._ch,M,I,P;M=this._input.read(g),I=M!=="",P=A,this._ch=this._input.next(),this._ch==="\\"&&this._input.hasNext()&&(this._ch+=this._input.next()),A=this._ch,this._ch;)if(this._ch==="/"&&this._input.peek()==="*"){this._output.add_new_line(),this._input.back();var O=this._input.read(y),k=d.get_directives(O);k&&k.ignore==="start"&&(O+=d.readIgnored(this._input)),this.print_string(O),this.eatWhitespace(!0),this._output.add_new_line()}else if(this._ch==="/"&&this._input.peek()==="/")this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(_)),this.eatWhitespace(!0);else if(this._ch==="@")if(this.preserveSingleSpace(I),this._input.peek()==="{")this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var x=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);x.match(/[ :]$/)&&(x=this.eatString(": ").replace(/\s$/,""),this.print_string(x),this._output.space_before_token=!0),x=x.replace(/\s$/,""),x==="extend"?se=!0:x==="import"&&(J=!0),x in this.NESTED_AT_RULE?(this._nestedLevel+=1,x in this.CONDITIONAL_GROUP_RULE&&(G=!0)):!W&&z===0&&x.indexOf(":")!==-1&&(T=!0,this.indent())}else this._ch==="#"&&this._input.peek()==="{"?(this.preserveSingleSpace(I),this.print_string(this._ch+this.eatString("}"))):this._ch==="{"?(T&&(T=!1,this.outdent()),G?(G=!1,W=this._indentLevel>=this._nestedLevel):W=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&W&&this._output.previous_line&&this._output.previous_line.item(-1)!=="{"&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,this._options.brace_style==="expand"?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):(this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line()):this._ch==="}"?(this.outdent(),this._output.add_new_line(),P==="{"&&this._output.trim(!0),J=!1,se=!1,T&&(this.outdent(),T=!1),this.print_string(this._ch),W=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&this._input.peek()!=="}"&&this._output.add_new_line(!0)):this._ch===":"?(W||G)&&!(this._input.lookBack("&")||this.foundNestedPseudoClass())&&!this._input.lookBack("(")&&!se&&z===0?(this.print_string(":"),T||(T=!0,this._output.space_before_token=!0,this.eatWhitespace(!0),this.indent())):(this._input.lookBack(" ")&&(this._output.space_before_token=!0),this._input.peek()===":"?(this._ch=this._input.next(),this.print_string("::")):this.print_string(":")):this._ch==='"'||this._ch==="'"?(this.preserveSingleSpace(I),this.print_string(this._ch+this.eatString(this._ch)),this.eatWhitespace(!0)):this._ch===";"?z===0?(T&&(this.outdent(),T=!1),se=!1,J=!1,this.print_string(this._ch),this.eatWhitespace(!0),this._input.peek()!=="/"&&this._output.add_new_line()):(this.print_string(this._ch),this.eatWhitespace(!0),this._output.space_before_token=!0):this._ch==="("?this._input.lookBack("url")?(this.print_string(this._ch),this.eatWhitespace(),z++,this.indent(),this._ch=this._input.next(),this._ch===")"||this._ch==='"'||this._ch==="'"?this._input.back():this._ch&&(this.print_string(this._ch+this.eatString(")")),z&&(z--,this.outdent()))):(this.preserveSingleSpace(I),this.print_string(this._ch),this.eatWhitespace(),z++,this.indent()):this._ch===")"?(z&&(z--,this.outdent()),this.print_string(this._ch)):this._ch===","?(this.print_string(this._ch),this.eatWhitespace(!0),this._options.selector_separator_newline&&!T&&z===0&&!J&&!se?this._output.add_new_line():this._output.space_before_token=!0):(this._ch===">"||this._ch==="+"||this._ch==="~")&&!T&&z===0?this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&b.test
`.concat(dh(r)))}else e=oe.create(Ae.create(0,0),t.positionAt(r.length));var m={indent_size:a,indent_char:n.insertSpaces?" ":" ",end_with_newline:i&&ht(n,"insertFinalNewline",!1),selector_separator_newline:ht(n,"newlineBetweenSelectors",!0),newline_between_rules:ht(n,"newlineBetweenRules",!0),space_around_selector_separator:ht(n,"spaceAroundSelectorSeparator",!1),brace_style:ht(n,"braceStyle","collapse"),indent_empty_lines:ht(n,"indentEmptyLines",!1),max_preserve_newlines:ht(n,"maxPreserveNewLines",void 0),preserve_newlines:ht(n,"preserveNewLines",!0),wrap_line_length:ht(n,"wrapLineLength",void 0),eol:`
`},b=Vm(r,m);if(o&&(b=dh(b.substring(2))),s>0){var g=n.insertSpaces?Fl(" ",a*s):Fl(" ",s);b=b.split(`
`).join(`
`+g),e.start.character===0&&(b=g+b)}return[{range:e,newText:b}]}function dh(t){return t.replace(/^\s+/,"")}var jm=123,$m=125;function Hm(t,e){for(;e>=0;){var n=t.charCodeAt(e);if(n===jm)return!0;if(n===$m)return!1;e--}return!1}function ht(t,e,n){if(t&&t.hasOwnProperty(e)){var r=t[e];if(r!==null)return r}return n}function Gm(t,e,n){for(var r=e,i=0,s=n.tabSize||4;r<t.length;){var o=t.charAt(r);if(o===" ")i++;else if(o===" ")i+=s;else break;r++}return Math.floor(i/s)}function ph(t,e){return`\r
`.indexOf(t.charAt(e))!==-1}function fh(t,e){return" ".indexOf(t.charAt(e))!==-1}var Jm={version:1.1,properties:[{name:"additive-symbols",browsers:["FF33"],syntax:"[ <integer> && <symbol> ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."}],syntax:"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>",relevance:62,description:"Aligns a flex container\u2019s lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",values:[{name:"baseline",description:"If the flex item\u2019s inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item\u2019s margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."}],syntax:"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]",relevance:85,description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"},{name:"legacy"}],syntax:"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]",relevance:53,description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item,
This feature is available since Firefox 55, but is only currently supported with SVG images loaded via chrome:// or resource:// URLs. To experiment with the feature in SVG on the Web it is necessary to set the svg.context-properties.content.enabled pref to true.`},{name:"-moz-float-edge",status:"nonstandard",syntax:"border-box | content-box | margin-box | padding-box",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge"}],description:"The non-standard -moz-float-edge CSS property specifies whether the height and width properties of the element include the margin, border, or padding thickness."},{name:"-moz-force-broken-image-icon",status:"nonstandard",syntax:"0 | 1",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon"}],description:"The -moz-force-broken-image-icon extended CSS property can be used to force the broken image icon to be shown even when a broken image has an alt attribute."},{name:"-moz-image-region",status:"nonstandard",syntax:"<shape> | auto",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region"}],description:"For certain XUL elements and pseudo-elements that use an image from the list-style-image property, this property specifies a region of the image that is used in place of the whole image. This allows elements to use different pieces of the same image to improve performance."},{name:"-moz-orient",status:"nonstandard",syntax:"inline | block | horizontal | vertical",relevance:0,browsers:["FF6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-orient"}],description:"The -moz-orient CSS property specifies the orientation of the element to which it's applied."},{name:"-moz-outline-radius",status:"nonstandard",syntax:"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius"}],description:"In Mozilla applications like Firefox, the -moz-outline-radius CSS property can be used to give an element's outline rounded corners."},{name:"-moz-outline-radius-bottomleft",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomleft"}],description:"In Mozilla applications, the -moz-outline-radius-bottomleft CSS property can be used to round the bottom-left corner of an element's outline."},{name:"-moz-outline-radius-bottomright",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomright"}],description:"In Mozilla applications, the -moz-outline-radius-bottomright CSS property can be used to round the bottom-right corner of an element's outline."},{name:"-moz-outline-radius-topleft",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topleft"}],description:"In Mozilla applications, the -moz-outline-radius-topleft CSS property can be used to round the top-left corner of an element's outline."},{name:"-moz-outline-radius-topright",status:"nonstandard",syntax:"<outline-radius>",relevance:0,browsers:["FF1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topright"}],description:"In Mozilla applications, the -moz-outline-radius-topright CSS property can be used to round the top-right corner of an element's outline."},{name:"-moz-stack-sizing",status:"nonstandard",syntax:"ignore | stretch-to-fit",relevance:0,description:"-moz-stack-sizing is an extended CSS property. Normally, a stack will change its size so that all of its child elements are completely visible. For example, moving a child of the stac
This property is a shorthand for mask-border-source, mask-border-slice, mask-border-width, mask-border-outset, mask-border-repeat, and mask-border-mode. As with all shorthand properties, any omitted sub-values will be set to their initial value.`},{name:"mask-border-mode",syntax:"luminance | alpha",relevance:50,description:"The mask-border-mode CSS property specifies the blending mode used in a mask border."},{name:"mask-border-outset",syntax:"[ <length> | <number> ]{1,4}",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-outset"}],description:"The mask-border-outset CSS property specifies the distance by which an element's mask border is set out from its border box."},{name:"mask-border-repeat",syntax:"[ stretch | repeat | round | space ]{1,2}",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat"}],description:"The mask-border-repeat CSS property defines how the edge regions of a source image are adjusted to fit the dimensions of an element's mask border."},{name:"mask-border-slice",syntax:"<number-percentage>{1,4} fill?",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-slice"}],description:"The mask-border-slice CSS property divides the image specified by mask-border-source into regions. These regions are used to form the components of an element's mask border."},{name:"mask-border-source",syntax:"none | <image>",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-source"}],description:`The mask-border-source CSS property specifies the source image used to create an element's mask border.
The mask-border-slice property is used to divide the source image into regions, which are then dynamically applied to the final mask border.`},{name:"mask-border-width",syntax:"[ <length-percentage> | <number> | auto ]{1,4}",relevance:50,browsers:["E79","S3.1","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-width"}],description:"The mask-border-width CSS property specifies the width of an element's mask border."},{name:"mask-clip",syntax:"[ <geometry-box> | no-clip ]#",relevance:50,browsers:["E79","FF53","S15.4","C1","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-clip"}],description:"The mask-clip CSS property determines the area, which is affected by a mask. The painted content of an element must be restricted to this area."},{name:"mask-composite",syntax:"<compositing-operator>#",relevance:50,browsers:["E18","FF53","S15.4"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/mask-composite"}],description:"The mask-composite CSS property represents a compositing operation used on the current mask layer with the mask layers below it."},{name:"masonry-auto-flow",status:"experimental",syntax:"[ pack | next ] || [ definite-first | ordered ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/masonry-auto-flow"}],description:"The masonry-auto-flow CSS property modifies how items are placed when using masonry in CSS Grid Layout."},{name:"math-style",syntax:"normal | compact",relevance:50,browsers:["FF83","S14.1","C83"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/math-style"}],description:"The math-style property indicates whether MathML equations should render with normal or compact height."},{name:"max-lines",status:"experimental",syntax:"none | <integer>",relevance:50,description:"The max-liens property forces a break after a set number of lines"},{name:"offset",syntax:"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",relevance:50,browsers:["E79","FF72","C55","O42"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset"}],description:"The offset CSS property is a shorthand property for animating an element along a defined path."},{name:"offset-anchor",syntax:"auto | <position>",relevance:50,browsers:["FF72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-anchor"}],description:"Defines an anchor point of the box positioned along the path. The anchor point specifies the point of the box which is to be considered as the point that is moved along the path."},{name:"offset-distance",syntax:"<length-percentage>",relevance:50,browsers:["E79","FF72","C55","O42"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-distance"}],description:"The offset-distance CSS property specifies a position along an offset-path."},{name:"offset-path",syntax:"none | ray( [ <angle> && <size> && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]",relevance:50,browsers:["E79","FF72","C55","O45"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-path"}],description:`The offset-path CSS property specifies the offset path where the element gets positioned. The exact element\u2019s position on the offset path is determined by the offset-distance property. An offset path is either a specified path with one or multiple sub-paths or the geometry of a not-styled basic shape. Each shape or path must define an initial position for the computed value of "0" for offset-distance and an initial direction which specifies the rotation of the object to the initial position.
In this specification, a direction (or rotation) of 0 degrees is equivalent to the direction of the positive x-axis in the object\u2019s local coordinate system. In other words, a rotation of 0 degree points to the right side of the UA if the object and its ancestors have no transformation applied.`},{name:"offset-position",status:"experimental",syntax:"auto | <position>",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-position"}],description:"Specifies the initial position of the offset path. If position is specified with static, offset-position would be ignored."},{name:"offset-rotate",syntax:"[ auto | reverse ] || <angle>",relevance:50,browsers:["E79","FF72","C56","O43"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/offset-rotate"}],description:"The offset-rotate CSS property defines the direction of the element while positioning along the offset path."},{name:"overflow-anchor",syntax:"auto | none",relevance:52,browsers:["E79","FF66","C56","O43"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-anchor"}],description:"The overflow-anchor CSS property provides a way to opt out browser scroll anchoring behavior which adjusts scroll position to minimize content shifts."},{name:"overflow-block",syntax:"visible | hidden | clip | scroll | auto",relevance:50,browsers:["FF69"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-block"}],description:"The overflow-block CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the block axis."},{name:"overflow-clip-box",status:"nonstandard",syntax:"padding-box | content-box",relevance:0,browsers:["FF29"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Mozilla/Gecko/Chrome/CSS/overflow-clip-box"}],description:"The overflow-clip-box CSS property specifies relative to which box the clipping happens when there is an overflow. It is short hand for the overflow-clip-box-inline and overflow-clip-box-block properties."},{name:"overflow-clip-margin",syntax:"<visual-box> || <length [0,\u221E]>",relevance:50,browsers:["E90","C90","O76"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-clip-margin"}],description:"The overflow-clip-margin CSS property determines how far outside its bounds an element with overflow: clip may be painted before being clipped."},{name:"overflow-inline",syntax:"visible | hidden | clip | scroll | auto",relevance:50,browsers:["FF69"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overflow-inline"}],description:"The overflow-inline CSS media feature can be used to test how the output device handles content that overflows the initial containing block along the inline axis."},{name:"overscroll-behavior",syntax:"[ contain | none | auto ]{1,2}",relevance:50,browsers:["E18","FF59","C63","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior"}],description:"The overscroll-behavior CSS property is shorthand for the overscroll-behavior-x and overscroll-behavior-y properties, which allow you to control the browser's scroll overflow behavior \u2014 what happens when the boundary of a scrolling area is reached."},{name:"overscroll-behavior-block",syntax:"contain | none | auto",relevance:50,browsers:["E79","FF73","C77","O64"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block"}],description:"The overscroll-behavior-block CSS property sets the browser's behavior when the block direction boundary of a scrolling area is reached."},{name:"overscroll-behavior-inline",syntax:"contain | none | auto",relevance:50,browsers:["E79","FF73","C77","O64"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline"}],description:"The overscroll-behavior-inline CSS property sets the browser's behavior
Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.`},{name:"scroll-snap-type-y",status:"obsolete",syntax:"none | mandatory | proximity",relevance:0,browsers:["FF39"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y"}],description:`The scroll-snap-type-y CSS property defines how strictly snap points are enforced on the vertical axis of the scroll container in case there is one.
Specifying any precise animations or physics used to enforce those snap points is not covered by this property but instead left up to the user agent.`},{name:"text-combine-upright",syntax:"none | all | [ digits <integer>? ]",relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright"}],description:`The text-combine-upright CSS property specifies the combination of multiple characters into the space of a single character. If the combined text is wider than 1em, the user agent must fit the contents within 1em. The resulting composition is treated as a single upright glyph for layout and decoration. This property only has an effect in vertical writing modes.
This is used to produce an effect that is known as tate-ch\u016B-yoko (\u7E26\u4E2D\u6A2A) in Japanese, or as \u76F4\u66F8\u6A6B\u5411 in Chinese.`},{name:"text-decoration-skip",status:"experimental",syntax:"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]",relevance:52,browsers:["S12.1","C57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip"}],description:"The text-decoration-skip CSS property specifies what parts of the element\u2019s content any text decoration affecting the element must skip over. It controls all text decoration lines drawn by the element and also any text decoration lines drawn by its ancestors."},{name:"text-decoration-skip-ink",syntax:"auto | all | none",relevance:50,browsers:["E79","FF70","S15.4","C64","O50"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink"}],description:"The text-decoration-skip-ink CSS property specifies how overlines and underlines are drawn when they pass over glyph ascenders and descenders."},{name:"text-decoration-thickness",syntax:"auto | from-font | <length> | <percentage> ",relevance:50,browsers:["E89","FF70","S12.1","C89","O75"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness"}],description:"The text-decoration-thickness CSS property sets the thickness, or width, of the decoration line that is used on text in an element, such as a line-through, underline, or overline."},{name:"text-emphasis",syntax:"<'text-emphasis-style'> || <'text-emphasis-color'>",relevance:50,browsers:["E79","FF46","S7","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis"}],description:"The text-emphasis CSS property is a shorthand property for setting text-emphasis-style and text-emphasis-color in one declaration. This property will apply the specified emphasis mark to each character of the element's text, except separator characters, like spaces, and control characters."},{name:"text-emphasis-color",syntax:"<color>",relevance:50,browsers:["E79","FF46","S7","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color"}],description:"The text-emphasis-color CSS property defines the color used to draw emphasis marks on text being rendered in the HTML document. This value can also be set and reset using the text-emphasis shorthand."},{name:"text-emphasis-position",syntax:"[ over | under ] && [ right | left ]",relevance:50,browsers:["E79","FF46","S7","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position"}],description:"The text-emphasis-position CSS property describes where emphasis marks are drawn at. The effect of emphasis marks on the line height is the same as for ruby text: if there isn't enough place, the line height is increased."},{name:"text-emphasis-style",syntax:"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>",relevance:50,browsers:["E79","FF46","S7","C25","O15"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style"}],description:"The text-emphasis-style CSS property defines the type of emphasis used. It can also be set, and reset, using the text-emphasis shorthand."},{name:"text-size-adjust",status:"experimental",syntax:"none | auto | <percentage>",relevance:57,browsers:["E79","C54","O41"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust"}],description:"The text-size-adjust CSS property controls the text inflation algorithm used on some smartphones and tablets. Other browsers will ignore this property."},{name:"text-underline-offset",syntax:"auto | <length> | <percentage> ",relevance:50,browsers:["E87","FF70","S12.1","C87","O73"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset"}],descriptio
A zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.`},{name:"min-zoom",syntax:"auto | <number> | <percentage>",relevance:50,description:`The min-zoom CSS descriptor sets the minimum zoom factor of a document defined by the @viewport at-rule. The browser will not zoom out any further than this, whether automatically or at the user's request.
A zoom factor of 1.0 or 100% corresponds to no zooming. Larger values are zoomed in. Smaller values are zoomed out.`},{name:"orientation",syntax:"auto | portrait | landscape",relevance:50,description:"The orientation CSS @media media feature can be used to apply styles based on the orientation of the viewport (or the page box, for paged media)."},{name:"user-zoom",syntax:"zoom | fixed",relevance:50,description:"The user-zoom CSS descriptor controls whether or not the user can change the zoom factor of a document defined by @viewport."},{name:"viewport-fit",syntax:"auto | contain | cover",relevance:50,description:"The border-block-style CSS property defines the style of the logical block borders of an element, which maps to a physical border style depending on the element's writing mode, directionality, and text orientation."}],atDirectives:[{name:"@charset",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@charset"}],description:"Defines character set of the document."},{name:"@counter-style",browsers:["E91","FF33","C91","O77"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@counter-style"}],description:"Defines a custom counter style."},{name:"@font-face",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@font-face"}],description:"Allows for linking to fonts that are automatically activated when needed. This permits authors to work around the limitation of 'web-safe' fonts, allowing for consistent rendering independent of the fonts available in a given user's environment."},{name:"@font-feature-values",browsers:["FF34","S9.1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values"}],description:"Defines named values for the indices used to select alternate glyphs for a given font family."},{name:"@import",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@import"}],description:"Includes content of another file."},{name:"@keyframes",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@keyframes"}],description:"Defines set of animation key frames."},{name:"@media",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@media"}],description:"Defines a stylesheet for a particular media type."},{name:"@-moz-document",browsers:["FF1.8"],description:"Gecko-specific at-rule that restricts the style rules contained within it based on the URL of the document."},{name:"@-moz-keyframes",browsers:["FF5"],description:"Defines set of animation key frames."},{name:"@-ms-viewport",browsers:["E","IE10"],description:"Specifies the size, zoom factor, and orientation of the viewport."},{name:"@namespace",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@namespace"}],description:"Declares a prefix and associates it with a namespace name."},{name:"@-o-keyframes",browsers:["O12"],description:"Defines set of animation key frames."},{name:"@-o-viewport",browsers:["O11"],description:"Specifies the size, zoom factor, and orientation of the viewport."},{name:"@page",browsers:["E12","FF19","C2","IE8","O6"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@page"}],description:"Directive defines various page parameters."},{name:"@supports",browsers:["E12","FF22","S9","C28","O12.1"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/@supports"}],description:"A conditional group rule whose condition tests whether the user agent supports CSS property:value pairs."},{name:"@-webkit-keyframes",browsers:["C","S4"],description:"Defines set of animation key frames."}],pseudoClasses:[{name:":active",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/:active"}],description:"Applies while an element is being activated by the user. For example, between the times the user presses the mouse button and releases it."},{name:":any-link",browsers:["E79","FF50","S9","C65","O52"],references:[{name:"MDN Referenc
In order to let ::-webkit-progress-value take effect, -webkit-appearance needs to be set to none on the <progress> element.`},{name:"::grammar-error",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::grammar-error"}],description:"The ::grammar-error CSS pseudo-element represents a text segment which the user agent has flagged as grammatically incorrect."},{name:"::marker",browsers:["E86","FF68","S11.1","C86","O72"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::marker"}],description:"The ::marker CSS pseudo-element selects the marker box of a list item, which typically contains a bullet or number. It works on any element or pseudo-element set to display: list-item, such as the <li> and <summary> elements."},{name:"::part",status:"experimental",browsers:["E79","FF72","S13.1","C73","O60"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::part"}],description:"The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute."},{name:"::placeholder",browsers:["E79","FF51","S10.1","C57","O44"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::placeholder"}],description:"The ::placeholder CSS pseudo-element represents the placeholder text of a form element."},{name:"::slotted",browsers:["E79","FF63","S10","C50","O37"],references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::slotted"}],description:"The :slotted() CSS pseudo-element represents any element that has been placed into a slot inside an HTML template."},{name:"::spelling-error",status:"experimental",references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/::spelling-error"}],description:"The ::spelling-error CSS pseudo-element represents a text segment which the user agent has flagged as incorrectly spelled."}]},mh=function(){function t(e){this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.addData(e)}return t.prototype.provideProperties=function(){return this._properties},t.prototype.provideAtDirectives=function(){return this._atDirectives},t.prototype.providePseudoClasses=function(){return this._pseudoClasses},t.prototype.providePseudoElements=function(){return this._pseudoElements},t.prototype.addData=function(e){if(Array.isArray(e.properties))for(var n=0,r=e.properties;n<r.length;n++){var i=r[n];Xm(i)&&this._properties.push(i)}if(Array.isArray(e.atDirectives))for(var s=0,o=e.atDirectives;s<o.length;s++){var i=o[s];Ym(i)&&this._atDirectives.push(i)}if(Array.isArray(e.pseudoClasses))for(var a=0,l=e.pseudoClasses;a<l.length;a++){var i=l[a];Km(i)&&this._pseudoClasses.push(i)}if(Array.isArray(e.pseudoElements))for(var c=0,h=e.pseudoElements;c<h.length;c++){var i=h[c];Qm(i)&&this._pseudoElements.push(i)}},t}();function Xm(t){return typeof t.name=="string"}function Ym(t){return typeof t.name=="string"}function Km(t){return typeof t.name=="string"}function Qm(t){return typeof t.name=="string"}var Is=function(){function t(e){this.dataProviders=[],this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this._properties=[],this._atDirectives=[],this._pseudoClasses=[],this._pseudoElements=[],this.setDataProviders(e?.useDefaultDataProvider!==!1,e?.customDataProviders||[])}return t.prototype.setDataProviders=function(e,n){var r;this.dataProviders=[],e&&this.dataProviders.push(new mh(Jm)),(r=this.dataProviders).push.apply(r,n),this.collectData()},t.prototype.collectData=function(){var e=this;this._propertySet={},this._atDirectiveSet={},this._pseudoClassSet={},this._pseudoElementSet={},this.dataProviders.forEach(function(n){n.provideProperties().forEach(function(r){e._propertySet[r.name]||(e._propertySet[r.name]=r)}),n.provideAtDirectives().forEach(function(r){e._atDirectiveSet[r.name]||(e._atDirectiveSet[r.name]=r)}),n.providePseudoClasses().forEach(function(r){e._pseudoClassSet[r.name]||(e._pseudoClassSet[r.name]=r)}),n.providePseudoElements().fo