From 1646a276ce049e8b90eecf69277742dcb0a21f3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E6=81=92?= <2323333339@qq.com> Date: Wed, 2 Jun 2021 10:42:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/factory.php | 4 +- core/function.php | 2 +- package.json | 2 +- typecho/write/css/joe.write.min.css | 2 +- typecho/write/css/joe.write.min.scss | 52 +----- .../{index-ec1dad61.js => index-01d24eaf.js} | 0 .../{index-4ff54fbd.js => index-0a69c00f.js} | 0 .../{index-94295a51.js => index-26513241.js} | 0 .../{index-eddd0dfb.js => index-7206f25e.js} | 0 .../{index-9567a91c.js => index-8b02e2f7.js} | 0 .../{index-a879143b.js => index-aa082e7b.js} | 0 .../{index-7bc70213.js => index-d6567c9d.js} | 0 .../{index-5cf29f46.js => index-e9ab6ca5.js} | 0 typecho/write/dist/index.js | 6 +- typecho/write/js/_theme.js | 156 ++++++++++++++++++ typecho/write/js/index.js | 22 ++- typecho/write/package.json | 2 +- 17 files changed, 184 insertions(+), 64 deletions(-) rename typecho/write/dist/{index-ec1dad61.js => index-01d24eaf.js} (100%) rename typecho/write/dist/{index-4ff54fbd.js => index-0a69c00f.js} (100%) rename typecho/write/dist/{index-94295a51.js => index-26513241.js} (100%) rename typecho/write/dist/{index-eddd0dfb.js => index-7206f25e.js} (100%) rename typecho/write/dist/{index-9567a91c.js => index-8b02e2f7.js} (100%) rename typecho/write/dist/{index-a879143b.js => index-aa082e7b.js} (100%) rename typecho/write/dist/{index-7bc70213.js => index-d6567c9d.js} (100%) rename typecho/write/dist/{index-5cf29f46.js => index-e9ab6ca5.js} (100%) create mode 100644 typecho/write/js/_theme.js diff --git a/core/factory.php b/core/factory.php index 8fc707f..cb747ff 100644 --- a/core/factory.php +++ b/core/factory.php @@ -172,7 +172,7 @@ class Editor - + - + e?parseInt(e,36):1);for(let e=1;et)return extend[e-1]<=t;return!1}function isRegionalIndicator(e){return 127462<=e&&e<=127487}const ZWJ=8205;function findClusterBreak(e,t,i=!0){return(i?nextClusterBreak:prevClusterBreak)(e,t)}function nextClusterBreak(i,n){if(n==i.length)return n;n&&surrogateLow(i.charCodeAt(n))&&surrogateHigh(i.charCodeAt(n-1))&&n--;let e=codePointAt(i,n);for(n+=codePointSize(e);n>10),56320+(1023&e)))}function codePointSize(e){return e<65536?1:2}function countColumn(t,i,n){for(let e=0;ethis.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){var n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(t,this.length,n,1),TextNode.from(n,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){var i=[];return this.decompose(e,t,i,0),TextNode.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=new RawTextCursor(this),i=new RawTextCursor(e);for(;;){if(t.next(),i.next(),t.lineBreak!=i.lineBreak||t.done!=i.done||t.value!=i.value)return!1;if(t.done)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,t=this.length){return new PartialTextCursor(this,e,t)}toString(){return this.sliceString(0)}toJSON(){var e=[];return this.flatten(e),e}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[])):Text.empty}}"undefined"!=typeof Symbol&&(Text.prototype[Symbol.iterator]=function(){return this.iter()});class TextLeaf extends Text{constructor(e,t=textLength(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(t,i,n,r){for(let e=0;;e++){var s=this.text[e],a=r+s.length;if(t<=(i?n:a))return new Line$1(r,a,n,s);r=a+1,n++}}decompose(i,e,n,r){i=i<=0&&e>=this.length?this:new TextLeaf(sliceText(this.text,i,e),Math.min(e,this.length)-Math.max(0,i));if(1&r){let e=n.pop(),t=appendText(i.text,e.text.slice(),0,i.length);t.length<=32?n.push(new TextLeaf(t,e.length+i.length)):(r=t.length>>1,n.push(new TextLeaf(t.slice(0,r)),new TextLeaf(t.slice(r))))}else n.push(i)}replace(e,t,i){if(!(i instanceof TextLeaf))return super.replace(e,t,i);var n=appendText(this.text,appendText(i.text,sliceText(this.text,0,e)),t),e=this.length+i.length-(t-e);return n.length<=32?new TextLeaf(n,e):TextNode.from(TextLeaf.split(n,[]),e)}sliceString(r,s=this.length,a="\n"){let o="";for(let i=0,n=0;i<=s&&nr&&n&&(o+=a),ri&&(o+=e.slice(Math.max(0,r-i),s-i)),i=t+1}return o}flatten(e){for(var t of this.text)e.push(t)}static split(e,t){let i=[],n=-1;for(var r of e)i.push(r),n+=r.length+1,32==i.length&&(t.push(new TextLeaf(i,n)),i=[],n=-1);return-1=n&&(l=o&((n<=r?1:0)|(s<=t?2:0)),n>=r&&t<=s&&!l?a.push(e):e.decompose(r-n,s-n,a,l)),n=t+1}}replace(r,s,a){if(a.lines=n&&s<=t){var o=e.replace(r-n,s-n,a),l=this.lines-e.lines+o.lines;if(o.lines>4&&o.lines>l>>6){let e=this.children.slice();return e[i]=o,new TextNode(e,this.length-(s-r)+a.length)}return super.replace(n,t,o)}n=t+1}return super.replace(r,s,a)}sliceString(r,s=this.length,a="\n"){let o="";for(let i=0,n=0;ir&&i&&(o+=a),rn&&(o+=e.sliceString(r-n,s-n,a)),n=t+1}return o}flatten(e){for(var t of this.children)t.flatten(e)}static from(e,t=e.reduce((e,t)=>e+t.length+1,-1)){let i=0;for(var n of e)i+=n.lines;if(i<32){var r,s=[];for(r of e)r.flatten(s);return new TextLeaf(s,t)}let a=Math.max(32,i>>5),o=a<<1,l=a>>1,c=[],h=0,d=-1,u=[];function p(){0!=h&&(c.push(1==u.length?u[0]:TextNode.from(u,d)),d=-1,h=u.length=0)}for(var O of e)!function e(t){let i;if(t.lines>o&&t instanceof TextNode)for(var n of t.children)e(n);else t.lines>l&&(h>l||!h)?(p(),c.push(t)):t instanceof TextLeaf&&h&&(i=u[u.length-1])instanceof TextLeaf&&t.lines+i.lines<=32?(h+=t.lines,d+=t.length+1,u[u.length-1]=new TextLeaf(i.text.concat(t.text),i.length+1+t.length)):(h+t.lines>a&&p(),h+=t.lines,d+=t.length+1,u.push(t))}(O);return p(),1==c.length?c[0]:new TextNode(c,t)}}function textLength(e){let t=-1;for(var i of e)t+=i.length+1;return t}function appendText(s,a,o=0,l=1e9){for(let i=0,n=0,r=!0;nMath.max(0,n))return this.value=0==n?e:0e.length?n-=e.length:(this.nodes.push(e),this.offsets.push(0this.limit&&(this.value=0r)throw new RangeError(`Position ${t} is out of range for changeset of length ${r}`);return s}touchesRange(i,n=i){for(let e=0,t=0;e"number"!=typeof e))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,t){super(e),this.inserted=t}apply(s){if(this.length!=s.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(e,t,i,n,r)=>s=s.replace(i,i+(t-e),r),!1),s}mapDesc(e,t=!1){return mapSet(this,e,t,!0)}invert(i){let n=this.sections.slice(),r=[];for(let e=0,t=0;e>1;r.length>1].toJSON()))}return n}static of(e,s,a){let o=[],l=[],c=0,i=null;function h(e=!1){if(e||o.length){cc&&addSection(o,e-c,-1),addSection(o,t-e,n),addInsert(l,o,r),c=t)}}(e),h(!i),i}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(i){if(!Array.isArray(i))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],r=[];for(let t=0;tt&&"string"!=typeof e))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==e.length)n.push(e[0],0);else{for(;r.length>1;if(n>1])),!(h||o==l.sections.length||l.sections[o+1]<0);)n=l.sections[o++],r=l.sections[o++];c(s,e,a,t,i),s=e,a=t}}}function mapSet(e,t,r,i=!1){var s=[],a=i?[]:null;let o=new SectionIter(e),l=new SectionIter(t);for(let i=0,n=0;;)if(-1==o.ins)i+=o.len,o.next();else if(-1==l.ins&&nn&&!o.done&&i+o.leni&&n+l.lenl||0<=a.ins&&a.len>l)&&(e||c>1;return t>=e.length?Text.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?Text.empty:t[i].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){var e=3&this.flags;return 3==e?null:e}get goalColumn(){var e=this.flags>>5;return 33554431==e?void 0:e}map(e,t=-1){var i=e.mapPos(this.from,t),t=e.mapPos(this.to,t);return i==this.from&&t==this.to?this:new SelectionRange(i,t,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return EditorSelection.range(e,t);t=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return EditorSelection.range(this.anchor,t)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}}class EditorSelection{constructor(e,t=0){this.ranges=e,this.mainIndex=t}map(t,i=-1){return t.empty?this:EditorSelection.create(this.ranges.map(e=>e.map(t,i)),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;ee.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(e=>SelectionRange.fromJSON(e)),e.main)}static single(e,t=e){return new EditorSelection([EditorSelection.range(e,t)],0)}static create(i,n=0){if(0==i.length)throw new RangeError("A selection needs at least one range");for(let e=0,t=0;te.from-t.from),i=t.indexOf(e);for(let e=1;er.head?EditorSelection.range(s,n):EditorSelection.range(n,s)))}return new EditorSelection(t,i)}function checkSelection(e,t){for(var i of e.ranges)if(i.to>t)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,t,i,n,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=n,this.extensions=r,this.id=nextID++,this.default=e([])}static define(e={}){return new Facet(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,t)}from(t,i){return i=i||(e=>e),this.compute([t],e=>i(e.field(t)))}}function sameArray$1(e,i){return e==i||e.length==i.length&&e.every((e,t)=>e===i[t])}class FacetProvider{constructor(e,t,i,n){this.dependencies=e,this.facet=t,this.type=i,this.value=n,this.id=nextID++}dynamicSlot(e){var t,i;let n=this.value,r=this.facet.compareInput,s=e[this.id]>>1,a=2==this.type,o=!1,l=!1,c=[];for(i of this.dependencies)"doc"==i?o=!0:"selection"==i?l=!0:0==(1&(null!==(t=e[i.id])&&void 0!==t?t:1))&&c.push(e[i.id]);return(t,e)=>{if(!e||e.reconfigured)return t.values[s]=n(t),1;if(!(o&&e.docChanged||l&&(e.docChanged||e.selection)||c.some(e=>0<(1&ensureAddr(t,e)))))return 0;var i=n(t),e=e.startState.values[s];return(a?compareArray(i,e,r):r(i,e))?0:(t.values[s]=i,1)}}}function compareArray(t,i,n){if(t.length!=i.length)return!1;for(let e=0;et[e.id]),d=e.map(e=>e.type),u=h.filter(e=>!(1&e)),p=t[c.id]>>1;return(t,e)=>{var i,n=e?e.reconfigured?e.startState.config.address[c.id]:p<<1:null;let r=null==n;for(i of u)1&ensureAddr(t,i)&&(r=!0);if(!r)return 0;let s=[];for(let e=0;e>1}const initField=Facet.define({static:!0});class StateField{constructor(e,t,i,n,r){this.id=e,this.createF=t,this.updateF=i,this.compareF=n,this.spec=r,this.provides=void 0}static define(e){let t=new StateField(nextID++,e.create,e.update,e.compare||((e,t)=>e===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(initField).find(e=>e.field==this);return((null===t||void 0===t?void 0:t.create)||this.createF)(e)}slot(e){let r=e[this.id]>>1;return(e,t)=>{if(!t||t.reconfigured&&null==maybeIndex(t.startState,this.id))return e.values[r]=this.create(e),1;let i,n=0;t.reconfigured?(i=t.startState.values[maybeIndex(t.startState,this.id)],n=1):i=t.startState.values[r];t=this.updateF(i,t);return n||this.compareF(i,t)||(n=1),n&&(e.values[r]=t),n}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={fallback:3,default:2,extend:1,override:0};function prec(t){return e=>new PrecExtension(e,t)}const Prec={fallback:prec(Prec_.fallback),default:prec(Prec_.default),extend:prec(Prec_.extend),override:prec(Prec_.override)};class PrecExtension{constructor(e,t){this.inner=e,this.prec=t}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,t){this.compartment=e,this.inner=t}}class Configuration{constructor(e,t,i,n,r){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let i=[],r=Object.create(null);var s,a,o=new Map;for(s of flatten(e,t,o))(s instanceof StateField?i:r[s.facet.id]||(r[s.facet.id]=[])).push(s);let l=Object.create(null),c=[],h=[];for(let t of i)l[t.id]=h.length<<1,h.push(e=>t.slot(e));for(a in r){let i=r[a],t=i[0].facet;if(i.every(e=>0==e.type)){l[t.id]=c.length<<1|1;let e=t.combine(i.map(e=>e.value));var d=n?n.config.address[t.id]:null;null!=d&&(d=getAddr(n,d),t.compare(e,d)&&(e=d)),c.push(e)}else{for(let t of i)0==t.type?(l[t.id]=c.length<<1|1,c.push(t.value)):(l[t.id]=h.length<<1,h.push(e=>t.dynamicSlot(e)));l[t.id]=h.length<<1,h.push(e=>dynamicFacetSlot(e,t,i))}}return new Configuration(e,o,h.map(e=>e(l)),l,c)}}function flatten(e,o,l){let c=[[],[],[],[]],h=new Map;return function e(t,i){var n=h.get(t);if(null!=n){if(i<=n)return;var r=c[n].indexOf(t);-1e.concat(t))}function ensureAddr(e,t){if(1&t)return 2;var i=t>>1,t=e.status[i];if(4==t)throw new Error("Cyclic dependency between fields and/or facets");if(2&t)return t;e.status[i]=4;t=e.config.dynamicSlots[i](e,e.applying);return e.status[i]=2|t}function getAddr(e,t){return(1&t?e.config.staticValues:e.values)[t>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:e=>e.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:e=>e.length?e[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define();class Annotation{constructor(e,t){this.type=e,this.value=t}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,t){this.type=e,this.value=t}map(e){e=this.type.map(this.value,e);return void 0===e?void 0:e==this.value?this:new StateEffect(this.type,e)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(var n of e){n=n.map(t);n&&i.push(n)}return i}}StateEffect.reconfigure=StateEffect.define(),StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,t,i,n,r,s){this.startState=e,this.changes=t,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&checkSelection(i,t.newLength),r.some(e=>e.type==Transaction.time)||(this.annotations=r.concat(Transaction.time.of(Date.now())))}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(var t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}}function joinRanges(r,s){let a=[];for(let i=0,n=0;;){let e,t;if(i=r[i]))e=r[i++],t=r[i++];else{if(!(n{if(!/\S/.test(t))return CharCategory.Space;if(hasWordChar(t))return CharCategory.Word;for(let e=0;enull),n)for(var r in e.address){var s=e.address[r],r=n.startState.config.address[r];null!=r&&0==(1&s)&&(this.values[s>>1]=getAddr(n.startState,r))}(this.applying=n)&&(n._state=this);for(let e=0;en.set(t,e)),t=null),n.set(r.value.compartment,r.value.extension)):r.is(StateEffect.reconfigure)?(t=null,i=r.value):r.is(StateEffect.appendConfig)&&(t=null,i=asArray(i).concat(r.value));new EditorState(t||Configuration.resolve(i,n,this),e.newDoc,e.newSelection,e)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:t},range:EditorSelection.cursor(e.from+t.length)}))}changeByRange(r){var s=this.selection,e=r(s.ranges[0]);let a=this.changes(e.changes),o=[e.range],l=asArray(e.effects);for(let n=1;nt.spec.fromJSON(i,e)))}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Configuration.resolve(e.extensions||[],new Map);var i=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(t.staticFacet(EditorState.lineSeparator)||DefaultSplit));let n=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(n,i.length),t.staticFacet(allowMultipleSelections)||(n=n.asSingle()),new EditorState(t,i,n)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||"\n"}phrase(e){for(var t of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(t,e))return t[e];return e}languageDataAt(e,t){let i=[];for(var n of this.facet(languageData))for(var r of n(this,t))Object.prototype.hasOwnProperty.call(r,e)&&i.push(r[e]);return i}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:n}=this.doc.lineAt(e),r=this.charCategorizer(e),s=e-i,a=e-i;for(;0e.length?e[0]:4}),EditorState.lineSeparator=lineSeparator,EditorState.phrases=Facet.define(),EditorState.languageData=languageData,EditorState.changeFilter=changeFilter,EditorState.transactionFilter=transactionFilter,EditorState.transactionExtender=transactionExtender,Compartment.reconfigure=StateEffect.define();const C="ͼ",COUNT="undefined"==typeof Symbol?"__"+C:Symbol.for(C),SET="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),top="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class StyleModule{constructor(e,t){this.rules=[];let{finish:h}=t||{};function d(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}for(var i in e)!function e(i,t,n,r){let s=[],a=/^@(\w+)\b/.exec(i[0]),o=a&&"keyframes"==a[1];if(a&&null==t)return n.push(i[0]+";");for(var l in t){var c=t[l];if(/&/.test(l))e(l.split(/,\s*/).map(t=>i.map(e=>t.replace(/&/,e))).reduce((e,t)=>e.concat(t)),c,n);else if(c&&"object"==typeof c){if(!a)throw new RangeError("The value of a property ("+l+") should be a primitive value.");e(d(l),c,s,o)}else null!=c&&s.push(l.replace(/_.*/,"").replace(/[A-Z]/g,e=>"-"+e.toLowerCase())+": "+c+";")}(s.length||o)&&n.push((!h||a||r?i:i.map(h)).join(", ")+" {"+s.join(" ")+"}")}(d(i),e[i],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C+e.toString(36)}static mount(e,t){(e[SET]||new StyleSet(e)).mount(Array.isArray(t)?t:[t])}}let adoptedSet=null;class StyleSet{constructor(t){if(!t.head&&t.adoptedStyleSheets&&"undefined"!=typeof CSSStyleSheet){if(adoptedSet)return t.adoptedStyleSheets=[adoptedSet.sheet].concat(t.adoptedStyleSheets),t[SET]=adoptedSet;this.sheet=new CSSStyleSheet,t.adoptedStyleSheets=[this.sheet].concat(t.adoptedStyleSheets),adoptedSet=this}else{this.styleTag=(t.ownerDocument||t).createElement("style");let e=t.head||t;e.insertBefore(this.styleTag,e.firstChild)}this.modules=[],t[SET]=this}mount(n){let r=this.sheet,s=0,a=0;for(let i=0;i>1,l=a[o]-i||(n<0?this.value[o].startSide:this.value[o].endSide)-r;if(o==e)return 0<=l?e:t;0<=l?t=o:e=1+o}}between(i,n,r,s){for(let e=this.findIndex(n,-1),t=this.findIndex(r,1,void 0,e);er||n==r&&0this.chunkEnd(a.chunkIndex)||ra.to||r500<=e.maxPoint||e!=RangeSet.empty&&i.indexOf(e)<0&&e.maxPoint>=r),a=i.filter(e=>500<=e.maxPoint||e!=RangeSet.empty&&t.indexOf(e)<0&&e.maxPoint>=r),o=findSharedChunks(s,a);let l=new SpanCursor(s,o,r),c=new SpanCursor(a,o,r);e.iterGaps((e,t,i)=>compare(l,e,c,t,i,n)),e.empty&&0==e.length&&compare(l,0,c,0,0,n)}static spans(e,t,i,n,r=-1){let s=new SpanCursor(e,null,r).goto(t),a=t,o=s.openStart;for(;;){var l=Math.min(s.to,i);if(s.point?(n.point(a,l,s.point,s.activeForPoint(s.to),o),o=s.openEnd(l)+(s.to>l?1:0)):l>a&&(n.span(a,l,s.active,o),o=s.openEnd(l)),s.to>i)break;a=s.to,s.next()}return o}static of(e,t=!1){let i=new RangeSetBuilder;for(var n of e instanceof Range?[e]:t?e.slice().sort(cmpRange):e)i.add(n.from,n.to,n.value);return i.finish()}}RangeSet.empty=new RangeSet([],[],null,-1),RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,t,i)}addInner(e,t,i){var n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);var i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;e=new RangeSet(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,e}}function findSharedChunks(e,t){let i=new Map;for(var n of e)for(let e=0;e=this.minPoint)break}}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.to-e.to||this.endSide-e.endSide}}class HeapCursor{constructor(e){this.heap=e}static from(i,n=null,r=-1){let s=[];for(let t=0;t=r&&s.push(new LayerCursor(e,n,r,t));return 1==s.length?s[0]:new HeapCursor(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(var i of this.heap)i.goto(e,t);for(let e=this.heap.length>>1;0<=e;e--)heapBubble(this.heap,e);return this.next(),this}forward(e,t){for(var i of this.heap)i.forward(e,t);for(let e=this.heap.length>>1;0<=e;e--)heapBubble(this.heap,e);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(n,r){for(let i=n[r];;){let e=1+(r<<1);if(e>=n.length)break;let t=n[e];if(e+1t){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&remove(i,r)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}r=this.cursor.value;if(r.point){if(!(e&&this.cursor.to==this.to&&this.cursor.fromt&&this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(i),this.cursor.next()}}if(i){let e=0;for(;et||this.activeTo[e]==t&&this.active[e].endSide>this.point.endSide)&&i.push(this.active[e]);return i.reverse()}openEnd(t){let i=0;for(let e=this.activeTo.length-1;0<=e&&this.activeTo[e]>t;e--)i++;return i}}function compare(e,t,i,n,r,s){e.goto(t),i.goto(n);var a=n+r;let o=n,l=n-t;for(;;){var c=e.to+l-i.to||e.endSide-i.endSide,h=c<0?e.to+l:i.to,d=Math.min(h,a);if(e.point||i.point?e.point&&i.point&&(e.point==i.point||e.point.eq(i.point))||s.comparePoint(o,d,e.point,i.point):d>o&&!sameValues(e.active,i.active)&&s.compareRange(o,d,e.active,i.active),a=i;e--)t[e+1]=t[e];t[i]=e}function findMinIndex(t,i){let n=-1,r=1e9;for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1="undefined"!=typeof navigator&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1="undefined"!=typeof navigator&&/Apple Computer/.test(navigator.vendor),gecko$1="undefined"!=typeof navigator&&/Gecko\/\d+/.test(navigator.userAgent),mac="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),ie$1="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac,i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(i=1;i<=24;i++)base[i+111]="F"+i;for(var code,i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(e){e=!(brokenModifierNames&&(e.ctrlKey||e.altKey||e.metaKey)||(safari$1||ie$1)&&e.shiftKey&&e.key&&1==e.key.length)&&e.key||(e.shiftKey?shift:base)[e.keyCode]||e.key||"Unidentified";return e="Down"==(e="Right"==(e="Up"==(e="Left"==(e="Del"==(e="Esc"==e?"Escape":e)?"Delete":e)?"ArrowLeft":e)?"ArrowUp":e)?"ArrowRight":e)?"ArrowDown":e}function getSelection(e){return(e.getSelection?e:document).getSelection()}function contains(e,t){return!!t&&e.contains(1!=t.nodeType?t.parentNode:t)}function deepActiveElement(){let e=document.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function hasSelection(e,t){if(!t.anchorNode)return!1;try{return contains(e,t.anchorNode)}catch(e){return!1}}function clientRectsFor(e){return 3==e.nodeType?textRange(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function isEquivalentPosition(e,t,i,n){return!!i&&(scanFor(e,t,i,n,-1)||scanFor(e,t,i,n,1))}function domIndex(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function scanFor(e,t,i,n,r){for(;;){if(e==i&&t==n)return!0;if(t==(r<0?0:maxOffset(e))){if("DIV"==e.nodeName)return!1;var s=e.parentNode;if(!s||1!=s.nodeType)return!1;t=domIndex(e)+(r<0?0:1),e=s}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(r<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=r<0?maxOffset(e):0}}}function maxOffset(e){return(3==e.nodeType?e.nodeValue:e.childNodes).length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(e,t){t=t?e.left:e.right;return{left:t,right:t,top:e.top,bottom:e.bottom}}function windowRect(e){return{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}const ScrollSpace=5;function scrollRectIntoView(e,s){let t=e.ownerDocument,a=t.defaultView;for(let r=e.parentNode;r;)if(1==r.nodeType){let e,t=r==document.body;if(t)e=windowRect(a);else{if(r.scrollHeight<=r.clientHeight&&r.scrollWidth<=r.clientWidth){r=r.parentNode;continue}var o=r.getBoundingClientRect();e={left:o.left,right:o.left+r.clientWidth,top:o.top,bottom:o.top+r.clientHeight}}let i=0,n=0;var l;if(s.tope.bottom&&(n=s.bottom-e.bottom+ScrollSpace),s.lefte.right&&(i=s.right-e.right+ScrollSpace),(i||n)&&(t?a.scrollBy(i,n):(n&&(l=r.scrollTop,r.scrollTop+=n,n=r.scrollTop-l),i&&(l=r.scrollLeft,r.scrollLeft+=i,i=r.scrollLeft-l),s={left:s.left-i,top:s.top-n,right:s.right-i,bottom:s.bottom-n})),t)break;r=r.assignedSlot||r.parentNode}else{if(11!=r.nodeType)break;r=r.host}}class DOMSelection{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}}let preventScrollSupported=null;function focusPreventScroll(t){if(t.setActive)return t.setActive();if(preventScrollSupported)return t.focus(preventScrollSupported);let r=[];for(let e=t;e&&(r.push(e,e.scrollTop,e.scrollLeft),e!=e.ownerDocument);e=e.parentNode);if(t.focus(null==preventScrollSupported?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let n=0;na&&e.dom.parentNode==this.dom){c=i,h=r;break}r=t,n=t+e.breakAfter}return{from:l,to:h<0?e+this.length:h,startDOM:(o?this.children[o-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:cthis.pos||e==this.pos&&(0MaxJoinLen))&&(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}slice(e){return new TextView(this.text.slice(e))}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return textCoords(this.dom,e,t)}}class MarkView extends InlineView{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(var n of t)n.setParent(this)}createDOM(){let e=document.createElement(this.mark.tagName);if(this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(var t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);this.setDOM(e)}sync(e){this.dom||this.createDOM(),super.sync(e)}merge(e,t,i,n,r){return(!i||!(!(i instanceof MarkView&&i.mark.eq(this.mark))||e&&n<=0||te.width)||o),a?flattenRect(o,a<0):o}class WidgetView extends InlineView{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i}static create(e,t,i){return new(e.customView||WidgetView)(e,t,i)}slice(e){return WidgetView.create(this.widget,this.length-e,this.side)}sync(){this.dom&&this.widget.updateDOM(this.dom)||(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,n,r){return!(i&&(!(i instanceof WidgetView&&this.widget.compare(i.widget))||0i&&se?i[r]=Math.max(i[r],t):i.push(e,t)}PointDecoration.prototype.point=!0;class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,n,r,s){if(i){if(!(i instanceof LineView))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),mergeInlineChildren(this,e,t,i?i.children:none$1$1,r,s),!0}split(e){let t=new LineView;if(t.breakAfter=this.breakAfter,0==this.length)return t;let{i,off:n}=this.childPos(e);n&&(t.append(this.children[i].slice(n),0),this.children[i].merge(n,this.children[i].length,null,0,0),i++);for(let e=i;ee instanceof TextView))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(0==this.children.length||20!e.length||e[0]});class PluginFieldProvider{constructor(e,t){this.field=e,this.get=t}}class PluginField{from(e){return new PluginFieldProvider(this,e)}static define(){return new PluginField}}PluginField.decorations=PluginField.define(),PluginField.atomicRanges=PluginField.define(),PluginField.scrollMargins=PluginField.define();let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,t,i){this.id=e,this.create=t,this.fields=i,this.extension=viewPlugin.of(this)}static define(e,t){let{eventHandlers:i,provide:n,decorations:r}=t||{},s=[];if(n)for(var a of Array.isArray(n)?n:[n])s.push(a);return i&&s.push(domEventHandlers.from(e=>({plugin:e,handlers:i}))),r&&s.push(PluginField.decorations.from(r)),new ViewPlugin(nextPluginID++,e,s)}static fromClass(t,e){return ViewPlugin.define(e=>new t(e),e)}}const domEventHandlers=PluginField.define();class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}takeField(e,t){for(var{field:i,get:n}of this.spec.fields)i==e&&t.push(n(this.value))}update(t){if(this.value){if(this.mustUpdate){var i=this.mustUpdate;if(this.mustUpdate=null,!this.value.update)return this;try{this.value.update(i)}catch(e){if(logException(i.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(e){}return PluginInstance.dummy}}}else try{this.value=this.spec.create(t)}catch(e){return logException(t.state,e,"CodeMirror plugin crashed"),PluginInstance.dummy}return this}destroy(t){var e;if(null!==(e=this.value)&&void 0!==e&&e.destroy)try{this.value.destroy()}catch(e){logException(t.state,e,"CodeMirror plugin crashed")}}}PluginInstance.dummy=new PluginInstance(ViewPlugin.define(()=>({})));const editorAttributes=Facet.define({combine:e=>e.reduce((e,t)=>combineAttrs(t,e),{})}),contentAttributes=Facet.define({combine:e=>e.reduce((e,t)=>combineAttrs(t,e),{})}),decorations=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,t,i,n){this.fromA=e,this.toA=t,this.fromB=i,this.toB=n}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;0i.toA)){if(n.toAr.push(new ChangedRange(e,t,i,n))),this.changedRanges=r;i=e.hasFocus;i!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=i,this.flags|=1),this.docChanged&&(this.flags|=2)}get viewportChanged(){return 0<(4&this.flags)}get heightChanged(){return 0<(2&this.flags)}get geometryChanged(){return this.docChanged||0<(18&this.flags)}get focusChanged(){return 0<(1&this.flags)}get docChanged(){return this.transactions.some(e=>e.docChanged)}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return 0==this.flags&&0==this.transactions.length}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],this.updateDeco(),0)}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;0tthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:e.transactions.length&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes));var i=(browser.ie||browser.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines,n=this.decorations,r=this.updateDeco(),n=findChangedDeco(n,r,e.changes);t=ChangedRange.extendWithRanges(t,n);n=e.transactions.some(e=>"pointerselection"==e.annotation(Transaction.userEvent));return 0==this.dirty&&0==t.length&&!(12&e.flags)&&e.state.selection.main.from>=this.view.viewport.from&&e.state.selection.main.to<=this.view.viewport.to?(this.updateSelection(i,n),!1):(this.updateInner(t,r,e.startState.doc.length,i,n),!0)}updateInner(e,t,i,n=!1,r=!1){this.updateChildren(e,t,i);let{observer:s}=this.view;s.ignore(()=>{this.dom.style.height=this.view.viewState.domHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";var e=browser.chrome||browser.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(e),this.dirty=0,e&&(e.written||s.selectionRange.focusNode!=e.node)&&(n=!0),this.updateSelection(n,r),this.dom.style.height=""})}updateChildren(t,i,e){let n=this.childCursor(e);for(let e=t.length-1;;e--){var r=0<=e?t[e]:null;if(!r)break;var{fromA:s,toA:a,fromB:o,toB:l}=r,{content:c,breakAtStart:h,openStart:d,openEnd:r}=ContentBuilder.build(this.view.state.doc,o,l,i),{i:o,off:l}=n.findPos(a,1),{i:a,off:s}=n.findPos(s,-1);this.replaceRange(a,s,o,l,c,h,d,r)}}replaceRange(t,i,n,r,s,a,o,l){let c=this.children[t],h=s.length?s[s.length-1]:null;var d=h?h.breakAfter:a;if(t!=n||a||d||!(s.length<2)||!c.merge(i,r,s.length?h:null,0==i,o,l)){let e=this.children[n];for(rr.node.insertBefore(e,r.node.childNodes[r.offset]||null)),r=s=new DOMPos(e,0),t=!0}let a=this.view.observer.selectionRange;!(t||!a.focusNode||browser.gecko&&n.empty&&nextToUneditable(a.focusNode,a.focusOffset))&&isEquivalentPosition(r.node,r.offset,a.anchorNode,a.anchorOffset)&&isEquivalentPosition(s.node,s.offset,a.focusNode,a.focusOffset)||(this.view.observer.ignore(()=>{let t=getSelection(this.root);var e,i;if(n.empty)browser.gecko&&(!(e=nextToUneditable(r.node,r.offset))||3==e||(i=nearbyTextNode(r.node,r.offset,1==e?1:-1))&&(r=new DOMPos(i,1==e?0:i.nodeValue.length))),t.collapse(r.node,r.offset),null!=n.bidiLevel&&null!=a.cursorBidiLevel&&(a.cursorBidiLevel=n.bidiLevel);else if(t.extend)t.collapse(r.node,r.offset),t.extend(s.node,s.offset);else{let e=document.createRange();n.anchor>n.head&&([r,s]=[s,r]),e.setEnd(s.node,s.offset),e.setStart(r.node,r.offset),t.removeAllRanges(),t.addRange(e)}}),this.view.observer.setSelectionRange(r,s)),this.impreciseAnchor=r.precise?null:new DOMPos(a.anchorNode,a.anchorOffset),this.impreciseHead=s.precise?null:new DOMPos(a.focusNode,a.focusOffset)}}enforceCursorAssoc(){var e,t,i=this.view.state.selection.main;let n=getSelection(this.root);i.empty&&i.assoc&&n.modify&&((t=LineView.find(this,i.head))&&(e=t.posAtStart,i.head!=e&&i.head!=e+t.length&&(e=this.coordsAt(i.head,-1),t=this.coordsAt(i.head,1),!e||!t||e.bottom>t.top||(t=this.domAtPos(i.head+i.assoc),n.collapse(t.node,t.offset),n.modify("move",i.assoc<0?"forward":"backward","lineboundary")))))}mayControlSelection(){return this.view.state.facet(editable)?this.root.activeElement==this.dom:hasSelection(this.dom,this.view.observer.selectionRange)}nearest(t){for(let e=t;e;){var i=ContentView.get(e);if(i&&i.rootView==this)return i;e=e.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;t=s&&(r.push(e.dom.getBoundingClientRect().height),(l=e.dom.scrollWidth)>o&&(this.minWidth=o=l,this.minWidthFrom=i,this.minWidthTo=t)),i=t+e.breakAfter}return r}measureTextSize(){for(var e of this.children)if(e instanceof LineView){e=e.measureTextSize();if(e)return e}let t=document.createElement("div"),i,n;return t.className="cm-line",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(t);var e=clientRectsFor(t.firstChild)[0];i=t.getBoundingClientRect().height,n=e?e.width/27:7,t.remove()}),{lineHeight:i,charWidth:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new ChildCursor(this.children,e,t)}computeBlockGapDeco(){let i=[],n=this.view.viewState;for(let e=0,t=0;;t++){var r,s=t==n.viewports.length?null:n.viewports[t],a=s?s.from-1:this.length;if(a>e&&(r=n.lineAt(a,0).bottom-n.lineAt(e,0).top,i.push(Decoration.replace({widget:new BlockGapWidget(r),block:!0,inclusive:!0}).range(e,a))),!s)break;e=s.to+1}return Decoration.set(i)}updateDeco(){return this.decorations=[this.computeBlockGapDeco(),this.view.viewState.lineGapDeco,this.compositionDeco,...this.view.state.facet(decorations),...this.view.pluginField(PluginField.decorations)]}scrollPosIntoView(e,r){var s,a,o,r=this.coordsAt(e,r);if(r){let e=0,t=0,i=0,n=0;for(var l of this.view.pluginField(PluginField.scrollMargins))l&&({left:s,right:a,top:o,bottom:l}=l,null!=s&&(e=Math.max(e,s)),null!=a&&(t=Math.max(t,a)),null!=o&&(i=Math.max(i,o)),null!=l&&(n=Math.max(n,l)));scrollRectIntoView(this.dom,{left:r.left-e,top:r.top-i,right:r.right+t,bottom:r.bottom+n})}}}function betweenUneditable(e){return 1==e.node.nodeType&&e.node.firstChild&&(0==e.offset||"false"==e.node.childNodes[e.offset-1].contentEditable)&&(e.offset==e.node.childNodes.length||"false"==e.node.childNodes[e.offset].contentEditable)}class BlockGapWidget extends WidgetType{constructor(e){super(),this.height=e}toDOM(){var e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function computeCompositionDeco(e,t){var i=e.observer.selectionRange,i=i.focusNode&&nearbyTextNode(i.focusNode,i.focusOffset,0);if(!i)return Decoration.none;let n=e.docView.nearest(i),r,s,a=i;if(n instanceof InlineView){for(;n.parent instanceof InlineView;)n=n.parent;r=n.posAtStart,s=r+n.length,a=n.dom}else{if(!(n instanceof LineView))return Decoration.none;{for(;a.parentNode!=n.dom;)a=a.parentNode;let e=a.previousSibling;for(;e&&!ContentView.get(e);)e=e.previousSibling;r=s=e?ContentView.get(e).posAtEnd:n.posAtStart}}let o=t.mapPos(r,1),l=Math.max(o,t.mapPos(s,-1)),c=i.nodeValue,{state:h}=e;if(l-o=i){if(a.level==n)return e;(s<0||(0!=r?r<0?a.fromi:t[s].level>a.level))&&(s=e)}}if(s<0)throw new RangeError("Index out of range");return s}}const types=[];function computeOrder(a,e){var o=a.length,l=e==LTR?1:2,c=e==LTR?2:1;if(!a||1==l&&!BidiRE.test(a))return trivialOrder(o);for(let t=0,i=l,n=l;tp;){for(var f=e,g=2!=types[--e];e>p&&g==(2!=types[e-1]);)e--;i.push(new BidiSpan(e,f,g?2:1))}else i.push(new BidiSpan(p,t,0))}else for(let e=0;ee?t.left-e:Math.max(0,e-t.right)}function getdy(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function yOverlap(e,t){return e.topt.top+1}function upTop(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function domPosAtCoords(e,n,r){let s,a,o,l,c,h,d,u;for(let i=e.firstChild;i;i=i.nextSibling){var p=clientRectsFor(i);for(let t=0;tf||l==f&&o>O)&&(s=i,a=e,o=O,l=f),0==O?r>e.bottom&&(!d||d.bottome.top)&&(h=i,u=e):d&&yOverlap(d,e)?d=upBot(d,e.bottom):u&&yOverlap(u,e)&&(u=upTop(u,e.top))}}if(d&&d.bottom>=r?(s=c,a=d):u&&u.top<=r&&(s=h,a=u),!s)return{node:e,offset:0};var t=Math.max(a.left,Math.min(a.right,n));return 3==s.nodeType?domPosInText(s,t,r):o||"true"!=s.contentEditable?{node:e,offset:Array.prototype.indexOf.call(e.childNodes,s)+(n>=(a.left+a.right)/2?1:0)}:domPosAtCoords(s,t,r)}function domPosInText(n,r,t){var e=n.nodeValue.length;let s=-1,a=1e9,o=0;for(let i=0;it?c.top-t:t-c.bottom)-1;if(c.left-1<=r&&c.right+1>=r&&h=(c.left+c.right)/2,t=e;if((browser.chrome||browser.gecko)&&textRange(n,i).getBoundingClientRect().left==c.right&&(t=!e),h<=0)return{node:n,offset:i+(t?1:0)};s=i+(t?1:0),a=h}}}}return{node:n,offset:-1i||s.bottomi?-1:1,i=Math.min(s.bottom-a,Math.max(s.top+a,i)),e)return null;e=!0}if(s.type==BlockType.Text)break;i=0t.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:null;e=Math.max(r.left+1,Math.min(r.right-1,e));let c=t.root,h=c.elementFromPoint(e,i),d,u=-1;return!h||!t.contentDOM.contains(h)||t.docView.nearest(h)instanceof WidgetView||(c.caretPositionFromPoint?(o=c.caretPositionFromPoint(e,i))&&({offsetNode:d,offset:u}=o):!c.caretRangeFromPoint||(o=c.caretRangeFromPoint(e,i))&&({startContainer:d,startOffset:u}=o,browser.safari&&isSuspiciousCaretResult(d,u,e)&&(d=void 0))),d&&t.docView.dom.contains(d)||(l=LineView.find(t.docView,l),{node:d,offset:u}=domPosAtCoords(l.dom,e,i)),t.docView.posFromDOM(d,u)}function isSuspiciousCaretResult(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=t.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return textRange(t,n-1,n).getBoundingClientRect().left>i}function moveToLineBoundary(e,t,i,n){var r=e.state.doc.lineAt(t.head),s=n&&e.lineWrapping?e.coordsAtPos(t.assoc<0&&t.head>r.from?t.head-1:t.head):null;if(s){n=e.dom.getBoundingClientRect(),s=e.posAtCoords({x:i==(e.textDirection==Direction.LTR)?n.right-1:n.left+1,y:(s.top+s.bottom)/2});if(null!=s)return EditorSelection.cursor(s,i?-1:1)}t=LineView.find(e.docView,t.head),r=t?i?t.posAtEnd:t.posAtStart:i?r.to:r.from;return EditorSelection.cursor(r,i?-1:1)}function moveByChar(r,e,s,a){let o=r.state.doc.lineAt(e.head),l=r.bidiSpans(o);for(let i=e,n=null;;){let e=moveVisually(o,l,r.textDirection,i,s),t=movedOver;if(!e){if(o.number==(s?r.state.doc.lines:1))return i;t="\n",o=r.state.doc.line(o.number+(s?1:-1)),l=r.bidiSpans(o),e=EditorSelection.cursor(s?o.from:o.to)}if(n){if(!n(t))return i}else{if(!a)return e;n=a(t)}i=e}}function byGroup(e,t,i){let n=e.state.charCategorizer(t),r=n(i);return e=>{e=n(e);return r==CharCategory.Space&&(r=e),r==e}}function moveVertically(i,e,t,n){var r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return EditorSelection.cursor(r);var a=i.coordsAtPos(r);if(a){var o=i.dom.getBoundingClientRect(),l=null!==(t=e.goalColumn)&&void 0!==t?t:a.left-o.left,c=o.left+l,h=null!=n?n:i.defaultLineHeight>>1;for(let e=s<0?a.top:a.bottom,t=0;t<50;t+=10){var d=posAtCoords(i,{x:c,y:e+(h+t)*s},s);if(null==d)break;if(d!=r)return EditorSelection.cursor(d,void 0,void 0,l)}}let{doc:u}=i.state,p=u.lineAt(r),O=i.state.tabSize,f=e.goalColumn,g=0;if(null==f){for(const w=u.iterRange(p.from,r);!w.next().done;)g=countColumn(w.value,g,O);f=g*i.defaultCharacterWidth}else g=Math.round(f/i.defaultCharacterWidth);if(s<0&&0==p.from)return EditorSelection.cursor(0);if(0=g&&!S.next().done;){var{offset:y,leftOver:Q}=findColumn(S.value,v,g,O);v=g-Q,m+=y}return EditorSelection.cursor(m,void 0,void 0,f)}function skipAtoms(e,r,s){for(var t=e.pluginField(PluginField.atomicRanges);;){let n=!1;for(var i of t)i.between(s.from-1,s.from+1,(e,t,i)=>{s.from>e&&s.froms.from?EditorSelection.cursor(e,1):EditorSelection.cursor(t,-1),n=!0)});if(!n)return s}}class InputState{constructor(n){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=null,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionEndedAt=0,this.mouseSelection=null;for(let i in handlers){let t=handlers[i];n.contentDOM.addEventListener(i,e=>{"keydown"==i&&this.keydown(n,e)||eventBelongsToEditor(n,e)&&!this.ignoreDuringComposition(e)&&(this.mustFlushObserver(e)&&n.observer.forceFlush(),this.runCustomHandlers(i,n,e)?e.preventDefault():t(n,e))}),this.registeredEvents.push(i)}this.notifiedFocused=n.hasFocus,this.ensureHandlers(n),browser.safari&&n.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(i){var e;for(e of this.customHandlers=i.pluginField(domEventHandlers))for(let t in e.handlers)this.registeredEvents.indexOf(t)<0&&"scroll"!=t&&(this.registeredEvents.push(t),i.contentDOM.addEventListener(t,e=>{eventBelongsToEditor(i,e)&&this.runCustomHandlers(t,i,e)&&e.preventDefault()}))}runCustomHandlers(i,n,r){for(var s of this.customHandlers){let e=s.handlers[i],t=!1;if(e){try{t=e.call(s.plugin,r,n)}catch(e){logException(n.state,e)}if(t||r.defaultPrevented)return browser.android&&"keydown"==i&&13==r.keyCode&&n.observer.flushSoon(),!0}}return!1}runScrollHandlers(t,i){for(var n of this.customHandlers){let e=n.handlers.scroll;if(e)try{e.call(n.plugin,i,t)}catch(e){logException(t.state,e)}}}keydown(e,t){return this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),!!this.screenKeyEvent(e,t)||!(!browser.ios||13!=t.keyCode&&8!=t.keyCode||t.ctrlKey||t.altKey||t.metaKey||t.synthetic)&&(this.pendingIOSKey=13==t.keyCode?"enter":"backspace",setTimeout(()=>this.flushIOSKey(e),250),!0)}flushIOSKey(e){if(!this.pendingIOSKey)return!1;var t=e.contentDOM,e=this.pendingIOSKey;return this.pendingIOSKey=null,"enter"==e?dispatchKey(t,"Enter",13):dispatchKey(t,"Backspace",8)}ignoreDuringComposition(e){return!!/^key/.test(e.type)&&(0=t.clientX&&s.top<=t.clientY&&s.bottom>=t.clientY)return!0}return!1}function eventBelongsToEditor(i,n){if(!n.bubbles)return!0;if(n.defaultPrevented)return!1;for(let e=n.target,t;e!=i.contentDOM;e=e.parentNode)if(!e||11==e.nodeType||(t=ContentView.get(e))&&t.ignoreEvent(n))return!1;return!0}const handlers=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(t){let i=t.dom.parentNode;if(i){let e=i.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{t.focus(),e.remove(),doPaste(t,e.value)},50)}}function doPaste(e,r){let{state:s}=e,t,a=1,o=s.toText(r),l=o.lines==s.selection.ranges.length;if(lastLinewiseCopy&&s.selection.ranges.every(e=>e.empty)&&lastLinewiseCopy==o.toString()){let n=-1;t=s.changeByRange(e=>{var t=s.doc.lineAt(e.from);if(t.from==n)return{range:e};n=t.from;var i=s.toText((l?o.line(a++).text:r)+s.lineBreak);return{changes:{from:t.from,insert:i},range:EditorSelection.cursor(e.from+i.length)}})}else t=l?s.changeByRange(e=>{var t=o.line(a++);return{changes:{from:e.from,to:e.to,insert:t.text},range:EditorSelection.cursor(e.from+t.length)}}):s.replaceSelection(o);e.dispatch(t,{annotations:Transaction.userEvent.of("paste"),scrollIntoView:!0})}handlers.keydown=(e,t)=>{e.inputState.setSelectionOrigin("keyboardselection")};let lastTouch=0;function rangeForClick(i,n,r,e){if(1==e)return EditorSelection.cursor(n,r);if(2==e)return groupAt(i.state,n,r);{r=LineView.find(i.docView,n),n=i.state.doc.lineAt(r?r.posAtEnd:n);let e=r?r.posAtStart:n.from,t=r?r.posAtEnd:n.to;return t{lastTouch=Date.now(),e.inputState.setSelectionOrigin("pointerselection")},handlers.touchmove=e=>{e.inputState.setSelectionOrigin("pointerselection")},handlers.mousedown=(t,i)=>{if(t.observer.flush(),!(lastTouch>Date.now()-2e3)){let e=null;for(var n of t.state.facet(mouseSelectionStyle))if(e=n(t,i),e)break;e||0!=i.button||(e=basicMouseSelection(t,i)),e&&(t.root.activeElement!=t.contentDOM&&t.observer.ignore(()=>focusPreventScroll(t.contentDOM)),t.inputState.startMouseSelection(t,i,e))}};let insideY=(e,t)=>e>=t.top&&e<=t.bottom,inside=(e,t,i)=>insideY(t,i)&&e>=i.left&&e<=i.right;function findPositionSide(e,t,i,n){let r=LineView.find(e.docView,t);if(!r)return 1;e=t-r.posAtStart;if(0==e)return 1;if(e==r.length)return-1;t=r.coordsAt(e,-1);if(t&&inside(i,n,t))return-1;e=r.coordsAt(e,1);return(!e||!inside(i,n,e))&&t&&insideY(n,t)?-1:1}function queryPos(e,t){var i=e.posAtCoords({x:t.clientX,y:t.clientY});return null==i?null:{pos:i,bias:findPositionSide(e,i,t.clientX,t.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(e){if(!BadMouseDetail)return e.detail;var t=lastMouseDown,i=lastMouseDownTime;return lastMouseDown=e,lastMouseDownTime=Date.now(),lastMouseDownCount=!t||i>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(a,e){let o=queryPos(a,e),l=getClickType(e),c=a.state.selection,h=o,d=e;return{update(e){e.changes&&(o&&(o.pos=e.changes.mapPos(o.pos)),c=c.map(e.changes))},get(e,t,i){let n;if(e.clientX==d.clientX&&e.clientY==d.clientY?n=h:(n=h=queryPos(a,e),d=e),!n||!o)return c;let r=rangeForClick(a,n.pos,n.bias,l);var s;return o.pos==n.pos||t||(s=rangeForClick(a,o.pos,o.bias,l),e=Math.min(s.from,r.from),s=Math.max(s.to,r.to),r=e{e.remove(),t.focus()},50)}}function copiedRange(t){let i=[],n=[],r=!1;for(var e of t.selection.ranges)e.empty||(i.push(t.sliceDoc(e.from,e.to)),n.push(e));if(!i.length){let e=-1;for(var{from:s}of t.selection.ranges){s=t.doc.lineAt(s);s.number>e&&(i.push(s.text),n.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),e=s.number}r=!0}return{text:i.join(t.lineBreak),ranges:n,linewise:r}}handlers.dragstart=(e,t)=>{var{selection:{main:i}}=e.state;let{mouseSelection:n}=e.inputState;n&&(n.dragging=i),t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(i.from,i.to)),t.dataTransfer.effectAllowed="copyMove")},handlers.drop=(t,s)=>{if(s.dataTransfer&&t.state.facet(editable)){let r=s.dataTransfer.files;if(r&&r.length){s.preventDefault();let i=Array(r.length),e=0,n=()=>{++e==r.length&&dropText(t,s,i.filter(e=>null!=e).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(i[t]=e.result),n()},e.readAsText(r[t])}}else dropText(t,s,s.dataTransfer.getData("Text"),!0)}},handlers.paste=(t,i)=>{if(t.state.facet(editable)){t.observer.flush();let e=brokenClipboardAPI?null:i.clipboardData;var n=e&&e.getData("text/plain");n?(doPaste(t,n),i.preventDefault()):capturePaste(t)}};let lastLinewiseCopy=null;function forceClearComposition(e){e.docView.compositionDeco.size&&e.update([])}handlers.copy=handlers.cut=(t,i)=>{var{text:n,ranges:r,linewise:s}=copiedRange(t.state);if(n){lastLinewiseCopy=s?n:null;let e=brokenClipboardAPI?null:i.clipboardData;e?(i.preventDefault(),e.clearData(),e.setData("text/plain",n)):captureCopy(t,n),"cut"==i.type&&t.state.facet(editable)&&t.dispatch({changes:r,scrollIntoView:!0,annotations:Transaction.userEvent.of("cut")})}},handlers.focus=handlers.blur=e=>{setTimeout(()=>{e.hasFocus!=e.inputState.notifiedFocused&&e.update([])},10)},handlers.beforeprint=e=>{e.viewState.printing=!0,e.requestMeasure(),setTimeout(()=>{e.viewState.printing=!1,e.requestMeasure()},2e3)},handlers.compositionstart=handlers.compositionupdate=e=>{e.inputState.composing<0&&(e.docView.compositionDeco.size&&(e.observer.flush(),forceClearComposition(e)),e.inputState.composing=0)},handlers.compositionend=e=>{e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),setTimeout(()=>{e.inputState.composing<0&&forceClearComposition(e)},50)},handlers.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()};const wrappingWhiteSpace=["pre-wrap","normal","pre-line"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.direction=Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength)),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefresh(t,e,i){let n=!1;for(let e=0;eEpsilon&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return HeightMap.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(a,o,l,c){let h=this;for(let s=c.length-1;0<=s;s--){let{fromA:e,toA:t,fromB:i,toB:n}=c[s],r=h.lineAt(e,QueryType.ByPosNoHeight,o,0,0);var d=r.to>=t?r:h.lineAt(t,QueryType.ByPosNoHeight,o,0,0);for(n+=d.to-t,t=d.to;02*r){var a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),i+=1+a.break,n-=a.size}else{if(!(r>2*n))break;a=e[i];a.break?e.splice(i,1,a.left,null,a.right):e.splice(i,1,a.left,a.right),i+=2+a.break,r-=a.size}else ne&&t.push(new HeightMapGap(r.from-e-1).updateHeight(n,e));i<=s&&r.more;){var a=n.doc.lineAt(i).length;t.length&&t.push(null);let e=new HeightMapText(a,r.heights[r.index++]);e.outdated=!1,t.push(e),i+=a+1}return i<=s&&t.push(null,new HeightMapGap(s-i).updateHeight(n,i)),n.heightChanged=!0,HeightMap.of(t)}return(t||this.outdated)&&(this.setHeight(n,n.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return 1&this.flags}blockAt(e,t,i,n){var r=i+this.left.height;return ea))return l;t=t==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;return o?l.join(this.right.lineAt(a,t,i,s,a)):this.left.lineAt(a,t,i,n,r).join(l)}forEachLine(e,t,i,n,r,s){var a,o=n+this.left.height,l=r+this.left.length+this.break;this.break?(e=e&&a.from<=t&&s(a),t>a.to&&this.right.forEachLine(a.to+1,t,i,o,l,s))}replace(e,t,i){var n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,i));let r=[];0=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){var i=this.left.length,n=i+this.break;if(n<=e)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?HeightMap.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,n){let{left:r,right:s}=this,a=t+r.length+this.break,o=null;return n&&n.from<=t+r.length&&n.more?o=r=r.updateHeight(e,t,i,n):r.updateHeight(e,t,i),n&&n.from<=a+s.length&&n.more?o=s=s.updateHeight(e,a,i,n):s.updateHeight(e,a,i),o?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(e,t){let i,n;null==e[t]&&(i=e[t-1])instanceof HeightMapGap&&(n=e[t+1])instanceof HeightMapGap&&e.splice(t-1,3,new HeightMapGap(i.length+1+n.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,i){if(-1this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(e-this.pos,-1)),(this.writtenTo=e)=relevantWidgetHeight)&&this.addLineDeco(n,r)):ee&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos)}blankContent(e,t){let i=new HeightMapGap(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();var e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;e=new HeightMapText(0,-1);return this.nodes.push(e),e}addBlock(e){this.enterLine(),e.type!=BlockType.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){var t,i=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(-1e.clientHeight||e.scrollWidth>e.clientWidth)&&"visible"!=l.overflow&&(o=e.getBoundingClientRect(),n=Math.max(n,o.left),r=Math.min(r,o.right),s=Math.max(s,o.top),a=Math.min(a,o.bottom)),e="absolute"==l.position||"fixed"==l.position?e.offsetParent:e.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:n-i.left,right:r-i.left,top:s-(i.top+e),bottom:a-(i.top+e)}}class LineGap{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(t,i){if(t.length!=i.length)return!1;for(let e=0;ee.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:n}=this.state.selection;for(let e=0;e<=1;e++){let i=e?n.head:n.anchor;var r,s;t.some(({from:e,to:t})=>i>=e&&i<=t)||({from:r,to:s}=this.lineAt(i,0),t.push(new Viewport(r,s)))}this.viewports=t.sort((e,t)=>e.from-t.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}update(e,t=null){var i=this.state;this.state=e.state;var n=this.state.facet(decorations),r=e.changedRanges,s=ChangedRange.extendWithRanges(r,heightRelevantDecoChanges(e.startState.facet(decorations),n,e?e.changes:ChangeSet.empty(this.state.doc.length))),r=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(n,i.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=r&&(e.flags|=2);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t)),a.eq(this.viewport)||(this.viewport=a,e.flags|=4),this.updateForViewport(),(this.lineGaps.length||15e3this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left,!this.inView)return 0;var l,c=e.measureVisibleLineHeights();let h=!1,d=0,u=0,p=this.heightOracle;return t||(l=e.dom.clientWidth,(p.mustRefresh(c,n,r)||p.lineWrapping&&Math.abs(l-this.contentWidth)>p.charWidth)&&({lineHeight:s,charWidth:t}=e.measureTextSize(),h=p.refresh(n,r,s,t,l/t,c),h&&(e.minWidth=0,u|=16)),this.contentWidth!=l&&(this.contentWidth=l,u|=16),0this.viewport.to))&&((c=this.getViewport(d,this.scrollTo)).from==this.viewport.from&&c.to==this.viewport.to||(this.viewport=c,u|=4)),this.updateForViewport(),(this.lineGaps.length||15e3a.to&&({bottom:t}=i.lineAt(t.head,QueryType.ByPos,n,0,0),a=new Viewport(i.lineAt(t-(s-r)-500,QueryType.ByHeight,n,0,0).from,i.lineAt(t+500,QueryType.ByHeight,n,0,0).to))),a}mapViewport(e,t){var i=t.mapPos(e.from,-1),e=t.mapPos(e.to,1);return new Viewport(this.heightMap.lineAt(i,QueryType.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:t},i=0){var{top:n}=this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,0,0),{bottom:r}=this.heightMap.lineAt(t,QueryType.ByPos,this.state.doc,0,0),{visibleTop:s,visibleBottom:a}=this;return(0==e||n<=s-Math.max(10,Math.min(-i,250)))&&(t==this.state.doc.length||r>=a+Math.max(10,Math.min(i,250)))&&s-2e3{if(!(r.length<1e4)){var s=lineStructure(r.from,r.to,this.state);if(!(s.total<1e4)){let e,t;t=this.heightOracle.lineWrapping?(e=r.from!=this.viewport.from?r.from:findPosition(s,(this.visibleTop-r.top)/r.height),r.to!=this.viewport.to?r.to:findPosition(s,(this.visibleBottom-r.top)/r.height)):(a=s.total*this.heightOracle.charWidth,e=findPosition(s,this.pixelViewport.left/a),findPosition(s,this.pixelViewport.right/a));var a=this.state.selection.main;a.from<=e&&a.to>=r.from&&(e=a.from),a.from<=r.to&&a.to>=t&&(t=a.to);let i=e-1e4,n=t+1e4;i>r.from+5e3&&l.push(find(o,e=>e.from==r.from&&e.to>i-5e3&&e.to<5e3+i)||new LineGap(r.from,i,this.gapSize(r,i,!0,s))),ne.to==r.to&&e.from>n-5e3&&e.frome.draw(this.heightOracle.lineWrapping))),8)}computeVisibleRanges(){let e=this.state.facet(decorations);this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(e,t){i.push({from:e,to:t})},point(){}},20),this.visibleRanges=i}lineAt(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,t,0),this.scaler,t)}lineAtHeight(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e,t),QueryType.ByHeight,this.state.doc,t,0),this.scaler,t)}blockAtHeight(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e,t),this.state.doc,t,0),this.scaler,t)}forEachLine(e,t,i,n){return n+=this.paddingTop,this.heightMap.forEachLine(e,t,this.state.doc,n,0,1==this.scaler.scale?i:e=>i(scaleBlock(e,this.scaler,n)))}get contentHeight(){return this.domHeight+this.paddingTop+this.paddingBottom}get domHeight(){return this.scaler.toDOM(this.heightMap.height,this.paddingTop)}}class Viewport{constructor(e,t){this.from=e,this.to=t}eq(e){return this.from==e.from&&this.to==e.to}}function lineStructure(e,t,i){let n=[],r=e,s=0;return RangeSet.spans(i.facet(decorations),e,t,{span(){},point(e,t){e>r&&(n.push({from:r,to:e}),s+=e-r),r=t}},20),r{var i=s.lineAt(e,QueryType.ByPos,r,0,0).top,n=s.lineAt(t,QueryType.ByPos,r,0,0).bottom;return a+=n-i,{from:e,to:t,top:i,bottom:n,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(s.height-a);for(var n of this.viewports)n.domTop=i+(n.top-t)*this.scale,i=n.domBottom=n.domTop+(n.bottom-n.top),t=n.bottom}toDOM(n,r){n-=r;for(let e=0,t=0,i=0;;e++){var s=escaleBlock(e,t,i)):e.type)}const theme=Facet.define({combine:e=>e.join(" ")}),darkTheme=Facet.define({combine:e=>-1{if("&"==e)return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]}):t+" "+e}})}const baseTheme$2=buildTheme("."+baseThemeID,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none"},".cm-lineWrapping":{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none",display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-placeholder":{color:"#888",display:"inline-block"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"3px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(i,e,t){this.view=i,this.onChange=e,this.onScrollChanged=t,this.active=!1,this.ignoreSelection=new DOMSelection,this.delayedFlush=-1,this.queue=[],this.lastFlush=0,this.scrollTargets=[],this.intersection=null,this.intersecting=!1,this._selectionRange=null,this.parentCheck=-1,this.dom=i.contentDOM,this.observer=new MutationObserver(e=>{for(var t of e)this.queue.push(t);this._selectionRange=null,(browser.ie&&browser.ie_version<=11||browser.ios&&i.composing)&&e.some(e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.start(),this.onScroll=this.onScroll.bind(this),window.addEventListener("scroll",this.onScroll),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver(e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),0{this.delayedFlush=-1,this.flush()},20))}forceFlush(){0<=this.delayedFlush&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}flush(){if(!(0<=this.delayedFlush)){this.lastFlush=Date.now();let n=this.queue;for(var e of this.observer.takeRecords())n.push(e);n.length&&(this.queue=[]);var r=this.selectionRange,s=!this.ignoreSelection.eq(r)&&hasSelection(this.dom,r);if(0!=n.length||s){let e=-1,t=-1,i=!1;for(var a of n){a=this.readMutation(a);a&&(a.typeOver&&(i=!0),-1==e?{from:e,to:t}=a:(e=Math.min(a.from,e),t=Math.max(a.to,t)))}r=this.view.state;(-1this.view.docView.sync()),this.view.docView.dirty=0),this.view.docView.updateSelection()),this.clearSelection()}}}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(),"childList"!=e.type)return{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue};var i=findChild(t,e.previousSibling||e.target.previousSibling,-1),e=findChild(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:e?t.posBefore(e):t.posAtEnd,typeOver:!1}}destroy(){this.stop(),this.intersection&&this.intersection.disconnect();for(var e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),clearTimeout(this.parentCheck)}}function findChild(e,t,i){for(;t;){var n=ContentView.get(t);if(n&&n.parent==e)return n;n=t.parentNode;t=n!=e.dom?n:0Date.now()-100||browser.android&&e.text.length=o.from&&s.to<=o.to&&(s.from!=o.from||s.to!=o.to)&&o.to-o.from-(s.to-s.from)<=4&&(s={from:o.from,to:o.to,insert:n.state.doc.slice(o.from,s.from).append(s.insert).append(n.state.doc.slice(s.to,o.to))}),s){let i=n.state;if(!(browser.android&&(s.from==o.from&&s.to==o.to&&1==s.insert.length&&2==s.insert.lines&&dispatchKey(n.contentDOM,"Enter",13)||s.from==o.from-1&&s.to==o.to&&0==s.insert.length&&dispatchKey(n.contentDOM,"Backspace",8)||s.from==o.from&&s.to==o.to+1&&0==s.insert.length&&dispatchKey(n.contentDOM,"Delete",46))||browser.ios&&n.inputState.flushIOSKey(n))){let t=s.insert.toString();if(!n.state.facet(inputHandler).some(e=>e(n,s.from,s.to,t))){0<=n.inputState.composing&&n.inputState.composing++;let e;var u;e=s.from>=o.from&&s.to<=o.to&&s.to-s.from>=(o.to-o.from)/3&&(!a||a.main.empty&&a.main.from==s.from+s.insert.length)?(r=o.froms.to?i.sliceDoc(s.to,o.to):"",i.replaceSelection(n.state.toText(r+s.insert.sliceString(0,void 0,n.state.lineBreak)+u))):{changes:u=i.changes(s),selection:a&&!i.selection.main.eq(a.main)&&a.main.to<=u.newLength?i.selection.replaceRange(a.main):void 0},n.dispatch(e,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})}}}else if(a&&!a.main.eq(o)){let e=!1,t;n.inputState.lastSelectionTime>Date.now()-50&&("keyboardselection"==n.inputState.lastSelectionOrigin?e=!0:t=Transaction.userEvent.of(n.inputState.lastSelectionOrigin)),n.dispatch({selection:a,scrollIntoView:e,annotations:t})}}function findDiff(e,t,i,n){var r,s=Math.min(e.length,t.length);let a=0;for(;a=o?a-i:0,a-=r,l=a+(l-o),o=a):l=l?a-i:0,a-=i,o=a+(o-l),l=a),{from:a,toA:o,toB:l}}class DOMReader{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineBreak=t.state.lineBreak}readRange(t,i){if(t){var n=t.parentNode;for(let e=t;;){this.findPointBefore(n,e),this.readNode(e);var r=e.nextSibling;if(r==i)break;var s=ContentView.get(e),a=ContentView.get(r);((s?s.breakAfter:isBlockElement(e))||(a?a.breakAfter:isBlockElement(r))&&("BR"!=e.nodeName||e.cmIgnore))&&(this.text+=this.lineBreak),e=r}this.findPointBefore(n,i)}}readNode(i){if(!i.cmIgnore){var n=ContentView.get(i);let e=n&&n.overrideDOMText,t;null!=e?t=e.sliceString(0,void 0,this.lineBreak):3==i.nodeType?t=i.nodeValue:"BR"==i.nodeName?t=i.nextSibling?this.lineBreak:"":1==i.nodeType&&this.readRange(i.firstChild,null),null!=t&&(this.findPointIn(i,t.length),this.text+=t,browser.chrome&&13==this.view.inputState.lastKeyCode&&!i.nextSibling&&/\n\n$/.test(this.text)&&(this.text=this.text.slice(0,-1)))}}findPointBefore(e,t){for(var i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointIn(e,t){for(var i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t))}}function isBlockElement(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}class DOMPoint{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}function selectionPoints(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;var{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:e}=e.observer.selectionRange;return i&&(t.push(new DOMPoint(i,n)),r==i&&e==n||t.push(new DOMPoint(r,e))),t}function selectionFromPoints(e,t){if(0==e.length)return null;var i=e[0].pos,e=2==e.length?e[1].pos:i;return-1this.update([e])),this.dispatch=this.dispatch.bind(this),this.root=e.root||document,this.viewState=new ViewState(e.state||EditorState.create()),this.plugins=this.state.facet(viewPlugin).map(e=>new PluginInstance(e).update(this)),this.observer=new DOMObserver(this,(e,t,i)=>{applyDOMChange(this,e,t,i)},e=>{this.inputState.runScrollHandlers(this,e),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,ensureGlobalHandler(),this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return 0e.scrollIntoView)?n.selection.main:null,this.viewState.update(i,s),this.bidiCache=CachedOrder.update(this.bidiCache,i.changes),i.empty||this.updatePlugins(i),t=this.docView.update(i),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e)}finally{this.updateState=0}if((t||s||this.viewState.mustEnforceCursorAssoc)&&this.requestMeasure(),!i.empty)for(var a of this.state.facet(updateListener))a(i)}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");this.updateState=2;try{for(var t of this.plugins)t.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(e=>new PluginInstance(e).update(this)),this.docView=new DocView(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}this.requestMeasure()}updatePlugins(i){let e=i.startState.facet(viewPlugin),n=i.state.facet(viewPlugin);if(e!=n){let t=[];for(var r of n){var s=e.indexOf(r);if(s<0)t.push(new PluginInstance(r));else{let e=this.plugins[s];e.mustUpdate=i,t.push(e)}}for(var a of this.plugins)a.mustUpdate!=i&&a.destroy(this);this.plugins=t,this.inputState.ensureHandlers(this)}else for(var t of this.plugins)t.mustUpdate=i;for(let e=0;e{try{return e.read(this)}catch(e){return logException(this.state,e),BadMeasure}});let e=new ViewUpdate(this,this.state);e.flags|=r,n?n.flags|=r:n=e,this.updateState=2,e.empty||this.updatePlugins(e),this.updateAttrs(),r&&this.docView.update(e);for(let e=0;ethis.measure())),t){if(null!=t.key)for(let e=0;ebyGroup(this,t.head,e)))}moveToLineBoundary(e,t,i=!0){return moveToLineBoundary(this,e,t,i)}moveVertically(e,t,i){return skipAtoms(this,e,moveVertically(this,e,t,i))}scrollPosIntoView(e){this.viewState.scrollTo=EditorSelection.cursor(e),this.requestMeasure()}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e){return this.readMeasured(),posAtCoords(this,e)}coordsAtPos(e,t=1){this.readMeasured();var i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;var n=this.state.doc.lineAt(e),r=this.bidiSpans(n);return flattenRect(i,r[BidiSpan.find(r,e-n.from,-1,t)].dir==Direction.LTR==0MaxBidiLine)return trivialOrder(e.length);var t,i=this.textDirection;for(t of this.bidiCache)if(t.from==e.from&&t.dir==i)return t.order;var n=computeOrder(e.text,this.textDirection);return this.bidiCache.push(new CachedOrder(e.from,e.to,i,n)),n}get hasFocus(){var e;return(document.hasFocus()||browser.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}destroy(){for(var e of this.plugins)e.destroy(this);this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),-1({}),{eventHandlers:e})}static theme(e,t){var i=StyleModule.newName();let n=[theme.of(i),styleModule.of(buildTheme(`.${i}`,e))];return t&&t.dark&&n.push(darkTheme.of(!0)),n}static baseTheme(e){return Prec.fallback(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}}EditorView.styleModule=styleModule,EditorView.inputHandler=inputHandler,EditorView.exceptionSink=exceptionSink,EditorView.updateListener=updateListener,EditorView.editable=editable,EditorView.mouseSelectionStyle=mouseSelectionStyle,EditorView.dragMovesSelection=dragMovesSelection$1,EditorView.clickAddsSelectionRange=clickAddsSelectionRange,EditorView.decorations=decorations,EditorView.contentAttributes=contentAttributes,EditorView.editorAttributes=editorAttributes,EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"}),EditorView.announce=StateEffect.define();const MaxBidiLine=4096;function ensureTop(e,t){return null==e?t.getBoundingClientRect().top:e}let resizeDebounce=-1;function ensureGlobalHandler(){window.addEventListener("resize",()=>{-1==resizeDebounce&&(resizeDebounce=setTimeout(handleResize,50))})}function handleResize(){resizeDebounce=-1;var i=document.querySelectorAll(".cm-content");for(let t=0;te.concat(t),[]))),i}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(e,o=currentPlatform){let l=Object.create(null),n=Object.create(null),c=(e,t)=>{var i=n[e];if(null==i)n[e]=t;else if(i!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")};var t,i=(n,e,t,i)=>{let r=l[n]||(l[n]=Object.create(null)),s=e.split(/ (?!$)/).map(e=>normalizeKeyName(e,o));for(let e=1;e{let t=storedPrefix={view:e,prefix:i,scope:n};return setTimeout(()=>{storedPrefix==t&&(storedPrefix=null)},PrefixTimeout),!0}]})}e=s.join(" ");c(e,!1);let a=r[e]||(r[e]={preventDefault:!1,commands:[]});a.commands.push(t),i&&(a.preventDefault=!0)};for(t of e){var r=t[o]||t.key;if(r)for(var s of t.scope?t.scope.split(" "):["editor"])i(s,r,t.run,t.preventDefault),t.shift&&i(s,"Shift-"+r,t.shift,t.preventDefault)}return l}function runHandlers(e,t,i,n){var r=keyName(t),s=1==r.length&&" "!=r;let a="",o=!1;storedPrefix&&storedPrefix.view==i&&storedPrefix.scope==n&&(a=storedPrefix.prefix+" ",(o=modifierCodes.indexOf(t.keyCode)<0)&&(storedPrefix=null));var l=e=>{if(e){for(var t of e.commands)if(t(i))return!0;e.preventDefault&&(o=!0)}return!1};let c=e[n],h;if(c){if(l(c[a+modifiers(r,t,!s)]))return!0;if(s&&(t.shiftKey||t.altKey||t.metaKey)&&(h=base[t.keyCode])&&h!=r){if(l(c[a+modifiers(h,t,!0)]))return!0}else if(s&&t.shiftKey&&l(c[a+modifiers(r,t,!0)]))return!0}return o}const CanHidePrimary=!browser.ios,themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};function highlightActiveLine(){return activeLineHighlighter}CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const lineDeco=Decoration.line({attributes:{class:"cm-activeLine"}}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=-1,i=[];for(var n of e.state.selection.ranges){if(!n.empty)return Decoration.none;n=e.visualLineAt(n.head);n.from>t&&(i.push(lineDeco.range(n.from)),t=n.from)}return Decoration.set(i)}},{decorations:e=>e.decorations}),DefaultBufferLength=1024;let nextPropID=0;const CachedNode=new WeakMap;class NodeProp{constructor({deserialize:e}={}){this.id=nextPropID++,this.deserialize=e||(()=>{throw new Error("This node type doesn't define a deserialize function")})}static string(){return new NodeProp({deserialize:e=>e})}static number(){return new NodeProp({deserialize:Number})}static flag(){return new NodeProp({deserialize:()=>!0})}set(e,t){return e[this.id]=t,e}add(t){return"function"!=typeof t&&(t=NodeType.match(t)),e=>{e=t(e);return void 0===e?null:[this,e]}}}NodeProp.closedBy=new NodeProp({deserialize:e=>e.split(" ")}),NodeProp.openedBy=new NodeProp({deserialize:e=>e.split(" ")}),NodeProp.group=new NodeProp({deserialize:e=>e.split(" ")});const noProps=Object.create(null);class NodeType{constructor(e,t,i,n=0){this.name=e,this.props=t,this.id=i,this.flags=n}static define(e){var t=e.props&&e.props.length?Object.create(null):noProps,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),n=new NodeType(e.name||"",t,e.id,i);if(e.props)for(var r of e.props)Array.isArray(r)||(r=r(n)),r&&r[0].set(t,r[1]);return n}prop(e){return this.props[e.id]}get isTop(){return 0<(1&this.flags)}get isSkipped(){return 0<(2&this.flags)}get isError(){return 0<(4&this.flags)}get isAnonymous(){return 0<(8&this.flags)}is(t){if("string"!=typeof t)return this.id==t;{if(this.name==t)return!0;let e=this.prop(NodeProp.group);return!!e&&-1{for(let e=i.prop(NodeProp.group),t=-1;t<(e?e.length:0);t++){var n=r[t<0?i.name:e[t]];if(n)return n}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(t){this.types=t;for(let e=0;ee.toString()).join();return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(e,t=0){var i=null!=e&&CachedNode.get(this)||this.topNode;let n=new TreeCursor(i);return null!=e&&(n.moveTo(e,t),CachedNode.set(this,n._tree)),n}fullCursor(){return new TreeCursor(this.topNode,!0)}get topNode(){return new TreeNode(this,0,0,null)}resolve(e,t=0){return this.cursor(e,t).node}iterate(e){let{enter:i,leave:n,from:r=0,to:s=this.length}=e;for(let t=this.cursor();;){let e=!1;if(t.from<=s&&t.to>=r&&(t.type.isAnonymous||!1!==i(t.type,t.from,t.to))){if(t.firstChild())continue;t.type.isAnonymous||(e=!0)}for(;e&&n&&n(t.type,t.from,t.to),e=t.type.isAnonymous,!t.nextSibling();){if(!t.parent())return;e=!0}}}balance(e=DefaultBufferLength){return this.children.length<=BalanceBranchFactor?this:balanceRange(this.type,NodeType.none,this.children,this.positions,0,this.children.length,0,e,this.length,0)}static build(e){return buildTree(e)}}function withHash(e,t){return t&&(e.contextHash=t),e}Tree.empty=new Tree(NodeType.none,[],[],0);class TreeBuffer{constructor(e,t,i,n=NodeType.none){this.buffer=e,this.length=t,this.set=i,this.type=n}toString(){let t=[];for(let e=0;e=e:this.from>e)||(-1=e:this.from>e)||(-1!e.type.isAnonymous||e instanceof TreeBuffer||hasChild(e))}class FlatBufferCursor{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}const BalanceBranchFactor=8;function buildTree(e){let{buffer:t,nodeSet:g,topID:i=0,maxBufferLength:m=DefaultBufferLength,reused:v=[],minRepeatType:y=g.types.length}=e,Q=Array.isArray(t)?new FlatBufferCursor(t,t.length):t,w=g.types,S=0;function $(i,e,t,n,r){var{id:s,start:a,end:o,size:l}=Q;let c=a-i;if(l<0)return-1==l?(t.push(v[s]),n.push(c)):S=s,void Q.next();let h=w[s],d,u;if(o-a<=m&&(u=function(e,t){let i=Q.fork(),n=0,r=0,s=0,a=i.end-m,o={size:0,start:0,skip:0};e:for(var l=i.pos-e;i.pos>l;)if(i.id!=t){var c=i.size,h=i.pos-c;if(c<0||h=y?4:0;var d=i.start;for(i.next();i.pos>h;){if(i.size<0)break e;i.id>=y&&(e+=4),i.next()}r=d,n+=c,s+=e}else o.size=n,o.start=r,o.skip=s,s+=4,n+=4,i.next();(t<0||n==e)&&(o.size=n,o.start=r,o.skip=s);return 4e;)t=function t(i,n,r,s){let{id:e,start:a,end:o,size:l}=Q;Q.next();if(e==s)return r;let c=r;if(4e;)r=t(i,n,r,s)}e=y?s:-1;Q.pos>O;)Q.id==f?Q.next():$(a,O,e,t,f);e.reverse(),t.reverse(),d=-1BalanceBranchFactor?balanceRange(h,h,e,t,0,e.length,0,m,o-a,S):withHash(new Tree(h,e,t,o-a),S)}t.push(d),n.push(c)}let n=[],r=[];for(;0u<<1){for(let e=0;e=i)for(;s&&s.from=e.from||u<=e.to||l)&&(c=Math.max(e.from,o)-l,h=Math.min(e.to,u)-l,e=h<=c?null:new TreeFragment(c,h,e.tree,e.offset+l,(0u)break;s=re.length&&n.push(r);return n}}function stringInput(e){return new StringInput(e)}class StringInput{constructor(e,t=e.length){this.string=e,this.length=t}get(e){return e<0||e>=this.length?-1:this.string.charCodeAt(e)}lineAfter(e){if(e<0)return"";var t=this.string.indexOf("\n",e);return this.string.slice(e,t<0?this.length:Math.min(t,this.length))}read(e,t){return this.string.slice(e,Math.min(this.length,t))}clip(e){return new StringInput(this.string,e)}}const languageDataProp=new NodeProp;function defineLanguageFacet(t){return Facet.define({combine:t?e=>e.concat(t):void 0})}class Language{constructor(e,t,i,n=[]){this.data=e,this.topNode=i,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=t,this.extension=[language.of(this),EditorState.languageData.of((e,t)=>e.facet(languageDataFacetAt(e,t)))].concat(n)}isActiveAt(e,t){return languageDataFacetAt(e,t)==this.data}findRegions(e){var t=e.facet(language);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[];return syntaxTree(e).iterate({enter:(e,t,i)=>{if(e.isTop&&e.prop(languageDataProp)==this.data)return n.push({from:t,to:i}),!1}}),n}get allowsNesting(){return!0}parseString(e){var t=Text.of(e.split("\n"));let i=this.parser.startParse(new DocInput(t),0,new EditorParseContext(this.parser,EditorState.create({doc:t}),[],Tree.empty,{from:0,to:e.length},[],null)),n;for(;!(n=i.advance()););return n}}function languageDataFacetAt(e,t){var i=e.facet(language);if(!i)return null;if(!i.allowsNesting)return i.data;let n=syntaxTree(e),r=n.resolve(t,-1);for(;r;){var s=r.type.prop(languageDataProp);if(s)return s;r=r.parent}return i.data}Language.setState=StateEffect.define();class LezerLanguage extends Language{constructor(e,t){super(e,t,t.topNode),this.parser=t}static define(e){let t=defineLanguageFacet(e.languageData);return new LezerLanguage(t,e.parser.configure({props:[languageDataProp.add(e=>e.isTop?t:void 0)]}))}configure(e){return new LezerLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.hasNested}}function syntaxTree(e){e=e.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,this.string="",this.prevString="",this.cursor=e.iter()}syncTo(e){return e=this.length)return-1;let t=this.cursorPos-this.string.length;if(e=this.cursorPos){if(e=t-this.prevString.length)return this.prevString.charCodeAt(e-(t-this.prevString.length));t=this.syncTo(e)}return this.string.charCodeAt(e-t)}lineAfter(e){if(e>=this.length||e<0)return"";let t=this.cursorPos-this.string.length;return(e=this.cursorPos)&&(t=this.syncTo(e)),this.cursor.lineBreak?"":this.string.slice(e-t,Math.min(this.length-t,this.string.length))}read(e,t){var i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}clip(e){return new DocInput(this.doc,e)}}class EditorParseContext{constructor(e,t,i=[],n,r,s,a){this.parser=e,this.state=t,this.fragments=i,this.tree=n,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}work(e,t){if(this.tree!=Tree.empty&&(null==t?this.tree.length==this.state.doc.length:this.tree.length>=t))return this.takeTree(),!0;this.parse||(this.parse=this.parser.startParse(new DocInput(this.state.doc),0,this));for(var i=Date.now()+e;;){var n=this.parse.advance();if(n)return this.fragments=this.withoutTempSkipped(TreeFragment.addTree(n)),this.parse=null,this.tree=n,!0;if(null!=t&&this.parse.pos>=t)return this.takeTree(),!0;if(Date.now()>i)return!1}}takeTree(){this.parse&&this.parse.pos>this.tree.length&&(this.tree=this.parse.forceFinish(),this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)))}withoutTempSkipped(e){for(var t;t=this.tempSkipped.pop();)e=cutFragments(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:n,viewport:s,skipped:a}=this;if(this.takeTree(),!e.empty){let r=[];if(e.iterChangedRanges((e,t,i,n)=>r.push({fromA:e,toA:t,fromB:i,toB:n})),i=TreeFragment.applyChanges(i,r),n=Tree.empty,s={from:e.mapPos(s.from,-1),to:e.mapPos(s.to,1)},this.skipped.length){a=[];for(var o of this.skipped){var l=e.mapPos(o.from,1),o=e.mapPos(o.to,-1);lt.from&&(this.fragments=cutFragments(this.fragments,i,n),this.skipped.splice(e--,1))}return this.skipped.length=e}}function cutFragments(e,t,i){return TreeFragment.applyChanges(e,[{fromA:t,toA:i,fromB:t,toB:i}])}EditorParseContext.skippingParser=EditorParseContext.getSkippingParser();class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged)return this;let t=this.context.changes(e.changes,e.state);e=this.context.tree.length==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.tree.length),t.viewport.to);return t.work(25,e)||t.takeTree(),new LanguageState(t)}static init(e){let t=new EditorParseContext(e.facet(language).parser,e,[],Tree.empty,{from:0,to:e.doc.length},[],null);return t.work(25)||t.takeTree(),new LanguageState(t)}}Language.state=StateField.define({create:LanguageState.init,update(e,t){for(var i of t.effects)if(i.is(Language.setState))return i.value;return t.startState.facet(language)!=t.state.facet(language)?LanguageState.init(t.state):e.apply(t)}});let requestIdle="undefined"!=typeof window&&window.requestIdleCallback||((e,{timeout:t})=>setTimeout(e,t)),cancelIdle="undefined"!=typeof window&&window.cancelIdleCallback||clearTimeout;const parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=-1,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Language.state).context;e.viewportChanged&&(t.updateViewport(e.view.viewport)&&t.reset(),this.view.viewport.to>t.tree.length&&this.scheduleWork()),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(i=!1){if(!(-1=e.doc.length||(this.working=requestIdle(this.work,{timeout:500}))}}work(n){this.working=-1;var r=Date.now();if(this.chunkEnd=t+1e6||(n=Math.min(this.chunkBudget,n?Math.max(25,n.timeRemaining()):100),n=i.context.work(n,t+1e6),this.chunkBudget-=Date.now()-r,(n||this.chunkBudget<=0||i.context.movedPast(t))&&(i.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(i.context))})),!n&&0this.scheduleWork(!0)),e.scheduleOn=null)}destroy(){0<=this.working&&cancelIdle(this.working)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(e){return e.length?e[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class LanguageDescription{constructor(e,t,i,n,r){this.name=e,this.alias=t,this.extensions=i,this.filename=n,this.loadFunc=r,this.support=void 0,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){return new LanguageDescription(e.name,(e.alias||[]).concat(e.name).map(e=>e.toLowerCase()),e.extensions||[],e.filename,e.load)}static matchFilename(e,t){for(var i of e)if(i.filename&&i.filename.test(t))return i;var n=/\.([^.]+)$/.exec(t);if(n)for(var r of e)if(-1e==t))return n;if(i)for(var r of e)for(var s of r.alias){var a=t.indexOf(s);if(-1{if(!e.length)return" ";if(!/^(?: +|\t+)$/.test(e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return e[0]}});function getIndentUnit(e){let t=e.facet(indentUnit);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function indentString(e,t){let i="",n=e.tabSize;if(9==e.facet(indentUnit).charCodeAt(0))for(;n<=t;)i+="\t",t-=n;for(let e=0;edelimitedStrategy(e,!0,1,void 0,i&&!ignoreClosed(e)?t.from:void 0)}return null==e.parent?topIndent:null}function indentFrom(t,i,n){for(;t;t=t.parent){let e=indentStrategy(t);if(e)return e(new TreeIndentContext(n,i,t))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.node=i}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let t=this.state.doc.lineAt(this.node.from);for(;;){let e=this.node.resolve(t.from);for(;e.parent&&e.parent.from==e.from;)e=e.parent;if(isParent(e,this.node))break;t=this.state.doc.lineAt(e.from)}return this.lineIndent(t)}continue(){var e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(t,i){for(let e=i;e;e=e.parent)if(t==e)return!0;return!1}function bracketedAligned(e){let t=e.node;var i=t.childAfter(t.from),n=t.lastChild;if(!i)return null;var r=null===(r=e.options)||void 0===r?void 0:r.simulateBreak,e=e.state.doc.lineAt(i.from),s=null==r||r<=e.from?e.to:Math.min(e.to,r);for(let e=i.to;;){var a=t.childAfter(e);if(!a||a==n)return null;if(!a.type.isSkipped)return a.fromdelimitedStrategy(e,i,n,t)}function delimitedStrategy(e,t,i,n,r){let s=e.textAfter,a=s.match(/^\s*/)[0].length;r=n&&s.slice(a,a+n.length)==n||r==e.pos+a,t=t?bracketedAligned(e):null;return t?r?e.column(t.from):e.column(t.to):e.baseIndent+(r?0:e.unit*i)}const flatIndent=e=>e.baseIndent;function continuedIndent({except:i,units:n=1}={}){return e=>{var t=i&&i.test(e.textAfter);return e.baseIndent+(t?0:n*e.unit)}}Facet.define();const foldNodeProp=new NodeProp;function foldInside(e){var t=e.firstChild,i=e.lastChild;return t&&t.toEditorView.decorations.from(e)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$1];function bracketMatching(e={}){return[bracketMatchingConfig.of(e),bracketMatchingUnique]}function matchingNodes(e,t,i){var n=e.prop(t<0?NodeProp.openedBy:NodeProp.closedBy);if(n)return n;if(1==e.name.length){e=i.indexOf(e.name);if(-1=n.to){if(0==l&&-1>1==l>>1};d--}}0"},closeBracketEffect=StateEffect.define({map(e,t){e=t.mapPos(e,-1,MapMode.TrackAfter);return null==e?void 0:e}}),skipBracketEffect=StateEffect.define({map(e,t){return t.mapPos(e)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1,closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(e,i){var t,n;i.selection&&(t=i.state.doc.lineAt(i.selection.main.head).from,n=i.startState.doc.lineAt(i.startState.selection.main.head).from,t!=i.changes.mapPos(n,-1)&&(e=RangeSet.empty)),e=e.map(i.changes);for(let t of i.effects)t.is(closeBracketEffect)?e=e.update({add:[closedBracket.range(t.value,t.value+1)]}):t.is(skipBracketEffect)&&(e=e.update({filter:e=>e!=t.value}));return e}});function closeBrackets(){return[EditorView.inputHandler.of(handleInput),bracketState]}const definedClosing="()[]{}<>";function closing(t){for(let e=0;e{let r=config(n,n.selection.main.head).brackets||defaults.brackets,s=null,t=n.changeByRange(e=>{if(e.empty){var t,i=prevChar(n.doc,e.head);for(t of r)if(t==i&&nextChar(n.doc,e.head)==closing(codePointAt(t,0)))return{changes:{from:e.head-t.length,to:e.head+t.length},range:EditorSelection.cursor(e.head-t.length),annotations:Transaction.userEvent.of("delete")}}return{range:s=e}});return s||e(n.update(t,{scrollIntoView:!0})),!s},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(e,t){var i,n=config(e,e.selection.main.head);let r=n.brackets||defaults.brackets;for(i of r){var s=closing(codePointAt(i,0));if(t==i)return s==i?handleSame(e,i,-1{e==t&&(i=!0)}),i}function nextChar(e,t){let i=e.sliceString(t,t+2);return i.slice(0,codePointSize(codePointAt(i,0)))}function prevChar(e,t){let i=e.sliceString(t-2,t);return codePointSize(codePointAt(i,0))==i.length?i:i.slice(1)}function handleOpen(i,n,r,s){let a=null,e=i.changeByRange(e=>{if(!e.empty)return{changes:[{insert:n,from:e.from},{insert:r,from:e.to}],effects:closeBracketEffect.of(e.to+n.length),range:EditorSelection.range(e.anchor+n.length,e.head+n.length)};var t=nextChar(i.doc,e.head);return!t||/\s/.test(t)||-1e.empty&&nextChar(t.doc,e.head)==i?EditorSelection.cursor(e.head+i.length):n=e);return n?null:t.update({selection:EditorSelection.create(r,t.selection.mainIndex),scrollIntoView:!0,effects:t.selection.ranges.map(({from:e})=>skipBracketEffect.of(e))})}function handleSame(r,s,a){let o=null,e=r.changeByRange(e=>{if(!e.empty)return{changes:[{insert:s,from:e.from},{insert:s,from:e.to}],effects:closeBracketEffect.of(e.to+s.length),range:EditorSelection.range(e.anchor+s.length,e.head+s.length)};var t=e.head,i=nextChar(r.doc,t);if(i==s){if(nodeStart$1(r,t))return{changes:{insert:s+s,from:t},effects:closeBracketEffect.of(t+s.length),range:EditorSelection.cursor(t+s.length)};if(closedBracketAt(r,t)){var n=a&&r.sliceDoc(t,t+3*s.length)==s+s+s;return{range:EditorSelection.cursor(t+s.length*(n?3:1)),effects:skipBracketEffect.of(t)}}}else{if(a&&r.sliceDoc(t-2*s.length,t)==s+s&&nodeStart$1(r,t-2*s.length))return{changes:{insert:s+s+s+s,from:t},effects:closeBracketEffect.of(t+s.length),range:EditorSelection.cursor(t+s.length)};if(r.charCategorizer(t)(i)!=CharCategory.Word){i=r.sliceDoc(t-1,t);if(i!=s&&r.charCategorizer(t)(i)!=CharCategory.Word)return{changes:{insert:s+s,from:t},effects:closeBracketEffect.of(t+s.length),range:EditorSelection.cursor(t+s.length)}}}return{range:o=e}});return o?null:r.update(e,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})}function nodeStart$1(e,t){e=syntaxTree(e).resolve(t+1);return e.parent&&e.from==t}function updateSel(e,t){return EditorSelection.create(e.ranges.map(t),e.mainIndex)}function setSel(e,t){return e.update({selection:t,scrollIntoView:!0,annotations:Transaction.userEvent.of("keyboardselection")})}function moveSel({state:e,dispatch:t},i){let n=updateSel(e.selection,i);return!n.eq(e.selection)&&(t(setSel(e,n)),!0)}function rangeEnd(e,t){return EditorSelection.cursor(t?e.to:e.from)}function cursorByChar(t,i){return moveSel(t,e=>e.empty?t.moveByChar(e,i):rangeEnd(e,i))}const cursorCharLeft=e=>cursorByChar(e,e.textDirection!=Direction.LTR),cursorCharRight=e=>cursorByChar(e,e.textDirection==Direction.LTR);function cursorByGroup(t,i){return moveSel(t,e=>e.empty?t.moveByGroup(e,i):rangeEnd(e,i))}const cursorGroupLeft=e=>cursorByGroup(e,e.textDirection!=Direction.LTR),cursorGroupRight=e=>cursorByGroup(e,e.textDirection==Direction.LTR),cursorGroupForward=e=>cursorByGroup(e,!0),cursorGroupBackward=e=>cursorByGroup(e,!1);function interestingNode(e,t,i){if(t.type.prop(i))return!0;i=t.to-t.from;return i&&(2moveSel(t,e=>moveBySyntax(t.state,e,t.textDirection!=Direction.LTR)),cursorSyntaxRight=t=>moveSel(t,e=>moveBySyntax(t.state,e,t.textDirection==Direction.LTR));function cursorByLine(t,i){return moveSel(t,e=>e.empty?t.moveVertically(e,i):rangeEnd(e,i))}const cursorLineUp=e=>cursorByLine(e,!1),cursorLineDown=e=>cursorByLine(e,!0);function cursorByPage(t,i){return moveSel(t,e=>e.empty?t.moveVertically(e,i,t.dom.clientHeight):rangeEnd(e,i))}const cursorPageUp=e=>cursorByPage(e,!1),cursorPageDown=e=>cursorByPage(e,!0);function moveByLineBoundary(e,t,i){let n=e.visualLineAt(t.head),r=e.moveToLineBoundary(t,i);return r.head==t.head&&r.head!=(i?n.to:n.from)&&(r=e.moveToLineBoundary(t,i,!1)),i||r.head!=n.from||!n.length||(e=/^\s*/.exec(e.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length)&&t.head!=n.from+e&&(r=EditorSelection.cursor(n.from+e)),r}const cursorLineBoundaryForward=t=>moveSel(t,e=>moveByLineBoundary(t,e,!0)),cursorLineBoundaryBackward=t=>moveSel(t,e=>moveByLineBoundary(t,e,!1)),cursorLineStart=t=>moveSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).from,1)),cursorLineEnd=t=>moveSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).to,-1));function toMatchingBracket(i,e,n){let r=!1,t=updateSel(i.selection,e=>{var t=matchBrackets(i,e.head,-1)||matchBrackets(i,e.head,1)||0toMatchingBracket(e,t,!1);function extendSel(e,i){let t=updateSel(e.state.selection,e=>{var t=i(e);return EditorSelection.range(e.anchor,t.head,t.goalColumn)});return!t.eq(e.state.selection)&&(e.dispatch(setSel(e.state,t)),!0)}function selectByChar(t,i){return extendSel(t,e=>t.moveByChar(e,i))}const selectCharLeft=e=>selectByChar(e,e.textDirection!=Direction.LTR),selectCharRight=e=>selectByChar(e,e.textDirection==Direction.LTR);function selectByGroup(t,i){return extendSel(t,e=>t.moveByGroup(e,i))}const selectGroupLeft=e=>selectByGroup(e,e.textDirection!=Direction.LTR),selectGroupRight=e=>selectByGroup(e,e.textDirection==Direction.LTR),selectGroupForward=e=>selectByGroup(e,!0),selectGroupBackward=e=>selectByGroup(e,!1),selectSyntaxLeft=t=>extendSel(t,e=>moveBySyntax(t.state,e,t.textDirection!=Direction.LTR)),selectSyntaxRight=t=>extendSel(t,e=>moveBySyntax(t.state,e,t.textDirection==Direction.LTR));function selectByLine(t,i){return extendSel(t,e=>t.moveVertically(e,i))}const selectLineUp=e=>selectByLine(e,!1),selectLineDown=e=>selectByLine(e,!0);function selectByPage(t,i){return extendSel(t,e=>t.moveVertically(e,i,t.dom.clientHeight))}const selectPageUp=e=>selectByPage(e,!1),selectPageDown=e=>selectByPage(e,!0),selectLineBoundaryForward=t=>extendSel(t,e=>moveByLineBoundary(t,e,!0)),selectLineBoundaryBackward=t=>extendSel(t,e=>moveByLineBoundary(t,e,!1)),selectLineStart=t=>extendSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).from)),selectLineEnd=t=>extendSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).to)),cursorDocStart=({state:e,dispatch:t})=>(t(setSel(e,{anchor:0})),!0),cursorDocEnd=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.doc.length})),!0),selectDocStart=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.selection.main.anchor,head:0})),!0),selectDocEnd=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),selectAll=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},annotations:Transaction.userEvent.of("keyboardselection")})),!0),selectLine=({state:i,dispatch:e})=>{var t=selectedLineBlocks(i).map(({from:e,to:t})=>EditorSelection.range(e,Math.min(t+1,i.doc.length)));return e(i.update({selection:EditorSelection.create(t),annotations:Transaction.userEvent.of("keyboardselection")})),!0},selectParentSyntax=({state:n,dispatch:e})=>{var t=updateSel(n.selection,e=>{var t;let i=syntaxTree(n).resolve(e.head,1);for(;!(i.from=e.to||i.to>e.to&&i.from<=e.from||null===(t=i.parent)||void 0===t)&&t.parent;)i=i.parent;return EditorSelection.range(i.to,i.from)});return e(setSel(n,t)),!0},simplifySelection=({state:e,dispatch:t})=>{let i=e.selection,n=null;return 1{let{from:t,to:i}=e;var n;return t==i&&(n=r(t),t=Math.min(t,n),i=Math.max(i,n)),t==i?{range:e}:{changes:{from:t,to:i},range:EditorSelection.cursor(t)}});return!i.changes.empty&&(t(e.update(i,{scrollIntoView:!0,annotations:Transaction.userEvent.of("delete")})),!0)}const deleteByChar=(o,l,c)=>deleteBy(o,t=>{let{state:e}=o,i=e.doc.lineAt(t),n;if(!l&&t>i.from&&tdeleteByChar(e,!1,!0),deleteCharBackward=e=>deleteByChar(e,!1,!1),deleteCharForward=e=>deleteByChar(e,!0,!1),deleteByGroup=(e,c)=>deleteBy(e,t=>{let i=t,{state:n}=e,r=n.doc.lineAt(i),s=n.charCategorizer(i);for(let e=null;;){if(i==(c?r.to:r.from)){i==t&&r.number!=(c?n.doc.lines:1)&&(i+=c?1:-1);break}var a=findClusterBreak(r.text,i-r.from,c)+r.from,o=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),l=s(o);if(null!=e&&l!=e)break;" "==o&&i==t||(e=l),i=a}return i}),deleteGroupBackward=e=>deleteByGroup(e,!1),deleteGroupForward=e=>deleteByGroup(e,!0),deleteToLineEnd=i=>deleteBy(i,e=>{var t=i.visualLineAt(e).to;return edeleteBy(i,e=>{var t=i.visualLineAt(e).from;return t{var i=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:Text.of(["",""])},range:EditorSelection.cursor(e.from)}));return t(e.update(i,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})),!0},transposeChars=({state:n,dispatch:e})=>{var t=n.changeByRange(e=>{if(!e.empty||0==e.from||e.from==n.doc.length)return{range:e};var t=e.from,i=n.doc.lineAt(t),e=t==i.from?t-1:findClusterBreak(i.text,t-i.from,!1)+i.from,i=t==i.to?t+1:findClusterBreak(i.text,t-i.from,!0)+i.from;return{changes:{from:e,to:i,insert:n.doc.slice(t,i).append(n.doc.slice(e,t))},range:EditorSelection.cursor(i)}});return!t.changes.empty&&(e(n.update(t,{scrollIntoView:!0})),!0)};function selectedLineBlocks(e){let t=[],i=-1;for(var n of e.selection.ranges){var r=e.doc.lineAt(n.from),n=e.doc.lineAt(n.to);i==r.number?t[t.length-1].to=n.to:t.push({from:r.from,to:n.to}),i=n.number}return t}function moveLine(e,t,i){let n=[];for(var r of selectedLineBlocks(e)){var s;(i?r.to!=e.doc.length:0!=r.from)&&(s=e.doc.lineAt(i?r.to+1:r.from-1),i?n.push({from:r.to,to:s.to},{from:r.from,insert:s.text+e.lineBreak}):n.push({from:s.from,to:r.from},{from:r.to,insert:e.lineBreak+s.text}))}return!!n.length&&(t(e.update({changes:n,scrollIntoView:!0})),!0)}const moveLineUp=({state:e,dispatch:t})=>moveLine(e,t,!1),moveLineDown=({state:e,dispatch:t})=>moveLine(e,t,!0);function copyLine(e,t,i){let n=[];for(var r of selectedLineBlocks(e))i?n.push({from:r.from,insert:e.doc.slice(r.from,r.to)+e.lineBreak}):n.push({from:r.to,insert:e.lineBreak+e.doc.slice(r.from,r.to)});return t(e.update({changes:n,scrollIntoView:!0})),!0}const copyLineUp=({state:e,dispatch:t})=>copyLine(e,t,!1),copyLineDown=({state:e,dispatch:t})=>copyLine(e,t,!0),deleteLine=t=>{let{state:i}=t,e=i.changes(selectedLineBlocks(i).map(({from:e,to:t})=>(0t.moveVertically(e,!0)).map(e);return t.dispatch({changes:e,selection:n,scrollIntoView:!0}),!0};function isBetweenBrackets(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let i=syntaxTree(e).resolve(t),n=i.childBefore(t),r=i.childAfter(t),s;return n&&r&&n.to<=t&&r.from>=t&&(s=n.type.prop(NodeProp.closedBy))&&-1{var t=o.changeByRange(({from:e,to:t})=>{var i=e==t&&isBetweenBrackets(o,e);let n=new IndentContext(o,{simulateBreak:e,simulateDoubleBreak:!!i}),r=getIndentation(n,e);null==r&&(r=/^\s*/.exec(o.doc.lineAt(e).text)[0].length);let s=o.doc.lineAt(e);for(;ts.from&&e{var i=[];for(let e=t.from;e<=t.to;){var n=r.doc.lineAt(e);n.number>a&&(t.empty||t.to>n.from)&&(s(n,i,t),a=n.number),e=n.to+1}let e=r.changes(i);return{changes:i,range:EditorSelection.range(e.mapPos(t.anchor,1),e.mapPos(t.head,1))}})}const indentSelection=({state:a,dispatch:e})=>{let o=Object.create(null),l=new IndentContext(a,{overrideIndentation:e=>{e=o[e];return null==e?-1:e}});var t=changeBySelectedLine(a,(e,t,i)=>{var n,r,s=getIndentation(l,e.from);null==s||((n=/^\s*/.exec(e.text)[0])!=(r=indentString(a,s))||i.from(e(i.update(changeBySelectedLine(i,(e,t)=>{t.push({from:e.from,insert:i.facet(indentUnit)})}))),!0),indentLess=({state:a,dispatch:e})=>(e(a.update(changeBySelectedLine(a,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(s){let e=countColumn(s,0,a.tabSize),t=0,i=indentString(a,Math.max(0,e-getIndentUnit(a)));for(;te.selection.ranges.some(e=>!e.empty)?indentMore({state:e,dispatch:t}):(t(e.update(e.replaceSelection("\t"),{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})),!0),emacsStyleKeymap=[{key:"Ctrl-b",run:cursorCharLeft,shift:selectCharLeft,preventDefault:!0},{key:"Ctrl-f",run:cursorCharRight,shift:selectCharRight},{key:"Ctrl-p",run:cursorLineUp,shift:selectLineUp},{key:"Ctrl-n",run:cursorLineDown,shift:selectLineDown},{key:"Ctrl-a",run:cursorLineStart,shift:selectLineStart},{key:"Ctrl-e",run:cursorLineEnd,shift:selectLineEnd},{key:"Ctrl-d",run:deleteCharForward},{key:"Ctrl-h",run:deleteCharBackward},{key:"Ctrl-k",run:deleteToLineEnd},{key:"Alt-d",run:deleteGroupForward},{key:"Ctrl-Alt-h",run:deleteGroupBackward},{key:"Ctrl-o",run:splitLine},{key:"Ctrl-t",run:transposeChars},{key:"Alt-f",run:cursorGroupForward,shift:selectGroupForward},{key:"Alt-b",run:cursorGroupBackward,shift:selectGroupBackward},{key:"Alt-<",run:cursorDocStart},{key:"Alt->",run:cursorDocEnd},{key:"Ctrl-v",run:cursorPageDown},{key:"Alt-v",run:cursorPageUp}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCodePointBackward,shift:deleteCodePointBackward},{key:"Delete",run:deleteCharForward,shift:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteToLineStart},{mac:"Mod-Delete",run:deleteToLineEnd}].concat(emacsStyleKeymap.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket}].concat(standardKeymap),defaultTabBinding={key:"Tab",run:insertTab,shift:indentSelection},fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(e){return combineConfig(e,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}}),historyField_=StateField.define({create(){return HistoryState.empty},update(t,i){var n=i.state.facet(historyConfig),r=i.annotation(fromHistory);if(r){var s=HistEvent.fromTransaction(i),a=r.side;let e=0==a?t.undone:t.done;return e=s?updateBranch(e,e.length,n.minDepth,s):addSelection(e,i.startState.selection),new HistoryState(0==a?r.rest:e,0==a?e:r.rest)}var e=i.annotation(isolateHistory);if("full"!=e&&"before"!=e||(t=t.isolate()),!1===i.annotation(Transaction.addToHistory))return i.changes.empty?t:t.addMapping(i.changes.desc);s=HistEvent.fromTransaction(i),a=i.annotation(Transaction.time),r=i.annotation(Transaction.userEvent);return s?t=t.addChanges(s,a,r,n.newGroupDelay,n.minDepth):i.selection&&(t=t.addSelection(i.startState.selection,a,r,n.newGroupDelay)),t="full"==e||"after"==e?t.isolate():t},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new HistoryState(e.done.map(HistEvent.fromJSON),e.undone.map(HistEvent.fromJSON))}});function history(e={}){return[historyField_,historyConfig.of(e),EditorView.domEventHandlers({beforeinput(e,t){return"historyUndo"==e.inputType?undo(t):"historyRedo"==e.inputType&&redo(t)}})]}function cmd(n,r){return function({state:e,dispatch:t}){let i=e.field(historyField_,!1);if(!i)return!1;e=i.pop(n,e,r);return!!e&&(t(e),!0)}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,t,i,n,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(e=this.startSelection)||void 0===e?void 0:e.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e){let t=none$1;for(var i of e.startState.facet(invertedEffects)){i=i(e);i.length&&(t=t.concat(i))}return!t.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),t,void 0,e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(e,t,i,n){let r=e.slice(i+20a.push(e,t)),t.iterChangedRanges((e,t,i,n)=>{for(let e=0;ee.empty!=i.ranges[t].empty).length}function conc(e,t){return e.length?t.length?e.concat(t):e:t}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(i,n){if(i.length){let e=i[i.length-1],t=e.selectionsAfter.slice(Math.max(0,e.selectionsAfter.length-MaxSelectionsPerEvent));return t.length&&t[t.length-1].eq(n)?i:(t.push(n),updateBranch(i,i.length-1,1e9,e.setSelAfter(t)))}return[HistEvent.selection([n])]}function popSelection(e){let t=e[e.length-1],i=e.slice();return i[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),i}function addMappingToBranch(t,e){if(!t.length)return t;let i=t.length,n=none$1;for(;i;){var r=mapEvent(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[HistEvent.selection(n)]:none$1}function mapEvent(e,t,i){var n=conc(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):none$1,i);if(!e.changes)return HistEvent.selection(n);var r=e.changes.map(t),s=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(s):s;return new HistEvent(r,StateEffect.mapEffects(e.effects,t),i,e.startSelection.map(s),n)}class HistoryState{constructor(e,t,i=0,n=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,t,i,n,r){let s=this.done,a=s[s.length-1];return s=a&&a.changes&&t-this.prevTime-1e.id-t.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(t,i){if(!i.length)return t;var e,n=i[0].instances.find(e=>e.base==t&&sameArray(i,e.modified));if(n)return n;let r=[],s=new Tag(r,t,i);for(e of i)e.instances.push(s);var a,o=permute(i);for(a of t.set)for(var l of o)r.push(Modifier.get(a,l));return s}}function sameArray(e,i){return e.length==i.length&&e.every((e,t)=>e==i[t])}function permute(t){let i=[t];for(let e=0;ee.scope)?void 0:Object.create(null);return(e,t)=>{var i,n=o&&o[e.id];if(void 0!==n)return n;let r=null;for(i of a){var s=i.match(e,t);s&&(r=r?r+" "+s:s)}return o&&(o[e.id]=r),r}}static define(e,t){return new HighlightStyle(e,t||{})}static get(e,t,i){let n=getHighlightStyle(e);return n&&n(t,i||NodeType.none)}}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlightStyle(e.state))}update(e){var t=syntaxTree(e.state),i=getHighlightStyle(e.state),n=i!=e.startState.facet(highlightStyle);t.length{n.add(e,t,this.markCache[i]||(this.markCache[i]=Decoration.mark({class:i})))});return n.finish()}}const treeHighlighter=Prec.fallback(ViewPlugin.fromClass(TreeHighlighter,{decorations:e=>e.decorations})),nodeStack=[""];function highlightTreeRange(e,t,i,u,n){let r=t,p="",O=e.topNode.cursor;function f(e,t){p&&n(r,e,p),r=e,p=t}!function r(s,a,o){let{type:l,from:c,to:h}=O;if(!(i<=c||h<=t)){nodeStack[a]=l.name,l.isTop&&(o=l);let e=s,t=l.prop(ruleNodeProp),i=!1;for(;t;){if(!t.context||matchContext(t.context,nodeStack,a)){for(var d of t.tags)(d=u(d,o))&&(e&&(e+=" "),e+=d,1==t.mode?s+=(s?" ":"")+d:0==t.mode&&(i=!0));break}t=t.next}let n=c;if(!i&&O.firstChild()){for(;O.from>n&&p!=e&&f(n,e),n=O.to,r(s,a+1,o),O.nextSibling(););O.parent()}h>n&&p!=e&&f(n,e)}}("",0,e.type),f(i,"")}function matchContext(i,n,r){if(i.length>r-1)return!1;for(let e=r-1,t=i.length-1;0<=t;t--,e--){var s=i[t];if(s&&s!=n[e])return!1}return!0}const t=Tag.define,comment=t(),name=t(),typeName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags$1={comment:comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name,variableName:t(name),typeName:typeName,tagName:t(typeName),propertyName:t(name),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal,string:string,docString:t(string),character:t(string),number:number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword:keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),operator:operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation:punctuation,separator:t(punctuation),bracket:bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content:content,heading:heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta:meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()},classHighlightStyle=HighlightStyle.define([{tag:tags$1.link,class:"cmt-link"},{tag:tags$1.heading,class:"cmt-heading"},{tag:tags$1.emphasis,class:"cmt-emphasis"},{tag:tags$1.strong,class:"cmt-strong"},{tag:tags$1.keyword,class:"cmt-keyword"},{tag:tags$1.atom,class:"cmt-atom"},{tag:tags$1.bool,class:"cmt-bool"},{tag:tags$1.url,class:"cmt-url"},{tag:tags$1.labelName,class:"cmt-labelName"},{tag:tags$1.inserted,class:"cmt-inserted"},{tag:tags$1.deleted,class:"cmt-deleted"},{tag:tags$1.literal,class:"cmt-literal"},{tag:tags$1.string,class:"cmt-string"},{tag:tags$1.number,class:"cmt-number"},{tag:[tags$1.regexp,tags$1.escape,tags$1.special(tags$1.string)],class:"cmt-string2"},{tag:tags$1.variableName,class:"cmt-variableName"},{tag:tags$1.local(tags$1.variableName),class:"cmt-variableName cmt-local"},{tag:tags$1.definition(tags$1.variableName),class:"cmt-variableName cmt-definition"},{tag:tags$1.special(tags$1.variableName),class:"cmt-variableName2"},{tag:tags$1.typeName,class:"cmt-typeName"},{tag:tags$1.namespace,class:"cmt-namespace"},{tag:tags$1.macroName,class:"cmt-macroName"},{tag:tags$1.propertyName,class:"cmt-propertyName"},{tag:tags$1.operator,class:"cmt-operator"},{tag:tags$1.comment,class:"cmt-comment"},{tag:tags$1.meta,class:"cmt-meta"},{tag:tags$1.invalid,class:"cmt-invalid"},{tag:tags$1.punctuation,class:"cmt-punctuation"}]);class CompositeBlock{constructor(e,t,i,n,r,s,a){this.type=e,this.value=t,this.from=i,this.hash=n,this.end=r,this.children=s,this.positions=a}static create(e,t,i,n,r){n=n+(n<<8)+e+(t<<4)|0;return new CompositeBlock(e,t,i,n,r,[],[])}toTree(e,t=this.end){var i=this.children.length-1;0<=i&&(t=Math.max(t,this.positions[i]+this.children[i].length+this.from));t=new Tree(e.types[this.type],this.children,this.positions,t-this.from).balance(2048);return stampContext(t.children,this.hash),t}copy(){return new CompositeBlock(this.type,this.value,this.from,this.hash,this.end,this.children.slice(),this.positions.slice())}}!function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.URL=33]="URL",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeInfo=40]="CodeInfo",e[e.LinkTitle=41]="LinkTitle",e[e.LinkLabel=42]="LinkLabel"}(Type=Type||{});class LeafBlock{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class Line{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){var e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return skipSpace(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(t,i=0,n=0){for(let e=i;e=t.stack[i.depth+1].value+i.baseIndent)return!0;if(i.indent>=i.baseIndent+4)return!1;var n=(e.type==Type.OrderedList?isOrderedList:isBulletList)(i,t,!1);return 0e.pos+9||46!=r&&41!=r||ne.pos+1||49!=e.next)?-1:n+1-e.pos}function isAtxHeading(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,ProcessingEnd=/\?>/,HTMLBlockStyle=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(r);if(e)return t.append(elt(Type.Comment,n,n+1+e[0].length));e=/^\?[^]*?\?>/.exec(r);if(e)return t.append(elt(Type.ProcessingInstruction,n,n+1+e[0].length));r=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);if(!r)return-1;let s=[];if(t.parser.htmlParser){let e=t.parser.htmlParser.startParse(stringInput(t.slice(n,n+1+r[0].length)),0,{}),i;for(;!(i=e.advance()););s=i.children.map((e,t)=>new TreeElement(e,n+i.positions[t]))}return t.append(elt(Type.HTMLTag,n,n+1+r[0].length,s))},Emphasis(e,t,i){if(95!=t&&42!=t)return-1;let n=i+1;for(;e.char(n)==t;)n++;var r=e.slice(i-1,i),s=e.slice(n,n+1),a=Punctuation.test(r),o=Punctuation.test(s),l=/\s|^$/.test(r),r=/\s|^$/.test(s),s=!r&&(!o||l||a),r=!l&&(!a||r||o),a=s&&(42==t||!r||a),o=r&&(42==t||!s||o);return e.append(new InlineDelimiter(95==t?EmphasisUnderscore:EmphasisAsterisk,i,n,(a?1:0)|(o?2:0)))},HardBreak(t,e,i){if(92==e&&10==t.char(i+1))return t.append(elt(Type.HardBreak,i,i+2));if(32==e){let e=i+1;for(;32==t.char(e);)e++;if(10==t.char(e)&&e>=i+2)return t.append(elt(Type.HardBreak,i,e+1))}return-1},Link(e,t,i){return 91==t?e.append(new InlineDelimiter(LinkStart,i,i+1,1)):-1},Image(e,t,i){return 33==t&&91==e.char(i+1)?e.append(new InlineDelimiter(ImageStart,i,i+2,1)):-1},LinkEnd(i,e,t){if(93!=e)return-1;for(let e=i.parts.length-1;0<=e;e--){var n=i.parts[e];if(n instanceof InlineDelimiter&&(n.type==LinkStart||n.type==ImageStart)){if(!n.side||i.skipSpace(n.to)==t&&!/[(\[]/.test(i.slice(t+1,t+2)))return i.parts[e]=null,-1;var r=i.takeContent(e),r=i.parts[e]=finishLink(i,r,n.type==LinkStart?Type.Link:Type.Image,n.from,t+1);if(n.type==LinkStart)for(let t=0;tr?elt(Type.URL,r+s,i+s):i==n.length&&null}}function parseLinkTitle(i,n,r){var e=i.charCodeAt(n);if(39!=e&&34!=e&&40!=e)return!1;var s=40==e?41:e;for(let e=n+1,t=!1;e=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,n,r){return this.append(new InlineDelimiter(e,t,i,(n?1:0)|(r?2:0)))}addElement(e){return this.append(e)}resolveMarkers(t){for(let a=t;a=t;s--){var e=this.parts[s];if(e instanceof InlineDelimiter&&1&e.side&&e.type==o.type&&!(l&&(1&o.side||2&e.side)&&(e.to-e.from+c)%3==0&&((e.to-e.from)%3||c%3))){r=e;break}}if(r){let e=o.type.resolve,t=[],i=r.from,n=o.to;l&&(h=Math.min(2,r.to-r.from,c),i=r.to-h,n=o.from+h,e=1==h?"Emphasis":"StrongEmphasis"),r.type.mark&&t.push(this.elt(r.type.mark,i,r.to));for(let e=s+1;e(e?e-1:0))return!1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;0=n)return this.fragment.from<=t;if(!i.childAfter(n))return!1}}matches(e){var t=this.cursor.tree;return t&&ContextHash.get(t)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,n=e.lineStart,r=n,s=e.block.children.length,a=r,o=s;for(;;){if(t.to-i>=this.fragmentEnd){if(t.type.isAnonymous&&t.firstChild())continue;break}if(e.addNode(t.tree,t.from-i),t.type.is("Block")&&(NotLast.indexOf(t.type.id)<0?(r=t.to-i,s=e.block.children.length):(r=a,s=o,a=t.to-i,o=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>s;)e.block.children.pop(),e.block.positions.pop();return r-n}}const parser$4=new MarkdownParser(new NodeSet(nodeTypes),null,null,Object.keys(DefaultBlockParsers).map(e=>DefaultBlockParsers[e]),Object.keys(DefaultBlockParsers).map(e=>DefaultLeafBlocks[e]),Object.keys(DefaultBlockParsers),DefaultEndLeaf,DefaultSkipMarkup,Object.keys(DefaultInline).map(e=>DefaultInline[e]),Object.keys(DefaultInline)),StrikethroughDelim={resolve:"Strikethrough",mark:"StrikethroughMark"},Strikethrough={defineNodes:["Strikethrough","StrikethroughMark"],parseInline:[{name:"Strikethrough",parse(e,t,i){return 126!=t||126!=e.char(i+1)?-1:e.addDelimiter(StrikethroughDelim,i,i+2,!0,!0)},after:"Emphasis"}]};function parseRow(t,i,n=0,r,s=0){let a=0,o=!0,l=-1,c=-1,h=!1;var d=()=>{r.push(t.elt("TableCell",s+l,s+c,t.parser.parseInline(i.slice(l,c),s+l)))};for(let e=n;e{if(e!=s||t.char(i+1)==s)return-1;let n=[t.elt(o,i,i+1)];for(let e=i+1;et%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){var n=e.parser.context;return new Stack(e,[],t,i,i,0,[],0,n?new StackContext(n,n.start):null,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t=e>>19,i=65535&e;let{parser:n}=this.p;var r=n.dynamicPrecedence(i);if(r&&(this.score+=r),0==t)return is;)this.stack.pop();this.reduceContext(i)}storeNode(t,i,n,r=4,e=!1){if(0==t){let e=this,t=this.buffer.length;if(0==t&&e.parent&&(t=e.bufferBase-e.parent.bufferBase,e=e.parent),0=i)return void(e.buffer[t-2]=n)}}if(e&&this.pos!=n){let e=this.buffer.length;if(0n;)this.buffer[e]=this.buffer[e-4],this.buffer[e+1]=this.buffer[e-3],this.buffer[e+2]=this.buffer[e-2],this.buffer[e+3]=this.buffer[e-1],e-=4,4this.pos||r<=i.maxNode)&&(this.pos=s,i.stateFlag(t,1)||(this.reducePos=s)),this.pushState(t,e),r<=i.maxNode&&this.buffer.push(r,e,s,4),this.shiftContext(r)}else r<=this.p.parser.maxNode&&this.buffer.push(r,this.pos,s,4),this.pos=s}apply(e,t,i){65536&e?this.reduce(e):this.shift(e,t,i)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);var n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(t,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this.p.input,this))}split(){let e=this,t=e.buffer.length;for(;0e.reducePos;)t-=4;for(var i=e.buffer.slice(t),n=e.bufferBase+t;e&&n==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,e)}recoverByDelete(e,t){var i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=200}canShift(t){for(let e=new SimulatedStack(this);;){var i=this.p.parser.stateSlot(e.top,4)||this.p.parser.hasAction(e.top,t);if(0==(65536&i))return!0;if(0==i)return!1;e.reduce(i)}}get ruleStart(){for(let e=this.state,t=this.stack.length;;){var i=this.p.parser.stateSlot(e,5);if(!(65536&i))return 0;if(t-=3*(i>>19),(65535&i)>19,o=65535&s;if(-1>19),s=this.stack[1+s];if(null==t||s1&t&&e==i)||n.push(r[e],i)}r=n}let n=[];for(let t=0;t>19;0==e?(this.rest==this.stack.stack&&(this.rest=this.rest.slice()),this.rest.push(this.top,0,0),this.offset+=3):this.offset-=3*(e-1);t=this.stack.p.parser.getGoto(this.rest[this.offset-3],t,!0);this.top=t}}class StackBufferCursor{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,0==this.index&&this.maybeNext()}static create(e){return new StackBufferCursor(e,e.bufferBase+e.buffer.length,e.buffer.length)}maybeNext(){var e=this.stack.parent;null!=e&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class Token{constructor(){this.start=-1,this.value=-1,this.end=-1}accept(e,t){this.value=e,this.end=t}}class TokenGroup{constructor(e,t){this.data=e,this.id=t}token(e,t,i){readToken(this.data,e,t,i,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function readToken(i,e,n,r,t){let s=0,a=1<>1,u=l+d+(d<<1),p=i[u],O=i[u+1];if(ht)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,t-5)):Math.min(e.length,Math.max(n.from+1,t+5));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:e.length}}class FragmentCursor{constructor(e){this.fragments=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){var e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e=this.safeFrom?r:null;r instanceof TreeBuffer?(this.index[t]++,this.nextStart=n+r.length):(this.index[t]++,n+r.length>=e&&(this.trees.push(r),this.start.push(n),this.index.push(0)))}else this.trees.pop(),this.start.pop(),this.index.pop()}}}class CachedToken extends Token{constructor(){super(...arguments),this.extended=-1,this.mask=0,this.context=0}clear(e){this.start=e,this.value=this.extended=-1}}const dummyToken=new Token;class TokenCache{constructor(e){this.tokens=[],this.mainToken=dummyToken,this.actions=[],this.tokens=e.tokenizers.map(e=>new CachedToken)}getActions(n,r){let s=0,a=null,{parser:e}=n.p,{tokenizers:o}=e;var l=e.stateSlot(n.state,3),c=n.curContext?n.curContext.hash:0;for(let i=0;ih))break}}for(;this.actions.length>s;)this.actions.pop();return a||(a=dummyToken,a.start=n.pos,n.pos==r.length?a.accept(n.p.parser.eofTerm,n.pos):a.accept(0,n.pos+1)),this.mainToken=a,this.actions}updateCachedToken(i,e,n,r){if(i.clear(n.pos),e.token(r,i,n),-1>1)){0==(1&s)?i.value=s>>1:i.extended=s>>1;break}}}else n.pos==r.length?i.accept(n.p.parser.eofTerm,n.pos):i.accept(0,n.pos+1)}putAction(t,e,i,n){for(let e=0;ei)n.push(o);else if(l=this.checkNest(o))(!a||a.stack.scorec)for(n.sort((e,t)=>t.score-e.score);n.length>c;)n.pop();n.some(e=>e.reducePos>i)&&this.recovering--}else if(1 ":"";if(this.fragments){var t=i.curContext&&i.curContext.tracker.strict,l=t?i.curContext.hash:0;for(let e=this.fragments.nodeAt(s);e;){var c=this.parser.nodeSet.types[e.type.id]==e.type?a.getGoto(i.state,e.type.id):-1;if(-1s?n:r).push(e)}return!1}advanceFully(e,t){for(var i=e.pos;;){var n=this.checkNest(e);if(n)return n;if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return pushStackDedup(e,t),!0}}runRecovery(a,o,l){let c=null,h=!1,d;for(let s=0;s ":"";if(e.deadEnd){if(h)continue;h=!0,e.restart(),verbose&&console.log(p+this.stackID(e)+" (restarted)");var O=this.advanceFully(e,l);if(O){!0!==O&&(d=O);continue}}let n=e.split(),r=p;for(let e=0;n.forceReduce()&&e<10;e++){verbose&&console.log(r+this.stackID(n)+" (via force-reduce)");var f=this.advanceFully(n,l);if(f){!0!==f&&(d=f);break}verbose&&(r=this.stackID(n)+" -> ")}for(u of e.recoverByInsert(t))verbose&&console.log(p+this.stackID(u)+" (via recover-insert)"),this.advanceFully(u,l);this.input.length>e.pos?(i==e.pos&&(i++,t=0),e.recoverByDelete(t,i),verbose&&console.log(p+this.stackID(e)+` (via recover-delete ${this.parser.getName(t)})`),pushStackDedup(e,l)):(!c||c.scored.stack.score){d=void 0;break}return d&&this.startNested(d),null}forceFinish(){let e=this.stacks[0].split();return this.nested&&this.finishNested(e,this.nested.forceFinish()),this.stackToTree(e.forceAll())}stackToTree(e,t=e.pos){return this.parser.context&&e.emitContext(),Tree.build({buffer:StackBufferCursor.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.startPos,length:t-this.startPos,minRepeatType:this.parser.minRepeatTerm})}checkNest(e){var t=this.parser.findNested(e.state);if(!t)return null;let i=t.value;return"function"==typeof i&&(i=i(this.input,e)),i?{stack:e,info:t,spec:i}:null}startNested(e){let{stack:t,info:i,spec:n}=e;this.stacks=[t],this.nestEnd=this.scanForNestEnd(t,i.end,n.filterEnd),this.nestWrap="number"==typeof n.wrapType?this.parser.nodeSet.types[n.wrapType]:n.wrapType||null,n.startParse?this.nested=n.startParse(this.input.clip(this.nestEnd),t.pos,this.context):this.finishNested(t)}scanForNestEnd(t,i,n){for(let e=t.pos;ee;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash,this.strict=!1!==e.strict}}class Parser{constructor(i){if(this.bufferLength=DefaultBufferLength,this.strict=!1,this.cachedDialect=null,13!=i.version)throw new RangeError(`Parser version (${i.version}) doesn't match runtime version (13)`);let t=decodeArray(i.tokenData),n=i.nodeNames.split(" ");this.minRepeatTerm=n.length,this.context=i.context;for(let e=0;ei.topRules[e][1]);this.nodeSet=new NodeSet(n.map((e,t)=>NodeType.define({name:t>=this.minRepeatTerm?void 0:e,id:t,props:r[t],top:-1"number"==typeof e?new TokenGroup(t,e):e),this.topRules=i.topRules,this.nested=(i.nested||[]).map(([e,t,i,n])=>({name:e,value:t,end:new TokenGroup(decodeArray(i),0),placeholder:n})),this.dialects=i.dialects||{},this.dynamicPrecedences=i.dynamicPrecedences||null,this.tokenPrecTable=i.tokenPrec,this.termNames=i.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}parse(e,t=0,i={}){"string"==typeof e&&(e=stringInput(e));let n=new Parse(this,e,t,i);for(;;){var r=n.advance();if(r)return r}}startParse(e,t=0,i={}){return"string"==typeof e&&(e=stringInput(e)),new Parse(this,e,t,i)}getGoto(t,i,n=!1){var r=this.goto;if(i>=r[0])return-1;for(let e=r[i+1];;){var s=r[e++],a=1&s,o=r[e++];if(a&&n)return o;for(var l=e+(s>>1);e>10]:null}validAction(t,i){if(i==this.stateSlot(t,4))return!0;for(let e=this.stateSlot(t,1);;e+=3){if(65535==this.data[e]){if(1!=this.data[e+1])return!1;e=pair(this.data,e+2)}if(i==pair(this.data,e+1))return!0}}nextStates(t){let n=[];for(let e=this.stateSlot(t,1);;e+=3){if(65535==this.data[e]){if(1!=this.data[e+1])break;e=pair(this.data,e+2)}if(0==(1&this.data[e+2])){let i=this.data[e+1];n.some((e,t)=>1&t&&e==i)||n.push(this.data[e],i)}}return n}overrides(e,t){t=findOffset(this.data,this.tokenPrecTable,t);return t<0||findOffset(this.data,this.tokenPrecTable,e){var e=i.tokenizers.find(e=>e.from==t);return e?e.to:t})),i.dialect&&(e.dialect=this.parseDialect(i.dialect)),i.nested&&(e.nested=this.nested.map(e=>Object.prototype.hasOwnProperty.call(i.nested,e.name)?{name:e.name,value:i.nested[e.name],end:e.end,placeholder:e.placeholder}:e)),null!=i.strict&&(e.strict=i.strict),null!=i.bufferLength&&(e.bufferLength=i.bufferLength),e}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get hasNested(){return 0!1);if(e)for(var i of e.split(" ")){i=n.indexOf(i);0<=i&&(t[i]=!0)}let r=null;for(let i=0;i{let n=t.start,r=e.get(n),s;if(r<0&&i.context&&t.accept(missingCloseTag,t.start),r==lessThan){n++,(s=e.get(n)==slash$1)&&n++;var a=tagNameAfter(e,n);if(void 0!==a){if(!a)return t.accept(s?IncompleteCloseTag:StartTag,n);e=i.context?i.context.name:null;if(s){if(a==e)return t.accept(StartCloseTag,n);if(e&&implicitlyClosed[e])return t.accept(missingCloseTag,t.start);if(i.dialectEnabled(Dialect_noMatch))return t.accept(StartCloseTag,n);for(let e=i.context;e;e=e.parent)if(e.name==a)return;t.accept(MismatchedStartCloseTag,n)}else e&&closeOnOpen[e]&&closeOnOpen[e][a]?t.accept(missingCloseTag,t.start):t.accept(StartTag,n)}}}),selfClosed=new ExternalTokenizer((e,t,i)=>{let n=e.get(t.start),r=t.start+1;if(n==slash$1){if(e.get(r)!=greaterThan)return;r++}else if(n!=greaterThan)return;i.context&&selfClosers[i.context.name]&&t.accept(SelfCloseEndTag,r)}),commentContent$1=new ExternalTokenizer((e,t)=>{let i=t.start,n=0;for(;;){var r=e.get(i);if(r<0)break;if(i++,r=="--\x3e".charCodeAt(n)){if(n++,3==n){i-=3;break}}else n=0}i>t.start&&t.accept(commentContent,i)}),openTag=/^<\/?\s*([\.\-\:\w\xa1-\uffff]+)/;function tagName(e){let t=openTag.exec(e);return t?t[1].toLowerCase():null}function attributes(i){let n=openTag.exec(i),r={};if(n){let e=/\s*([\.\-\:\w\xa1-\uffff]+)\s*(?:=\s*(?:"([^"]*)"|'([^']*)'|([^\s=<>"'/]+)))?/g,t;for(e.lastIndex=n.index+n[0].length;t=e.exec(i);)r[t[1]]=t[4]||t[3]||t[2]||t[1]}return r}function skip(t){return e=>tagName(e)==t}function resolveContent(e){let o=null;for(var t of e)o=o||Object.create(null),(o[t.tag]||(o[t.tag]=[])).push({attrs:t.attrs,value:{filterEnd:skip(t.tag),startParse:t.parser.startParse.bind(t.parser)}});return function(e,t){var i=e.read(t.ruleStart,t.pos);let n=tagName(i),r,s;if(!n)return null;if(o&&(r=o[n]))for(var a of r)if(!a.attrs||a.attrs(s=s||attributes(i)))return a.value;return"script"==n||"textarea"==n||"style"==n?{filterEnd:skip(n),wrapType:RawText}:null}}const elementContent=resolveContent([]);function configureNesting(e){return{elementContent:resolveContent(e)}}const parser$3=Parser.deserialize({version:13,states:"'OOVOXOOOtQ`O'#CgS!eOXO'#CfOOOP'#Cf'#CfO!oOdO'#CqO!wQ`O'#CsOOOP'#DR'#DROOOP'#Cv'#CvQVOXOOO!|QrO,59ROOOP'#Cz'#CzO#XOXO'#DWO#cOPO,59QOOOS'#C{'#C{O#kOdO,59]OOOP,59],59]O#sQ`O,59_OOOP-E6t-E6tO#xQrO'#CiOOQQ'#Cw'#CwO$WQrO1G.mOOOP1G.m1G.mOOOP1G.v1G.vOOOP-E6x-E6xO$cQ`O'#CoOOOP1G.l1G.lOOOS-E6y-E6yOOOP1G.w1G.wOOOP1G.y1G.yO$hQ!bO,59TOOQQ-E6u-E6uOOOP7+$X7+$XOOOP7+$b7+$bO$sQ`O,59ZO$xO#tO'#ClO%WO&jO'#ClOOQQ1G.o1G.oOOOP1G.u1G.uOOOO'#Cx'#CxO%fO#tO,59WOOQQ,59W,59WOOOO'#Cy'#CyO%tO&jO,59WOOOO-E6v-E6vOOQQ1G.r1G.rOOOO-E6w-E6w",stateData:"&X~OtOS~OPPORTOSUOVUOWUOXUOfUOhVO{SO~O[XO~OPPORTOSUOVUOWUOXUOfUO{SO~OQzPqzP~PyOr]O|_O~O[`O~OTfO^bObeO~OQzXqzX~PyOQhOqiO~Or]O|kO~OblO~O_mOT]X^]Xb]X~OTpO^bOboO~O[qO~OatOvrOxsO~ObuO~OWvOXvOvxOwvO~OWyOXyOxxOyyO~OWvOXvOv|OwvO~OWyOXyOx|OyyO~O{fhf~",goto:"#k{PPPPPPPPPP|!SP!YPP!^PP!a!d|P|PP!j!p!v!|#S#YPPPPP#`PPPP#hXUOQWZXQOQWZTcXdRtmRi[XROQWZQWORaWQdXRndQwrR{wQzsR}zQZQRgZQ^SRj^SVOWTYQZR[Q",nodeNames:"⚠ StartTag StartCloseTag StartCloseTag IncompleteCloseTag SelfCloseEndTag Document Text EntityReference CharacterReference Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag DoctypeDecl RawText",maxTerm:44,context:elementContext,nodeProps:[[NodeProp.closedBy,-2,1,2,"EndTag SelfCloseEndTag",11,"CloseTag"],[NodeProp.openedBy,5,"StartTag",18,"StartTag StartCloseTag",19,"OpenTag"]],skippedNodes:[0,25],repeatNodeCount:6,tokenData:"!#`!aR!WOX$kXY)sYZ)sZ]$k]^)s^p$kpq)sqr$krs*zsv$kvw+dwx2wx}$k}!O3d!O!P$k!P!Q7]!Q![$k![!]8s!]!^$k!^!_>`!_!`!!n!`!a8R!a!c$k!c!}8s!}#R$k#R#S8s#S#T$k#T#o8s#o$f$k$f$g&R$g%W$k%W%o8s%o%p$k%p&a8s&a&b$k&b1p8s1p4U$k4U4d8s4d4e$k4e$IS8s$IS$I`$k$I`$Ib8s$Ib$Kh$k$Kh%#t8s%#t&/x$k&/x&Et8s&Et&FV$k&FV;'S8s;'S;:jgWw`ypOq(kqr?Prs'gsv(kwx(]x!a(k!a!bKh!b~(k!R?WZw`ypOr(krs'gsv(kwx(]x}(k}!O?y!O!f(k!f!gAP!g#W(k#W#XGx#X~(k!R@QVw`ypOr(krs'gsv(kwx(]x}(k}!O@g!O~(k!R@pTw`yp{POr(krs'gsv(kwx(]x~(k!RAWVw`ypOr(krs'gsv(kwx(]x!q(k!q!rAm!r~(k!RAtVw`ypOr(krs'gsv(kwx(]x!e(k!e!fBZ!f~(k!RBbVw`ypOr(krs'gsv(kwx(]x!v(k!v!wBw!w~(k!RCOVw`ypOr(krs'gsv(kwx(]x!{(k!{!|Ce!|~(k!RClVw`ypOr(krs'gsv(kwx(]x!r(k!r!sDR!s~(k!RDYVw`ypOr(krs'gsv(kwx(]x!g(k!g!hDo!h~(k!RDvWw`ypOrDorsE`svDovwEtwxFdx!`Do!`!aG`!a~DoqEeTypOvE`vxEtx!`E`!`!aFV!a~E`PEwRO!`Et!`!aFQ!a~EtPFVOhPqF^QyphPOv'gx~'gaFiVw`OrFdrsEtsvFdvwEtw!`Fd!`!aGO!a~FdaGVRw`hPOr(]sv(]w~(]!RGiTw`yphPOr(krs'gsv(kwx(]x~(k!RHPVw`ypOr(krs'gsv(kwx(]x#c(k#c#dHf#d~(k!RHmVw`ypOr(krs'gsv(kwx(]x#V(k#V#WIS#W~(k!RIZVw`ypOr(krs'gsv(kwx(]x#h(k#h#iIp#i~(k!RIwVw`ypOr(krs'gsv(kwx(]x#m(k#m#nJ^#n~(k!RJeVw`ypOr(krs'gsv(kwx(]x#d(k#d#eJz#e~(k!RKRVw`ypOr(krs'gsv(kwx(]x#X(k#X#YDo#Y~(k!RKoWw`ypOrKhrsLXsvKhvwLmwxM}x!aKh!a!b! e!b~KhqL^TypOvLXvxLmx!aLX!a!bM[!b~LXPLpRO!aLm!a!bLy!b~LmPL|RO!`Lm!`!aMV!a~LmPM[OfPqMaTypOvLXvxLmx!`LX!`!aMp!a~LXqMwQypfPOv'gx~'gaNSVw`OrM}rsLmsvM}vwLmw!aM}!a!bNi!b~M}aNnVw`OrM}rsLmsvM}vwLmw!`M}!`!a! T!a~M}a! [Rw`fPOr(]sv(]w~(]!R! lWw`ypOrKhrsLXsvKhvwLmwxM}x!`Kh!`!a!!U!a~Kh!R!!_Tw`ypfPOr(krs'gsv(kwx(]x~(k!V!!yV_SVPw`ypOr&Rrs&qsv&Rwx'rx!^&R!^!_(k!_~&R",tokenizers:[tagStart,selfClosed,commentContent$1,0,1,2,3,4,5],topRules:{Document:[0,6]},nested:[["elementContent",elementContent,"%S~RP!^!_U~XP!P!Q[~_dXY[YZ[]^[pq[![!]!m!c!}!m#R#S!m#T#o!m%W%o!m%p&a!m&b1p!m4U4d!m4e$IS!m$I`$Ib!m$Kh%#t!m&/x&Et!m&FV;'S!m;'S;:j$|?&r?Ah!m?BY?Mn!m~!pkXY$eYZ$e]^$epq$e}!O!m!O!P!m!Q![!m![!]!m!`!a$w!c!}!m#R#S!m#T#o!m$}%O!m%W%o!m%p&a!m&b1p!m1p4U!m4U4d!m4e$IS!m$I`$Ib!m$Je$Jg!m$Kh%#t!m&/x&Et!m&FV;'S!m;'S;:j$|?&r?Ah!m?BY?Mn!m~$hTXY$eYZ$e]^$epq$e!`!a$w~$|Op~~%PP;=`<%l!m",42]],dialects:{noMatch:0},tokenPrec:234}),descendantOp=92,Unit=1,callee=93,identifier$1=94,space$1=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],colon=58,parenL=40,underscore=95,bracketL=91,dash=45,period=46,hash=35,percent=37;function isAlpha(e){return 65<=e&&e<=90||97<=e&&e<=122||161<=e}function isDigit(e){return 48<=e&&e<=57}const identifiers=new ExternalTokenizer((e,t)=>{let i=t.start,n=i,r=!1;for(;;){var s=e.get(n);if(!(isAlpha(s)||s==dash||s==underscore||r&&isDigit(s))){r&&t.accept(s==parenL?callee:identifier$1,n);break}!r&&(s!=dash||n>i)&&(r=!0),n++}}),descendant=new ExternalTokenizer((e,t)=>{space$1.includes(e.get(t.start-1))&&(!isAlpha(e=e.get(t.start))&&e!=underscore&&e!=hash&&e!=period&&e!=bracketL&&e!=colon&&e!=dash||t.accept(descendantOp,t.start))}),unitToken=new ExternalTokenizer((t,i)=>{var{start:n}=i;if(!space$1.includes(t.get(n-1))){var e=t.get(n);if(e==percent&&i.accept(Unit,n+1),isAlpha(e)){let e=n+1;for(;isAlpha(t.get(e));)e++;i.accept(Unit,e)}}}),spec_callee={__proto__:null,not:30,url:64,"url-prefix":64,domain:64,regexp:64,selector:132},spec_AtKeyword={__proto__:null,"@import":112,"@media":136,"@charset":140,"@namespace":144,"@keyframes":150,"@supports":162},spec_identifier$1={__proto__:null,not:126,only:126,from:156,to:158},parser$2=Parser.deserialize({version:13,states:"7WOYQ[OOOOQP'#Cc'#CcOOQP'#Cb'#CbO!ZQ[O'#CeO!}QXO'#C`O#UQ[O'#CgO#aQ[O'#DOO#fQ[O'#DSOOQP'#Eb'#EbO#kQdO'#DdO$SQ[O'#DqO#kQdO'#DsO$eQ[O'#DuO$pQ[O'#DxO$uQ[O'#EOO%TQ[O'#EQOOQS'#Ea'#EaOOQS'#ER'#ERQYQ[OOOOQP'#Cf'#CfOOQP,59P,59PO!ZQ[O,59PO%[Q[O'#ESO%vQWO,58zO&OQ[O,59RO#aQ[O,59jO#fQ[O,59nO%[Q[O,59rO%[Q[O,59tO%[Q[O,59uO'[Q[O'#D_OOQS,58z,58zOOQP'#Cj'#CjOOQO'#Cp'#CpOOQP,59R,59RO'cQWO,59RO'hQWO,59ROOQP'#DQ'#DQOOQP,59j,59jOOQO'#DU'#DUO'mQ`O,59nOOQS'#Cr'#CrO#kQdO'#CsO'uQvO'#CuO(|QtO,5:OOOQO'#Cz'#CzO'hQWO'#CyO)bQWO'#C{OOQS'#Ef'#EfOOQO'#Dg'#DgO)gQ[O'#DnO)uQWO'#EhO$uQ[O'#DlO*TQWO'#DoOOQO'#Ei'#EiO%yQWO,5:]O*YQpO,5:_OOQS'#Dw'#DwO*bQWO,5:aO*gQ[O,5:aOOQO'#Dz'#DzO*oQWO,5:dO*tQWO,5:jO*|QWO,5:lOOQS-E8P-E8POOQP1G.k1G.kO+pQXO,5:nOOQO-E8Q-E8QOOQS1G.f1G.fOOQP1G.m1G.mO'cQWO1G.mO'hQWO1G.mOOQP1G/U1G/UO+}Q`O1G/YO,hQXO1G/^O-OQXO1G/`O-fQXO1G/aO-|QXO'#CcO.qQWO'#D`OOQS,59y,59yO.vQWO,59yO/OQ[O,59yO/VQ[O'#CnO/^QdO'#CqOOQP1G/Y1G/YO#kQdO1G/YO/eQpO,59_OOQS,59a,59aO#kQdO,59cO/mQWO1G/jOOQS,59e,59eO/rQ!bO,59gO/zQWO'#DgO0VQWO,5:SO0[QWO,5:YO$uQ[O,5:UO$uQ[O'#EXO0dQWO,5;SO0oQWO,5:WO%[Q[O,5:ZOOQS1G/w1G/wOOQS1G/y1G/yOOQS1G/{1G/{O1QQWO1G/{O1VQdO'#D{OOQS1G0O1G0OOOQS1G0U1G0UOOQS1G0W1G0WOOQP7+$X7+$XOOQP7+$t7+$tO#kQdO7+$tO#kQdO,59zO1eQ[O'#EWO1oQWO1G/eOOQS1G/e1G/eO1oQWO1G/eO1wQXO'#EdO2OQWO,59YO2TQtO'#ETO2uQdO'#EeO3PQWO,59]O3UQpO7+$tOOQS1G.y1G.yOOQS1G.}1G.}OOQS7+%U7+%UO3^QWO1G/RO#kQdO1G/nOOQO1G/t1G/tOOQO1G/p1G/pO3cQWO,5:sOOQO-E8V-E8VO3qQXO1G/uOOQS7+%g7+%gO3xQYO'#CuO%yQWO'#EYO4QQdO,5:gOOQS,5:g,5:gO4`QpO<P!a!b$w!b!c>o!c!}$w!}#O?{#O#P$w#P#Q@W#Q#R2U#R#T$w#T#U@c#U#c$w#c#dAb#d#o$w#o#pAq#p#q2U#q#rA|#r#sBX#s#y$w#y#z%]#z$f$w$f$g%]$g#BY$w#BY#BZ%]#BZ$IS$w$IS$I_%]$I_$I|$w$I|$JO%]$JO$JT$w$JT$JU%]$JU$KV$w$KV$KW%]$KW&FU$w&FU&FV%]&FV~$wW$zQOy%Qz~%QW%VQqWOy%Qz~%Q~%bf#S~OX%QX^&v^p%Qpq&vqy%Qz#y%Q#y#z&v#z$f%Q$f$g&v$g#BY%Q#BY#BZ&v#BZ$IS%Q$IS$I_&v$I_$I|%Q$I|$JO&v$JO$JT%Q$JT$JU&v$JU$KV%Q$KV$KW&v$KW&FU%Q&FU&FV&v&FV~%Q~&}f#S~qWOX%QX^&v^p%Qpq&vqy%Qz#y%Q#y#z&v#z$f%Q$f$g&v$g#BY%Q#BY#BZ&v#BZ$IS%Q$IS$I_&v$I_$I|%Q$I|$JO&v$JO$JT%Q$JT$JU&v$JU$KV%Q$KV$KW&v$KW&FU%Q&FU&FV&v&FV~%Q^(fSOy%Qz#]%Q#]#^(r#^~%Q^(wSqWOy%Qz#a%Q#a#b)T#b~%Q^)YSqWOy%Qz#d%Q#d#e)f#e~%Q^)kSqWOy%Qz#c%Q#c#d)w#d~%Q^)|SqWOy%Qz#f%Q#f#g*Y#g~%Q^*_SqWOy%Qz#h%Q#h#i*k#i~%Q^*pSqWOy%Qz#T%Q#T#U*|#U~%Q^+RSqWOy%Qz#b%Q#b#c+_#c~%Q^+dSqWOy%Qz#h%Q#h#i+p#i~%Q^+wQ!UUqWOy%Qz~%Q~,QUOY+}Zr+}rs,ds#O+}#O#P,i#P~+}~,iOj~~,lPO~+}_,tWsPOy%Qz!Q%Q!Q![-^![!c%Q!c!i-^!i#T%Q#T#Z-^#Z~%Q^-cWqWOy%Qz!Q%Q!Q![-{![!c%Q!c!i-{!i#T%Q#T#Z-{#Z~%Q^.QWqWOy%Qz!Q%Q!Q![.j![!c%Q!c!i.j!i#T%Q#T#Z.j#Z~%Q^.qWhUqWOy%Qz!Q%Q!Q![/Z![!c%Q!c!i/Z!i#T%Q#T#Z/Z#Z~%Q^/bWhUqWOy%Qz!Q%Q!Q![/z![!c%Q!c!i/z!i#T%Q#T#Z/z#Z~%Q^0PWqWOy%Qz!Q%Q!Q![0i![!c%Q!c!i0i!i#T%Q#T#Z0i#Z~%Q^0pWhUqWOy%Qz!Q%Q!Q![1Y![!c%Q!c!i1Y!i#T%Q#T#Z1Y#Z~%Q^1_WqWOy%Qz!Q%Q!Q![1w![!c%Q!c!i1w!i#T%Q#T#Z1w#Z~%Q^2OQhUqWOy%Qz~%QY2XSOy%Qz!_%Q!_!`2e!`~%QY2lQyQqWOy%Qz~%QX2wQWPOy%Qz~%Q~3QUOY2}Zw2}wx,dx#O2}#O#P3d#P~2}~3gPO~2}_3oQaVOy%Qz~%Q~3zO`~_4RSTPlSOy%Qz!_%Q!_!`2e!`~%Q_4fUlS!OPOy%Qz!O%Q!O!P4x!P!Q%Q!Q![7_![~%Q^4}SqWOy%Qz!Q%Q!Q![5Z![~%Q^5bWqW#ZUOy%Qz!Q%Q!Q![5Z![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q^6PWqWOy%Qz{%Q{|6i|}%Q}!O6i!O!Q%Q!Q![6z![~%Q^6nSqWOy%Qz!Q%Q!Q![6z![~%Q^7RSqW#ZUOy%Qz!Q%Q!Q![6z![~%Q^7fYqW#ZUOy%Qz!O%Q!O!P8U!P!Q%Q!Q![7_![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q^8]WqW#ZUOy%Qz!Q%Q!Q![8U![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q_8zQcVOy%Qz~%Q^9VUlSOy%Qz!O%Q!O!P4x!P!Q%Q!Q![7_![~%Q_9nS#VPOy%Qz!Q%Q!Q![5Z![~%Q~:PRlSOy%Qz{:Y{~%Q~:_SqWOy:Yyz:kz{;`{~:Y~:nROz:kz{:w{~:k~:zTOz:kz{:w{!P:k!P!Q;Z!Q~:k~;`OQ~~;eUqWOy:Yyz:kz{;`{!P:Y!P!Q;w!Q~:Y~US{POy%Qz!`%Q!`!a>b!a~%QX>iQ{PqWOy%Qz~%QX>rUOy%Qz!c%Q!c!}?U!}#T%Q#T#o?U#o~%QX?]Y!XPqWOy%Qz}%Q}!O?U!O!Q%Q!Q![?U![!c%Q!c!}?U!}#T%Q#T#o?U#o~%QX@QQwPOy%Qz~%Q^@]QuUOy%Qz~%QX@fSOy%Qz#b%Q#b#c@r#c~%QX@wSqWOy%Qz#W%Q#W#XAT#X~%QXA[Q!_PqWOy%Qz~%QXAeSOy%Qz#f%Q#f#gAT#g~%QXAvQ!QPOy%Qz~%Q_BRQ!PVOy%Qz~%QZB^S!OPOy%Qz!_%Q!_!`2e!`~%Q",tokenizers:[descendant,unitToken,identifiers,0,1,2,3],topRules:{StyleSheet:[0,3]},specialized:[{term:93,get:e=>spec_callee[e]||-1},{term:55,get:e=>spec_AtKeyword[e]||-1},{term:94,get:e=>spec_identifier$1[e]||-1}],tokenPrec:1060});let _properties=null;function properties(){if(!_properties&&"object"==typeof document&&document.body){let e=[];for(var t in document.body.style)/[A-Z]|^-|^(item|length)$/.test(t)||e.push(t);_properties=e.sort().map(e=>({type:"property",label:e}))}return _properties||[]}const pseudoClasses=["active","after","before","checked","default","disabled","empty","enabled","first-child","first-letter","first-line","first-of-type","focus","hover","in-range","indeterminate","invalid","lang","last-child","last-of-type","link","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-of-type","only-child","optional","out-of-range","placeholder","read-only","read-write","required","root","selection","target","valid","visited"].map(e=>({type:"class",label:e})),values=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(e=>({type:"keyword",label:e})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(e=>({type:"constant",label:e}))),tags=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(e=>({type:"type",label:e})),span=/^[\w-]*/,completeCSS=e=>{let{state:t,pos:i}=e,n=syntaxTree(t).resolve(i,-1);if("PropertyName"==n.name)return{from:n.from,options:properties(),span:span};if("ValueName"==n.name)return{from:n.from,options:values,span:span};if("PseudoClassName"==n.name)return{from:n.from,options:pseudoClasses,span:span};if("TagName"==n.name){for(let{parent:e}=n;e;e=e.parent)if("Block"==e.name)return{from:n.from,options:properties(),span:span};return{from:n.from,options:tags,span:span}}if(!e.explicit)return null;let r=n.resolve(i),s=r.childBefore(i);return s&&":"==s.name&&"PseudoClassSelector"==r.name?{from:i,options:pseudoClasses,span:span}:s&&":"==s.name&&"Declaration"==r.name||"ArgList"==r.name?{from:i,options:values,span:span}:"Block"==r.name?{from:i,options:properties(),span:span}:null},cssLanguage=LezerLanguage.define({parser:parser$2.configure({props:[indentNodeProp.add({Declaration:continuedIndent()}),foldNodeProp.add({Block:foldInside}),styleTags({"import charset namespace keyframes":tags$1.definitionKeyword,"media supports":tags$1.controlKeyword,"from to":tags$1.keyword,NamespaceName:tags$1.namespace,KeyframeName:tags$1.labelName,TagName:tags$1.typeName,ClassName:tags$1.className,PseudoClassName:tags$1.constant(tags$1.className),not:tags$1.operatorKeyword,IdName:tags$1.labelName,"FeatureName PropertyName AttributeName":tags$1.propertyName,NumberLiteral:tags$1.number,KeywordQuery:tags$1.keyword,UnaryQueryOp:tags$1.operatorKeyword,callee:tags$1.keyword,"CallTag ValueName":tags$1.atom,Callee:tags$1.variableName,Unit:tags$1.unit,"UniversalSelector NestingSelector":tags$1.definitionOperator,AtKeyword:tags$1.keyword,MatchOp:tags$1.compareOperator,"ChildOp SiblingOp, LogicOp":tags$1.logicOperator,BinOp:tags$1.arithmeticOperator,Important:tags$1.modifier,Comment:tags$1.blockComment,ParenthesizedContent:tags$1.special(tags$1.name),ColorLiteral:tags$1.color,StringLiteral:tags$1.string,":":tags$1.punctuation,"PseudoOp #":tags$1.derefOperator,"; ,":tags$1.separator,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/}}),cssCompletion=cssLanguage.data.of({autocomplete:completeCSS});function css(){return new LanguageSupport(cssLanguage,cssCompletion)}var index$3=Object.freeze({__proto__:null,css:css,cssCompletion:cssCompletion,cssLanguage:cssLanguage});const noSemi=269,incdec=1,incdecPrefix=2,templateContent=270,templateDollarBrace=271,templateEnd=272,insertSemi=273,TSExtends=3,Dialect_ts=1,newline=[10,13,8232,8233],space=[9,11,12,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288],braceR=125,braceL=123,semicolon=59,slash=47,star=42,plus=43,minus=45,dollar=36,backtick=96,backslash=92;function newlineBefore(t,i){for(let e=i-1;0<=e;e--){var n=t.get(e);if(-1{var n=t.start,r=e.get(n);(r==braceR||-1==r||newlineBefore(e,n))&&i.canShift(insertSemi)&&t.accept(insertSemi,t.start)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((e,t,i)=>{var n=t.start,r=e.get(n++);if(!(-1{var n=t.start,r=e.get(n);r!=plus&&r!=minus||r!=e.get(n+1)||(i=!newlineBefore(e,t.start)&&i.canShift(incdec),t.accept(i?incdec:incdecPrefix,n+2))},{contextual:!0}),template=new ExternalTokenizer((e,t)=>{let i=t.start,n=!1;for(;;){var r=e.get(i++);if(r<0){i-1>t.start&&t.accept(templateContent,i-1);break}if(r==backtick){i==t.start+1?t.accept(templateEnd,i):t.accept(templateContent,i-1);break}if(r==braceL&&n){i==t.start+2?t.accept(templateDollarBrace,i):t.accept(templateContent,i-2);break}if(10==r&&i>t.start+1){t.accept(templateContent,i);break}r==backslash&&i!=e.length&&i++,n=r==dollar}});function tsExtends(e,t){return"extends"==e&&t.dialectEnabled(Dialect_ts)?TSExtends:-1}const spec_identifier={__proto__:null,export:16,as:21,from:25,default:30,async:35,function:36,this:46,true:54,false:54,void:58,typeof:62,null:76,super:78,new:112,await:129,yield:131,delete:132,class:142,extends:144,public:181,private:181,protected:181,readonly:183,in:202,instanceof:204,const:206,import:238,keyof:289,unique:293,infer:299,is:333,abstract:353,implements:355,type:357,let:360,var:362,interface:369,enum:373,namespace:379,module:381,declare:385,global:389,for:410,of:419,while:422,with:426,do:430,if:434,else:436,switch:440,case:446,try:452,catch:454,finally:456,return:460,throw:464,break:468,continue:472,debugger:476},spec_word={__proto__:null,async:99,get:101,set:103,public:151,private:151,protected:151,static:153,abstract:155,readonly:159,new:337},spec_LessThan={__proto__:null,"<":119},parser$1=Parser.deserialize({version:13,states:"$,lO]QYOOO&zQ!LdO'#CgO'ROSO'#DRO)ZQYO'#DWO)kQYO'#DcO)rQYO'#DmO-iQYO'#DsOOQO'#ET'#ETO-|QWO'#ESO.RQWO'#ESO0QQ!LdO'#IgO2hQ!LdO'#IhO3UQWO'#EqO3ZQpO'#FWOOQ!LS'#Ey'#EyO3cO!bO'#EyO3qQWO'#F_O4{QWO'#F^OOQ!LS'#Ih'#IhOOQ!LQ'#Ig'#IgOOQQ'#JR'#JRO5QQWO'#HeO5VQ!LYO'#HfOOQQ'#I['#I[OOQQ'#Hg'#HgQ]QYOOO)rQYO'#DeO5_QWO'#GRO5dQ#tO'#ClO5rQWO'#ERO5}Q#tO'#ExO6iQWO'#GRO6nQWO'#GVO6yQWO'#GVO7XQWO'#GYO7XQWO'#GZO7XQWO'#G]O5_QWO'#G`O7xQWO'#GcO9WQWO'#CcO9hQWO'#GpO9pQWO'#GvO9pQWO'#GxO]QYO'#GzO9pQWO'#G|O9pQWO'#HPO9uQWO'#HVO9zQ!LZO'#HZO)rQYO'#H]O:VQ!LZO'#H_O:bQ!LZO'#HaO5VQ!LYO'#HcO)rQYO'#IjOOOS'#Hh'#HhO:mOSO,59mOOQ!LS,59m,59mO=OQbO'#CgO=YQYO'#HiO=gQWO'#IlO?fQbO'#IlO'^QYO'#IlO?mQWO,59rO@TQ&jO'#D]O@|QWO'#ETOAZQWO'#IvOAfQWO'#IuOAnQWO,5:qOAsQWO'#ItOAzQWO'#DtO5dQ#tO'#EROBYQWO'#EROBeQ`O'#ExOOQ!LS,59},59}OBmQYO,59}ODkQ!LdO,5:XOEXQWO,5:_OErQ!LYO'#IsO6nQWO'#IrOEyQWO'#IrOFRQWO,5:pOFWQWO'#IrOFfQYO,5:nOHcQWO'#EPOIjQWO,5:nOJvQWO'#DgOJ}QYO'#DlOKXQ&jO,5:wO)rQYO,5:wOOQQ'#Ei'#EiOOQQ'#Ek'#EkO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xOOQQ'#Eo'#EoOK^QYO,5;YOOQ!LS,5;_,5;_OOQ!LS,5;`,5;`OMZQWO,5;`OOQ!LS,5;a,5;aO)rQYO'#HsOM`Q!LYO,5;zOMzQWO,5:xO)rQYO,5;]ONdQpO'#IzONRQpO'#IzONkQpO'#IzON|QpO,5;hOOQO,5;r,5;rO! [QYO'#FYOOOO'#Hr'#HrO3cO!bO,5;eO! cQpO'#F[OOQ!LS,5;e,5;eO!!PQ,UO'#CqOOQ!LS'#Ct'#CtO!!dQWO'#CtO!!zQ#tO,5;wO!#RQWO,5;yO!$[QWO'#FiO!$iQWO'#FjO!$nQWO'#FnO!%pQ&jO'#FrO!&cQ,UO'#IeOOQ!LS'#Ie'#IeO!&mQWO'#IdO!&{QWO'#IcOOQ!LS'#Cr'#CrOOQ!LS'#Cx'#CxO!'TQWO'#CzOIoQWO'#FaOIoQWO'#FcO!'YQWO'#FeOIeQWO'#FfO!'_QWO'#FlOIoQWO'#FqO!'dQWO'#EUO!'{QWO,5;xO]QYO,5>POOQQ'#I_'#I_OOQQ,5>Q,5>QOOQQ-E;e-E;eO!)wQ!LdO,5:POOQ!LQ'#Co'#CoO!*hQ#tO,5TO)rQYO,5>TOOQO-E;g-E;gO!6tQWO,5?WO!6|QbO,5?WO!7TQWO,5?aOOQ!LS1G/^1G/^O!7]QpO'#DPOOQO'#In'#InO)rQYO'#InO!7zQpO'#InO!8iQpO'#D^O!8zQ&jO'#D^O!;SQYO'#D^O!;ZQWO'#ImO!;cQWO,59wO!;hQWO'#EXO!;vQWO'#IwO!YQ!LYO,5?_O!>kQ!LYO,5?_O!>rQWO,5?^O!>zQWO'#HpO!>rQWO,5?^OOQ!LQ1G0[1G0[O6nQWO,5?^OOQ!LS1G0Y1G0YO!?fQ!LdO1G0YO!@VQ!LbO,5:kOOQ!LS'#Fh'#FhO!@sQ!LdO'#IeOFfQYO1G0YO!BrQ#tO'#IoO!B|QWO,5:RO!CRQbO'#IpO)rQYO'#IpO!C]QWO,5:WOOQ!LS'#DP'#DPOOQ!LS1G0c1G0cO!CbQWO1G0cO!EsQ!LdO1G0dO!EzQ!LdO1G0dO!H_Q!LdO1G0dO!HfQ!LdO1G0dO!JmQ!LdO1G0dO!KQQ!LdO1G0dO!MqQ!LdO1G0dO!MxQ!LdO1G0dO#!]Q!LdO1G0dO#!dQ!LdO1G0dO#$XQ!LdO1G0dO#'RQ7^O'#CgO#(|Q7^O1G0tO#*wQ7^O'#IhOOQ!LS1G0z1G0zO#+[Q!LdO,5>_OOQ!LQ-E;q-E;qO#+{Q!LdO1G0dOOQ!LS1G0d1G0dO#-}Q!LdO1G0wO#.nQpO,5;jO#.sQpO,5;kO#.xQpO'#FRO#/^QWO'#FQOOQO'#I{'#I{OOQO'#Hq'#HqO#/cQpO1G1SOOQ!LS1G1S1G1SOOQO1G1]1G1]O#/qQ7^O'#IgO#/{QWO,5;tOK^QYO,5;tOOOO-E;p-E;pOOQ!LS1G1P1G1POOQ!LS,5;v,5;vO#0QQpO,5;vOOQ!LS,59`,59`O)rQYO1G1cOKXQ&jO'#HuO#0VQWO,5<[OOQ!LS,5}OOQ!LS'#Cg'#CgO#4hQ#tO,59fOOQ!LS,59f,59fO#5ZQ#tO,5;{O#5|Q#tO,5;}O#6WQWO,5z,5>zO#8gQ!LYO,5>zOOQQ1G.r1G.rO9uQWO1G.rO!+aQpO1G.rO!+iQ#tO1G.rO#8uQWO1G0YO#8zQWO'#CgO#9VQWO'#JWO#9_QWO,5=ZO#9dQWO'#JWO#9iQWO'#IQO#9wQWO,5?qO#:PQbO1G0|OOQ!LS1G1O1G1OO5_QWO1G2tO#:WQWO1G2tO#:]QWO1G2tO#:bQWO1G2tOOQQ1G2t1G2tO#:gQ#tO1G2XO6nQWO'#IuO6nQWO'#EXO6nQWO'#HzO#:xQ!LYO,5?nOOQQ1G2]1G2]O!.YQWO1G2cOHcQWO1G2`O#;TQWO1G2`OOQQ1G2a1G2aOHcQWO1G2aO#;YQWO1G2aO#;bQ&jO'#G_OOQQ1G2c1G2cO!%kQ&jO'#H|O!._Q`O1G2fOOQQ1G2f1G2fOOQQ,5=P,5=PO#;jQ#tO,5=RO5_QWO,5=RO#2pQWO,5=UO4{QWO,5=UO!+aQpO,5=UO!+iQ#tO,5=UO5dQ#tO,5=UO#;{QWO'#JUO#Y,5>YO6nQWO,5>YOOQO-E;l-E;lO#DWQ!LrO'#D|O!%kQ&jO'#DxOOQO'#Hm'#HmO#DrQ&jO,5:cOOQ!LS,5:c,5:cO#DyQ&jO'#DxO#EXQ&jO'#D|O#EmQ&jO'#D|O!%kQ&jO'#D|O#EwQWO1G/zO#E|Q`O1G/zOOQ!LS1G/z1G/zO)rQYO1G/zOHcQWO1G/zOOQ!LS1G0X1G0XO9uQWO1G0XO!+aQpO1G0XO!+iQ#tO1G0XO#FTQ!LdO1G4yO)rQYO1G4yO#FeQ!LYO1G4yO#FvQWO1G4xO6nQWO,5>[OOQO,5>[,5>[O#GOQWO,5>[OOQO-E;n-E;nO#FvQWO1G4xO#G^Q!LdO,59fO#I]Q!LdO,5;{O#K_Q!LdO,5;}O#MaQ!LdO,5<]OOQ!LS7+%t7+%tO$ iQ!LdO7+%tO$!YQWO'#HkO$!dQWO,5?ZOOQ!LS1G/m1G/mO$!lQYO'#HlO$!yQWO,5?[O$#RQbO,5?[OOQ!LS1G/r1G/rOOQ!LS7+%}7+%}O$#]Q7^O,5:XO)rQYO7+&`O$#gQ7^O,5:POOQO1G1U1G1UOOQO1G1V1G1VO$#tQMhO,5;mOK^QYO,5;lOOQO-E;o-E;oOOQ!LS7+&n7+&nOOQO7+&w7+&wOOOO1G1`1G1`O$$PQWO1G1`OOQ!LS1G1b1G1bO$$UQ!LdO7+&}OOQ!LS,5>a,5>aO$$uQWO,5>aOOQ!LS1G1v1G1vP$$zQWO'#HuPOQ!LS-E;s-E;sO$%kQ#tO1G2RO$&^Q#tO1G2TO$&hQ#tO1G2VOOQ!LS1G1o1G1oO$&oQWO'#HtO$&}QWO,5?jO$&}QWO,5?jO$'VQWO,5?jO$'bQWO,5?jOOQO1G1q1G1qO$'pQ#tO1G1pO$(QQWO'#HvO$(bQWO,5?kOHcQWO,5?kO$(jQ`O,5?kOOQ!LS1G1t1G1tO5VQ!LYO,5<_O5VQ!LYO,5<`O$(tQWO,5<`O#2kQWO,5<`O!+aQpO,5<_O$(yQWO,5d,5>dOOQO-E;v-E;vOKXQ&jO,59hO)rQYO,59hO$)uQWO1G1kOIoQWO1G1rO$)zQ!LdO7+'OOOQ!LS7+'O7+'OOFfQYO7+'OOOQ!LS7+%V7+%VO$*kQ`O'#JQO#EwQWO7+'sO$*uQWO7+'sO$*}Q`O7+'sOOQQ7+'s7+'sOHcQWO7+'sO)rQYO7+'sOHcQWO7+'sOOQO1G.v1G.vO$+XQ!LbO'#CgO$+iQ!LbO,5l,5>lOOQO-Ef,5>fOOQ!LQ-E;x-E;xOOQQ7+'}7+'}O$-YQ!LbO7+'zOHcQWO7+'zO$-dQ`O7+'{OOQQ7+'{7+'{OHcQWO7+'{O$-kQWO'#JTO$-vQWO,5h,5>hOOQO-E;z-E;zOOQQ7+(Q7+(QO$.mQ&jO'#GhOOQQ1G2m1G2mOHcQWO1G2mO)rQYO1G2mOHcQWO1G2mO$.tQWO1G2mO$/SQ#tO1G2mO5VQ!LYO1G2pO#2pQWO1G2pO4{QWO1G2pO!+aQpO1G2pO!+iQ#tO1G2pO$/eQWO'#IOO$/pQWO,5?pO$/xQ&jO,5?pOOQ!LQ1G2q1G2qOOQQ7+$T7+$TO$/}QWO7+$TO5VQ!LYO7+$TO$0SQWO7+$TO)rQYO1G5_O)rQYO1G5`O$0XQYO1G2xO$0`QWO1G2xO$0eQYO1G2xO$0lQ!LYO1G5_OOQQ7+(b7+(bO5VQ!LYO7+(lO]QYO7+(nOOQQ'#JZ'#JZOOQQ'#IR'#IRO$0vQYO,5=mOOQQ,5=m,5=mO)rQYO'#HSO$1TQWO'#HUOOQQ7+(w7+(wO$1YQYO7+(wO6nQWO7+(wOOQQ7+({7+({OOQQ7+)P7+)POOQQ7+)R7+)ROOQO1G4t1G4tO$5TQ7^O1G0_O$5_QWO1G0_OOQO1G/d1G/dO$5jQ7^O1G/dO9uQWO1G/dOK^QYO'#D^OOQO,5>U,5>UOOQO-E;h-E;hOOQO,5>Z,5>ZOOQO-E;m-E;mO!+aQpO1G/dOOQO1G3t1G3tO9uQWO,5:dOOQO,5:h,5:hO)rQYO,5:hO$5tQ!LYO,5:hO$6PQ!LYO,5:hO!+aQpO,5:dOOQO-E;k-E;kOOQ!LS1G/}1G/}O!%kQ&jO,5:dO$6_Q!LrO,5:hO$6yQ&jO,5:dO!%kQ&jO,5:hO$7XQ&jO,5:hO$7mQ!LYO,5:hOOQ!LS7+%f7+%fO#EwQWO7+%fO#E|Q`O7+%fOOQ!LS7+%s7+%sO9uQWO7+%sO!+aQpO7+%sO$8RQ!LdO7+*eO)rQYO7+*eOOQO1G3v1G3vO6nQWO1G3vO$8cQWO7+*dO$8kQ!LdO1G2RO$:mQ!LdO1G2TO$wQ#tO,5>VOOQO-E;i-E;iO$?RQbO,5>WO)rQYO,5>WOOQO-E;j-E;jO$?]QWO1G4vO$?eQ7^O1G0YO$AlQ7^O1G0dO$AsQ7^O1G0dO$CtQ7^O1G0dO$C{Q7^O1G0dO$EpQ7^O1G0dO$FTQ7^O1G0dO$HbQ7^O1G0dO$HiQ7^O1G0dO$JjQ7^O1G0dO$JqQ7^O1G0dO$LfQ7^O1G0dO$LyQ!LdO<_OOOO7+&z7+&zOOQ!LS1G3{1G3{OIoQWO7+'qO%#sQWO,5>`O5_QWO,5>`OOQO-E;r-E;rO%$RQWO1G5UO%$RQWO1G5UO%$ZQWO1G5UO%$fQ`O,5>bO%$pQWO,5>bOHcQWO,5>bOOQO-E;t-E;tO%$uQ`O1G5VO%%PQWO1G5VOOQO1G1y1G1yOOQO1G1z1G1zO5VQ!LYO1G1zO$(tQWO1G1zO5VQ!LYO1G1yO%%XQWO1G1{OHcQWO1G1{OOQO1G1|1G1|O5VQ!LYO1G2PO!+aQpO1G1yO#2kQWO1G1zO%%^QWO1G1{O%%fQWO1G1zOIoQWO7+*UOOQ!LS1G/S1G/SO%%qQWO1G/SOOQ!LS7+'V7+'VO%%vQ#tO7+'^O%&WQ!LdO<k,5>kO%(SQWO,5>kOOQO-E;}-E;}O%(XQWO1G5^O%(aQWO<jOOQO-E;|-E;|OOQO'#Gl'#GlO%+VQWO1G5[O5VQ!LYO<eOOQO-E;w-E;wO#EwQWOAN@yOOQQAN@yAN@yOHcQWOAN@yO%;fQ!LbO7+'iOOQQAN=dAN=dO5_QWO1G4VO%;sQWO7+*xO5VQ!LYOANAfO%;{QWOANAfOOQQANAfANAfO%gOOQO-E;y-E;yO%PQ&jO1G4UO%>UQWO7+*vOOQQAN=ZAN=ZO5VQ!LYOAN=ZOOQQ<^QWO<cQYO<jQWO<oQWO<tQ7^O<yAN>yO%?}Q!LdO<tAN>tO%,eQ!LdOAN>tOOQOAN>pAN>pO)rQYOAN>tO9uQWOAN>pO&!kQ!LYOAN>tO&!vQ7^O<YO|&lO!^'fa~Ot$pO{+oO!O$qO!|+qO!}+oO'P$[O|&dX!^&dX~O^!vi|!vi&{!viy!vi!^!vi'_!vi!O!vi$w!vi!W!vi~P!(TO#O!sa|!sa!^!sa!t!sa!O!sa^!sa&{!say!sa~P!!iO#O'XXP'XXY'XX^'XXi'XXr'XX!['XX!_'XX!e'XX#R'XX#S'XX#T'XX#U'XX#V'XX#W'XX#X'XX#Y'XX#['XX#^'XX#`'XX#a'XX&{'XX']'XX!^'XXy'XX!O'XX$w'XX'_'XX!W'XX~P!%wO|+zO'T'cX~P!!iO'T+|O~O|+}O!^'dX~P!(TO!^,QO~Oy,RO~OP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO']QOY#Qi^#Qii#Qi|#Qi![#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O#R#Qi~P!CgO#R!|O~P!CgOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O']QOY#Qi^#Qi|#Qi![#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~Oi#Qi~P!FROi#OO~P!FROP#ZOi#OOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO']QO^#Qi|#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~OY#Qi![#Qi#W#Qi#X#Qi#Y#Qi~P!HmOY#aO![#QO#W#QO#X#QO#Y#QO~P!HmOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO']QO^#Qi|#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O'l#Qi~P!KeO'l!zO~P!KeOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO#^#TO']QO'l!zO^#Qi|#Qi#`#Qi#a#Qi&{#Qi'e#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O'm#Qi~P!NPO'm!{O~P!NPOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO#^#TO#`#VO']QO'l!zO'm!{O~O^#Qi|#Qi#a#Qi&{#Qi'e#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~P#!kOPZXYZXiZXqZXrZXtZX![ZX!]ZX!_ZX!eZX!tZX#OcX#RZX#SZX#TZX#UZX#VZX#WZX#XZX#YZX#[ZX#^ZX#`ZX#aZX#fZX']ZX'eZX'lZX'mZX|ZX}ZX~O#dZX~P#%OOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO#`8oO#a8pO']QO'e#XO'l!zO'm!{O~O#d,TO~P#'YOP'[XY'[Xi'[Xq'[Xr'[Xt'[X!['[X!]'[X!_'[X!e'[X#R'[X#S'[X#T'[X#U'[X#V'[X#W'[X#Y'[X#['[X#^'[X#`'[X#a'[X']'[X'e'[X'l'[X'm'[X|'[X~O!t8tO#f8tO#X'[X#d'[X}'[X~P#)TO^&ga|&ga&{&ga!^&ga'_&gay&ga!O&ga$w&ga!W&ga~P!(TOP#QiY#Qi^#Qii#Qir#Qi|#Qi![#Qi!]#Qi!_#Qi!e#Qi#R#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi']#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~P!!iO^#ei|#ei&{#eiy#ei!^#ei'_#ei!O#ei$w#ei!W#ei~P!(TO#q,VO~O#q,WO~O!W'dO!t,XO!O#uX#n#uX#q#uX#x#uX~O{,YO~O!O'gO#n,[O#q'fO#x,]O~O|8qO}'ZX~P#'YO},^O~O#x,`O~O],cOj,cOy,dO~O|cX!WcX!^cX!^$[X'ecX~P! kO!^,jO~P!!iO|,kO!W!tO'e&gO!^'rX~O!^,pO~Oy$[X|$[X!W$cX~P! kO|,rOy'sX~P!!iO!W,tO~Oy,vO~O{(SO'P$[O!^'rP~Oi,zO!W!tO!_$TO'U$_O'e&gO~O!W)SO~O}-QO~P!${O!S-RO!T-RO'Q$^O'Y([O~Ot-TO'Y([O~O!q-UO~O'P$vO|&lX'T&lX~O|(lO'T'Va~Oq-ZOr-ZOt-[O'ena'lna'mna|na!tna~O'Tna#dna~P#3|Oq'vOt'wO'e$Ta'l$Ta'm$Ta|$Ta!t$Ta~O'T$Ta#d$Ta~P#4rOq'vOt'wO'e$Va'l$Va'm$Va|$Va!t$Va~O'T$Va#d$Va~P#5eO]-]O~O#O-^O~O'T$ea|$ea#d$ea!t$ea~P!!iO#O-aO~OR-jO!O&[O!j-iO$w-hO~O'T-kO~O]#nOi#oOj#nOk#nOm#{Oo8uOt#tO!O#uO!Y9wO!_#rO!}8{O#k$PO$U8wO$W8yO$Z$QO~Og-mO'P-lO~P#7[O!W)SO!O'Sa^'Sa&{'Sa~O#O-sO~OYZX|cX}cX~O|-tO}'zX~O}-vO~OY-wO~O!O$gO'P$[O[&tX|&tX~O|)`O['ya~O!^-zO~P!(TO]-|O~OY-}O~O[.OO~OR-jO!O&[O!j-iO$w-hO'U$_O~O|)lO^'va&{'va~O!t.UO~OR.XO!O#uO~O'Y&{O}'wP~OR.cO!O._O!j.bO$w.aO'U$_O~OY.mO|.kO}'xX~O}.nO~O[.pO^$WO&{$WO~O].qO~O#X.sO%i.tO~P0kO!t#bO#X.sO%i.tO~O^.uO~P)rO^.wO~O%r.{OP%piQ%piW%pi]%pi^%pia%pib%pig%pii%pij%pik%pim%pio%pit%piv%piw%pix%pi!O%pi!Y%pi!_%pi!b%pi!c%pi!d%pi!e%pi!f%pi!i%pi#Z%pi#k%pi#o%pi$v%pi$x%pi$z%pi${%pi%O%pi%Q%pi%T%pi%U%pi%W%pi%e%pi%k%pi%m%pi%o%pi%q%pi%t%pi%z%pi&O%pi&Q%pi&S%pi&U%pi&W%pi&v%pi'P%pi']%pi'q%pi}%pi_%pi%w%pi~O_/RO}/PO%w/QO~P]O!OSO!_/UO~O|#_O'_$Sa~Oy&]i|&]i~P!(TO|!ZOy'`i~O|&XOy'ii~Oy/YO~O|!Qa}!Qa~P#'YO]%zOj%zO{/`O'Y([O|&^X}&^X~P?rO|*|O}'aa~O]&SOj&SO{)kO'Y&{O|&cX}&cX~O|+PO}'ka~Oy'ji|'ji~P!(TO^$WO!W!tO!_$TO!e/kO!t/iO&{$WO'U$_O'e&gO~O}/nO~P!=UO!S/oO!T/oO'Q$^O'Y([O~O!R/qO!S/oO!T/oO!q/rO'Q$^O'Y([O~O!n/sO!o/sO~P#EXO!O&[O~O!O&[O~P!!iO|'gi!^'gi^'gi&{'gi~P!(TO!t/|O|'gi!^'gi^'gi&{'gi~O|&lO!^'fi~Ot$pO!O$qO!}0OO'P$[O~O#OnaPnaYna^naina![na!]na!_na!ena#Rna#Sna#Tna#Una#Vna#Wna#Xna#Yna#[na#^na#`na#ana&{na']na!^nayna!Ona$wna'_na!Wna~P#3|O#O$TaP$TaY$Ta^$Tai$Tar$Ta![$Ta!]$Ta!_$Ta!e$Ta#R$Ta#S$Ta#T$Ta#U$Ta#V$Ta#W$Ta#X$Ta#Y$Ta#[$Ta#^$Ta#`$Ta#a$Ta&{$Ta']$Ta!^$Tay$Ta!O$Ta$w$Ta'_$Ta!W$Ta~P#4rO#O$VaP$VaY$Va^$Vai$Var$Va![$Va!]$Va!_$Va!e$Va#R$Va#S$Va#T$Va#U$Va#V$Va#W$Va#X$Va#Y$Va#[$Va#^$Va#`$Va#a$Va&{$Va']$Va!^$Vay$Va!O$Va$w$Va'_$Va!W$Va~P#5eO#O$eaP$eaY$ea^$eai$ear$ea|$ea![$ea!]$ea!_$ea!e$ea#R$ea#S$ea#T$ea#U$ea#V$ea#W$ea#X$ea#Y$ea#[$ea#^$ea#`$ea#a$ea&{$ea']$ea!^$eay$ea!O$ea!t$ea$w$ea'_$ea!W$ea~P!!iO^!vq|!vq&{!vqy!vq!^!vq'_!vq!O!vq$w!vq!W!vq~P!(TO|&_X'T&_X~PIoO|+zO'T'ca~O{0WO|&`X!^&`X~P)rO|+}O!^'da~O|+}O!^'da~P!(TO#d!aa}!aa~PBtO#d!Xa|!Xa}!Xa~P#'YO!O0kO#o]O#v0lO~O}0pO~O^$Pq|$Pq&{$Pqy$Pq!^$Pq'_$Pq!O$Pq$w$Pq!W$Pq~P!(TOy0qO~O],cOj,cO~Oq'vOt'wO'm'{O'e$oi'l$oi|$oi!t$oi~O'T$oi#d$oi~P$%SOq'vOt'wO'e$qi'l$qi'm$qi|$qi!t$qi~O'T$qi#d$qi~P$%uO#d0rO~P!!iO{0tO'P$[O|&hX!^&hX~O|,kO!^'ra~O|,kO!W!tO!^'ra~O|,kO!W!tO'e&gO!^'ra~O'T$^i|$^i#d$^i!t$^i~P!!iO{0{O'P(VOy&jX|&jX~P!#WO|,rOy'sa~O|,rOy'sa~P!!iO!W!tO~O!W!tO#X1VO~Oi1ZO!W!tO'e&gO~O|'Wi'T'Wi~P!!iO!t1^O|'Wi'T'Wi~P!!iO!^1aO~O^$Qq|$Qq&{$Qqy$Qq!^$Qq'_$Qq!O$Qq$w$Qq!W$Qq~P!(TO|1eO!O'tX~P!!iO!O&[O$w1hO~O!O&[O$w1hO~P!!iO!O$[X$lZX^$[X&{$[X~P! kO$l1lOqfXtfX!OfX'efX'lfX'mfX^fX&{fX~O$l1lO~O'P)[O|&sX}&sX~O|-tO}'za~O[1uO~O]1xO~OR1zO!O&[O!j1yO$w1hO~O^$WO&{$WO~P!!iO!O#uO~P!!iO|2PO!t2RO}'wX~O}2SO~Ot(`O!R2]O!S2UO!T2UO!m2[O!n2ZO!o2ZO!q2YO'Q$^O'Y([O~O}2XO~P$-{OR2dO!O._O!j2cO$w2bO~OR2dO!O._O!j2cO$w2bO'U$_O~O'P(nO|&rX}&rX~O|.kO}'xa~O'Y2mO~O]2oO~O[2qO~O!^2tO~P)rO^2vO~O^2vO~P)rO#X2xO%i2yO~PE^O_/RO}2}O%w/QO~P]O!W3PO~O%|3QOP%yqQ%yqW%yq]%yq^%yqa%yqb%yqg%yqi%yqj%yqk%yqm%yqo%yqt%yqv%yqw%yqx%yq!O%yq!Y%yq!_%yq!b%yq!c%yq!d%yq!e%yq!f%yq!i%yq#Z%yq#k%yq#o%yq$v%yq$x%yq$z%yq${%yq%O%yq%Q%yq%T%yq%U%yq%W%yq%e%yq%k%yq%m%yq%o%yq%q%yq%t%yq%z%yq&O%yq&Q%yq&S%yq&U%yq&W%yq&v%yq'P%yq']%yq'q%yq}%yq%r%yq_%yq%w%yq~O|!{i}!{i~P#'YO!t3SO|!{i}!{i~O|!Qi}!Qi~P#'YO^$WO!t3ZO&{$WO~O^$WO!W!tO!t3ZO&{$WO~O^$WO!W!tO!_$TO!e3_O!t3ZO&{$WO'U$_O'e&gO~O!S3`O!T3`O'Q$^O'Y([O~O!R3cO!S3`O!T3`O!q3dO'Q$^O'Y([O~O^$WO!W!tO!e3_O!t3ZO&{$WO'e&gO~O|'gq!^'gq^'gq&{'gq~P!(TO|&lO!^'fq~O#O$oiP$oiY$oi^$oii$oir$oi![$oi!]$oi!_$oi!e$oi#R$oi#S$oi#T$oi#U$oi#V$oi#W$oi#X$oi#Y$oi#[$oi#^$oi#`$oi#a$oi&{$oi']$oi!^$oiy$oi!O$oi$w$oi'_$oi!W$oi~P$%SO#O$qiP$qiY$qi^$qii$qir$qi![$qi!]$qi!_$qi!e$qi#R$qi#S$qi#T$qi#U$qi#V$qi#W$qi#X$qi#Y$qi#[$qi#^$qi#`$qi#a$qi&{$qi']$qi!^$qiy$qi!O$qi$w$qi'_$qi!W$qi~P$%uO#O$^iP$^iY$^i^$^ii$^ir$^i|$^i![$^i!]$^i!_$^i!e$^i#R$^i#S$^i#T$^i#U$^i#V$^i#W$^i#X$^i#Y$^i#[$^i#^$^i#`$^i#a$^i&{$^i']$^i!^$^iy$^i!O$^i!t$^i$w$^i'_$^i!W$^i~P!!iO|&_a'T&_a~P!!iO|&`a!^&`a~P!(TO|+}O!^'di~O#d!vi|!vi}!vi~P#'YOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO']QOY#Qii#Qi![#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~O#R#Qi~P$?rO#R8fO~P$?rOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO']QOY#Qi![#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~Oi#Qi~P$AzOi8hO~P$AzOP#ZOi8hOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO']QO#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~OY#Qi![#Qi#W#Qi#X#Qi#Y#Qi~P$DSOY8sO![8jO#W8jO#X8jO#Y8jO~P$DSOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO']QO#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'm#Qi|#Qi}#Qi~O'l#Qi~P$FhO'l!zO~P$FhOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO']QO'l!zO#`#Qi#a#Qi#d#Qi'e#Qi|#Qi}#Qi~O'm#Qi~P$HpO'm!{O~P$HpOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO#`8oO']QO'l!zO'm!{O~O#a#Qi#d#Qi'e#Qi|#Qi}#Qi~P$JxO^#by|#by&{#byy#by!^#by'_#by!O#by$w#by!W#by~P!(TOP#QiY#Qii#Qir#Qi![#Qi!]#Qi!_#Qi!e#Qi#R#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi']#Qi|#Qi}#Qi~P!!iO!]!vOP'XXY'XXi'XXq'XXr'XXt'XX!['XX!_'XX!e'XX#R'XX#S'XX#T'XX#U'XX#V'XX#W'XX#X'XX#Y'XX#['XX#^'XX#`'XX#a'XX#d'XX']'XX'e'XX'l'XX'm'XX|'XX}'XX~O#d#ei|#ei}#ei~P#'YO}3tO~O|&ga}&ga~P#'YO!W!tO'e&gO|&ha!^&ha~O|,kO!^'ri~O|,kO!W!tO!^'ri~Oy&ja|&ja~P!!iO!W3{O~O|,rOy'si~P!!iO|,rOy'si~Oy4RO~O!W!tO#X4XO~Oi4YO!W!tO'e&gO~Oy4[O~O'T$`q|$`q#d$`q!t$`q~P!!iO^$Qy|$Qy&{$Qyy$Qy!^$Qy'_$Qy!O$Qy$w$Qy!W$Qy~P!(TO|1eO!O'ta~O!O&[O$w4aO~O!O&[O$w4aO~P!!iO^!vy|!vy&{!vyy!vy!^!vy'_!vy!O!vy$w!vy!W!vy~P!(TOY4dO~O|-tO}'zi~O]4fO~O[4gO~O'Y&{O|&oX}&oX~O|2PO}'wa~O}4tO~P$-{O!R4wO!S4vO!T4vO!q/rO'Q$^O'Y([O~O!n4xO!o4xO~P%)VO!S4vO!T4vO'Q$^O'Y([O~O!O._O~O!O._O$w4zO~O!O._O$w4zO~P!!iOR5PO!O._O!j5OO$w4zO~OY5UO|&ra}&ra~O|.kO}'xi~O]5XO~O!^5YO~O!^5ZO~O!^5[O~O!^5[O~P)rO^5^O~O!W5aO~O!^5cO~O|'ji}'ji~P#'YO^$WO&{$WO~P!(TO^$WO!t5hO&{$WO~O^$WO!W!tO!t5hO&{$WO~O^$WO!W!tO!e5mO!t5hO&{$WO'e&gO~O!_$TO'U$_O~P%-YO!S5nO!T5nO'Q$^O'Y([O~O|'gy!^'gy^'gy&{'gy~P!(TO#O$`qP$`qY$`q^$`qi$`qr$`q|$`q![$`q!]$`q!_$`q!e$`q#R$`q#S$`q#T$`q#U$`q#V$`q#W$`q#X$`q#Y$`q#[$`q#^$`q#`$`q#a$`q&{$`q']$`q!^$`qy$`q!O$`q!t$`q$w$`q'_$`q!W$`q~P!!iO|&`i!^&`i~P!(TO#d!vq|!vq}!vq~P#'YOq-ZOr-ZOt-[OPnaYnaina![na!]na!_na!ena#Rna#Sna#Tna#Una#Vna#Wna#Xna#Yna#[na#^na#`na#ana#dna']na'ena'lna'mna|na}na~Oq'vOt'wOP$TaY$Tai$Tar$Ta![$Ta!]$Ta!_$Ta!e$Ta#R$Ta#S$Ta#T$Ta#U$Ta#V$Ta#W$Ta#X$Ta#Y$Ta#[$Ta#^$Ta#`$Ta#a$Ta#d$Ta']$Ta'e$Ta'l$Ta'm$Ta|$Ta}$Ta~Oq'vOt'wOP$VaY$Vai$Var$Va![$Va!]$Va!_$Va!e$Va#R$Va#S$Va#T$Va#U$Va#V$Va#W$Va#X$Va#Y$Va#[$Va#^$Va#`$Va#a$Va#d$Va']$Va'e$Va'l$Va'm$Va|$Va}$Va~OP$eaY$eai$ear$ea![$ea!]$ea!_$ea!e$ea#R$ea#S$ea#T$ea#U$ea#V$ea#W$ea#X$ea#Y$ea#[$ea#^$ea#`$ea#a$ea#d$ea']$ea|$ea}$ea~P!!iO#d$Pq|$Pq}$Pq~P#'YO#d$Qq|$Qq}$Qq~P#'YO}5xO~O'T$sy|$sy#d$sy!t$sy~P!!iO!W!tO|&hi!^&hi~O!W!tO'e&gO|&hi!^&hi~O|,kO!^'rq~Oy&ji|&ji~P!!iO|,rOy'sq~Oy6PO~P!!iOy6PO~O|'Wy'T'Wy~P!!iO|&ma!O&ma~P!!iO!O$kq^$kq&{$kq~P!!iO|-tO}'zq~O]6YO~O!O&[O$w6ZO~O!O&[O$w6ZO~P!!iO!t6[O|&oa}&oa~O|2PO}'wi~P#'YO!S6bO!T6bO'Q$^O'Y([O~O!R6dO!S6bO!T6bO!q3dO'Q$^O'Y([O~O!O._O$w6gO~O!O._O$w6gO~P!!iO'Y6mO~O|.kO}'xq~O!^6pO~O!^6pO~P)rO!^6rO~O!^6sO~O|!{y}!{y~P#'YO^$WO!t6xO&{$WO~O^$WO!W!tO!t6xO&{$WO~O^$WO!W!tO!e6|O!t6xO&{$WO'e&gO~O#O$syP$syY$sy^$syi$syr$sy|$sy![$sy!]$sy!_$sy!e$sy#R$sy#S$sy#T$sy#U$sy#V$sy#W$sy#X$sy#Y$sy#[$sy#^$sy#`$sy#a$sy&{$sy']$sy!^$syy$sy!O$sy!t$sy$w$sy'_$sy!W$sy~P!!iO#d#by|#by}#by~P#'YOP$^iY$^ii$^ir$^i![$^i!]$^i!_$^i!e$^i#R$^i#S$^i#T$^i#U$^i#V$^i#W$^i#X$^i#Y$^i#[$^i#^$^i#`$^i#a$^i#d$^i']$^i|$^i}$^i~P!!iOq'vOt'wO'm'{OP$oiY$oii$oir$oi![$oi!]$oi!_$oi!e$oi#R$oi#S$oi#T$oi#U$oi#V$oi#W$oi#X$oi#Y$oi#[$oi#^$oi#`$oi#a$oi#d$oi']$oi'e$oi'l$oi|$oi}$oi~Oq'vOt'wOP$qiY$qii$qir$qi![$qi!]$qi!_$qi!e$qi#R$qi#S$qi#T$qi#U$qi#V$qi#W$qi#X$qi#Y$qi#[$qi#^$qi#`$qi#a$qi#d$qi']$qi'e$qi'l$qi'm$qi|$qi}$qi~O#d$Qy|$Qy}$Qy~P#'YO#d!vy|!vy}!vy~P#'YO!W!tO|&hq!^&hq~O|,kO!^'ry~Oy&jq|&jq~P!!iOy7SO~P!!iO|2PO}'wq~O!S7_O!T7_O'Q$^O'Y([O~O!O._O$w7bO~O!O._O$w7bO~P!!iO!^7eO~O%|7fOP%y!ZQ%y!ZW%y!Z]%y!Z^%y!Za%y!Zb%y!Zg%y!Zi%y!Zj%y!Zk%y!Zm%y!Zo%y!Zt%y!Zv%y!Zw%y!Zx%y!Z!O%y!Z!Y%y!Z!_%y!Z!b%y!Z!c%y!Z!d%y!Z!e%y!Z!f%y!Z!i%y!Z#Z%y!Z#k%y!Z#o%y!Z$v%y!Z$x%y!Z$z%y!Z${%y!Z%O%y!Z%Q%y!Z%T%y!Z%U%y!Z%W%y!Z%e%y!Z%k%y!Z%m%y!Z%o%y!Z%q%y!Z%t%y!Z%z%y!Z&O%y!Z&Q%y!Z&S%y!Z&U%y!Z&W%y!Z&v%y!Z'P%y!Z']%y!Z'q%y!Z}%y!Z%r%y!Z_%y!Z%w%y!Z~O^$WO!t7jO&{$WO~O^$WO!W!tO!t7jO&{$WO~OP$`qY$`qi$`qr$`q![$`q!]$`q!_$`q!e$`q#R$`q#S$`q#T$`q#U$`q#V$`q#W$`q#X$`q#Y$`q#[$`q#^$`q#`$`q#a$`q#d$`q']$`q|$`q}$`q~P!!iO|&oq}&oq~P#'YO^$WO!t8OO&{$WO~OP$syY$syi$syr$sy![$sy!]$sy!_$sy!e$sy#R$sy#S$sy#T$sy#U$sy#V$sy#W$sy#X$sy#Y$sy#[$sy#^$sy#`$sy#a$sy#d$sy']$sy|$sy}$sy~P!!iO'_'ZX~P.ZO'_ZXyZX!^ZX%iZX!OZX$wZX!WZX~P$tO!WcX!^ZX!^cX'ecX~P:xOP8`OQ8`O]bOa9uOb!gOgbOi8`OjbOkbOm8`Oo8`OtROvbOwbOxbO!OSO!Y8bO!_UO!b8`O!c8`O!d8`O!e8`O!f8`O!i!fO#k!iO#o]O'P'ZO']QO'q9sO~O|8qO}$Sa~O]#nOg#zOi#oOj#nOk#nOm#{Oo8vOt#tO!O#uO!Y9xO!_#rO!}8|O#k$PO$U8xO$W8zO$Z$QO'P&sO~O#Z'bO~P&'mO}ZX}cX~P:xO#O8eO~O!W!tO#O8eO~O!t8tO~O!t8}O|'jX}'jX~O!t8tO|'hX}'hX~O#O9OO~O'T9QO~P!!iO#O9VO~O#O9WO~O!W!tO#O9XO~O!W!tO#O9OO~O#d9YO~P#'YO#O9ZO~O#O9[O~O#O9]O~O#O9^O~O#d9_O~P!!iO#d9`O~P!!iO#o~!]!m!o!|!}'q$U$W$Z$l$v$w$x%O%Q%T%U%W%Y~TS#o'q#q'Y'P&}#Sx~",goto:"#UPPP>[@_P;fPBrPPPPDj;fPPPPPFc;fPPIbJ_PPPJcPJkKlP;f;fNs!#l!([!([!+iPPP!+p;fPPPPPPPPPP!.dP!/uPP;f!1SP;fP;f;f;f;fP;f!3fPP!6]P!9O!9W!9[!9[P!6YP!9`!9`P!}4|P4|P4|4|P!@Q4|4|!At4|4|4|!Cu4|4|!Dc!F[!F[!F`!F[!FhP!F[P4|!Gd4|!Hm4|4|-]PPP!IyPP!Jc!JcP!JcP!Jx!JcPP!KOP!JuP!Ju!KbJg!Ju!LP!LV!LY(P!L](PP!Ld!Ld!LdP(PP(PP(PP(PPP(PP!Lj!LmP!Lm(PPPP(PP(PP(PP(PP(PP(P(P!Lq!L{!MR!Ma!Mg!Mm!Mw!M}!NX!N_!Nm!Ns!Ny# X# n##P##_##e##k##q##w#$R#$X#$_#$i#$s#$yPPPPPPPP#%PPP#%s#)qPP#+U#+]#+eP#/n#2RP#7{P#8P#8S#8V#8b#8eP#8h#8l#9Z#:O#:S#:fPP#:j#:p#:tP#:w#:{#;O#;n#Z![!^$t!_#o$t#p~$ty=jT#{WO!O$t!O!P=y!P!^$t!_#o$t#p~$ty>QR{q#{WO!^$t!_#o$t#p~$ty>bZ#{WjqO!Q$t!Q![>Z![!^$t!_!g$t!g!h?T!h#R$t#R#S>Z#S#X$t#X#Y?T#Y#o$t#p~$ty?YZ#{WO{$t{|?{|}$t}!O?{!O!Q$t!Q![@g![!^$t!_#R$t#R#S@g#S#o$t#p~$ty@QV#{WO!Q$t!Q![@g![!^$t!_#R$t#R#S@g#S#o$t#p~$ty@nV#{WjqO!Q$t!Q![@g![!^$t!_#R$t#R#S@g#S#o$t#p~$t,TA[`#{W#S#vOYB^YZ$tZzB^z{HT{!PB^!P!Q!*|!Q!^B^!^!_Da!_!`!+u!`!a!,t!a!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^XBe[#{WxPOYB^YZ$tZ!PB^!P!QCZ!Q!^B^!^!_Da!_!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^XCb_#{WxPO!^$t!_#Z$t#Z#[CZ#[#]$t#]#^CZ#^#a$t#a#bCZ#b#g$t#g#hCZ#h#i$t#i#jCZ#j#m$t#m#nCZ#n#o$t#p~$tPDfVxPOYDaZ!PDa!P!QD{!Q!}Da!}#OEd#O#PFP#P~DaPEQUxP#Z#[D{#]#^D{#a#bD{#g#hD{#i#jD{#m#nD{PEgTOYEdZ#OEd#O#PEv#P#QDa#Q~EdPEyQOYEdZ~EdPFSQOYDaZ~DaXF_Y#{WOYFYYZ$tZ!^FY!^!_Ed!_#OFY#O#PF}#P#QB^#Q#oFY#o#pEd#p~FYXGSV#{WOYFYYZ$tZ!^FY!^!_Ed!_#oFY#o#pEd#p~FYXGnV#{WOYB^YZ$tZ!^B^!^!_Da!_#oB^#o#pDa#p~B^,TH[^#{WxPOYHTYZIWZzHTz{Ki{!PHT!P!Q!)j!Q!^HT!^!_Mt!_!}HT!}#O!%e#O#P!(x#P#oHT#o#pMt#p~HT,TI]V#{WOzIWz{Ir{!^IW!^!_Jt!_#oIW#o#pJt#p~IW,TIwX#{WOzIWz{Ir{!PIW!P!QJd!Q!^IW!^!_Jt!_#oIW#o#pJt#p~IW,TJkR#{WT+{O!^$t!_#o$t#p~$t+{JwROzJtz{KQ{~Jt+{KTTOzJtz{KQ{!PJt!P!QKd!Q~Jt+{KiOT+{,TKp^#{WxPOYHTYZIWZzHTz{Ki{!PHT!P!QLl!Q!^HT!^!_Mt!_!}HT!}#O!%e#O#P!(x#P#oHT#o#pMt#p~HT,TLu_#{WT+{xPO!^$t!_#Z$t#Z#[CZ#[#]$t#]#^CZ#^#a$t#a#bCZ#b#g$t#g#hCZ#h#i$t#i#jCZ#j#m$t#m#nCZ#n#o$t#p~$t+{MyYxPOYMtYZJtZzMtz{Ni{!PMt!P!Q!$a!Q!}Mt!}#O! w#O#P!#}#P~Mt+{NnYxPOYMtYZJtZzMtz{Ni{!PMt!P!Q! ^!Q!}Mt!}#O! w#O#P!#}#P~Mt+{! eUT+{xP#Z#[D{#]#^D{#a#bD{#g#hD{#i#jD{#m#nD{+{! zWOY! wYZJtZz! wz{!!d{#O! w#O#P!#k#P#QMt#Q~! w+{!!gYOY! wYZJtZz! wz{!!d{!P! w!P!Q!#V!Q#O! w#O#P!#k#P#QMt#Q~! w+{!#[TT+{OYEdZ#OEd#O#PEv#P#QDa#Q~Ed+{!#nTOY! wYZJtZz! wz{!!d{~! w+{!$QTOYMtYZJtZzMtz{Ni{~Mt+{!$f_xPOzJtz{KQ{#ZJt#Z#[!$a#[#]Jt#]#^!$a#^#aJt#a#b!$a#b#gJt#g#h!$a#h#iJt#i#j!$a#j#mJt#m#n!$a#n~Jt,T!%j[#{WOY!%eYZIWZz!%ez{!&`{!^!%e!^!_! w!_#O!%e#O#P!(W#P#QHT#Q#o!%e#o#p! w#p~!%e,T!&e^#{WOY!%eYZIWZz!%ez{!&`{!P!%e!P!Q!'a!Q!^!%e!^!_! w!_#O!%e#O#P!(W#P#QHT#Q#o!%e#o#p! w#p~!%e,T!'hY#{WT+{OYFYYZ$tZ!^FY!^!_Ed!_#OFY#O#PF}#P#QB^#Q#oFY#o#pEd#p~FY,T!(]X#{WOY!%eYZIWZz!%ez{!&`{!^!%e!^!_! w!_#o!%e#o#p! w#p~!%e,T!(}X#{WOYHTYZIWZzHTz{Ki{!^HT!^!_Mt!_#oHT#o#pMt#p~HT,T!)qc#{WxPOzIWz{Ir{!^IW!^!_Jt!_#ZIW#Z#[!)j#[#]IW#]#^!)j#^#aIW#a#b!)j#b#gIW#g#h!)j#h#iIW#i#j!)j#j#mIW#m#n!)j#n#oIW#o#pJt#p~IW,T!+TV#{WS+{OY!*|YZ$tZ!^!*|!^!_!+j!_#o!*|#o#p!+j#p~!*|+{!+oQS+{OY!+jZ~!+j$P!,O[#{W#f#vxPOYB^YZ$tZ!PB^!P!QCZ!Q!^B^!^!_Da!_!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^]!,}[#nS#{WxPOYB^YZ$tZ!PB^!P!QCZ!Q!^B^!^!_Da!_!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^y!-zd#{WjqO!O$t!O!P>Z!P!Q$t!Q![!/Y![!^$t!_!g$t!g!h?T!h#R$t#R#S!/Y#S#U$t#U#V!0p#V#X$t#X#Y?T#Y#b$t#b#c!0`#c#d!2O#d#l$t#l#m!3W#m#o$t#p~$ty!/a_#{WjqO!O$t!O!P>Z!P!Q$t!Q![!/Y![!^$t!_!g$t!g!h?T!h#R$t#R#S!/Y#S#X$t#X#Y?T#Y#b$t#b#c!0`#c#o$t#p~$ty!0gR#{WjqO!^$t!_#o$t#p~$ty!0uW#{WO!Q$t!Q!R!1_!R!S!1_!S!^$t!_#R$t#R#S!1_#S#o$t#p~$ty!1fW#{WjqO!Q$t!Q!R!1_!R!S!1_!S!^$t!_#R$t#R#S!1_#S#o$t#p~$ty!2TV#{WO!Q$t!Q!Y!2j!Y!^$t!_#R$t#R#S!2j#S#o$t#p~$ty!2qV#{WjqO!Q$t!Q!Y!2j!Y!^$t!_#R$t#R#S!2j#S#o$t#p~$ty!3]Z#{WO!Q$t!Q![!4O![!^$t!_!c$t!c!i!4O!i#R$t#R#S!4O#S#T$t#T#Z!4O#Z#o$t#p~$ty!4VZ#{WjqO!Q$t!Q![!4O![!^$t!_!c$t!c!i!4O!i#R$t#R#S!4O#S#T$t#T#Z!4O#Z#o$t#p~$t%w!5RR!WV#{W#d%hO!^$t!_#o$t#p~$t!P!5cR^w#{WO!^$t!_#o$t#p~$t+c!5wR'Ud![%Y#o&s'qP!P!Q!6Q!^!_!6V!_!`!6dW!6VO#}W#v!6[P#V#v!_!`!6_#v!6dO#f#v#v!6iO#W#v%w!6pT!t%o#{WO!^$t!_!`'V!`!a!7P!a#o$t#p~$t$P!7WR#O#w#{WO!^$t!_#o$t#p~$t%w!7lT'T!s#W#v#xS#{WO!^$t!_!`!7{!`!a!8]!a#o$t#p~$t$O!8SR#W#v#{WO!^$t!_#o$t#p~$t$O!8dT#V#v#{WO!^$t!_!`2l!`!a!8s!a#o$t#p~$t$O!8zS#V#v#{WO!^$t!_!`2l!`#o$t#p~$t%w!9_V'e%o#{WO!O$t!O!P!9t!P!^$t!_!a$t!a!b!:U!b#o$t#p~$t$`!9{Rr$W#{WO!^$t!_#o$t#p~$t$O!:]S#{W#a#vO!^$t!_!`2l!`#o$t#p~$t&e!:pRt&]#{WO!^$t!_#o$t#p~$tZ!;QRyR#{WO!^$t!_#o$t#p~$t$O!;bS#^#v#{WO!^$t!_!`2l!`#o$t#p~$t$P!;uR#{W']#wO!^$t!_#o$t#p~$t~!tsExtends(e,t)<<1|1},{term:277,get:e=>spec_identifier[e]||-1},{term:286,get:e=>spec_word[e]||-1},{term:58,get:e=>spec_LessThan[e]||-1}],tokenPrec:11096});function toSet(e){let t=Object.keys(e).join("");e=/\w/.test(t);return e&&(t=t.replace(/\w/g,"")),`[${e?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(e){let t=Object.create(null),i=Object.create(null);for(var{label:n}of e){t[n[0]]=!0;for(let e=1;e"string"==typeof e?{label:e}:e),[n,r]=i.every(e=>/^\w+$/.test(e.label))?[/\w*$/,/\w+$/]:prefixMatch(i);return e=>{var t=e.matchBefore(r);return t||e.explicit?{from:t?t.from:e.pos,options:i,span:n}:null}}function ifNotIn(i,e){return t=>{for(let e=syntaxTree(t.state).resolve(t.pos,-1);e;e=e.parent)if(-1 ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{cursor:"pointer",padding:"1px 1em 1px 3px",lineHeight:1.2},"& > li[aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"}}},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:MaxInfoWidth+"px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,t,i,n){this.field=e,this.line=t,this.from=i,this.to=n}}class FieldRange{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){return new FieldRange(this.field,e.mapPos(this.from,-1),e.mapPos(this.to,1))}}class Snippet{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(n,e){let t=[],r=[e];var s,i=n.doc.lineAt(e),a=/^\s*/.exec(i.text)[0];for(s of this.lines){if(t.length){let t=a,i=/^\t*/.exec(s)[0].length;for(let e=0;enew FieldRange(e.field,r[e.line]+e.from,r[e.line]+e.to));return{text:t,ranges:i}}static parse(e){let r=[],s=[],a=[],o;for(var l of e.split(/\r\n?|\n/)){for(;o=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(l);){let t=o[1]?+o[1]:null,i=o[2]||o[3],n=-1;for(let e=0;e=n&&c.field++}a.push(new FieldPos(n,s.length,o.index,o.index+i.length)),l=l.slice(0,o.index)+i+l.slice(o.index+o[0].length)}s.push(l)}return new Snippet(s,a)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,t){this.ranges=e,this.active=t,this.deco=Decoration.set(e.map(e=>(e.from==e.to?fieldMarker:fieldRange).range(e.from,e.to)))}map(t){return new ActiveSnippet(this.ranges.map(e=>e.map(t)),this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(e=>e.field==this.active&&e.from<=t.from&&e.to>=t.to))}}const setActive=StateEffect.define({map(e,t){return e&&e.map(t)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(e,t){for(var i of t.effects){if(i.is(setActive))return i.value;if(i.is(moveToField)&&e)return new ActiveSnippet(e.ranges,i.value)}return e=(e=e&&t.docChanged?e.map(t.changes):e)&&t.selection&&!e.selectionInsideField(t.selection)?null:e},provide:e=>EditorView.decorations.from(e,e=>e?e.deco:Decoration.none)});function fieldSelection(e,t){return EditorSelection.create(e.filter(e=>e.field==t).map(e=>EditorSelection.range(e.from,e.to)))}function snippet(e){let o=Snippet.parse(e);return(i,e,t,n)=>{var{text:r,ranges:s}=o.instantiate(i.state,t);let a={changes:{from:t,to:n,insert:Text.of(r)}};if(s.length&&(a.selection=fieldSelection(s,0)),1e),addSnippetKeymap,snippetPointerHandler,baseTheme]))}i.dispatch(i.state.update(a))}}function moveField(s){return({state:e,dispatch:t})=>{let i=e.field(snippetState,!1);if(!i||s<0&&0==i.active)return!1;let n=i.active+s,r=0e.field==n+s);return t(e.update({selection:fieldSelection(i.ranges,n),effects:setActive.of(r?null:new ActiveSnippet(i.ranges,n))})),!0}}const clearSnippet=({state:e,dispatch:t})=>{return!!e.field(snippetState,!1)&&(t(e.update({effects:setActive.of(null)})),!0)},nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(e){return e.length?e[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.override(keymap.compute([snippetKeymap],e=>e.facet(snippetKeymap)));function snippetCompletion(e,t){return Object.assign(Object.assign({},t),{apply:snippet(e)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(e,t){let i=t.state.field(snippetState,!1),n;if(!i||null==(n=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let r=i.ranges.find(e=>e.from<=n&&e.to>=n);return!(!r||r.field==i.active)&&(t.dispatch({selection:fieldSelection(i.ranges,r.field),effects:setActive.of(i.ranges.some(e=>e.field>r.field)?new ActiveSnippet(i.ranges,r.field):null)}),!0)}}),snippets=[snippetCompletion("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"block",type:"keyword"}),snippetCompletion("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],javascriptLanguage=LezerLanguage.define({parser:parser$1.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch|finally)\b/}),LabeledStatement:flatIndent,SwitchBody:e=>{var t=e.textAfter,i=/^\s*\}/.test(t),t=/^\s*(case|default)\b/.test(t);return e.baseIndent+(i?0:t?1:2)*e.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>-1,"Statement Property":continuedIndent({except:/^{/}),JSXElement(e){var t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.state.doc.lineAt(e.node.from))+(t?0:e.unit)},JSXEscape(e){var t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.state.doc.lineAt(e.node.from))+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside,BlockComment(e){return{from:e.from+2,to:e.to-2}}}),styleTags({"get set async static":tags$1.modifier,"for while do if else switch try catch finally return throw break continue default case":tags$1.controlKeyword,"in of await yield void typeof delete instanceof":tags$1.operatorKeyword,"export import let var const function class extends":tags$1.definitionKeyword,"with debugger from as new":tags$1.keyword,TemplateString:tags$1.special(tags$1.string),Super:tags$1.atom,BooleanLiteral:tags$1.bool,this:tags$1.self,null:tags$1.null,Star:tags$1.modifier,VariableName:tags$1.variableName,"CallExpression/VariableName":tags$1.function(tags$1.variableName),VariableDefinition:tags$1.definition(tags$1.variableName),Label:tags$1.labelName,PropertyName:tags$1.propertyName,"CallExpression/MemberExpression/PropertyName":tags$1.function(tags$1.propertyName),"FunctionDeclaration/VariableDefinition":tags$1.function(tags$1.definition(tags$1.variableName)),"ClassDeclaration/VariableDefinition":tags$1.definition(tags$1.className),PropertyNameDefinition:tags$1.definition(tags$1.propertyName),UpdateOp:tags$1.updateOperator,LineComment:tags$1.lineComment,BlockComment:tags$1.blockComment,Number:tags$1.number,String:tags$1.string,ArithOp:tags$1.arithmeticOperator,LogicOp:tags$1.logicOperator,BitOp:tags$1.bitwiseOperator,CompareOp:tags$1.compareOperator,RegExp:tags$1.regexp,Equals:tags$1.definitionOperator,"Arrow : Spread":tags$1.punctuation,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace,".":tags$1.derefOperator,", ;":tags$1.separator,TypeName:tags$1.typeName,TypeDefinition:tags$1.definition(tags$1.typeName),"type enum interface implements namespace module declare":tags$1.definitionKeyword,"abstract global privacy readonly":tags$1.modifier,"is keyof unique infer":tags$1.operatorKeyword,JSXAttributeValue:tags$1.string,JSXText:tags$1.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags$1.angleBracket,"JSXIdentifier JSXNameSpacedName":tags$1.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags$1.propertyName})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"});function javascript(e={}){e=e.jsx?e.typescript?tsxLanguage:jsxLanguage:e.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,javascriptLanguage.data.of({autocomplete:ifNotIn(["LineComment","BlockComment","String"],completeFromList(snippets))}))}function esLint(l,c){return c||(c={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},l.getRules().forEach((e,t)=>{e.meta.docs.recommended&&(c.rules[t]=2)})),e=>{let{state:t}=e,i=[];for(var{from:n,to:r}of javascriptLanguage.findRegions(t)){var s,a=t.doc.lineAt(n),o={line:a.number-1,col:n-a.from,pos:n};for(s of l.verify(t.sliceDoc(n,r),c))i.push(translateDiagnostic(s,t.doc,o))}return i}}function mapPos(e,t,i,n){return i.line(e+n.line).from+t+(1==e?n.col-1:-1)}function translateDiagnostic(t,e,s){var a=mapPos(t.line,t.column,e,s);let o={from:a,to:null!=t.endLine&&1!=t.endColumn?mapPos(t.endLine,t.endColumn,e,s):a,message:t.message,source:t.ruleId?"jshint:"+t.ruleId:"jshint",severity:1==t.severity?"warning":"error"};if(t.fix){let{range:e,text:i}=t.fix,n=e[0]+s.pos-a,r=e[1]+s.pos-a;o.actions=[{name:"fix",apply(e,t){e.dispatch({changes:{from:t+n,to:t+r,insert:i},scrollIntoView:!0})}}]}return o}var index$2=Object.freeze({__proto__:null,esLint:esLint,javascript:javascript,javascriptLanguage:javascriptLanguage,jsxLanguage:jsxLanguage,snippets:snippets,tsxLanguage:tsxLanguage,typescriptLanguage:typescriptLanguage});const Targets=["_blank","_self","_top","_parent"],Charsets=["ascii","utf-8","utf-16","latin1","latin1"],Methods=["get","post","put","delete"],Encs=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Bool=["true","false"],S={},Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,acronym:S,address:S,applet:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:Targets}},basefont:S,bdi:S,bdo:S,big:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,dir:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,font:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Charsets,autocomplete:["on","off"],enctype:Encs,method:Methods,novalidate:["novalidate"],target:Targets}},frame:S,frameset:S,h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null},children:["head","body"]},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Charsets,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noframes:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,s:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strike:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},tt:S,u:S,ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S},GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Bool,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Bool,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Bool,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Bool,"aria-hidden":Bool,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Bool,"aria-multiselectable":Bool,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Bool,"aria-relevant":null,"aria-required":Bool,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},AllTags=Object.keys(Tags),GlobalAttrNames=Object.keys(GlobalAttrs);function elementName(e,t){let i=t.firstChild;t=i&&i.getChild("TagName");return t?e.sliceString(t.from,t.to):""}function findParentElement(t,i=!1){for(let e=t.parent;e;e=e.parent)if("Element"==e.name){if(!i)return e;i=!1}return null}function allowedChildren(e,t){t=findParentElement(t,!0),t=t?Tags[elementName(e,t)]:null;return(null==t?void 0:t.children)||AllTags}function openTags(t,i){let n=[];for(let e=i;e=findParentElement(e);){var r=elementName(t,e);if(r&&"CloseTag"==e.lastChild.name)break;r&&n.indexOf(r)<0&&("EndTag"==i.name||i.from>=e.firstChild.to)&&n.push(r)}return n}const identifier=/^[:\-\.\w\u00b7-\uffff]+$/;function completeTag(e,t,i,n){let r=/\s*>/.test(e.sliceDoc(n,n+5))?"":">";return{from:i,to:n,options:allowedChildren(e.doc,t).map(e=>({label:e,type:"type"})).concat(openTags(e.doc,t).map((e,t)=>({label:"/"+e,apply:"/"+e+r,type:"type",boost:99-t}))),span:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeCloseTag(e,t,i,n){let r=/\s*>/.test(e.sliceDoc(n,n+5))?"":">";return{from:i,to:n,options:openTags(e.doc,t).map((e,t)=>({label:e,apply:e+r,type:"type",boost:99-t})),span:identifier}}function completeStartTag(e,t,i){let n=[],r=0;for(var s of allowedChildren(e.doc,t))n.push({label:"<"+s,type:"type"});for(var a of openTags(e.doc,t))n.push({label:"",type:"type",boost:99-r++});return{from:i,to:i,options:n,span:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeAttrName(e,t,i,n){t=findParentElement(t),t=t?Tags[elementName(e.doc,t)]:null;let r=t&&t.attrs?Object.keys(t.attrs).concat(GlobalAttrNames):GlobalAttrNames;return{from:i,to:n,options:r.map(e=>({label:e,type:"property"})),span:identifier}}function completeAttrValue(r,e,s,a){var t=null===(t=e.parent)||void 0===t?void 0:t.getChild("AttributeName");let o=[],l=void 0;if(t){t=r.sliceDoc(t.from,t.to);let n=GlobalAttrs[t];if(n||(e=(e=findParentElement(e))?Tags[elementName(r.doc,e)]:null,n=(null==e?void 0:e.attrs)&&e.attrs[t]),n){let e=r.sliceDoc(s,a).toLowerCase(),t='"',i='"';/^['"]/.test(e)?(l='"'==e[0]?/^[^"]*$/:/^[^']*$/,t="",i=r.sliceDoc(a,a+1)==e[0]?"":e[0],e=e.slice(1),s++):l=/^[^\s<>='"]*$/;for(var c of n)o.push({label:c,apply:t+c+i,type:"constant"})}}return{from:s,to:a,options:o,span:l}}function completeHTML(e){let{state:t,pos:i}=e,n=syntaxTree(t).resolve(i),r=n.resolve(i,-1);return"TagName"==r.name?(r.parent&&/CloseTag$/.test(r.parent.name)?completeCloseTag:completeTag)(t,r,r.from,i):"StartTag"==r.name?completeTag(t,r,i,i):"StartCloseTag"==r.name||"IncompleteCloseTag"==r.name?completeCloseTag(t,r,i,i):e.explicit&&("OpenTag"==r.name||"SelfClosingTag"==r.name)||"AttributeName"==r.name?completeAttrName(t,r,"AttributeName"==r.name?r.from:i,i):"Is"==r.name||"AttributeValue"==r.name||"UnquotedAttributeValue"==r.name?completeAttrValue(t,r,"Is"==r.name?i:r.from,i):!e.explicit||"Element"!=n.name&&"Text"!=n.name&&"Document"!=n.name?null:completeStartTag(t,r,i)}const htmlLanguage=LezerLanguage.define({parser:parser$3.configure({props:[indentNodeProp.add({Element(e){var t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.state.doc.lineAt(e.node.from))+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].length{if(e.is("Block")&&!e.is("Document"))return(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})}),indentNodeProp.add({Document:()=>null}),languageDataProp.add({Document:data})],htmlParser:htmlLanguage.parser.configure({dialect:"noMatch"})}),commonmarkLanguage=mkLang(commonmark),extended=commonmark.configure([GFM,Subscript,Superscript,Emoji,{props:[styleTags({"TableDelimiter SubscriptMark SuperscriptMark StrikethroughMark":tags$1.processingInstruction,"TableHeader/...":tags$1.heading,"Strikethrough/...":tags$1.strikethrough,TaskMarker:tags$1.atom,Task:tags$1.list,Emoji:tags$1.character,"Subscript Superscript":tags$1.special(tags$1.content),TableCell:tags$1.content})]}]),markdownLanguage=mkLang(extended);function mkLang(e){return new Language(data,e,e.nodeSet.types.find(e=>"Document"==e.name))}function addCodeLanguages(i,n){return{codeParser(e){let t=e&&LanguageDescription.matchLanguageName(i,e,!0);return t?t.support?t.support.language.parser:EditorParseContext.getSkippingParser(t.load()):n?n.parser:null}}}function nodeStart(e,t){return t.sliceString(e.from,e.from+50)}function gatherMarkup(t,n,r){let s=[];for(let e=t;e&&"Document"!=e.name;e=e.parent)"ListItem"!=e.name&&"Blockquote"!=e.name||s.push(e);let a=[],o=0;for(let i=s.length-1;0<=i;i--){let e=s[i],t;var l;"Blockquote"==e.name&&(t=/^\s*> ?/.exec(n.slice(o)))?(a.push({from:o,string:t[0],node:e}),o+=t[0].length):"ListItem"==e.name&&"OrderedList"==e.parent.name&&(t=/^\s*\d+([.)])\s*/.exec(nodeStart(e,r)))?(l=4<=t[1].length?t[0].length-t[1].length+1:t[0].length,a.push({from:o,string:n.slice(o,o+l).replace(/\S/g," "),node:e}),o+=l):"ListItem"==e.name&&"BulletList"==e.parent.name&&(t=/^\s*[-+*] (\s*)/.exec(nodeStart(e,r)))&&(l=4<=t[1].length?t[0].length-t[1].length:t[0].length,a.push({from:o,string:n.slice(o,o+l).replace(/\S/g," "),node:e}),o+=l)}return a}function renumberList(i,n,r){for(let e=-1,t=i;;){if("ListItem"==t.name){var s=/^(\s*)(\d+)(?=[.)])/.exec(n.sliceString(t.from,t.from+10));if(!s)return;var a=+s[2];if(0<=e){if(a!=e+1)return;r.push({from:t.from+s[1].length,to:t.from+s[0].length,insert:String(e+2)})}e=a}a=t.nextSibling;if(!a)break;t=a}}const insertNewlineContinueMarkup=({state:l,dispatch:e})=>{let i=syntaxTree(l),t=null,n=l.changeByRange(a=>{if(a.empty&&markdownLanguage.isActiveAt(l,a.from)){let n=l.doc.lineAt(a.from),e=gatherMarkup(i.resolve(a.from,-1),n.text,l.doc),r=a.from,s=[];if(e.length){let t=e[e.length-1],i=t.from+t.string.length;var o=a.from-n.from>=i&&!/\S/.test(n.text.slice(i,a.from-n.from));if(o){let e=/List/.test(t.node.name)?t.from:i;for(;0]/.test(l.doc.lineAt(n.from-1).text))return{range:EditorSelection.cursor(r),changes:{from:r,to:a.from}};r=n.from?t.string=n.text.slice(t.from,t.from+t.string.length):t.string=/^\s*/.exec(n.text)[0].slice(0,t.string.length),"OrderedList"==t.node.parent.name&&r==a.from&&(t.string=t.string.replace(/\d+/,e=>+e+1),renumberList(t.node,l.doc,s)))}}let t=e.map(e=>e.string).join("");return a.from-n.from{let a=syntaxTree(s),o=null,t=s.changeByRange(t=>{if(t.empty&&markdownLanguage.isActiveAt(s,t.from)){let e=s.doc.lineAt(t.from);var i=gatherMarkup(a.resolve(t.from,-1),e.text,s.doc);if(i.length){var n=i[i.length-1],r=n.from+n.string.length;if(t.from>r+e.from&&!/\S/.test(e.text.slice(r,t.from-e.from)))return{range:EditorSelection.cursor(r+e.from),changes:{from:r+e.from,to:t.from}};if(t.from-e.from==r){i=e.from+n.from;return"ListItem"==n.node.name&&n.node.parent.fromnew LanguageSupport(e.StreamLanguage.define(t)))}function sql(t){return import("./index-ec1dad61.js").then(e=>e.sql({dialect:e[t]}))}const languages=[LanguageDescription.of({name:"C",extensions:["c","h","ino"],load(){return import("./index-4ff54fbd.js").then(e=>e.cpp())}}),LanguageDescription.of({name:"C++",alias:["cpp"],extensions:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],load(){return import("./index-4ff54fbd.js").then(e=>e.cpp())}}),LanguageDescription.of({name:"CQL",alias:["cassandra"],extensions:["cql"],load(){return sql("Cassandra")}}),LanguageDescription.of({name:"CSS",extensions:["css"],load(){return Promise.resolve().then(function(){return index$3}).then(e=>e.css())}}),LanguageDescription.of({name:"HTML",alias:["xhtml"],extensions:["html","htm","handlebars","hbs"],load(){return Promise.resolve().then(function(){return index$1}).then(e=>e.html())}}),LanguageDescription.of({name:"Java",extensions:["java"],load(){return import("./index-eddd0dfb.js").then(e=>e.java())}}),LanguageDescription.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript())}}),LanguageDescription.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return import("./index-a879143b.js").then(e=>e.json())}}),LanguageDescription.of({name:"JSX",extensions:["jsx"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript({jsx:!0}))}}),LanguageDescription.of({name:"MariaDB SQL",load(){return sql("MariaSQL")}}),LanguageDescription.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return Promise.resolve().then(function(){return index}).then(e=>e.markdown())}}),LanguageDescription.of({name:"MS SQL",load(){return sql("MSSQL")}}),LanguageDescription.of({name:"MySQL",load(){return sql("MySQL")}}),LanguageDescription.of({name:"PLSQL",extensions:["pls"],load(){return sql("PLSQL")}}),LanguageDescription.of({name:"PostgreSQL",load(){return sql("PostgreSQL")}}),LanguageDescription.of({name:"Python",extensions:["BUILD","bzl","py","pyw"],filename:/^(BUCK|BUILD)$/,load(){return import("./index-5cf29f46.js").then(e=>e.python())}}),LanguageDescription.of({name:"Rust",extensions:["rs"],load(){return import("./index-94295a51.js").then(e=>e.rust())}}),LanguageDescription.of({name:"SQL",extensions:["sql"],load(){return sql("StandardSQL")}}),LanguageDescription.of({name:"SQLite",load(){return sql("SQLite")}}),LanguageDescription.of({name:"TSX",extensions:["tsx"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),LanguageDescription.of({name:"TypeScript",alias:["ts"],extensions:["ts"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript({typescript:!0}))}}),LanguageDescription.of({name:"XML",alias:["rss","wsdl","xsd"],extensions:["xml","xsl","xsd","svg"],load(){return import("./index-9567a91c.js").then(e=>e.xml())}}),LanguageDescription.of({name:"APL",extensions:["dyalog","apl"],load(){return import("./apl-2030b4c5.js").then(e=>legacy(e.apl))}}),LanguageDescription.of({name:"PGP",alias:["asciiarmor"],extensions:["asc","pgp","sig"],load(){return import("./asciiarmor-093bcdbd.js").then(e=>legacy(e.asciiArmor))}}),LanguageDescription.of({name:"ASN.1",extensions:["asn","asn1"],load(){return import("./asn1-afa00132.js").then(e=>legacy(e.asn1({})))}}),LanguageDescription.of({name:"Asterisk",filename:/^extensions\.conf$/i,load(){return import("./asterisk-09307b50.js").then(e=>legacy(e.asterisk))}}),LanguageDescription.of({name:"Brainfuck",extensions:["b","bf"],load(){return import("./brainfuck-80b1f4f5.js").then(e=>legacy(e.brainfuck))}}),LanguageDescription.of({name:"Cobol",extensions:["cob","cpy"],load(){return import("./cobol-43d95731.js").then(e=>legacy(e.cobol))}}),LanguageDescription.of({name:"C#",alias:["csharp","cs"],extensions:["cs"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.csharp))}}),LanguageDescription.of({name:"Clojure",extensions:["clj","cljc","cljx"],load(){return import("./clojure-32cc1305.js").then(e=>legacy(e.clojure))}}),LanguageDescription.of({name:"ClojureScript",extensions:["cljs"],load(){return import("./clojure-32cc1305.js").then(e=>legacy(e.clojure))}}),LanguageDescription.of({name:"Closure Stylesheets (GSS)",extensions:["gss"],load(){return import("./css-79b391c7.js").then(e=>legacy(e.gss))}}),LanguageDescription.of({name:"CMake",extensions:["cmake","cmake.in"],filename:/^CMakeLists\.txt$/,load(){return import("./cmake-2227f645.js").then(e=>legacy(e.cmake))}}),LanguageDescription.of({name:"CoffeeScript",alias:["coffee","coffee-script"],extensions:["coffee"],load(){return import("./coffeescript-fc762049.js").then(e=>legacy(e.coffeeScript))}}),LanguageDescription.of({name:"Common Lisp",alias:["lisp"],extensions:["cl","lisp","el"],load(){return import("./commonlisp-ba6e115c.js").then(e=>legacy(e.commonLisp))}}),LanguageDescription.of({name:"Cypher",extensions:["cyp","cypher"],load(){return import("./cypher-5d7834b7.js").then(e=>legacy(e.cypher))}}),LanguageDescription.of({name:"Cython",extensions:["pyx","pxd","pxi"],load(){return import("./python-103af9e0.js").then(e=>legacy(e.cython))}}),LanguageDescription.of({name:"Crystal",extensions:["cr"],load(){return import("./crystal-5772ab5b.js").then(e=>legacy(e.crystal))}}),LanguageDescription.of({name:"D",extensions:["d"],load(){return import("./d-7ec7aa31.js").then(e=>legacy(e.d))}}),LanguageDescription.of({name:"Dart",extensions:["dart"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.dart))}}),LanguageDescription.of({name:"diff",extensions:["diff","patch"],load(){return import("./diff-e72a85b3.js").then(e=>legacy(e.diff))}}),LanguageDescription.of({name:"Dockerfile",filename:/^Dockerfile$/,load(){return import("./dockerfile-f2730f07.js").then(e=>legacy(e.dockerFile))}}),LanguageDescription.of({name:"DTD",extensions:["dtd"],load(){return import("./dtd-da1e6af8.js").then(e=>legacy(e.dtd))}}),LanguageDescription.of({name:"Dylan",extensions:["dylan","dyl","intr"],load(){return import("./dylan-f2ba9f15.js").then(e=>legacy(e.dylan))}}),LanguageDescription.of({name:"EBNF",load(){return import("./ebnf-2174d665.js").then(e=>legacy(e.ebnf))}}),LanguageDescription.of({name:"ECL",extensions:["ecl"],load(){return import("./ecl-e5271367.js").then(e=>legacy(e.ecl))}}),LanguageDescription.of({name:"edn",extensions:["edn"],load(){return import("./clojure-32cc1305.js").then(e=>legacy(e.clojure))}}),LanguageDescription.of({name:"Eiffel",extensions:["e"],load(){return import("./eiffel-efa88d90.js").then(e=>legacy(e.eiffel))}}),LanguageDescription.of({name:"Elm",extensions:["elm"],load(){return import("./elm-63fbccd1.js").then(e=>legacy(e.elm))}}),LanguageDescription.of({name:"Erlang",extensions:["erl"],load(){return import("./erlang-8c025459.js").then(e=>legacy(e.erlang))}}),LanguageDescription.of({name:"Esper",load(){return import("./sql-fbfc84a5.js").then(e=>legacy(e.esper))}}),LanguageDescription.of({name:"Factor",extensions:["factor"],load(){return import("./factor-b9688504.js").then(e=>legacy(e.factor))}}),LanguageDescription.of({name:"FCL",load(){return import("./fcl-d6276f3f.js").then(e=>legacy(e.fcl))}}),LanguageDescription.of({name:"Forth",extensions:["forth","fth","4th"],load(){return import("./forth-02de8e5b.js").then(e=>legacy(e.forth))}}),LanguageDescription.of({name:"Fortran",extensions:["f","for","f77","f90","f95"],load(){return import("./fortran-92612c49.js").then(e=>legacy(e.fortran))}}),LanguageDescription.of({name:"F#",alias:["fsharp"],extensions:["fs"],load(){return import("./mllike-10ca148e.js").then(e=>legacy(e.fSharp))}}),LanguageDescription.of({name:"Gas",extensions:["s"],load(){return import("./gas-c1ef3a64.js").then(e=>legacy(e.gas))}}),LanguageDescription.of({name:"Gherkin",extensions:["feature"],load(){return import("./gherkin-446ca897.js").then(e=>legacy(e.gherkin))}}),LanguageDescription.of({name:"Go",extensions:["go"],load(){return import("./go-7157bdcf.js").then(e=>legacy(e.go))}}),LanguageDescription.of({name:"Groovy",extensions:["groovy","gradle"],filename:/^Jenkinsfile$/,load(){return import("./groovy-15bb0a05.js").then(e=>legacy(e.groovy))}}),LanguageDescription.of({name:"Haskell",extensions:["hs"],load(){return import("./haskell-659ae93f.js").then(e=>legacy(e.haskell))}}),LanguageDescription.of({name:"Haxe",extensions:["hx"],load(){return import("./haxe-8482e88f.js").then(e=>legacy(e.haxe))}}),LanguageDescription.of({name:"HXML",extensions:["hxml"],load(){return import("./haxe-8482e88f.js").then(e=>legacy(e.hxml))}}),LanguageDescription.of({name:"HTTP",load(){return import("./http-6c3ca047.js").then(e=>legacy(e.http))}}),LanguageDescription.of({name:"IDL",extensions:["pro"],load(){return import("./idl-0ef7209d.js").then(e=>legacy(e.idl))}}),LanguageDescription.of({name:"JSON-LD",alias:["jsonld"],extensions:["jsonld"],load(){return import("./javascript-9e8f260e.js").then(e=>legacy(e.jsonld))}}),LanguageDescription.of({name:"Jinja2",extensions:["j2","jinja","jinja2"],load(){return import("./jinja2-7915044e.js").then(e=>legacy(e.jinja2))}}),LanguageDescription.of({name:"Julia",extensions:["jl"],load(){return import("./julia-94b55ee6.js").then(e=>legacy(e.julia))}}),LanguageDescription.of({name:"Kotlin",extensions:["kt"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.kotlin))}}),LanguageDescription.of({name:"LESS",extensions:["less"],load(){return import("./css-79b391c7.js").then(e=>legacy(e.less))}}),LanguageDescription.of({name:"LiveScript",alias:["ls"],extensions:["ls"],load(){return import("./livescript-18d3ed4b.js").then(e=>legacy(e.liveScript))}}),LanguageDescription.of({name:"Lua",extensions:["lua"],load(){return import("./lua-9cec5372.js").then(e=>legacy(e.lua))}}),LanguageDescription.of({name:"mIRC",load(){return import("./mirc-959c94b1.js").then(e=>legacy(e.mirc))}}),LanguageDescription.of({name:"Mathematica",extensions:["m","nb","wl","wls"],load(){return import("./mathematica-4c7527d5.js").then(e=>legacy(e.mathematica))}}),LanguageDescription.of({name:"Modelica",extensions:["mo"],load(){return import("./modelica-decd8598.js").then(e=>legacy(e.modelica))}}),LanguageDescription.of({name:"MUMPS",extensions:["mps"],load(){return import("./mumps-067a7108.js").then(e=>legacy(e.mumps))}}),LanguageDescription.of({name:"mbox",extensions:["mbox"],load(){return import("./mbox-c94b8e5d.js").then(e=>legacy(e.mbox))}}),LanguageDescription.of({name:"Nginx",filename:/nginx.*\.conf$/i,load(){return import("./nginx-a6f68c33.js").then(e=>legacy(e.nginx))}}),LanguageDescription.of({name:"NSIS",extensions:["nsh","nsi"],load(){return import("./nsis-dc357a04.js").then(e=>legacy(e.nsis))}}),LanguageDescription.of({name:"NTriples",extensions:["nt","nq"],load(){return import("./ntriples-12e84b21.js").then(e=>legacy(e.ntriples))}}),LanguageDescription.of({name:"Objective-C",alias:["objective-c","objc"],extensions:["m"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.objectiveC))}}),LanguageDescription.of({name:"Objective-C++",alias:["objective-c++","objc++"],extensions:["mm"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.objectiveCpp))}}),LanguageDescription.of({name:"OCaml",extensions:["ml","mli","mll","mly"],load(){return import("./mllike-10ca148e.js").then(e=>legacy(e.oCaml))}}),LanguageDescription.of({name:"Octave",extensions:["m"],load(){return import("./octave-dfed99d7.js").then(e=>legacy(e.octave))}}),LanguageDescription.of({name:"Oz",extensions:["oz"],load(){return import("./oz-2401d70e.js").then(e=>legacy(e.oz))}}),LanguageDescription.of({name:"Pascal",extensions:["p","pas"],load(){return import("./pascal-05191d71.js").then(e=>legacy(e.pascal))}}),LanguageDescription.of({name:"Perl",extensions:["pl","pm"],load(){return import("./perl-1568efe3.js").then(e=>legacy(e.perl))}}),LanguageDescription.of({name:"Pig",extensions:["pig"],load(){return import("./pig-5d168e86.js").then(e=>legacy(e.pig))}}),LanguageDescription.of({name:"PowerShell",extensions:["ps1","psd1","psm1"],load(){return import("./powershell-c9f2935d.js").then(e=>legacy(e.powerShell))}}),LanguageDescription.of({name:"Properties files",alias:["ini","properties"],extensions:["properties","ini","in"],load(){return import("./properties-c93e40cd.js").then(e=>legacy(e.properties))}}),LanguageDescription.of({name:"ProtoBuf",extensions:["proto"],load(){return import("./protobuf-04fc4e3b.js").then(e=>legacy(e.protobuf))}}),LanguageDescription.of({name:"Puppet",extensions:["pp"],load(){return import("./puppet-ce3af938.js").then(e=>legacy(e.puppet))}}),LanguageDescription.of({name:"Q",extensions:["q"],load(){return import("./q-7adde666.js").then(e=>legacy(e.q))}}),LanguageDescription.of({name:"R",alias:["rscript"],extensions:["r","R"],load(){return import("./r-5c65ce1c.js").then(e=>legacy(e.r))}}),LanguageDescription.of({name:"RPM Changes",load(){return import("./rpm-c892928b.js").then(e=>legacy(e.rpmChanges))}}),LanguageDescription.of({name:"RPM Spec",extensions:["spec"],load(){return import("./rpm-c892928b.js").then(e=>legacy(e.rpmSpec))}}),LanguageDescription.of({name:"Ruby",alias:["jruby","macruby","rake","rb","rbx"],extensions:["rb"],load(){return import("./ruby-21600654.js").then(e=>legacy(e.ruby))}}),LanguageDescription.of({name:"SAS",extensions:["sas"],load(){return import("./sas-3cd85309.js").then(e=>legacy(e.sas))}}),LanguageDescription.of({name:"Scala",extensions:["scala"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.scala))}}),LanguageDescription.of({name:"Scheme",extensions:["scm","ss"],load(){return import("./scheme-9512b48c.js").then(e=>legacy(e.scheme))}}),LanguageDescription.of({name:"SCSS",extensions:["scss"],load(){return import("./css-79b391c7.js").then(e=>legacy(e.sCSS))}}),LanguageDescription.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return import("./shell-c1b04770.js").then(e=>legacy(e.shell))}}),LanguageDescription.of({name:"Sieve",extensions:["siv","sieve"],load(){return import("./sieve-1e0e521e.js").then(e=>legacy(e.sieve))}}),LanguageDescription.of({name:"Smalltalk",extensions:["st"],load(){return import("./smalltalk-e6b766b8.js").then(e=>legacy(e.smalltalk))}}),LanguageDescription.of({name:"Solr",load(){return import("./solr-5597a2d7.js").then(e=>legacy(e.solr))}}),LanguageDescription.of({name:"SML",extensions:["sml","sig","fun","smackspec"],load(){return import("./mllike-10ca148e.js").then(e=>legacy(e.sml))}}),LanguageDescription.of({name:"SPARQL",alias:["sparul"],extensions:["rq","sparql"],load(){return import("./sparql-fc490387.js").then(e=>legacy(e.sparql))}}),LanguageDescription.of({name:"Spreadsheet",alias:["excel","formula"],load(){return import("./spreadsheet-9174e23d.js").then(e=>legacy(e.spreadsheet))}}),LanguageDescription.of({name:"SQL",extensions:["sql"],load(){return import("./sql-fbfc84a5.js").then(e=>legacy(e.standardSQL))}}),LanguageDescription.of({name:"SQLite",load(){return import("./sql-fbfc84a5.js").then(e=>legacy(e.sqlite))}}),LanguageDescription.of({name:"Squirrel",extensions:["nut"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.squirrel))}}),LanguageDescription.of({name:"Stylus",extensions:["styl"],load(){return import("./stylus-6249521d.js").then(e=>legacy(e.stylus))}}),LanguageDescription.of({name:"Swift",extensions:["swift"],load(){return import("./swift-7fa7f33a.js").then(e=>legacy(e.swift))}}),LanguageDescription.of({name:"sTeX",load(){return import("./stex-9c1a0609.js").then(e=>legacy(e.stex))}}),LanguageDescription.of({name:"LaTeX",alias:["tex"],extensions:["text","ltx","tex"],load(){return import("./stex-9c1a0609.js").then(e=>legacy(e.stex))}}),LanguageDescription.of({name:"SystemVerilog",extensions:["v","sv","svh"],load(){return import("./verilog-026cb9a4.js").then(e=>legacy(e.verilog))}}),LanguageDescription.of({name:"Tcl",extensions:["tcl"],load(){return import("./tcl-64088cb9.js").then(e=>legacy(e.tcl))}}),LanguageDescription.of({name:"Textile",extensions:["textile"],load(){return import("./textile-b43085a6.js").then(e=>legacy(e.textile))}}),LanguageDescription.of({name:"TiddlyWiki",load(){return import("./tiddlywiki-719a9b51.js").then(e=>legacy(e.tiddlyWiki))}}),LanguageDescription.of({name:"Tiki wiki",load(){return import("./tiki-c7f18a22.js").then(e=>legacy(e.tiki))}}),LanguageDescription.of({name:"TOML",extensions:["toml"],load(){return import("./toml-adb7882d.js").then(e=>legacy(e.toml))}}),LanguageDescription.of({name:"troff",extensions:["1","2","3","4","5","6","7","8","9"],load(){return import("./troff-1f82bf74.js").then(e=>legacy(e.troff))}}),LanguageDescription.of({name:"TTCN",extensions:["ttcn","ttcn3","ttcnpp"],load(){return import("./ttcn-59c626fc.js").then(e=>legacy(e.ttcn))}}),LanguageDescription.of({name:"TTCN_CFG",extensions:["cfg"],load(){return import("./ttcn-cfg-078eba3a.js").then(e=>legacy(e.ttcnCfg))}}),LanguageDescription.of({name:"Turtle",extensions:["ttl"],load(){return import("./turtle-1cd5251a.js").then(e=>legacy(e.turtle))}}),LanguageDescription.of({name:"Web IDL",extensions:["webidl"],load(){return import("./webidl-dc65d1d3.js").then(e=>legacy(e.webIDL))}}),LanguageDescription.of({name:"VB.NET",extensions:["vb"],load(){return import("./vb-48de61b2.js").then(e=>legacy(e.vb))}}),LanguageDescription.of({name:"VBScript",extensions:["vbs"],load(){return import("./vbscript-5aa6df10.js").then(e=>legacy(e.vbScript))}}),LanguageDescription.of({name:"Velocity",extensions:["vtl"],load(){return import("./velocity-e1fbbfb7.js").then(e=>legacy(e.velocity))}}),LanguageDescription.of({name:"Verilog",extensions:["v"],load(){return import("./verilog-026cb9a4.js").then(e=>legacy(e.verilog))}}),LanguageDescription.of({name:"VHDL",extensions:["vhd","vhdl"],load(){return import("./vhdl-1e8a014b.js").then(e=>legacy(e.vhdl))}}),LanguageDescription.of({name:"XQuery",extensions:["xy","xquery"],load(){return import("./xquery-7782f779.js").then(e=>legacy(e.xQuery))}}),LanguageDescription.of({name:"Yacas",extensions:["ys"],load(){return import("./yacas-21340496.js").then(e=>legacy(e.yacas))}}),LanguageDescription.of({name:"YAML",alias:["yml"],extensions:["yaml","yml"],load(){return import("./yaml-b685a442.js").then(e=>legacy(e.yaml))}}),LanguageDescription.of({name:"Z80",extensions:["z80"],load(){return import("./z80-01cbb90e.js").then(e=>legacy(e.z80))}}),LanguageDescription.of({name:"mscgen",extensions:["mscgen","mscin","msc"],load(){return import("./mscgen-ceec9b1f.js").then(e=>legacy(e.mscgen))}}),LanguageDescription.of({name:"xu",extensions:["xu"],load(){return import("./mscgen-ceec9b1f.js").then(e=>legacy(e.xu))}}),LanguageDescription.of({name:"msgenny",extensions:["msgenny"],load(){return import("./mscgen-ceec9b1f.js").then(e=>legacy(e.msgenny))}}),LanguageDescription.of({name:"WebAssembly",extensions:["wat","wast"],load(){return import("./wast-e15ed0e8.js").then(e=>legacy(e.wast))}})];var tools=[{type:"undo",title:"撤销",innerHTML:''},{type:"redo",title:"重做",innerHTML:''},{type:"bold",title:"加粗",innerHTML:''},{type:"italic",title:"倾斜",innerHTML:''},{type:"delete",title:"删除",innerHTML:''},{type:"code-inline",title:"行内代码",innerHTML:''},{type:"hr",title:"横线",innerHTML:''},{type:"quote",title:"引用",innerHTML:''},{type:"title",title:"标题",innerHTML:''},{type:"ordered-list",title:"有序列表",innerHTML:''},{type:"unordered-list",title:"无序列表",innerHTML:''},{type:"link",title:"超链接",innerHTML:''},{type:"image",title:"插入图片",innerHTML:''},{type:"table",title:"表格",innerHTML:''},{type:"code-block",title:"代码块",innerHTML:''},{type:"html",title:"原生HTML",innerHTML:''},{type:"time",title:"当前时间",innerHTML:''},{type:"indent",title:"缩进",innerHTML:''},{type:"character",title:"实体符号",innerHTML:''},{type:"emoji",title:"符号表情",innerHTML:''},{type:"expression",title:"图片表情",innerHTML:''},{type:"task-no",title:"任务 - 未完成",innerHTML:''},{type:"task-yes",title:"任务 - 已完成",innerHTML:''},{type:"mtitle",title:"居中标题",innerHTML:''},{type:"dplayer",title:"M3U8/MP4视频",innerHTML:''},{type:"bilibili",title:"哔哩哔哩视频",innerHTML:''},{type:"netease-list",title:"网易云列表",innerHTML:''},{type:"netease-single",title:"网易云单首",innerHTML:''},{type:"abtn",title:"多彩按钮",innerHTML:''},{type:"anote",title:"便条按钮",innerHTML:''},{type:"dotted",title:"彩色虚线",innerHTML:''},{type:"hide",title:"回复可见",innerHTML:''},{type:"card-default",title:"默认卡片",innerHTML:''},{type:"message",title:"消息提示",innerHTML:''},{type:"progress",title:"进度条",innerHTML:''},{type:"callout",title:"标注",innerHTML:''},{type:"mp3",title:"外部音乐",innerHTML:''},{type:"tabs",title:"标签页",innerHTML:''},{type:"card-list",title:"卡片列表",innerHTML:''},{type:"timeline",title:"时间轴",innerHTML:''},{type:"copy",title:"复制文本",innerHTML:''},{type:"card-describe",title:"描述卡片",innerHTML:''},{type:"lamp",title:"跑马灯",innerHTML:''},{type:"collapse",title:"折叠面板",innerHTML:''},{type:"cloud",title:"云盘下载",innerHTML:''},{type:"gird",title:"宫格",innerHTML:''},{type:"alert",title:"提示",innerHTML:''},{type:"clean",title:"清屏",innerHTML:''},{type:"download",title:"下载",innerHTML:''},{type:"fullScreen",title:"全屏/取消全屏",innerHTML:''},{type:"preview",title:"预览/取消预览",innerHTML:''},{type:"draft",title:"保存草稿",innerHTML:''},{type:"publish",title:"发布文章",innerHTML:''},{type:"about",title:"关于",innerHTML:''}];class JoeAction{constructor(){$("body").append(` +let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=1;et)return extend[e-1]<=t;return!1}function isRegionalIndicator(e){return 127462<=e&&e<=127487}const ZWJ=8205;function findClusterBreak(e,t,i=!0){return(i?nextClusterBreak:prevClusterBreak)(e,t)}function nextClusterBreak(i,n){if(n==i.length)return n;n&&surrogateLow(i.charCodeAt(n))&&surrogateHigh(i.charCodeAt(n-1))&&n--;let e=codePointAt(i,n);for(n+=codePointSize(e);n>10),56320+(1023&e)))}function codePointSize(e){return e<65536?1:2}function countColumn(t,i,n){for(let e=0;ethis.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){var n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(t,this.length,n,1),TextNode.from(n,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){var i=[];return this.decompose(e,t,i,0),TextNode.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=new RawTextCursor(this),i=new RawTextCursor(e);for(;;){if(t.next(),i.next(),t.lineBreak!=i.lineBreak||t.done!=i.done||t.value!=i.value)return!1;if(t.done)return!0}}iter(e=1){return new RawTextCursor(this,e)}iterRange(e,t=this.length){return new PartialTextCursor(this,e,t)}toString(){return this.sliceString(0)}toJSON(){var e=[];return this.flatten(e),e}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new TextLeaf(e):TextNode.from(TextLeaf.split(e,[])):Text.empty}}"undefined"!=typeof Symbol&&(Text.prototype[Symbol.iterator]=function(){return this.iter()});class TextLeaf extends Text{constructor(e,t=textLength(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(t,i,n,r){for(let e=0;;e++){var s=this.text[e],a=r+s.length;if(t<=(i?n:a))return new Line$1(r,a,n,s);r=a+1,n++}}decompose(i,e,n,r){i=i<=0&&e>=this.length?this:new TextLeaf(sliceText(this.text,i,e),Math.min(e,this.length)-Math.max(0,i));if(1&r){let e=n.pop(),t=appendText(i.text,e.text.slice(),0,i.length);t.length<=32?n.push(new TextLeaf(t,e.length+i.length)):(r=t.length>>1,n.push(new TextLeaf(t.slice(0,r)),new TextLeaf(t.slice(r))))}else n.push(i)}replace(e,t,i){if(!(i instanceof TextLeaf))return super.replace(e,t,i);var n=appendText(this.text,appendText(i.text,sliceText(this.text,0,e)),t),e=this.length+i.length-(t-e);return n.length<=32?new TextLeaf(n,e):TextNode.from(TextLeaf.split(n,[]),e)}sliceString(r,s=this.length,a="\n"){let o="";for(let i=0,n=0;i<=s&&nr&&n&&(o+=a),ri&&(o+=e.slice(Math.max(0,r-i),s-i)),i=t+1}return o}flatten(e){for(var t of this.text)e.push(t)}static split(e,t){let i=[],n=-1;for(var r of e)i.push(r),n+=r.length+1,32==i.length&&(t.push(new TextLeaf(i,n)),i=[],n=-1);return-1=n&&(l=o&((n<=r?1:0)|(s<=t?2:0)),n>=r&&t<=s&&!l?a.push(e):e.decompose(r-n,s-n,a,l)),n=t+1}}replace(r,s,a){if(a.lines=n&&s<=t){var o=e.replace(r-n,s-n,a),l=this.lines-e.lines+o.lines;if(o.lines>4&&o.lines>l>>6){let e=this.children.slice();return e[i]=o,new TextNode(e,this.length-(s-r)+a.length)}return super.replace(n,t,o)}n=t+1}return super.replace(r,s,a)}sliceString(r,s=this.length,a="\n"){let o="";for(let i=0,n=0;ir&&i&&(o+=a),rn&&(o+=e.sliceString(r-n,s-n,a)),n=t+1}return o}flatten(e){for(var t of this.children)t.flatten(e)}static from(e,t=e.reduce((e,t)=>e+t.length+1,-1)){let i=0;for(var n of e)i+=n.lines;if(i<32){var r,s=[];for(r of e)r.flatten(s);return new TextLeaf(s,t)}let a=Math.max(32,i>>5),o=a<<1,l=a>>1,c=[],h=0,d=-1,u=[];function p(){0!=h&&(c.push(1==u.length?u[0]:TextNode.from(u,d)),d=-1,h=u.length=0)}for(var O of e)!function e(t){let i;if(t.lines>o&&t instanceof TextNode)for(var n of t.children)e(n);else t.lines>l&&(h>l||!h)?(p(),c.push(t)):t instanceof TextLeaf&&h&&(i=u[u.length-1])instanceof TextLeaf&&t.lines+i.lines<=32?(h+=t.lines,d+=t.length+1,u[u.length-1]=new TextLeaf(i.text.concat(t.text),i.length+1+t.length)):(h+t.lines>a&&p(),h+=t.lines,d+=t.length+1,u.push(t))}(O);return p(),1==c.length?c[0]:new TextNode(c,t)}}function textLength(e){let t=-1;for(var i of e)t+=i.length+1;return t}function appendText(s,a,o=0,l=1e9){for(let i=0,n=0,r=!0;nMath.max(0,n))return this.value=0==n?e:0e.length?n-=e.length:(this.nodes.push(e),this.offsets.push(0this.limit&&(this.value=0r)throw new RangeError(`Position ${t} is out of range for changeset of length ${r}`);return s}touchesRange(i,n=i){for(let e=0,t=0;e"number"!=typeof e))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ChangeDesc(e)}}class ChangeSet extends ChangeDesc{constructor(e,t){super(e),this.inserted=t}apply(s){if(this.length!=s.length)throw new RangeError("Applying change set to a document with the wrong length");return iterChanges(this,(e,t,i,n,r)=>s=s.replace(i,i+(t-e),r),!1),s}mapDesc(e,t=!1){return mapSet(this,e,t,!0)}invert(i){let n=this.sections.slice(),r=[];for(let e=0,t=0;e>1;r.length>1].toJSON()))}return n}static of(e,s,a){let o=[],l=[],c=0,i=null;function h(e=!1){if(e||o.length){cc&&addSection(o,e-c,-1),addSection(o,t-e,n),addInsert(l,o,r),c=t)}}(e),h(!i),i}static empty(e){return new ChangeSet(e?[e,-1]:[],[])}static fromJSON(i){if(!Array.isArray(i))throw new RangeError("Invalid JSON representation of ChangeSet");let n=[],r=[];for(let t=0;tt&&"string"!=typeof e))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==e.length)n.push(e[0],0);else{for(;r.length>1;if(n>1])),!(h||o==l.sections.length||l.sections[o+1]<0);)n=l.sections[o++],r=l.sections[o++];c(s,e,a,t,i),s=e,a=t}}}function mapSet(e,t,r,i=!1){var s=[],a=i?[]:null;let o=new SectionIter(e),l=new SectionIter(t);for(let i=0,n=0;;)if(-1==o.ins)i+=o.len,o.next();else if(-1==l.ins&&nn&&!o.done&&i+o.leni&&n+l.lenl||0<=a.ins&&a.len>l)&&(e||c>1;return t>=e.length?Text.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?Text.empty:t[i].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class SelectionRange{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return 16&this.flags?this.to:this.from}get head(){return 16&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 4&this.flags?-1:8&this.flags?1:0}get bidiLevel(){var e=3&this.flags;return 3==e?null:e}get goalColumn(){var e=this.flags>>5;return 33554431==e?void 0:e}map(e,t=-1){var i=e.mapPos(this.from,t),t=e.mapPos(this.to,t);return i==this.from&&t==this.to?this:new SelectionRange(i,t,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return EditorSelection.range(e,t);t=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return EditorSelection.range(this.anchor,t)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return EditorSelection.range(e.anchor,e.head)}}class EditorSelection{constructor(e,t=0){this.ranges=e,this.mainIndex=t}map(t,i=-1){return t.empty?this:EditorSelection.create(this.ranges.map(e=>e.map(t,i)),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;ee.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new EditorSelection(e.ranges.map(e=>SelectionRange.fromJSON(e)),e.main)}static single(e,t=e){return new EditorSelection([EditorSelection.range(e,t)],0)}static create(i,n=0){if(0==i.length)throw new RangeError("A selection needs at least one range");for(let e=0,t=0;te.from-t.from),i=t.indexOf(e);for(let e=1;er.head?EditorSelection.range(s,n):EditorSelection.range(n,s)))}return new EditorSelection(t,i)}function checkSelection(e,t){for(var i of e.ranges)if(i.to>t)throw new RangeError("Selection points outside of document")}let nextID=0;class Facet{constructor(e,t,i,n,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=n,this.extensions=r,this.id=nextID++,this.default=e([])}static define(e={}){return new Facet(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:sameArray$1),!!e.static,e.enables)}of(e){return new FacetProvider([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new FacetProvider(e,this,2,t)}from(t,i){return i=i||(e=>e),this.compute([t],e=>i(e.field(t)))}}function sameArray$1(e,i){return e==i||e.length==i.length&&e.every((e,t)=>e===i[t])}class FacetProvider{constructor(e,t,i,n){this.dependencies=e,this.facet=t,this.type=i,this.value=n,this.id=nextID++}dynamicSlot(e){var t,i;let n=this.value,r=this.facet.compareInput,s=e[this.id]>>1,a=2==this.type,o=!1,l=!1,c=[];for(i of this.dependencies)"doc"==i?o=!0:"selection"==i?l=!0:0==(1&(null!==(t=e[i.id])&&void 0!==t?t:1))&&c.push(e[i.id]);return(t,e)=>{if(!e||e.reconfigured)return t.values[s]=n(t),1;if(!(o&&e.docChanged||l&&(e.docChanged||e.selection)||c.some(e=>0<(1&ensureAddr(t,e)))))return 0;var i=n(t),e=e.startState.values[s];return(a?compareArray(i,e,r):r(i,e))?0:(t.values[s]=i,1)}}}function compareArray(t,i,n){if(t.length!=i.length)return!1;for(let e=0;et[e.id]),d=e.map(e=>e.type),u=h.filter(e=>!(1&e)),p=t[c.id]>>1;return(t,e)=>{var i,n=e?e.reconfigured?e.startState.config.address[c.id]:p<<1:null;let r=null==n;for(i of u)1&ensureAddr(t,i)&&(r=!0);if(!r)return 0;let s=[];for(let e=0;e>1}const initField=Facet.define({static:!0});class StateField{constructor(e,t,i,n,r){this.id=e,this.createF=t,this.updateF=i,this.compareF=n,this.spec=r,this.provides=void 0}static define(e){let t=new StateField(nextID++,e.create,e.update,e.compare||((e,t)=>e===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(initField).find(e=>e.field==this);return((null===t||void 0===t?void 0:t.create)||this.createF)(e)}slot(e){let r=e[this.id]>>1;return(e,t)=>{if(!t||t.reconfigured&&null==maybeIndex(t.startState,this.id))return e.values[r]=this.create(e),1;let i,n=0;t.reconfigured?(i=t.startState.values[maybeIndex(t.startState,this.id)],n=1):i=t.startState.values[r];t=this.updateF(i,t);return n||this.compareF(i,t)||(n=1),n&&(e.values[r]=t),n}}init(e){return[this,initField.of({field:this,create:e})]}get extension(){return this}}const Prec_={fallback:3,default:2,extend:1,override:0};function prec(t){return e=>new PrecExtension(e,t)}const Prec={fallback:prec(Prec_.fallback),default:prec(Prec_.default),extend:prec(Prec_.extend),override:prec(Prec_.override)};class PrecExtension{constructor(e,t){this.inner=e,this.prec=t}}class Compartment{of(e){return new CompartmentInstance(this,e)}reconfigure(e){return Compartment.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class CompartmentInstance{constructor(e,t){this.compartment=e,this.inner=t}}class Configuration{constructor(e,t,i,n,r){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let i=[],r=Object.create(null);var s,a,o=new Map;for(s of flatten(e,t,o))(s instanceof StateField?i:r[s.facet.id]||(r[s.facet.id]=[])).push(s);let l=Object.create(null),c=[],h=[];for(let t of i)l[t.id]=h.length<<1,h.push(e=>t.slot(e));for(a in r){let i=r[a],t=i[0].facet;if(i.every(e=>0==e.type)){l[t.id]=c.length<<1|1;let e=t.combine(i.map(e=>e.value));var d=n?n.config.address[t.id]:null;null!=d&&(d=getAddr(n,d),t.compare(e,d)&&(e=d)),c.push(e)}else{for(let t of i)0==t.type?(l[t.id]=c.length<<1|1,c.push(t.value)):(l[t.id]=h.length<<1,h.push(e=>t.dynamicSlot(e)));l[t.id]=h.length<<1,h.push(e=>dynamicFacetSlot(e,t,i))}}return new Configuration(e,o,h.map(e=>e(l)),l,c)}}function flatten(e,o,l){let c=[[],[],[],[]],h=new Map;return function e(t,i){var n=h.get(t);if(null!=n){if(i<=n)return;var r=c[n].indexOf(t);-1e.concat(t))}function ensureAddr(e,t){if(1&t)return 2;var i=t>>1,t=e.status[i];if(4==t)throw new Error("Cyclic dependency between fields and/or facets");if(2&t)return t;e.status[i]=4;t=e.config.dynamicSlots[i](e,e.applying);return e.status[i]=2|t}function getAddr(e,t){return(1&t?e.config.staticValues:e.values)[t>>1]}const languageData=Facet.define(),allowMultipleSelections=Facet.define({combine:e=>e.some(e=>e),static:!0}),lineSeparator=Facet.define({combine:e=>e.length?e[0]:void 0,static:!0}),changeFilter=Facet.define(),transactionFilter=Facet.define(),transactionExtender=Facet.define();class Annotation{constructor(e,t){this.type=e,this.value=t}static define(){return new AnnotationType}}class AnnotationType{of(e){return new Annotation(this,e)}}class StateEffectType{constructor(e){this.map=e}of(e){return new StateEffect(this,e)}}class StateEffect{constructor(e,t){this.type=e,this.value=t}map(e){e=this.type.map(this.value,e);return void 0===e?void 0:e==this.value?this:new StateEffect(this.type,e)}is(e){return this.type==e}static define(e={}){return new StateEffectType(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(var n of e){n=n.map(t);n&&i.push(n)}return i}}StateEffect.reconfigure=StateEffect.define(),StateEffect.appendConfig=StateEffect.define();class Transaction{constructor(e,t,i,n,r,s){this.startState=e,this.changes=t,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=s,this._doc=null,this._state=null,i&&checkSelection(i,t.newLength),r.some(e=>e.type==Transaction.time)||(this.annotations=r.concat(Transaction.time.of(Date.now())))}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(var t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}}function joinRanges(r,s){let a=[];for(let i=0,n=0;;){let e,t;if(i=r[i]))e=r[i++],t=r[i++];else{if(!(n{if(!/\S/.test(t))return CharCategory.Space;if(hasWordChar(t))return CharCategory.Word;for(let e=0;enull),n)for(var r in e.address){var s=e.address[r],r=n.startState.config.address[r];null!=r&&0==(1&s)&&(this.values[s>>1]=getAddr(n.startState,r))}(this.applying=n)&&(n._state=this);for(let e=0;en.set(t,e)),t=null),n.set(r.value.compartment,r.value.extension)):r.is(StateEffect.reconfigure)?(t=null,i=r.value):r.is(StateEffect.appendConfig)&&(t=null,i=asArray(i).concat(r.value));new EditorState(t||Configuration.resolve(i,n,this),e.newDoc,e.newSelection,e)}replaceSelection(t){return"string"==typeof t&&(t=this.toText(t)),this.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:t},range:EditorSelection.cursor(e.from+t.length)}))}changeByRange(r){var s=this.selection,e=r(s.ranges[0]);let a=this.changes(e.changes),o=[e.range],l=asArray(e.effects);for(let n=1;nt.spec.fromJSON(i,e)))}return EditorState.create({doc:e.doc,selection:EditorSelection.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(e={}){let t=Configuration.resolve(e.extensions||[],new Map);var i=e.doc instanceof Text?e.doc:Text.of((e.doc||"").split(t.staticFacet(EditorState.lineSeparator)||DefaultSplit));let n=e.selection?e.selection instanceof EditorSelection?e.selection:EditorSelection.single(e.selection.anchor,e.selection.head):EditorSelection.single(0);return checkSelection(n,i.length),t.staticFacet(allowMultipleSelections)||(n=n.asSingle()),new EditorState(t,i,n)}get tabSize(){return this.facet(EditorState.tabSize)}get lineBreak(){return this.facet(EditorState.lineSeparator)||"\n"}phrase(e){for(var t of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(t,e))return t[e];return e}languageDataAt(e,t){let i=[];for(var n of this.facet(languageData))for(var r of n(this,t))Object.prototype.hasOwnProperty.call(r,e)&&i.push(r[e]);return i}charCategorizer(e){return makeCategorizer(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:n}=this.doc.lineAt(e),r=this.charCategorizer(e),s=e-i,a=e-i;for(;0e.length?e[0]:4}),EditorState.lineSeparator=lineSeparator,EditorState.phrases=Facet.define(),EditorState.languageData=languageData,EditorState.changeFilter=changeFilter,EditorState.transactionFilter=transactionFilter,EditorState.transactionExtender=transactionExtender,Compartment.reconfigure=StateEffect.define();const C="ͼ",COUNT="undefined"==typeof Symbol?"__"+C:Symbol.for(C),SET="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),top="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class StyleModule{constructor(e,t){this.rules=[];let{finish:h}=t||{};function d(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}for(var i in e)!function e(i,t,n,r){let s=[],a=/^@(\w+)\b/.exec(i[0]),o=a&&"keyframes"==a[1];if(a&&null==t)return n.push(i[0]+";");for(var l in t){var c=t[l];if(/&/.test(l))e(l.split(/,\s*/).map(t=>i.map(e=>t.replace(/&/,e))).reduce((e,t)=>e.concat(t)),c,n);else if(c&&"object"==typeof c){if(!a)throw new RangeError("The value of a property ("+l+") should be a primitive value.");e(d(l),c,s,o)}else null!=c&&s.push(l.replace(/_.*/,"").replace(/[A-Z]/g,e=>"-"+e.toLowerCase())+": "+c+";")}(s.length||o)&&n.push((!h||a||r?i:i.map(h)).join(", ")+" {"+s.join(" ")+"}")}(d(i),e[i],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=top[COUNT]||1;return top[COUNT]=e+1,C+e.toString(36)}static mount(e,t){(e[SET]||new StyleSet(e)).mount(Array.isArray(t)?t:[t])}}let adoptedSet=null;class StyleSet{constructor(t){if(!t.head&&t.adoptedStyleSheets&&"undefined"!=typeof CSSStyleSheet){if(adoptedSet)return t.adoptedStyleSheets=[adoptedSet.sheet].concat(t.adoptedStyleSheets),t[SET]=adoptedSet;this.sheet=new CSSStyleSheet,t.adoptedStyleSheets=[this.sheet].concat(t.adoptedStyleSheets),adoptedSet=this}else{this.styleTag=(t.ownerDocument||t).createElement("style");let e=t.head||t;e.insertBefore(this.styleTag,e.firstChild)}this.modules=[],t[SET]=this}mount(n){let r=this.sheet,s=0,a=0;for(let i=0;i>1,l=a[o]-i||(n<0?this.value[o].startSide:this.value[o].endSide)-r;if(o==e)return 0<=l?e:t;0<=l?t=o:e=1+o}}between(i,n,r,s){for(let e=this.findIndex(n,-1),t=this.findIndex(r,1,void 0,e);er||n==r&&0this.chunkEnd(a.chunkIndex)||ra.to||r500<=e.maxPoint||e!=RangeSet.empty&&i.indexOf(e)<0&&e.maxPoint>=r),a=i.filter(e=>500<=e.maxPoint||e!=RangeSet.empty&&t.indexOf(e)<0&&e.maxPoint>=r),o=findSharedChunks(s,a);let l=new SpanCursor(s,o,r),c=new SpanCursor(a,o,r);e.iterGaps((e,t,i)=>compare(l,e,c,t,i,n)),e.empty&&0==e.length&&compare(l,0,c,0,0,n)}static spans(e,t,i,n,r=-1){let s=new SpanCursor(e,null,r).goto(t),a=t,o=s.openStart;for(;;){var l=Math.min(s.to,i);if(s.point?(n.point(a,l,s.point,s.activeForPoint(s.to),o),o=s.openEnd(l)+(s.to>l?1:0)):l>a&&(n.span(a,l,s.active,o),o=s.openEnd(l)),s.to>i)break;a=s.to,s.next()}return o}static of(e,t=!1){let i=new RangeSetBuilder;for(var n of e instanceof Range?[e]:t?e.slice().sort(cmpRange):e)i.add(n.from,n.to,n.value);return i.finish()}}RangeSet.empty=new RangeSet([],[],null,-1),RangeSet.empty.nextLayer=RangeSet.empty;class RangeSetBuilder{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(e,t,i)}addInner(e,t,i){var n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(n<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);var i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(RangeSet.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;e=new RangeSet(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,e}}function findSharedChunks(e,t){let i=new Map;for(var n of e)for(let e=0;e=this.minPoint)break}}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.to-e.to||this.endSide-e.endSide}}class HeapCursor{constructor(e){this.heap=e}static from(i,n=null,r=-1){let s=[];for(let t=0;t=r&&s.push(new LayerCursor(e,n,r,t));return 1==s.length?s[0]:new HeapCursor(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(var i of this.heap)i.goto(e,t);for(let e=this.heap.length>>1;0<=e;e--)heapBubble(this.heap,e);return this.next(),this}forward(e,t){for(var i of this.heap)i.forward(e,t);for(let e=this.heap.length>>1;0<=e;e--)heapBubble(this.heap,e);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),heapBubble(this.heap,0)}}}function heapBubble(n,r){for(let i=n[r];;){let e=1+(r<<1);if(e>=n.length)break;let t=n[e];if(e+1t){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&remove(i,r)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}r=this.cursor.value;if(r.point){if(!(e&&this.cursor.to==this.to&&this.cursor.fromt&&this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(i),this.cursor.next()}}if(i){let e=0;for(;et||this.activeTo[e]==t&&this.active[e].endSide>this.point.endSide)&&i.push(this.active[e]);return i.reverse()}openEnd(t){let i=0;for(let e=this.activeTo.length-1;0<=e&&this.activeTo[e]>t;e--)i++;return i}}function compare(e,t,i,n,r,s){e.goto(t),i.goto(n);var a=n+r;let o=n,l=n-t;for(;;){var c=e.to+l-i.to||e.endSide-i.endSide,h=c<0?e.to+l:i.to,d=Math.min(h,a);if(e.point||i.point?e.point&&i.point&&(e.point==i.point||e.point.eq(i.point))||s.comparePoint(o,d,e.point,i.point):d>o&&!sameValues(e.active,i.active)&&s.compareRange(o,d,e.active,i.active),a=i;e--)t[e+1]=t[e];t[i]=e}function findMinIndex(t,i){let n=-1,r=1e9;for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},chrome$1="undefined"!=typeof navigator&&/Chrome\/(\d+)/.exec(navigator.userAgent),safari$1="undefined"!=typeof navigator&&/Apple Computer/.test(navigator.vendor),gecko$1="undefined"!=typeof navigator&&/Gecko\/\d+/.test(navigator.userAgent),mac="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),ie$1="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),brokenModifierNames=chrome$1&&(mac||+chrome$1[1]<57)||gecko$1&&mac,i=0;i<10;i++)base[48+i]=base[96+i]=String(i);for(i=1;i<=24;i++)base[i+111]="F"+i;for(var code,i=65;i<=90;i++)base[i]=String.fromCharCode(i+32),shift[i]=String.fromCharCode(i);for(code in base)shift.hasOwnProperty(code)||(shift[code]=base[code]);function keyName(e){e=!(brokenModifierNames&&(e.ctrlKey||e.altKey||e.metaKey)||(safari$1||ie$1)&&e.shiftKey&&e.key&&1==e.key.length)&&e.key||(e.shiftKey?shift:base)[e.keyCode]||e.key||"Unidentified";return e="Down"==(e="Right"==(e="Up"==(e="Left"==(e="Del"==(e="Esc"==e?"Escape":e)?"Delete":e)?"ArrowLeft":e)?"ArrowUp":e)?"ArrowRight":e)?"ArrowDown":e}function getSelection(e){return(e.getSelection?e:document).getSelection()}function contains(e,t){return!!t&&e.contains(1!=t.nodeType?t.parentNode:t)}function deepActiveElement(){let e=document.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function hasSelection(e,t){if(!t.anchorNode)return!1;try{return contains(e,t.anchorNode)}catch(e){return!1}}function clientRectsFor(e){return 3==e.nodeType?textRange(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function isEquivalentPosition(e,t,i,n){return!!i&&(scanFor(e,t,i,n,-1)||scanFor(e,t,i,n,1))}function domIndex(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function scanFor(e,t,i,n,r){for(;;){if(e==i&&t==n)return!0;if(t==(r<0?0:maxOffset(e))){if("DIV"==e.nodeName)return!1;var s=e.parentNode;if(!s||1!=s.nodeType)return!1;t=domIndex(e)+(r<0?0:1),e=s}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(r<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=r<0?maxOffset(e):0}}}function maxOffset(e){return(3==e.nodeType?e.nodeValue:e.childNodes).length}const Rect0={left:0,right:0,top:0,bottom:0};function flattenRect(e,t){t=t?e.left:e.right;return{left:t,right:t,top:e.top,bottom:e.bottom}}function windowRect(e){return{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}const ScrollSpace=5;function scrollRectIntoView(e,s){let t=e.ownerDocument,a=t.defaultView;for(let r=e.parentNode;r;)if(1==r.nodeType){let e,t=r==document.body;if(t)e=windowRect(a);else{if(r.scrollHeight<=r.clientHeight&&r.scrollWidth<=r.clientWidth){r=r.parentNode;continue}var o=r.getBoundingClientRect();e={left:o.left,right:o.left+r.clientWidth,top:o.top,bottom:o.top+r.clientHeight}}let i=0,n=0;var l;if(s.tope.bottom&&(n=s.bottom-e.bottom+ScrollSpace),s.lefte.right&&(i=s.right-e.right+ScrollSpace),(i||n)&&(t?a.scrollBy(i,n):(n&&(l=r.scrollTop,r.scrollTop+=n,n=r.scrollTop-l),i&&(l=r.scrollLeft,r.scrollLeft+=i,i=r.scrollLeft-l),s={left:s.left-i,top:s.top-n,right:s.right-i,bottom:s.bottom-n})),t)break;r=r.assignedSlot||r.parentNode}else{if(11!=r.nodeType)break;r=r.host}}class DOMSelection{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}}let preventScrollSupported=null;function focusPreventScroll(t){if(t.setActive)return t.setActive();if(preventScrollSupported)return t.focus(preventScrollSupported);let r=[];for(let e=t;e&&(r.push(e,e.scrollTop,e.scrollLeft),e!=e.ownerDocument);e=e.parentNode);if(t.focus(null==preventScrollSupported?{get preventScroll(){return preventScrollSupported={preventScroll:!0},!0}}:void 0),!preventScrollSupported){preventScrollSupported=!1;for(let n=0;na&&e.dom.parentNode==this.dom){c=i,h=r;break}r=t,n=t+e.breakAfter}return{from:l,to:h<0?e+this.length:h,startDOM:(o?this.children[o-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:cthis.pos||e==this.pos&&(0MaxJoinLen))&&(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}slice(e){return new TextView(this.text.slice(e))}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new DOMPos(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return textCoords(this.dom,e,t)}}class MarkView extends InlineView{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(var n of t)n.setParent(this)}createDOM(){let e=document.createElement(this.mark.tagName);if(this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(var t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);this.setDOM(e)}sync(e){this.dom||this.createDOM(),super.sync(e)}merge(e,t,i,n,r){return(!i||!(!(i instanceof MarkView&&i.mark.eq(this.mark))||e&&n<=0||te.width)||o),a?flattenRect(o,a<0):o}class WidgetView extends InlineView{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i}static create(e,t,i){return new(e.customView||WidgetView)(e,t,i)}slice(e){return WidgetView.create(this.widget,this.length-e,this.side)}sync(){this.dom&&this.widget.updateDOM(this.dom)||(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,n,r){return!(i&&(!(i instanceof WidgetView&&this.widget.compare(i.widget))||0i&&se?i[r]=Math.max(i[r],t):i.push(e,t)}PointDecoration.prototype.point=!0;class LineView extends ContentView{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,n,r,s){if(i){if(!(i instanceof LineView))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),mergeInlineChildren(this,e,t,i?i.children:none$1$1,r,s),!0}split(e){let t=new LineView;if(t.breakAfter=this.breakAfter,0==this.length)return t;let{i,off:n}=this.childPos(e);n&&(t.append(this.children[i].slice(n),0),this.children[i].merge(n,this.children[i].length,null,0,0),i++);for(let e=i;ee instanceof TextView))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(0==this.children.length||20!e.length||e[0]});class PluginFieldProvider{constructor(e,t){this.field=e,this.get=t}}class PluginField{from(e){return new PluginFieldProvider(this,e)}static define(){return new PluginField}}PluginField.decorations=PluginField.define(),PluginField.atomicRanges=PluginField.define(),PluginField.scrollMargins=PluginField.define();let nextPluginID=0;const viewPlugin=Facet.define();class ViewPlugin{constructor(e,t,i){this.id=e,this.create=t,this.fields=i,this.extension=viewPlugin.of(this)}static define(e,t){let{eventHandlers:i,provide:n,decorations:r}=t||{},s=[];if(n)for(var a of Array.isArray(n)?n:[n])s.push(a);return i&&s.push(domEventHandlers.from(e=>({plugin:e,handlers:i}))),r&&s.push(PluginField.decorations.from(r)),new ViewPlugin(nextPluginID++,e,s)}static fromClass(t,e){return ViewPlugin.define(e=>new t(e),e)}}const domEventHandlers=PluginField.define();class PluginInstance{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}takeField(e,t){for(var{field:i,get:n}of this.spec.fields)i==e&&t.push(n(this.value))}update(t){if(this.value){if(this.mustUpdate){var i=this.mustUpdate;if(this.mustUpdate=null,!this.value.update)return this;try{this.value.update(i)}catch(e){if(logException(i.state,e,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(e){}return PluginInstance.dummy}}}else try{this.value=this.spec.create(t)}catch(e){return logException(t.state,e,"CodeMirror plugin crashed"),PluginInstance.dummy}return this}destroy(t){var e;if(null!==(e=this.value)&&void 0!==e&&e.destroy)try{this.value.destroy()}catch(e){logException(t.state,e,"CodeMirror plugin crashed")}}}PluginInstance.dummy=new PluginInstance(ViewPlugin.define(()=>({})));const editorAttributes=Facet.define({combine:e=>e.reduce((e,t)=>combineAttrs(t,e),{})}),contentAttributes=Facet.define({combine:e=>e.reduce((e,t)=>combineAttrs(t,e),{})}),decorations=Facet.define(),styleModule=Facet.define();class ChangedRange{constructor(e,t,i,n){this.fromA=e,this.toA=t,this.fromB=i,this.toB=n}join(e){return new ChangedRange(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;0i.toA)){if(n.toAr.push(new ChangedRange(e,t,i,n))),this.changedRanges=r;i=e.hasFocus;i!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=i,this.flags|=1),this.docChanged&&(this.flags|=2)}get viewportChanged(){return 0<(4&this.flags)}get heightChanged(){return 0<(2&this.flags)}get geometryChanged(){return this.docChanged||0<(18&this.flags)}get focusChanged(){return 0<(1&this.flags)}get docChanged(){return this.transactions.some(e=>e.docChanged)}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return 0==this.flags&&0==this.transactions.length}}class DocView extends ContentView{constructor(e){super(),this.view=e,this.compositionDeco=Decoration.none,this.decorations=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.setDOM(e.contentDOM),this.children=[new LineView],this.children[0].setParent(this),this.updateInner([new ChangedRange(0,0,0,e.state.doc.length)],this.updateDeco(),0)}get root(){return this.view.root}get editorView(){return this.view}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;0tthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=0),this.view.inputState.composing<0?this.compositionDeco=Decoration.none:e.transactions.length&&(this.compositionDeco=computeCompositionDeco(this.view,e.changes));var i=(browser.ie||browser.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines,n=this.decorations,r=this.updateDeco(),n=findChangedDeco(n,r,e.changes);t=ChangedRange.extendWithRanges(t,n);n=e.transactions.some(e=>"pointerselection"==e.annotation(Transaction.userEvent));return 0==this.dirty&&0==t.length&&!(12&e.flags)&&e.state.selection.main.from>=this.view.viewport.from&&e.state.selection.main.to<=this.view.viewport.to?(this.updateSelection(i,n),!1):(this.updateInner(t,r,e.startState.doc.length,i,n),!0)}updateInner(e,t,i,n=!1,r=!1){this.updateChildren(e,t,i);let{observer:s}=this.view;s.ignore(()=>{this.dom.style.height=this.view.viewState.domHeight+"px",this.dom.style.minWidth=this.minWidth?this.minWidth+"px":"";var e=browser.chrome||browser.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(e),this.dirty=0,e&&(e.written||s.selectionRange.focusNode!=e.node)&&(n=!0),this.updateSelection(n,r),this.dom.style.height=""})}updateChildren(t,i,e){let n=this.childCursor(e);for(let e=t.length-1;;e--){var r=0<=e?t[e]:null;if(!r)break;var{fromA:s,toA:a,fromB:o,toB:l}=r,{content:c,breakAtStart:h,openStart:d,openEnd:r}=ContentBuilder.build(this.view.state.doc,o,l,i),{i:o,off:l}=n.findPos(a,1),{i:a,off:s}=n.findPos(s,-1);this.replaceRange(a,s,o,l,c,h,d,r)}}replaceRange(t,i,n,r,s,a,o,l){let c=this.children[t],h=s.length?s[s.length-1]:null;var d=h?h.breakAfter:a;if(t!=n||a||d||!(s.length<2)||!c.merge(i,r,s.length?h:null,0==i,o,l)){let e=this.children[n];for(rr.node.insertBefore(e,r.node.childNodes[r.offset]||null)),r=s=new DOMPos(e,0),t=!0}let a=this.view.observer.selectionRange;!(t||!a.focusNode||browser.gecko&&n.empty&&nextToUneditable(a.focusNode,a.focusOffset))&&isEquivalentPosition(r.node,r.offset,a.anchorNode,a.anchorOffset)&&isEquivalentPosition(s.node,s.offset,a.focusNode,a.focusOffset)||(this.view.observer.ignore(()=>{let t=getSelection(this.root);var e,i;if(n.empty)browser.gecko&&(!(e=nextToUneditable(r.node,r.offset))||3==e||(i=nearbyTextNode(r.node,r.offset,1==e?1:-1))&&(r=new DOMPos(i,1==e?0:i.nodeValue.length))),t.collapse(r.node,r.offset),null!=n.bidiLevel&&null!=a.cursorBidiLevel&&(a.cursorBidiLevel=n.bidiLevel);else if(t.extend)t.collapse(r.node,r.offset),t.extend(s.node,s.offset);else{let e=document.createRange();n.anchor>n.head&&([r,s]=[s,r]),e.setEnd(s.node,s.offset),e.setStart(r.node,r.offset),t.removeAllRanges(),t.addRange(e)}}),this.view.observer.setSelectionRange(r,s)),this.impreciseAnchor=r.precise?null:new DOMPos(a.anchorNode,a.anchorOffset),this.impreciseHead=s.precise?null:new DOMPos(a.focusNode,a.focusOffset)}}enforceCursorAssoc(){var e,t,i=this.view.state.selection.main;let n=getSelection(this.root);i.empty&&i.assoc&&n.modify&&((t=LineView.find(this,i.head))&&(e=t.posAtStart,i.head!=e&&i.head!=e+t.length&&(e=this.coordsAt(i.head,-1),t=this.coordsAt(i.head,1),!e||!t||e.bottom>t.top||(t=this.domAtPos(i.head+i.assoc),n.collapse(t.node,t.offset),n.modify("move",i.assoc<0?"forward":"backward","lineboundary")))))}mayControlSelection(){return this.view.state.facet(editable)?this.root.activeElement==this.dom:hasSelection(this.dom,this.view.observer.selectionRange)}nearest(t){for(let e=t;e;){var i=ContentView.get(e);if(i&&i.rootView==this)return i;e=e.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;t=s&&(r.push(e.dom.getBoundingClientRect().height),(l=e.dom.scrollWidth)>o&&(this.minWidth=o=l,this.minWidthFrom=i,this.minWidthTo=t)),i=t+e.breakAfter}return r}measureTextSize(){for(var e of this.children)if(e instanceof LineView){e=e.measureTextSize();if(e)return e}let t=document.createElement("div"),i,n;return t.className="cm-line",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(t);var e=clientRectsFor(t.firstChild)[0];i=t.getBoundingClientRect().height,n=e?e.width/27:7,t.remove()}),{lineHeight:i,charWidth:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new ChildCursor(this.children,e,t)}computeBlockGapDeco(){let i=[],n=this.view.viewState;for(let e=0,t=0;;t++){var r,s=t==n.viewports.length?null:n.viewports[t],a=s?s.from-1:this.length;if(a>e&&(r=n.lineAt(a,0).bottom-n.lineAt(e,0).top,i.push(Decoration.replace({widget:new BlockGapWidget(r),block:!0,inclusive:!0}).range(e,a))),!s)break;e=s.to+1}return Decoration.set(i)}updateDeco(){return this.decorations=[this.computeBlockGapDeco(),this.view.viewState.lineGapDeco,this.compositionDeco,...this.view.state.facet(decorations),...this.view.pluginField(PluginField.decorations)]}scrollPosIntoView(e,r){var s,a,o,r=this.coordsAt(e,r);if(r){let e=0,t=0,i=0,n=0;for(var l of this.view.pluginField(PluginField.scrollMargins))l&&({left:s,right:a,top:o,bottom:l}=l,null!=s&&(e=Math.max(e,s)),null!=a&&(t=Math.max(t,a)),null!=o&&(i=Math.max(i,o)),null!=l&&(n=Math.max(n,l)));scrollRectIntoView(this.dom,{left:r.left-e,top:r.top-i,right:r.right+t,bottom:r.bottom+n})}}}function betweenUneditable(e){return 1==e.node.nodeType&&e.node.firstChild&&(0==e.offset||"false"==e.node.childNodes[e.offset-1].contentEditable)&&(e.offset==e.node.childNodes.length||"false"==e.node.childNodes[e.offset].contentEditable)}class BlockGapWidget extends WidgetType{constructor(e){super(),this.height=e}toDOM(){var e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}}function computeCompositionDeco(e,t){var i=e.observer.selectionRange,i=i.focusNode&&nearbyTextNode(i.focusNode,i.focusOffset,0);if(!i)return Decoration.none;let n=e.docView.nearest(i),r,s,a=i;if(n instanceof InlineView){for(;n.parent instanceof InlineView;)n=n.parent;r=n.posAtStart,s=r+n.length,a=n.dom}else{if(!(n instanceof LineView))return Decoration.none;{for(;a.parentNode!=n.dom;)a=a.parentNode;let e=a.previousSibling;for(;e&&!ContentView.get(e);)e=e.previousSibling;r=s=e?ContentView.get(e).posAtEnd:n.posAtStart}}let o=t.mapPos(r,1),l=Math.max(o,t.mapPos(s,-1)),c=i.nodeValue,{state:h}=e;if(l-o=i){if(a.level==n)return e;(s<0||(0!=r?r<0?a.fromi:t[s].level>a.level))&&(s=e)}}if(s<0)throw new RangeError("Index out of range");return s}}const types=[];function computeOrder(a,e){var o=a.length,l=e==LTR?1:2,c=e==LTR?2:1;if(!a||1==l&&!BidiRE.test(a))return trivialOrder(o);for(let t=0,i=l,n=l;tp;){for(var f=e,g=2!=types[--e];e>p&&g==(2!=types[e-1]);)e--;i.push(new BidiSpan(e,f,g?2:1))}else i.push(new BidiSpan(p,t,0))}else for(let e=0;ee?t.left-e:Math.max(0,e-t.right)}function getdy(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function yOverlap(e,t){return e.topt.top+1}function upTop(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function domPosAtCoords(e,n,r){let s,a,o,l,c,h,d,u;for(let i=e.firstChild;i;i=i.nextSibling){var p=clientRectsFor(i);for(let t=0;tf||l==f&&o>O)&&(s=i,a=e,o=O,l=f),0==O?r>e.bottom&&(!d||d.bottome.top)&&(h=i,u=e):d&&yOverlap(d,e)?d=upBot(d,e.bottom):u&&yOverlap(u,e)&&(u=upTop(u,e.top))}}if(d&&d.bottom>=r?(s=c,a=d):u&&u.top<=r&&(s=h,a=u),!s)return{node:e,offset:0};var t=Math.max(a.left,Math.min(a.right,n));return 3==s.nodeType?domPosInText(s,t,r):o||"true"!=s.contentEditable?{node:e,offset:Array.prototype.indexOf.call(e.childNodes,s)+(n>=(a.left+a.right)/2?1:0)}:domPosAtCoords(s,t,r)}function domPosInText(n,r,t){var e=n.nodeValue.length;let s=-1,a=1e9,o=0;for(let i=0;it?c.top-t:t-c.bottom)-1;if(c.left-1<=r&&c.right+1>=r&&h=(c.left+c.right)/2,t=e;if((browser.chrome||browser.gecko)&&textRange(n,i).getBoundingClientRect().left==c.right&&(t=!e),h<=0)return{node:n,offset:i+(t?1:0)};s=i+(t?1:0),a=h}}}}return{node:n,offset:-1i||s.bottomi?-1:1,i=Math.min(s.bottom-a,Math.max(s.top+a,i)),e)return null;e=!0}if(s.type==BlockType.Text)break;i=0t.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:null;e=Math.max(r.left+1,Math.min(r.right-1,e));let c=t.root,h=c.elementFromPoint(e,i),d,u=-1;return!h||!t.contentDOM.contains(h)||t.docView.nearest(h)instanceof WidgetView||(c.caretPositionFromPoint?(o=c.caretPositionFromPoint(e,i))&&({offsetNode:d,offset:u}=o):!c.caretRangeFromPoint||(o=c.caretRangeFromPoint(e,i))&&({startContainer:d,startOffset:u}=o,browser.safari&&isSuspiciousCaretResult(d,u,e)&&(d=void 0))),d&&t.docView.dom.contains(d)||(l=LineView.find(t.docView,l),{node:d,offset:u}=domPosAtCoords(l.dom,e,i)),t.docView.posFromDOM(d,u)}function isSuspiciousCaretResult(t,e,i){let n;if(3!=t.nodeType||e!=(n=t.nodeValue.length))return!1;for(let e=t.nextSibling;e;e=e.nextSibling)if(1!=e.nodeType||"BR"!=e.nodeName)return!1;return textRange(t,n-1,n).getBoundingClientRect().left>i}function moveToLineBoundary(e,t,i,n){var r=e.state.doc.lineAt(t.head),s=n&&e.lineWrapping?e.coordsAtPos(t.assoc<0&&t.head>r.from?t.head-1:t.head):null;if(s){n=e.dom.getBoundingClientRect(),s=e.posAtCoords({x:i==(e.textDirection==Direction.LTR)?n.right-1:n.left+1,y:(s.top+s.bottom)/2});if(null!=s)return EditorSelection.cursor(s,i?-1:1)}t=LineView.find(e.docView,t.head),r=t?i?t.posAtEnd:t.posAtStart:i?r.to:r.from;return EditorSelection.cursor(r,i?-1:1)}function moveByChar(r,e,s,a){let o=r.state.doc.lineAt(e.head),l=r.bidiSpans(o);for(let i=e,n=null;;){let e=moveVisually(o,l,r.textDirection,i,s),t=movedOver;if(!e){if(o.number==(s?r.state.doc.lines:1))return i;t="\n",o=r.state.doc.line(o.number+(s?1:-1)),l=r.bidiSpans(o),e=EditorSelection.cursor(s?o.from:o.to)}if(n){if(!n(t))return i}else{if(!a)return e;n=a(t)}i=e}}function byGroup(e,t,i){let n=e.state.charCategorizer(t),r=n(i);return e=>{e=n(e);return r==CharCategory.Space&&(r=e),r==e}}function moveVertically(i,e,t,n){var r=e.head,s=t?1:-1;if(r==(t?i.state.doc.length:0))return EditorSelection.cursor(r);var a=i.coordsAtPos(r);if(a){var o=i.dom.getBoundingClientRect(),l=null!==(t=e.goalColumn)&&void 0!==t?t:a.left-o.left,c=o.left+l,h=null!=n?n:i.defaultLineHeight>>1;for(let e=s<0?a.top:a.bottom,t=0;t<50;t+=10){var d=posAtCoords(i,{x:c,y:e+(h+t)*s},s);if(null==d)break;if(d!=r)return EditorSelection.cursor(d,void 0,void 0,l)}}let{doc:u}=i.state,p=u.lineAt(r),O=i.state.tabSize,f=e.goalColumn,g=0;if(null==f){for(const w=u.iterRange(p.from,r);!w.next().done;)g=countColumn(w.value,g,O);f=g*i.defaultCharacterWidth}else g=Math.round(f/i.defaultCharacterWidth);if(s<0&&0==p.from)return EditorSelection.cursor(0);if(0=g&&!S.next().done;){var{offset:y,leftOver:Q}=findColumn(S.value,v,g,O);v=g-Q,m+=y}return EditorSelection.cursor(m,void 0,void 0,f)}function skipAtoms(e,r,s){for(var t=e.pluginField(PluginField.atomicRanges);;){let n=!1;for(var i of t)i.between(s.from-1,s.from+1,(e,t,i)=>{s.from>e&&s.froms.from?EditorSelection.cursor(e,1):EditorSelection.cursor(t,-1),n=!0)});if(!n)return s}}class InputState{constructor(n){this.lastKeyCode=0,this.lastKeyTime=0,this.pendingIOSKey=null,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionEndedAt=0,this.rapidCompositionStart=!1,this.mouseSelection=null;for(let i in handlers){let t=handlers[i];n.contentDOM.addEventListener(i,e=>{"keydown"==i&&this.keydown(n,e)||eventBelongsToEditor(n,e)&&!this.ignoreDuringComposition(e)&&(this.mustFlushObserver(e)&&n.observer.forceFlush(),this.runCustomHandlers(i,n,e)?e.preventDefault():t(n,e))}),this.registeredEvents.push(i)}this.notifiedFocused=n.hasFocus,this.ensureHandlers(n),browser.safari&&n.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(i){var e;for(e of this.customHandlers=i.pluginField(domEventHandlers))for(let t in e.handlers)this.registeredEvents.indexOf(t)<0&&"scroll"!=t&&(this.registeredEvents.push(t),i.contentDOM.addEventListener(t,e=>{eventBelongsToEditor(i,e)&&this.runCustomHandlers(t,i,e)&&e.preventDefault()}))}runCustomHandlers(i,n,r){for(var s of this.customHandlers){let e=s.handlers[i],t=!1;if(e){try{t=e.call(s.plugin,r,n)}catch(e){logException(n.state,e)}if(t||r.defaultPrevented)return browser.android&&"keydown"==i&&13==r.keyCode&&n.observer.flushSoon(),!0}}return!1}runScrollHandlers(t,i){for(var n of this.customHandlers){let e=n.handlers.scroll;if(e)try{e.call(n.plugin,i,t)}catch(e){logException(t.state,e)}}}keydown(e,t){return this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),!!this.screenKeyEvent(e,t)||!(!browser.ios||13!=t.keyCode&&8!=t.keyCode||t.ctrlKey||t.altKey||t.metaKey||t.synthetic)&&(this.pendingIOSKey=13==t.keyCode?"enter":"backspace",setTimeout(()=>this.flushIOSKey(e),250),!0)}flushIOSKey(e){if(!this.pendingIOSKey)return!1;var t=e.contentDOM,e=this.pendingIOSKey;return this.pendingIOSKey=null,"enter"==e?dispatchKey(t,"Enter",13):dispatchKey(t,"Backspace",8)}ignoreDuringComposition(e){return!!/^key/.test(e.type)&&(0=t.clientX&&s.top<=t.clientY&&s.bottom>=t.clientY)return!0}return!1}function eventBelongsToEditor(i,n){if(!n.bubbles)return!0;if(n.defaultPrevented)return!1;for(let e=n.target,t;e!=i.contentDOM;e=e.parentNode)if(!e||11==e.nodeType||(t=ContentView.get(e))&&t.ignoreEvent(n))return!1;return!0}const handlers=Object.create(null),brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(t){let i=t.dom.parentNode;if(i){let e=i.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{t.focus(),e.remove(),doPaste(t,e.value)},50)}}function doPaste(e,r){let{state:s}=e,t,a=1,o=s.toText(r),l=o.lines==s.selection.ranges.length;if(lastLinewiseCopy&&s.selection.ranges.every(e=>e.empty)&&lastLinewiseCopy==o.toString()){let n=-1;t=s.changeByRange(e=>{var t=s.doc.lineAt(e.from);if(t.from==n)return{range:e};n=t.from;var i=s.toText((l?o.line(a++).text:r)+s.lineBreak);return{changes:{from:t.from,insert:i},range:EditorSelection.cursor(e.from+i.length)}})}else t=l?s.changeByRange(e=>{var t=o.line(a++);return{changes:{from:e.from,to:e.to,insert:t.text},range:EditorSelection.cursor(e.from+t.length)}}):s.replaceSelection(o);e.dispatch(t,{annotations:Transaction.userEvent.of("paste"),scrollIntoView:!0})}handlers.keydown=(e,t)=>{e.inputState.setSelectionOrigin("keyboardselection")};let lastTouch=0;function rangeForClick(i,n,r,e){if(1==e)return EditorSelection.cursor(n,r);if(2==e)return groupAt(i.state,n,r);{r=LineView.find(i.docView,n),n=i.state.doc.lineAt(r?r.posAtEnd:n);let e=r?r.posAtStart:n.from,t=r?r.posAtEnd:n.to;return t{lastTouch=Date.now(),e.inputState.setSelectionOrigin("pointerselection")},handlers.touchmove=e=>{e.inputState.setSelectionOrigin("pointerselection")},handlers.mousedown=(t,i)=>{if(t.observer.flush(),!(lastTouch>Date.now()-2e3)){let e=null;for(var n of t.state.facet(mouseSelectionStyle))if(e=n(t,i),e)break;e||0!=i.button||(e=basicMouseSelection(t,i)),e&&(t.root.activeElement!=t.contentDOM&&t.observer.ignore(()=>focusPreventScroll(t.contentDOM)),t.inputState.startMouseSelection(t,i,e))}};let insideY=(e,t)=>e>=t.top&&e<=t.bottom,inside=(e,t,i)=>insideY(t,i)&&e>=i.left&&e<=i.right;function findPositionSide(e,t,i,n){let r=LineView.find(e.docView,t);if(!r)return 1;e=t-r.posAtStart;if(0==e)return 1;if(e==r.length)return-1;t=r.coordsAt(e,-1);if(t&&inside(i,n,t))return-1;e=r.coordsAt(e,1);return(!e||!inside(i,n,e))&&t&&insideY(n,t)?-1:1}function queryPos(e,t){var i=e.posAtCoords({x:t.clientX,y:t.clientY});return null==i?null:{pos:i,bias:findPositionSide(e,i,t.clientX,t.clientY)}}const BadMouseDetail=browser.ie&&browser.ie_version<=11;let lastMouseDown=null,lastMouseDownCount=0,lastMouseDownTime=0;function getClickType(e){if(!BadMouseDetail)return e.detail;var t=lastMouseDown,i=lastMouseDownTime;return lastMouseDown=e,lastMouseDownTime=Date.now(),lastMouseDownCount=!t||i>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(lastMouseDownCount+1)%3:1}function basicMouseSelection(a,e){let o=queryPos(a,e),l=getClickType(e),c=a.state.selection,h=o,d=e;return{update(e){e.changes&&(o&&(o.pos=e.changes.mapPos(o.pos)),c=c.map(e.changes))},get(e,t,i){let n;if(e.clientX==d.clientX&&e.clientY==d.clientY?n=h:(n=h=queryPos(a,e),d=e),!n||!o)return c;let r=rangeForClick(a,n.pos,n.bias,l);var s;return o.pos==n.pos||t||(s=rangeForClick(a,o.pos,o.bias,l),e=Math.min(s.from,r.from),s=Math.max(s.to,r.to),r=e{e.remove(),t.focus()},50)}}function copiedRange(t){let i=[],n=[],r=!1;for(var e of t.selection.ranges)e.empty||(i.push(t.sliceDoc(e.from,e.to)),n.push(e));if(!i.length){let e=-1;for(var{from:s}of t.selection.ranges){s=t.doc.lineAt(s);s.number>e&&(i.push(s.text),n.push({from:s.from,to:Math.min(t.doc.length,s.to+1)})),e=s.number}r=!0}return{text:i.join(t.lineBreak),ranges:n,linewise:r}}handlers.dragstart=(e,t)=>{var{selection:{main:i}}=e.state;let{mouseSelection:n}=e.inputState;n&&(n.dragging=i),t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(i.from,i.to)),t.dataTransfer.effectAllowed="copyMove")},handlers.drop=(t,s)=>{if(s.dataTransfer&&t.state.facet(editable)){let r=s.dataTransfer.files;if(r&&r.length){s.preventDefault();let i=Array(r.length),e=0,n=()=>{++e==r.length&&dropText(t,s,i.filter(e=>null!=e).join(t.state.lineBreak),!1)};for(let t=0;t{/[\x00-\x08\x0e-\x1f]{2}/.test(e.result)||(i[t]=e.result),n()},e.readAsText(r[t])}}else dropText(t,s,s.dataTransfer.getData("Text"),!0)}},handlers.paste=(t,i)=>{if(t.state.facet(editable)){t.observer.flush();let e=brokenClipboardAPI?null:i.clipboardData;var n=e&&e.getData("text/plain");n?(doPaste(t,n),i.preventDefault()):capturePaste(t)}};let lastLinewiseCopy=null;function forceClearComposition(e,t){if(e.docView.compositionDeco.size){e.inputState.rapidCompositionStart=t;try{e.update([])}finally{e.inputState.rapidCompositionStart=!1}}}handlers.copy=handlers.cut=(t,i)=>{var{text:n,ranges:r,linewise:s}=copiedRange(t.state);if(n){lastLinewiseCopy=s?n:null;let e=brokenClipboardAPI?null:i.clipboardData;e?(i.preventDefault(),e.clearData(),e.setData("text/plain",n)):captureCopy(t,n),"cut"==i.type&&t.state.facet(editable)&&t.dispatch({changes:r,scrollIntoView:!0,annotations:Transaction.userEvent.of("cut")})}},handlers.focus=handlers.blur=e=>{setTimeout(()=>{e.hasFocus!=e.inputState.notifiedFocused&&e.update([])},10)},handlers.beforeprint=e=>{e.viewState.printing=!0,e.requestMeasure(),setTimeout(()=>{e.viewState.printing=!1,e.requestMeasure()},2e3)},handlers.compositionstart=handlers.compositionupdate=e=>{e.inputState.composing<0&&(e.docView.compositionDeco.size&&(e.observer.flush(),forceClearComposition(e,!0)),e.inputState.composing=0)},handlers.compositionend=e=>{e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),setTimeout(()=>{e.inputState.composing<0&&forceClearComposition(e,!1)},50)},handlers.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()};const wrappingWhiteSpace=["pre-wrap","normal","pre-line"];class HeightOracle{constructor(){this.doc=Text.empty,this.lineWrapping=!1,this.direction=Direction.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength)),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefresh(t,e,i){let n=!1;for(let e=0;eEpsilon&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return HeightMap.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(a,o,l,c){let h=this;for(let s=c.length-1;0<=s;s--){let{fromA:e,toA:t,fromB:i,toB:n}=c[s],r=h.lineAt(e,QueryType.ByPosNoHeight,o,0,0);var d=r.to>=t?r:h.lineAt(t,QueryType.ByPosNoHeight,o,0,0);for(n+=d.to-t,t=d.to;02*r){var a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),i+=1+a.break,n-=a.size}else{if(!(r>2*n))break;a=e[i];a.break?e.splice(i,1,a.left,null,a.right):e.splice(i,1,a.left,a.right),i+=2+a.break,r-=a.size}else ne&&t.push(new HeightMapGap(r.from-e-1).updateHeight(n,e));i<=s&&r.more;){var a=n.doc.lineAt(i).length;t.length&&t.push(null);let e=new HeightMapText(a,r.heights[r.index++]);e.outdated=!1,t.push(e),i+=a+1}return i<=s&&t.push(null,new HeightMapGap(s-i).updateHeight(n,i)),n.heightChanged=!0,HeightMap.of(t)}return(t||this.outdated)&&(this.setHeight(n,n.heightForGap(e,e+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class HeightMapBranch extends HeightMap{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return 1&this.flags}blockAt(e,t,i,n){var r=i+this.left.height;return ea))return l;t=t==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;return o?l.join(this.right.lineAt(a,t,i,s,a)):this.left.lineAt(a,t,i,n,r).join(l)}forEachLine(e,t,i,n,r,s){var a,o=n+this.left.height,l=r+this.left.length+this.break;this.break?(e=e&&a.from<=t&&s(a),t>a.to&&this.right.forEachLine(a.to+1,t,i,o,l,s))}replace(e,t,i){var n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,i));let r=[];0=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){var i=this.left.length,n=i+this.break;if(n<=e)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?HeightMap.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,n){let{left:r,right:s}=this,a=t+r.length+this.break,o=null;return n&&n.from<=t+r.length&&n.more?o=r=r.updateHeight(e,t,i,n):r.updateHeight(e,t,i),n&&n.from<=a+s.length&&n.more?o=s=s.updateHeight(e,a,i,n):s.updateHeight(e,a,i),o?this.balanced(r,s):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function mergeGaps(e,t){let i,n;null==e[t]&&(i=e[t-1])instanceof HeightMapGap&&(n=e[t+1])instanceof HeightMapGap&&e.splice(t-1,3,new HeightMapGap(i.length+1+n.length))}const relevantWidgetHeight=5;class NodeBuilder{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,i){if(-1this.pos||!this.isCovered)&&this.nodes.push(new HeightMapText(e-this.pos,-1)),(this.writtenTo=e)=relevantWidgetHeight)&&this.addLineDeco(n,r)):ee&&this.nodes.push(new HeightMapText(this.pos-e,-1)),this.writtenTo=this.pos)}blankContent(e,t){let i=new HeightMapGap(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();var e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof HeightMapText)return e;e=new HeightMapText(0,-1);return this.nodes.push(e),e}addBlock(e){this.enterLine(),e.type!=BlockType.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=BlockType.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){var t,i=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(-1e.clientHeight||e.scrollWidth>e.clientWidth)&&"visible"!=l.overflow&&(o=e.getBoundingClientRect(),n=Math.max(n,o.left),r=Math.min(r,o.right),s=Math.max(s,o.top),a=Math.min(a,o.bottom)),e="absolute"==l.position||"fixed"==l.position?e.offsetParent:e.parentNode}else{if(11!=e.nodeType)break;e=e.host}return{left:n-i.left,right:r-i.left,top:s-(i.top+e),bottom:a-(i.top+e)}}class LineGap{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(t,i){if(t.length!=i.length)return!1;for(let e=0;ee.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:n}=this.state.selection;for(let e=0;e<=1;e++){let i=e?n.head:n.anchor;var r,s;t.some(({from:e,to:t})=>i>=e&&i<=t)||({from:r,to:s}=this.lineAt(i,0),t.push(new Viewport(r,s)))}this.viewports=t.sort((e,t)=>e.from-t.from),this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle.doc,this.heightMap,this.viewports)}update(e,t=null){var i=this.state;this.state=e.state;var n=this.state.facet(decorations),r=e.changedRanges,s=ChangedRange.extendWithRanges(r,heightRelevantDecoChanges(e.startState.facet(decorations),n,e?e.changes:ChangeSet.empty(this.state.doc.length))),r=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(n,i.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=r&&(e.flags|=2);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t)),a.eq(this.viewport)||(this.viewport=a,e.flags|=4),this.updateForViewport(),(this.lineGaps.length||15e3this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left,!this.inView)return 0;var l,c=e.measureVisibleLineHeights();let h=!1,d=0,u=0,p=this.heightOracle;return t||(l=e.dom.clientWidth,(p.mustRefresh(c,n,r)||p.lineWrapping&&Math.abs(l-this.contentWidth)>p.charWidth)&&({lineHeight:s,charWidth:t}=e.measureTextSize(),h=p.refresh(n,r,s,t,l/t,c),h&&(e.minWidth=0,u|=16)),this.contentWidth!=l&&(this.contentWidth=l,u|=16),0this.viewport.to))&&((c=this.getViewport(d,this.scrollTo)).from==this.viewport.from&&c.to==this.viewport.to||(this.viewport=c,u|=4)),this.updateForViewport(),(this.lineGaps.length||15e3a.to&&({bottom:t}=i.lineAt(t.head,QueryType.ByPos,n,0,0),a=new Viewport(i.lineAt(t-(s-r)-500,QueryType.ByHeight,n,0,0).from,i.lineAt(t+500,QueryType.ByHeight,n,0,0).to))),a}mapViewport(e,t){var i=t.mapPos(e.from,-1),e=t.mapPos(e.to,1);return new Viewport(this.heightMap.lineAt(i,QueryType.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,0,0).to)}viewportIsAppropriate({from:e,to:t},i=0){var{top:n}=this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,0,0),{bottom:r}=this.heightMap.lineAt(t,QueryType.ByPos,this.state.doc,0,0),{visibleTop:s,visibleBottom:a}=this;return(0==e||n<=s-Math.max(10,Math.min(-i,250)))&&(t==this.state.doc.length||r>=a+Math.max(10,Math.min(i,250)))&&s-2e3{if(!(r.length<1e4)){var s=lineStructure(r.from,r.to,this.state);if(!(s.total<1e4)){let e,t;t=this.heightOracle.lineWrapping?(e=r.from!=this.viewport.from?r.from:findPosition(s,(this.visibleTop-r.top)/r.height),r.to!=this.viewport.to?r.to:findPosition(s,(this.visibleBottom-r.top)/r.height)):(a=s.total*this.heightOracle.charWidth,e=findPosition(s,this.pixelViewport.left/a),findPosition(s,this.pixelViewport.right/a));var a=this.state.selection.main;a.from<=e&&a.to>=r.from&&(e=a.from),a.from<=r.to&&a.to>=t&&(t=a.to);let i=e-1e4,n=t+1e4;i>r.from+5e3&&l.push(find(o,e=>e.from==r.from&&e.to>i-5e3&&e.to<5e3+i)||new LineGap(r.from,i,this.gapSize(r,i,!0,s))),ne.to==r.to&&e.from>n-5e3&&e.frome.draw(this.heightOracle.lineWrapping))),8)}computeVisibleRanges(){let e=this.state.facet(decorations);this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];RangeSet.spans(e,this.viewport.from,this.viewport.to,{span(e,t){i.push({from:e,to:t})},point(){}},20),this.visibleRanges=i}lineAt(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.lineAt(e,QueryType.ByPos,this.state.doc,t,0),this.scaler,t)}lineAtHeight(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(e,t),QueryType.ByHeight,this.state.doc,t,0),this.scaler,t)}blockAtHeight(e,t){return t+=this.paddingTop,scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(e,t),this.state.doc,t,0),this.scaler,t)}forEachLine(e,t,i,n){return n+=this.paddingTop,this.heightMap.forEachLine(e,t,this.state.doc,n,0,1==this.scaler.scale?i:e=>i(scaleBlock(e,this.scaler,n)))}get contentHeight(){return this.domHeight+this.paddingTop+this.paddingBottom}get domHeight(){return this.scaler.toDOM(this.heightMap.height,this.paddingTop)}}class Viewport{constructor(e,t){this.from=e,this.to=t}eq(e){return this.from==e.from&&this.to==e.to}}function lineStructure(e,t,i){let n=[],r=e,s=0;return RangeSet.spans(i.facet(decorations),e,t,{span(){},point(e,t){e>r&&(n.push({from:r,to:e}),s+=e-r),r=t}},20),r{var i=s.lineAt(e,QueryType.ByPos,r,0,0).top,n=s.lineAt(t,QueryType.ByPos,r,0,0).bottom;return a+=n-i,{from:e,to:t,top:i,bottom:n,domTop:0,domBottom:0}}),this.scale=(7e6-a)/(s.height-a);for(var n of this.viewports)n.domTop=i+(n.top-t)*this.scale,i=n.domBottom=n.domTop+(n.bottom-n.top),t=n.bottom}toDOM(n,r){n-=r;for(let e=0,t=0,i=0;;e++){var s=escaleBlock(e,t,i)):e.type)}const theme$1=Facet.define({combine:e=>e.join(" ")}),darkTheme=Facet.define({combine:e=>-1{if("&"==e)return t;if(!i||!i[e])throw new RangeError(`Unsupported selector: ${e}`);return i[e]}):t+" "+e}})}const baseTheme$2=buildTheme("."+baseThemeID,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none"},".cm-lineWrapping":{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none",display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-placeholder":{color:"#888",display:"inline-block"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"3px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lightDarkIDs),observeOptions={childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0},useCharData=browser.ie&&browser.ie_version<=11;class DOMObserver{constructor(i,e,t){this.view=i,this.onChange=e,this.onScrollChanged=t,this.active=!1,this.ignoreSelection=new DOMSelection,this.delayedFlush=-1,this.queue=[],this.lastFlush=0,this.scrollTargets=[],this.intersection=null,this.intersecting=!1,this._selectionRange=null,this.parentCheck=-1,this.dom=i.contentDOM,this.observer=new MutationObserver(e=>{for(var t of e)this.queue.push(t);this._selectionRange=null,(browser.ie&&browser.ie_version<=11||browser.ios&&i.composing)&&e.some(e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():this.flush()}),useCharData&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.start(),this.onScroll=this.onScroll.bind(this),window.addEventListener("scroll",this.onScroll),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver(e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),0{this.delayedFlush=-1,this.flush()},20))}forceFlush(){0<=this.delayedFlush&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}flush(){if(!(0<=this.delayedFlush)){this.lastFlush=Date.now();let n=this.queue;for(var e of this.observer.takeRecords())n.push(e);n.length&&(this.queue=[]);var r=this.selectionRange,s=!this.ignoreSelection.eq(r)&&hasSelection(this.dom,r);if(0!=n.length||s){let e=-1,t=-1,i=!1;for(var a of n){a=this.readMutation(a);a&&(a.typeOver&&(i=!0),-1==e?{from:e,to:t}=a:(e=Math.min(a.from,e),t=Math.max(a.to,t)))}r=this.view.state;(-1this.view.docView.sync()),this.view.docView.dirty=0),this.view.docView.updateSelection()),this.clearSelection()}}}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(),"childList"!=e.type)return{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue};var i=findChild(t,e.previousSibling||e.target.previousSibling,-1),e=findChild(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:e?t.posBefore(e):t.posAtEnd,typeOver:!1}}destroy(){this.stop(),this.intersection&&this.intersection.disconnect();for(var e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);window.removeEventListener("scroll",this.onScroll),clearTimeout(this.parentCheck)}}function findChild(e,t,i){for(;t;){var n=ContentView.get(t);if(n&&n.parent==e)return n;n=t.parentNode;t=n!=e.dom?n:0Date.now()-100||browser.android&&e.text.length=o.from&&s.to<=o.to&&(s.from!=o.from||s.to!=o.to)&&o.to-o.from-(s.to-s.from)<=4&&(s={from:o.from,to:o.to,insert:n.state.doc.slice(o.from,s.from).append(s.insert).append(n.state.doc.slice(s.to,o.to))}),s){let i=n.state;if(!(browser.android&&(s.from==o.from&&s.to==o.to&&1==s.insert.length&&2==s.insert.lines&&dispatchKey(n.contentDOM,"Enter",13)||s.from==o.from-1&&s.to==o.to&&0==s.insert.length&&dispatchKey(n.contentDOM,"Backspace",8)||s.from==o.from&&s.to==o.to+1&&0==s.insert.length&&dispatchKey(n.contentDOM,"Delete",46))||browser.ios&&n.inputState.flushIOSKey(n))){let t=s.insert.toString();if(!n.state.facet(inputHandler).some(e=>e(n,s.from,s.to,t))){0<=n.inputState.composing&&n.inputState.composing++;let e;var u;e=s.from>=o.from&&s.to<=o.to&&s.to-s.from>=(o.to-o.from)/3&&(!a||a.main.empty&&a.main.from==s.from+s.insert.length)?(r=o.froms.to?i.sliceDoc(s.to,o.to):"",i.replaceSelection(n.state.toText(r+s.insert.sliceString(0,void 0,n.state.lineBreak)+u))):{changes:u=i.changes(s),selection:a&&!i.selection.main.eq(a.main)&&a.main.to<=u.newLength?i.selection.replaceRange(a.main):void 0},n.dispatch(e,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})}}}else if(a&&!a.main.eq(o)){let e=!1,t;n.inputState.lastSelectionTime>Date.now()-50&&("keyboardselection"==n.inputState.lastSelectionOrigin?e=!0:t=Transaction.userEvent.of(n.inputState.lastSelectionOrigin)),n.dispatch({selection:a,scrollIntoView:e,annotations:t})}}function findDiff(e,t,i,n){var r,s=Math.min(e.length,t.length);let a=0;for(;a=o?a-i:0,a-=r,l=a+(l-o),o=a):l=l?a-i:0,a-=i,o=a+(o-l),l=a),{from:a,toA:o,toB:l}}class DOMReader{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineBreak=t.state.lineBreak}readRange(t,i){if(t){var n=t.parentNode;for(let e=t;;){this.findPointBefore(n,e),this.readNode(e);var r=e.nextSibling;if(r==i)break;var s=ContentView.get(e),a=ContentView.get(r);((s?s.breakAfter:isBlockElement(e))||(a?a.breakAfter:isBlockElement(r))&&("BR"!=e.nodeName||e.cmIgnore))&&(this.text+=this.lineBreak),e=r}this.findPointBefore(n,i)}}readNode(i){if(!i.cmIgnore){var n=ContentView.get(i);let e=n&&n.overrideDOMText,t;null!=e?t=e.sliceString(0,void 0,this.lineBreak):3==i.nodeType?t=i.nodeValue:"BR"==i.nodeName?t=i.nextSibling?this.lineBreak:"":1==i.nodeType&&this.readRange(i.firstChild,null),null!=t&&(this.findPointIn(i,t.length),this.text+=t,browser.chrome&&13==this.view.inputState.lastKeyCode&&!i.nextSibling&&/\n\n$/.test(this.text)&&(this.text=this.text.slice(0,-1)))}}findPointBefore(e,t){for(var i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointIn(e,t){for(var i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t))}}function isBlockElement(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}class DOMPoint{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}function selectionPoints(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;var{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:e}=e.observer.selectionRange;return i&&(t.push(new DOMPoint(i,n)),r==i&&e==n||t.push(new DOMPoint(r,e))),t}function selectionFromPoints(e,t){if(0==e.length)return null;var i=e[0].pos,e=2==e.length?e[1].pos:i;return-1this.update([e])),this.dispatch=this.dispatch.bind(this),this.root=e.root||document,this.viewState=new ViewState(e.state||EditorState.create()),this.plugins=this.state.facet(viewPlugin).map(e=>new PluginInstance(e).update(this)),this.observer=new DOMObserver(this,(e,t,i)=>{applyDOMChange(this,e,t,i)},e=>{this.inputState.runScrollHandlers(this,e),this.observer.intersecting&&this.measure()}),this.inputState=new InputState(this),this.docView=new DocView(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,ensureGlobalHandler(),this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return 0e.scrollIntoView)?n.selection.main:null,this.viewState.update(i,s),this.bidiCache=CachedOrder.update(this.bidiCache,i.changes),i.empty||this.updatePlugins(i),t=this.docView.update(i),this.state.facet(styleModule)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(e)}finally{this.updateState=0}if((t||s||this.viewState.mustEnforceCursorAssoc)&&this.requestMeasure(),!i.empty)for(var a of this.state.facet(updateListener))a(i)}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");this.updateState=2;try{for(var t of this.plugins)t.destroy(this);this.viewState=new ViewState(e),this.plugins=e.facet(viewPlugin).map(e=>new PluginInstance(e).update(this)),this.docView=new DocView(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}this.requestMeasure()}updatePlugins(i){let e=i.startState.facet(viewPlugin),n=i.state.facet(viewPlugin);if(e!=n){let t=[];for(var r of n){var s=e.indexOf(r);if(s<0)t.push(new PluginInstance(r));else{let e=this.plugins[s];e.mustUpdate=i,t.push(e)}}for(var a of this.plugins)a.mustUpdate!=i&&a.destroy(this);this.plugins=t,this.inputState.ensureHandlers(this)}else for(var t of this.plugins)t.mustUpdate=i;for(let e=0;e{try{return e.read(this)}catch(e){return logException(this.state,e),BadMeasure}});let e=new ViewUpdate(this,this.state);e.flags|=r,n?n.flags|=r:n=e,this.updateState=2,e.empty||this.updatePlugins(e),this.updateAttrs(),r&&this.docView.update(e);for(let e=0;ethis.measure())),t){if(null!=t.key)for(let e=0;ebyGroup(this,t.head,e)))}moveToLineBoundary(e,t,i=!0){return moveToLineBoundary(this,e,t,i)}moveVertically(e,t,i){return skipAtoms(this,e,moveVertically(this,e,t,i))}scrollPosIntoView(e){this.viewState.scrollTo=EditorSelection.cursor(e),this.requestMeasure()}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e){return this.readMeasured(),posAtCoords(this,e)}coordsAtPos(e,t=1){this.readMeasured();var i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;var n=this.state.doc.lineAt(e),r=this.bidiSpans(n);return flattenRect(i,r[BidiSpan.find(r,e-n.from,-1,t)].dir==Direction.LTR==0MaxBidiLine)return trivialOrder(e.length);var t,i=this.textDirection;for(t of this.bidiCache)if(t.from==e.from&&t.dir==i)return t.order;var n=computeOrder(e.text,this.textDirection);return this.bidiCache.push(new CachedOrder(e.from,e.to,i,n)),n}get hasFocus(){var e;return(document.hasFocus()||browser.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM),this.docView.updateSelection()})}destroy(){for(var e of this.plugins)e.destroy(this);this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),-1({}),{eventHandlers:e})}static theme(e,t){var i=StyleModule.newName();let n=[theme$1.of(i),styleModule.of(buildTheme(`.${i}`,e))];return t&&t.dark&&n.push(darkTheme.of(!0)),n}static baseTheme(e){return Prec.fallback(styleModule.of(buildTheme("."+baseThemeID,e,lightDarkIDs)))}}EditorView.styleModule=styleModule,EditorView.inputHandler=inputHandler,EditorView.exceptionSink=exceptionSink,EditorView.updateListener=updateListener,EditorView.editable=editable,EditorView.mouseSelectionStyle=mouseSelectionStyle,EditorView.dragMovesSelection=dragMovesSelection$1,EditorView.clickAddsSelectionRange=clickAddsSelectionRange,EditorView.decorations=decorations,EditorView.contentAttributes=contentAttributes,EditorView.editorAttributes=editorAttributes,EditorView.lineWrapping=EditorView.contentAttributes.of({class:"cm-lineWrapping"}),EditorView.announce=StateEffect.define();const MaxBidiLine=4096;function ensureTop(e,t){return null==e?t.getBoundingClientRect().top:e}let resizeDebounce=-1;function ensureGlobalHandler(){window.addEventListener("resize",()=>{-1==resizeDebounce&&(resizeDebounce=setTimeout(handleResize,50))})}function handleResize(){resizeDebounce=-1;var i=document.querySelectorAll(".cm-content");for(let t=0;te.concat(t),[]))),i}let storedPrefix=null;const PrefixTimeout=4e3;function buildKeymap(e,o=currentPlatform){let l=Object.create(null),n=Object.create(null),c=(e,t)=>{var i=n[e];if(null==i)n[e]=t;else if(i!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")};var t,i=(n,e,t,i)=>{let r=l[n]||(l[n]=Object.create(null)),s=e.split(/ (?!$)/).map(e=>normalizeKeyName(e,o));for(let e=1;e{let t=storedPrefix={view:e,prefix:i,scope:n};return setTimeout(()=>{storedPrefix==t&&(storedPrefix=null)},PrefixTimeout),!0}]})}e=s.join(" ");c(e,!1);let a=r[e]||(r[e]={preventDefault:!1,commands:[]});a.commands.push(t),i&&(a.preventDefault=!0)};for(t of e){var r=t[o]||t.key;if(r)for(var s of t.scope?t.scope.split(" "):["editor"])i(s,r,t.run,t.preventDefault),t.shift&&i(s,"Shift-"+r,t.shift,t.preventDefault)}return l}function runHandlers(e,t,i,n){var r=keyName(t),s=1==r.length&&" "!=r;let a="",o=!1;storedPrefix&&storedPrefix.view==i&&storedPrefix.scope==n&&(a=storedPrefix.prefix+" ",(o=modifierCodes.indexOf(t.keyCode)<0)&&(storedPrefix=null));var l=e=>{if(e){for(var t of e.commands)if(t(i))return!0;e.preventDefault&&(o=!0)}return!1};let c=e[n],h;if(c){if(l(c[a+modifiers(r,t,!s)]))return!0;if(s&&(t.shiftKey||t.altKey||t.metaKey)&&(h=base[t.keyCode])&&h!=r){if(l(c[a+modifiers(h,t,!0)]))return!0}else if(s&&t.shiftKey&&l(c[a+modifiers(r,t,!0)]))return!0}return o}const CanHidePrimary=!browser.ios,themeSpec={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};function highlightActiveLine(){return activeLineHighlighter}CanHidePrimary&&(themeSpec[".cm-line"].caretColor="transparent !important");const lineDeco=Decoration.line({attributes:{class:"cm-activeLine"}}),activeLineHighlighter=ViewPlugin.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=-1,i=[];for(var n of e.state.selection.ranges){if(!n.empty)return Decoration.none;n=e.visualLineAt(n.head);n.from>t&&(i.push(lineDeco.range(n.from)),t=n.from)}return Decoration.set(i)}},{decorations:e=>e.decorations}),DefaultBufferLength=1024;let nextPropID=0;const CachedNode=new WeakMap;class NodeProp{constructor({deserialize:e}={}){this.id=nextPropID++,this.deserialize=e||(()=>{throw new Error("This node type doesn't define a deserialize function")})}static string(){return new NodeProp({deserialize:e=>e})}static number(){return new NodeProp({deserialize:Number})}static flag(){return new NodeProp({deserialize:()=>!0})}set(e,t){return e[this.id]=t,e}add(t){return"function"!=typeof t&&(t=NodeType.match(t)),e=>{e=t(e);return void 0===e?null:[this,e]}}}NodeProp.closedBy=new NodeProp({deserialize:e=>e.split(" ")}),NodeProp.openedBy=new NodeProp({deserialize:e=>e.split(" ")}),NodeProp.group=new NodeProp({deserialize:e=>e.split(" ")});const noProps=Object.create(null);class NodeType{constructor(e,t,i,n=0){this.name=e,this.props=t,this.id=i,this.flags=n}static define(e){var t=e.props&&e.props.length?Object.create(null):noProps,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),n=new NodeType(e.name||"",t,e.id,i);if(e.props)for(var r of e.props)Array.isArray(r)||(r=r(n)),r&&r[0].set(t,r[1]);return n}prop(e){return this.props[e.id]}get isTop(){return 0<(1&this.flags)}get isSkipped(){return 0<(2&this.flags)}get isError(){return 0<(4&this.flags)}get isAnonymous(){return 0<(8&this.flags)}is(t){if("string"!=typeof t)return this.id==t;{if(this.name==t)return!0;let e=this.prop(NodeProp.group);return!!e&&-1{for(let e=i.prop(NodeProp.group),t=-1;t<(e?e.length:0);t++){var n=r[t<0?i.name:e[t]];if(n)return n}}}}NodeType.none=new NodeType("",Object.create(null),0,8);class NodeSet{constructor(t){this.types=t;for(let e=0;ee.toString()).join();return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(e,t=0){var i=null!=e&&CachedNode.get(this)||this.topNode;let n=new TreeCursor(i);return null!=e&&(n.moveTo(e,t),CachedNode.set(this,n._tree)),n}fullCursor(){return new TreeCursor(this.topNode,!0)}get topNode(){return new TreeNode(this,0,0,null)}resolve(e,t=0){return this.cursor(e,t).node}iterate(e){let{enter:i,leave:n,from:r=0,to:s=this.length}=e;for(let t=this.cursor();;){let e=!1;if(t.from<=s&&t.to>=r&&(t.type.isAnonymous||!1!==i(t.type,t.from,t.to))){if(t.firstChild())continue;t.type.isAnonymous||(e=!0)}for(;e&&n&&n(t.type,t.from,t.to),e=t.type.isAnonymous,!t.nextSibling();){if(!t.parent())return;e=!0}}}balance(e=DefaultBufferLength){return this.children.length<=BalanceBranchFactor?this:balanceRange(this.type,NodeType.none,this.children,this.positions,0,this.children.length,0,e,this.length,0)}static build(e){return buildTree(e)}}function withHash(e,t){return t&&(e.contextHash=t),e}Tree.empty=new Tree(NodeType.none,[],[],0);class TreeBuffer{constructor(e,t,i,n=NodeType.none){this.buffer=e,this.length=t,this.set=i,this.type=n}toString(){let t=[];for(let e=0;e=e:this.from>e)||(-1=e:this.from>e)||(-1!e.type.isAnonymous||e instanceof TreeBuffer||hasChild(e))}class FlatBufferCursor{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new FlatBufferCursor(this.buffer,this.index)}}const BalanceBranchFactor=8;function buildTree(e){let{buffer:t,nodeSet:g,topID:i=0,maxBufferLength:m=DefaultBufferLength,reused:v=[],minRepeatType:y=g.types.length}=e,Q=Array.isArray(t)?new FlatBufferCursor(t,t.length):t,w=g.types,S=0;function $(i,e,t,n,r){var{id:s,start:a,end:o,size:l}=Q;let c=a-i;if(l<0)return-1==l?(t.push(v[s]),n.push(c)):S=s,void Q.next();let h=w[s],d,u;if(o-a<=m&&(u=function(e,t){let i=Q.fork(),n=0,r=0,s=0,a=i.end-m,o={size:0,start:0,skip:0};e:for(var l=i.pos-e;i.pos>l;)if(i.id!=t){var c=i.size,h=i.pos-c;if(c<0||h=y?4:0;var d=i.start;for(i.next();i.pos>h;){if(i.size<0)break e;i.id>=y&&(e+=4),i.next()}r=d,n+=c,s+=e}else o.size=n,o.start=r,o.skip=s,s+=4,n+=4,i.next();(t<0||n==e)&&(o.size=n,o.start=r,o.skip=s);return 4e;)t=function t(i,n,r,s){let{id:e,start:a,end:o,size:l}=Q;Q.next();if(e==s)return r;let c=r;if(4e;)r=t(i,n,r,s)}e=y?s:-1;Q.pos>O;)Q.id==f?Q.next():$(a,O,e,t,f);e.reverse(),t.reverse(),d=-1BalanceBranchFactor?balanceRange(h,h,e,t,0,e.length,0,m,o-a,S):withHash(new Tree(h,e,t,o-a),S)}t.push(d),n.push(c)}let n=[],r=[];for(;0u<<1){for(let e=0;e=i)for(;s&&s.from=e.from||u<=e.to||l)&&(c=Math.max(e.from,o)-l,h=Math.min(e.to,u)-l,e=h<=c?null:new TreeFragment(c,h,e.tree,e.offset+l,(0u)break;s=re.length&&n.push(r);return n}}function stringInput(e){return new StringInput(e)}class StringInput{constructor(e,t=e.length){this.string=e,this.length=t}get(e){return e<0||e>=this.length?-1:this.string.charCodeAt(e)}lineAfter(e){if(e<0)return"";var t=this.string.indexOf("\n",e);return this.string.slice(e,t<0?this.length:Math.min(t,this.length))}read(e,t){return this.string.slice(e,Math.min(this.length,t))}clip(e){return new StringInput(this.string,e)}}const languageDataProp=new NodeProp;function defineLanguageFacet(t){return Facet.define({combine:t?e=>e.concat(t):void 0})}class Language{constructor(e,t,i,n=[]){this.data=e,this.topNode=i,EditorState.prototype.hasOwnProperty("tree")||Object.defineProperty(EditorState.prototype,"tree",{get(){return syntaxTree(this)}}),this.parser=t,this.extension=[language.of(this),EditorState.languageData.of((e,t)=>e.facet(languageDataFacetAt(e,t)))].concat(n)}isActiveAt(e,t){return languageDataFacetAt(e,t)==this.data}findRegions(e){var t=e.facet(language);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[];return syntaxTree(e).iterate({enter:(e,t,i)=>{if(e.isTop&&e.prop(languageDataProp)==this.data)return n.push({from:t,to:i}),!1}}),n}get allowsNesting(){return!0}parseString(e){var t=Text.of(e.split("\n"));let i=this.parser.startParse(new DocInput(t),0,new EditorParseContext(this.parser,EditorState.create({doc:t}),[],Tree.empty,{from:0,to:e.length},[],null)),n;for(;!(n=i.advance()););return n}}function languageDataFacetAt(e,t){var i=e.facet(language);if(!i)return null;if(!i.allowsNesting)return i.data;let n=syntaxTree(e),r=n.resolve(t,-1);for(;r;){var s=r.type.prop(languageDataProp);if(s)return s;r=r.parent}return i.data}Language.setState=StateEffect.define();class LezerLanguage extends Language{constructor(e,t){super(e,t,t.topNode),this.parser=t}static define(e){let t=defineLanguageFacet(e.languageData);return new LezerLanguage(t,e.parser.configure({props:[languageDataProp.add(e=>e.isTop?t:void 0)]}))}configure(e){return new LezerLanguage(this.data,this.parser.configure(e))}get allowsNesting(){return this.parser.hasNested}}function syntaxTree(e){e=e.field(Language.state,!1);return e?e.tree:Tree.empty}class DocInput{constructor(e,t=e.length){this.doc=e,this.length=t,this.cursorPos=0,this.string="",this.prevString="",this.cursor=e.iter()}syncTo(e){return e=this.length)return-1;let t=this.cursorPos-this.string.length;if(e=this.cursorPos){if(e=t-this.prevString.length)return this.prevString.charCodeAt(e-(t-this.prevString.length));t=this.syncTo(e)}return this.string.charCodeAt(e-t)}lineAfter(e){if(e>=this.length||e<0)return"";let t=this.cursorPos-this.string.length;return(e=this.cursorPos)&&(t=this.syncTo(e)),this.cursor.lineBreak?"":this.string.slice(e-t,Math.min(this.length-t,this.string.length))}read(e,t){var i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}clip(e){return new DocInput(this.doc,e)}}class EditorParseContext{constructor(e,t,i=[],n,r,s,a){this.parser=e,this.state=t,this.fragments=i,this.tree=n,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}work(e,t){if(this.tree!=Tree.empty&&(null==t?this.tree.length==this.state.doc.length:this.tree.length>=t))return this.takeTree(),!0;this.parse||(this.parse=this.parser.startParse(new DocInput(this.state.doc),0,this));for(var i=Date.now()+e;;){var n=this.parse.advance();if(n)return this.fragments=this.withoutTempSkipped(TreeFragment.addTree(n)),this.parse=null,this.tree=n,!0;if(null!=t&&this.parse.pos>=t)return this.takeTree(),!0;if(Date.now()>i)return!1}}takeTree(){this.parse&&this.parse.pos>this.tree.length&&(this.tree=this.parse.forceFinish(),this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,!0)))}withoutTempSkipped(e){for(var t;t=this.tempSkipped.pop();)e=cutFragments(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:n,viewport:s,skipped:a}=this;if(this.takeTree(),!e.empty){let r=[];if(e.iterChangedRanges((e,t,i,n)=>r.push({fromA:e,toA:t,fromB:i,toB:n})),i=TreeFragment.applyChanges(i,r),n=Tree.empty,s={from:e.mapPos(s.from,-1),to:e.mapPos(s.to,1)},this.skipped.length){a=[];for(var o of this.skipped){var l=e.mapPos(o.from,1),o=e.mapPos(o.to,-1);lt.from&&(this.fragments=cutFragments(this.fragments,i,n),this.skipped.splice(e--,1))}return this.skipped.length=e}}function cutFragments(e,t,i){return TreeFragment.applyChanges(e,[{fromA:t,toA:i,fromB:t,toB:i}])}EditorParseContext.skippingParser=EditorParseContext.getSkippingParser();class LanguageState{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged)return this;let t=this.context.changes(e.changes,e.state);e=this.context.tree.length==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.tree.length),t.viewport.to);return t.work(25,e)||t.takeTree(),new LanguageState(t)}static init(e){let t=new EditorParseContext(e.facet(language).parser,e,[],Tree.empty,{from:0,to:e.doc.length},[],null);return t.work(25)||t.takeTree(),new LanguageState(t)}}Language.state=StateField.define({create:LanguageState.init,update(e,t){for(var i of t.effects)if(i.is(Language.setState))return i.value;return t.startState.facet(language)!=t.state.facet(language)?LanguageState.init(t.state):e.apply(t)}});let requestIdle="undefined"!=typeof window&&window.requestIdleCallback||((e,{timeout:t})=>setTimeout(e,t)),cancelIdle="undefined"!=typeof window&&window.cancelIdleCallback||clearTimeout;const parseWorker=ViewPlugin.fromClass(class{constructor(e){this.view=e,this.working=-1,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Language.state).context;e.viewportChanged&&(t.updateViewport(e.view.viewport)&&t.reset(),this.view.viewport.to>t.tree.length&&this.scheduleWork()),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(!(-1=e.doc.length&&i.length&&0==i[0].from&&i[0].to>=e.doc.length||(this.working=requestIdle(this.work,{timeout:500}))}}work(n){this.working=-1;var r=Date.now();if(this.chunkEnd=t+1e6||(n=Math.min(this.chunkBudget,n?Math.max(25,n.timeRemaining()):100),n=i.context.work(n,t+1e6),this.chunkBudget-=Date.now()-r,(n||this.chunkBudget<=0||i.context.movedPast(t))&&(i.context.takeTree(),this.view.dispatch({effects:Language.setState.of(new LanguageState(i.context))})),!n&&0this.scheduleWork()),e.scheduleOn=null)}destroy(){0<=this.working&&cancelIdle(this.working)}},{eventHandlers:{focus(){this.scheduleWork()}}}),language=Facet.define({combine(e){return e.length?e[0]:null},enables:[Language.state,parseWorker]});class LanguageSupport{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class LanguageDescription{constructor(e,t,i,n,r){this.name=e,this.alias=t,this.extensions=i,this.filename=n,this.loadFunc=r,this.support=void 0,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){return new LanguageDescription(e.name,(e.alias||[]).concat(e.name).map(e=>e.toLowerCase()),e.extensions||[],e.filename,e.load)}static matchFilename(e,t){for(var i of e)if(i.filename&&i.filename.test(t))return i;var n=/\.([^.]+)$/.exec(t);if(n)for(var r of e)if(-1e==t))return n;if(i)for(var r of e)for(var s of r.alias){var a=t.indexOf(s);if(-1{if(!e.length)return" ";if(!/^(?: +|\t+)$/.test(e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return e[0]}});function getIndentUnit(e){let t=e.facet(indentUnit);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function indentString(e,t){let i="",n=e.tabSize;if(9==e.facet(indentUnit).charCodeAt(0))for(;n<=t;)i+="\t",t-=n;for(let e=0;edelimitedStrategy(e,!0,1,void 0,i&&!ignoreClosed(e)?t.from:void 0)}return null==e.parent?topIndent:null}function indentFrom(t,i,n){for(;t;t=t.parent){let e=indentStrategy(t);if(e)return e(new TreeIndentContext(n,i,t))}return null}function topIndent(){return 0}class TreeIndentContext extends IndentContext{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.node=i}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){let t=this.state.doc.lineAt(this.node.from);for(;;){let e=this.node.resolve(t.from);for(;e.parent&&e.parent.from==e.from;)e=e.parent;if(isParent(e,this.node))break;t=this.state.doc.lineAt(e.from)}return this.lineIndent(t)}continue(){var e=this.node.parent;return e?indentFrom(e,this.pos,this.base):0}}function isParent(t,i){for(let e=i;e;e=e.parent)if(t==e)return!0;return!1}function bracketedAligned(e){let t=e.node;var i=t.childAfter(t.from),n=t.lastChild;if(!i)return null;var r=null===(r=e.options)||void 0===r?void 0:r.simulateBreak,e=e.state.doc.lineAt(i.from),s=null==r||r<=e.from?e.to:Math.min(e.to,r);for(let e=i.to;;){var a=t.childAfter(e);if(!a||a==n)return null;if(!a.type.isSkipped)return a.fromdelimitedStrategy(e,i,n,t)}function delimitedStrategy(e,t,i,n,r){let s=e.textAfter,a=s.match(/^\s*/)[0].length;r=n&&s.slice(a,a+n.length)==n||r==e.pos+a,t=t?bracketedAligned(e):null;return t?r?e.column(t.from):e.column(t.to):e.baseIndent+(r?0:e.unit*i)}const flatIndent=e=>e.baseIndent;function continuedIndent({except:i,units:n=1}={}){return e=>{var t=i&&i.test(e.textAfter);return e.baseIndent+(t?0:n*e.unit)}}const foldNodeProp=new NodeProp;function foldInside(e){var t=e.firstChild,i=e.lastChild;return t&&t.toEditorView.decorations.from(e)}),bracketMatchingUnique=[bracketMatchingState,baseTheme$1];function bracketMatching(e={}){return[bracketMatchingConfig.of(e),bracketMatchingUnique]}function matchingNodes(e,t,i){var n=e.prop(t<0?NodeProp.openedBy:NodeProp.closedBy);if(n)return n;if(1==e.name.length){e=i.indexOf(e.name);if(-1=n.to){if(0==l&&-1>1==l>>1};d--}}0"},closeBracketEffect=StateEffect.define({map(e,t){e=t.mapPos(e,-1,MapMode.TrackAfter);return null==e?void 0:e}}),skipBracketEffect=StateEffect.define({map(e,t){return t.mapPos(e)}}),closedBracket=new class extends RangeValue{};closedBracket.startSide=1,closedBracket.endSide=-1;const bracketState=StateField.define({create(){return RangeSet.empty},update(e,i){var t,n;i.selection&&(t=i.state.doc.lineAt(i.selection.main.head).from,n=i.startState.doc.lineAt(i.startState.selection.main.head).from,t!=i.changes.mapPos(n,-1)&&(e=RangeSet.empty)),e=e.map(i.changes);for(let t of i.effects)t.is(closeBracketEffect)?e=e.update({add:[closedBracket.range(t.value,t.value+1)]}):t.is(skipBracketEffect)&&(e=e.update({filter:e=>e!=t.value}));return e}});function closeBrackets(){return[EditorView.inputHandler.of(handleInput),bracketState]}const definedClosing="()[]{}<>";function closing(t){for(let e=0;e{let r=config(n,n.selection.main.head).brackets||defaults.brackets,s=null,t=n.changeByRange(e=>{if(e.empty){var t,i=prevChar(n.doc,e.head);for(t of r)if(t==i&&nextChar(n.doc,e.head)==closing(codePointAt(t,0)))return{changes:{from:e.head-t.length,to:e.head+t.length},range:EditorSelection.cursor(e.head-t.length),annotations:Transaction.userEvent.of("delete")}}return{range:s=e}});return s||e(n.update(t,{scrollIntoView:!0})),!s},closeBracketsKeymap=[{key:"Backspace",run:deleteBracketPair}];function insertBracket(e,t){var i,n=config(e,e.selection.main.head);let r=n.brackets||defaults.brackets;for(i of r){var s=closing(codePointAt(i,0));if(t==i)return s==i?handleSame(e,i,-1{e==t&&(i=!0)}),i}function nextChar(e,t){let i=e.sliceString(t,t+2);return i.slice(0,codePointSize(codePointAt(i,0)))}function prevChar(e,t){let i=e.sliceString(t-2,t);return codePointSize(codePointAt(i,0))==i.length?i:i.slice(1)}function handleOpen(i,n,r,s){let a=null,e=i.changeByRange(e=>{if(!e.empty)return{changes:[{insert:n,from:e.from},{insert:r,from:e.to}],effects:closeBracketEffect.of(e.to+n.length),range:EditorSelection.range(e.anchor+n.length,e.head+n.length)};var t=nextChar(i.doc,e.head);return!t||/\s/.test(t)||-1e.empty&&nextChar(t.doc,e.head)==i?EditorSelection.cursor(e.head+i.length):n=e);return n?null:t.update({selection:EditorSelection.create(r,t.selection.mainIndex),scrollIntoView:!0,effects:t.selection.ranges.map(({from:e})=>skipBracketEffect.of(e))})}function handleSame(r,s,a){let o=null,e=r.changeByRange(e=>{if(!e.empty)return{changes:[{insert:s,from:e.from},{insert:s,from:e.to}],effects:closeBracketEffect.of(e.to+s.length),range:EditorSelection.range(e.anchor+s.length,e.head+s.length)};var t=e.head,i=nextChar(r.doc,t);if(i==s){if(nodeStart$1(r,t))return{changes:{insert:s+s,from:t},effects:closeBracketEffect.of(t+s.length),range:EditorSelection.cursor(t+s.length)};if(closedBracketAt(r,t)){var n=a&&r.sliceDoc(t,t+3*s.length)==s+s+s;return{range:EditorSelection.cursor(t+s.length*(n?3:1)),effects:skipBracketEffect.of(t)}}}else{if(a&&r.sliceDoc(t-2*s.length,t)==s+s&&nodeStart$1(r,t-2*s.length))return{changes:{insert:s+s+s+s,from:t},effects:closeBracketEffect.of(t+s.length),range:EditorSelection.cursor(t+s.length)};if(r.charCategorizer(t)(i)!=CharCategory.Word){i=r.sliceDoc(t-1,t);if(i!=s&&r.charCategorizer(t)(i)!=CharCategory.Word)return{changes:{insert:s+s,from:t},effects:closeBracketEffect.of(t+s.length),range:EditorSelection.cursor(t+s.length)}}}return{range:o=e}});return o?null:r.update(e,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})}function nodeStart$1(e,t){e=syntaxTree(e).resolve(t+1);return e.parent&&e.from==t}function updateSel(e,t){return EditorSelection.create(e.ranges.map(t),e.mainIndex)}function setSel(e,t){return e.update({selection:t,scrollIntoView:!0,annotations:Transaction.userEvent.of("keyboardselection")})}function moveSel({state:e,dispatch:t},i){let n=updateSel(e.selection,i);return!n.eq(e.selection)&&(t(setSel(e,n)),!0)}function rangeEnd(e,t){return EditorSelection.cursor(t?e.to:e.from)}function cursorByChar(t,i){return moveSel(t,e=>e.empty?t.moveByChar(e,i):rangeEnd(e,i))}const cursorCharLeft=e=>cursorByChar(e,e.textDirection!=Direction.LTR),cursorCharRight=e=>cursorByChar(e,e.textDirection==Direction.LTR);function cursorByGroup(t,i){return moveSel(t,e=>e.empty?t.moveByGroup(e,i):rangeEnd(e,i))}const cursorGroupLeft=e=>cursorByGroup(e,e.textDirection!=Direction.LTR),cursorGroupRight=e=>cursorByGroup(e,e.textDirection==Direction.LTR),cursorGroupForward=e=>cursorByGroup(e,!0),cursorGroupBackward=e=>cursorByGroup(e,!1);function interestingNode(e,t,i){if(t.type.prop(i))return!0;i=t.to-t.from;return i&&(2moveSel(t,e=>moveBySyntax(t.state,e,t.textDirection!=Direction.LTR)),cursorSyntaxRight=t=>moveSel(t,e=>moveBySyntax(t.state,e,t.textDirection==Direction.LTR));function cursorByLine(t,i){return moveSel(t,e=>e.empty?t.moveVertically(e,i):rangeEnd(e,i))}const cursorLineUp=e=>cursorByLine(e,!1),cursorLineDown=e=>cursorByLine(e,!0);function cursorByPage(t,i){return moveSel(t,e=>e.empty?t.moveVertically(e,i,t.dom.clientHeight):rangeEnd(e,i))}const cursorPageUp=e=>cursorByPage(e,!1),cursorPageDown=e=>cursorByPage(e,!0);function moveByLineBoundary(e,t,i){let n=e.visualLineAt(t.head),r=e.moveToLineBoundary(t,i);return r.head==t.head&&r.head!=(i?n.to:n.from)&&(r=e.moveToLineBoundary(t,i,!1)),i||r.head!=n.from||!n.length||(e=/^\s*/.exec(e.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length)&&t.head!=n.from+e&&(r=EditorSelection.cursor(n.from+e)),r}const cursorLineBoundaryForward=t=>moveSel(t,e=>moveByLineBoundary(t,e,!0)),cursorLineBoundaryBackward=t=>moveSel(t,e=>moveByLineBoundary(t,e,!1)),cursorLineStart=t=>moveSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).from,1)),cursorLineEnd=t=>moveSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).to,-1));function toMatchingBracket(i,e,n){let r=!1,t=updateSel(i.selection,e=>{var t=matchBrackets(i,e.head,-1)||matchBrackets(i,e.head,1)||0toMatchingBracket(e,t,!1);function extendSel(e,i){let t=updateSel(e.state.selection,e=>{var t=i(e);return EditorSelection.range(e.anchor,t.head,t.goalColumn)});return!t.eq(e.state.selection)&&(e.dispatch(setSel(e.state,t)),!0)}function selectByChar(t,i){return extendSel(t,e=>t.moveByChar(e,i))}const selectCharLeft=e=>selectByChar(e,e.textDirection!=Direction.LTR),selectCharRight=e=>selectByChar(e,e.textDirection==Direction.LTR);function selectByGroup(t,i){return extendSel(t,e=>t.moveByGroup(e,i))}const selectGroupLeft=e=>selectByGroup(e,e.textDirection!=Direction.LTR),selectGroupRight=e=>selectByGroup(e,e.textDirection==Direction.LTR),selectGroupForward=e=>selectByGroup(e,!0),selectGroupBackward=e=>selectByGroup(e,!1),selectSyntaxLeft=t=>extendSel(t,e=>moveBySyntax(t.state,e,t.textDirection!=Direction.LTR)),selectSyntaxRight=t=>extendSel(t,e=>moveBySyntax(t.state,e,t.textDirection==Direction.LTR));function selectByLine(t,i){return extendSel(t,e=>t.moveVertically(e,i))}const selectLineUp=e=>selectByLine(e,!1),selectLineDown=e=>selectByLine(e,!0);function selectByPage(t,i){return extendSel(t,e=>t.moveVertically(e,i,t.dom.clientHeight))}const selectPageUp=e=>selectByPage(e,!1),selectPageDown=e=>selectByPage(e,!0),selectLineBoundaryForward=t=>extendSel(t,e=>moveByLineBoundary(t,e,!0)),selectLineBoundaryBackward=t=>extendSel(t,e=>moveByLineBoundary(t,e,!1)),selectLineStart=t=>extendSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).from)),selectLineEnd=t=>extendSel(t,e=>EditorSelection.cursor(t.visualLineAt(e.head).to)),cursorDocStart=({state:e,dispatch:t})=>(t(setSel(e,{anchor:0})),!0),cursorDocEnd=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.doc.length})),!0),selectDocStart=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.selection.main.anchor,head:0})),!0),selectDocEnd=({state:e,dispatch:t})=>(t(setSel(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),selectAll=({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},annotations:Transaction.userEvent.of("keyboardselection")})),!0),selectLine=({state:i,dispatch:e})=>{var t=selectedLineBlocks(i).map(({from:e,to:t})=>EditorSelection.range(e,Math.min(t+1,i.doc.length)));return e(i.update({selection:EditorSelection.create(t),annotations:Transaction.userEvent.of("keyboardselection")})),!0},selectParentSyntax=({state:n,dispatch:e})=>{var t=updateSel(n.selection,e=>{var t;let i=syntaxTree(n).resolve(e.head,1);for(;!(i.from=e.to||i.to>e.to&&i.from<=e.from||null===(t=i.parent)||void 0===t)&&t.parent;)i=i.parent;return EditorSelection.range(i.to,i.from)});return e(setSel(n,t)),!0},simplifySelection=({state:e,dispatch:t})=>{let i=e.selection,n=null;return 1{let{from:t,to:i}=e;var n;return t==i&&(n=r(t),t=Math.min(t,n),i=Math.max(i,n)),t==i?{range:e}:{changes:{from:t,to:i},range:EditorSelection.cursor(t)}});return!i.changes.empty&&(t(e.update(i,{scrollIntoView:!0,annotations:Transaction.userEvent.of("delete")})),!0)}const deleteByChar=(o,l,c)=>deleteBy(o,t=>{let{state:e}=o,i=e.doc.lineAt(t),n;if(!l&&t>i.from&&tdeleteByChar(e,!1,!0),deleteCharBackward=e=>deleteByChar(e,!1,!1),deleteCharForward=e=>deleteByChar(e,!0,!1),deleteByGroup=(e,c)=>deleteBy(e,t=>{let i=t,{state:n}=e,r=n.doc.lineAt(i),s=n.charCategorizer(i);for(let e=null;;){if(i==(c?r.to:r.from)){i==t&&r.number!=(c?n.doc.lines:1)&&(i+=c?1:-1);break}var a=findClusterBreak(r.text,i-r.from,c)+r.from,o=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),l=s(o);if(null!=e&&l!=e)break;" "==o&&i==t||(e=l),i=a}return i}),deleteGroupBackward=e=>deleteByGroup(e,!1),deleteGroupForward=e=>deleteByGroup(e,!0),deleteToLineEnd=i=>deleteBy(i,e=>{var t=i.visualLineAt(e).to;return edeleteBy(i,e=>{var t=i.visualLineAt(e).from;return t{var i=e.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:Text.of(["",""])},range:EditorSelection.cursor(e.from)}));return t(e.update(i,{scrollIntoView:!0,annotations:Transaction.userEvent.of("input")})),!0},transposeChars=({state:n,dispatch:e})=>{var t=n.changeByRange(e=>{if(!e.empty||0==e.from||e.from==n.doc.length)return{range:e};var t=e.from,i=n.doc.lineAt(t),e=t==i.from?t-1:findClusterBreak(i.text,t-i.from,!1)+i.from,i=t==i.to?t+1:findClusterBreak(i.text,t-i.from,!0)+i.from;return{changes:{from:e,to:i,insert:n.doc.slice(t,i).append(n.doc.slice(e,t))},range:EditorSelection.cursor(i)}});return!t.changes.empty&&(e(n.update(t,{scrollIntoView:!0})),!0)};function selectedLineBlocks(e){let t=[],i=-1;for(var n of e.selection.ranges){var r=e.doc.lineAt(n.from),n=e.doc.lineAt(n.to);i==r.number?t[t.length-1].to=n.to:t.push({from:r.from,to:n.to}),i=n.number}return t}function moveLine(e,t,i){let n=[];for(var r of selectedLineBlocks(e)){var s;(i?r.to!=e.doc.length:0!=r.from)&&(s=e.doc.lineAt(i?r.to+1:r.from-1),i?n.push({from:r.to,to:s.to},{from:r.from,insert:s.text+e.lineBreak}):n.push({from:s.from,to:r.from},{from:r.to,insert:e.lineBreak+s.text}))}return!!n.length&&(t(e.update({changes:n,scrollIntoView:!0})),!0)}const moveLineUp=({state:e,dispatch:t})=>moveLine(e,t,!1),moveLineDown=({state:e,dispatch:t})=>moveLine(e,t,!0);function copyLine(e,t,i){let n=[];for(var r of selectedLineBlocks(e))i?n.push({from:r.from,insert:e.doc.slice(r.from,r.to)+e.lineBreak}):n.push({from:r.to,insert:e.lineBreak+e.doc.slice(r.from,r.to)});return t(e.update({changes:n,scrollIntoView:!0})),!0}const copyLineUp=({state:e,dispatch:t})=>copyLine(e,t,!1),copyLineDown=({state:e,dispatch:t})=>copyLine(e,t,!0),deleteLine=t=>{let{state:i}=t,e=i.changes(selectedLineBlocks(i).map(({from:e,to:t})=>(0t.moveVertically(e,!0)).map(e);return t.dispatch({changes:e,selection:n,scrollIntoView:!0}),!0};function isBetweenBrackets(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let i=syntaxTree(e).resolve(t),n=i.childBefore(t),r=i.childAfter(t),s;return n&&r&&n.to<=t&&r.from>=t&&(s=n.type.prop(NodeProp.closedBy))&&-1{var t=o.changeByRange(({from:e,to:t})=>{var i=e==t&&isBetweenBrackets(o,e);let n=new IndentContext(o,{simulateBreak:e,simulateDoubleBreak:!!i}),r=getIndentation(n,e);null==r&&(r=/^\s*/.exec(o.doc.lineAt(e).text)[0].length);let s=o.doc.lineAt(e);for(;ts.from&&e{var i=[];for(let e=t.from;e<=t.to;){var n=r.doc.lineAt(e);n.number>a&&(t.empty||t.to>n.from)&&(s(n,i,t),a=n.number),e=n.to+1}let e=r.changes(i);return{changes:i,range:EditorSelection.range(e.mapPos(t.anchor,1),e.mapPos(t.head,1))}})}const indentSelection=({state:a,dispatch:e})=>{let o=Object.create(null),l=new IndentContext(a,{overrideIndentation:e=>{e=o[e];return null==e?-1:e}});var t=changeBySelectedLine(a,(e,t,i)=>{var n,r,s=getIndentation(l,e.from);null==s||((n=/^\s*/.exec(e.text)[0])!=(r=indentString(a,s))||i.from(e(i.update(changeBySelectedLine(i,(e,t)=>{t.push({from:e.from,insert:i.facet(indentUnit)})}))),!0),indentLess=({state:a,dispatch:e})=>(e(a.update(changeBySelectedLine(a,(n,r)=>{let s=/^\s*/.exec(n.text)[0];if(s){let e=countColumn(s,0,a.tabSize),t=0,i=indentString(a,Math.max(0,e-getIndentUnit(a)));for(;t",run:cursorDocEnd},{key:"Ctrl-v",run:cursorPageDown},{key:"Alt-v",run:cursorPageUp}],standardKeymap=[{key:"ArrowLeft",run:cursorCharLeft,shift:selectCharLeft},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:cursorGroupLeft,shift:selectGroupLeft},{mac:"Cmd-ArrowLeft",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"ArrowRight",run:cursorCharRight,shift:selectCharRight},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cursorGroupRight,shift:selectGroupRight},{mac:"Cmd-ArrowRight",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"ArrowUp",run:cursorLineUp,shift:selectLineUp},{mac:"Cmd-ArrowUp",run:cursorDocStart,shift:selectDocStart},{mac:"Ctrl-ArrowUp",run:cursorPageUp,shift:selectPageUp},{key:"ArrowDown",run:cursorLineDown,shift:selectLineDown},{mac:"Cmd-ArrowDown",run:cursorDocEnd,shift:selectDocEnd},{mac:"Ctrl-ArrowDown",run:cursorPageDown,shift:selectPageDown},{key:"PageUp",run:cursorPageUp,shift:selectPageUp},{key:"PageDown",run:cursorPageDown,shift:selectPageDown},{key:"Home",run:cursorLineBoundaryBackward,shift:selectLineBoundaryBackward},{key:"Mod-Home",run:cursorDocStart,shift:selectDocStart},{key:"End",run:cursorLineBoundaryForward,shift:selectLineBoundaryForward},{key:"Mod-End",run:cursorDocEnd,shift:selectDocEnd},{key:"Enter",run:insertNewlineAndIndent},{key:"Mod-a",run:selectAll},{key:"Backspace",run:deleteCodePointBackward,shift:deleteCodePointBackward},{key:"Delete",run:deleteCharForward,shift:deleteCharForward},{key:"Mod-Backspace",mac:"Alt-Backspace",run:deleteGroupBackward},{key:"Mod-Delete",mac:"Alt-Delete",run:deleteGroupForward},{mac:"Mod-Backspace",run:deleteToLineStart},{mac:"Mod-Delete",run:deleteToLineEnd}].concat(emacsStyleKeymap.map(e=>({mac:e.key,run:e.run,shift:e.shift}))),defaultKeymap=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:cursorSyntaxLeft,shift:selectSyntaxLeft},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cursorSyntaxRight,shift:selectSyntaxRight},{key:"Alt-ArrowUp",run:moveLineUp},{key:"Shift-Alt-ArrowUp",run:copyLineUp},{key:"Alt-ArrowDown",run:moveLineDown},{key:"Shift-Alt-ArrowDown",run:copyLineDown},{key:"Escape",run:simplifySelection},{key:"Alt-l",mac:"Ctrl-l",run:selectLine},{key:"Mod-i",run:selectParentSyntax,preventDefault:!0},{key:"Mod-[",run:indentLess},{key:"Mod-]",run:indentMore},{key:"Mod-Alt-\\",run:indentSelection},{key:"Shift-Mod-k",run:deleteLine},{key:"Shift-Mod-\\",run:cursorMatchingBracket}].concat(standardKeymap),fromHistory=Annotation.define(),isolateHistory=Annotation.define(),invertedEffects=Facet.define(),historyConfig=Facet.define({combine(e){return combineConfig(e,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}}),historyField_=StateField.define({create(){return HistoryState.empty},update(t,i){var n=i.state.facet(historyConfig),r=i.annotation(fromHistory);if(r){var s=HistEvent.fromTransaction(i),a=r.side;let e=0==a?t.undone:t.done;return e=s?updateBranch(e,e.length,n.minDepth,s):addSelection(e,i.startState.selection),new HistoryState(0==a?r.rest:e,0==a?e:r.rest)}var e=i.annotation(isolateHistory);if("full"!=e&&"before"!=e||(t=t.isolate()),!1===i.annotation(Transaction.addToHistory))return i.changes.empty?t:t.addMapping(i.changes.desc);s=HistEvent.fromTransaction(i),a=i.annotation(Transaction.time),r=i.annotation(Transaction.userEvent);return s?t=t.addChanges(s,a,r,n.newGroupDelay,n.minDepth):i.selection&&(t=t.addSelection(i.startState.selection,a,r,n.newGroupDelay)),t="full"==e||"after"==e?t.isolate():t},toJSON(e){return{done:e.done.map(e=>e.toJSON()),undone:e.undone.map(e=>e.toJSON())}},fromJSON(e){return new HistoryState(e.done.map(HistEvent.fromJSON),e.undone.map(HistEvent.fromJSON))}});function history(e={}){return[historyField_,historyConfig.of(e),EditorView.domEventHandlers({beforeinput(e,t){return"historyUndo"==e.inputType?undo(t):"historyRedo"==e.inputType&&redo(t)}})]}function cmd(n,r){return function({state:e,dispatch:t}){let i=e.field(historyField_,!1);if(!i)return!1;e=i.pop(n,e,r);return!!e&&(t(e),!0)}}const undo=cmd(0,!1),redo=cmd(1,!1),undoSelection=cmd(0,!0),redoSelection=cmd(1,!0);class HistEvent{constructor(e,t,i,n,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=n,this.selectionsAfter=r}setSelAfter(e){return new HistEvent(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(e=this.mapped)||void 0===e?void 0:e.toJSON(),startSelection:null===(e=this.startSelection)||void 0===e?void 0:e.toJSON(),selectionsAfter:this.selectionsAfter.map(e=>e.toJSON())}}static fromJSON(e){return new HistEvent(e.changes&&ChangeSet.fromJSON(e.changes),[],e.mapped&&ChangeDesc.fromJSON(e.mapped),e.startSelection&&EditorSelection.fromJSON(e.startSelection),e.selectionsAfter.map(EditorSelection.fromJSON))}static fromTransaction(e){let t=none$1;for(var i of e.startState.facet(invertedEffects)){i=i(e);i.length&&(t=t.concat(i))}return!t.length&&e.changes.empty?null:new HistEvent(e.changes.invert(e.startState.doc),t,void 0,e.startState.selection,none$1)}static selection(e){return new HistEvent(void 0,none$1,void 0,void 0,e)}}function updateBranch(e,t,i,n){let r=e.slice(i+20a.push(e,t)),t.iterChangedRanges((e,t,i,n)=>{for(let e=0;ee.empty!=i.ranges[t].empty).length}function conc(e,t){return e.length?t.length?e.concat(t):e:t}const none$1=[],MaxSelectionsPerEvent=200;function addSelection(i,n){if(i.length){let e=i[i.length-1],t=e.selectionsAfter.slice(Math.max(0,e.selectionsAfter.length-MaxSelectionsPerEvent));return t.length&&t[t.length-1].eq(n)?i:(t.push(n),updateBranch(i,i.length-1,1e9,e.setSelAfter(t)))}return[HistEvent.selection([n])]}function popSelection(e){let t=e[e.length-1],i=e.slice();return i[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),i}function addMappingToBranch(t,e){if(!t.length)return t;let i=t.length,n=none$1;for(;i;){var r=mapEvent(t[i-1],e,n);if(r.changes&&!r.changes.empty||r.effects.length){let e=t.slice(0,i);return e[i-1]=r,e}e=r.mapped,i--,n=r.selectionsAfter}return n.length?[HistEvent.selection(n)]:none$1}function mapEvent(e,t,i){var n=conc(e.selectionsAfter.length?e.selectionsAfter.map(e=>e.map(t)):none$1,i);if(!e.changes)return HistEvent.selection(n);var r=e.changes.map(t),s=t.mapDesc(e.changes,!0),i=e.mapped?e.mapped.composeDesc(s):s;return new HistEvent(r,StateEffect.mapEffects(e.effects,t),i,e.startSelection.map(s),n)}class HistoryState{constructor(e,t,i=0,n=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=n}isolate(){return this.prevTime?new HistoryState(this.done,this.undone):this}addChanges(e,t,i,n,r){let s=this.done,a=s[s.length-1];return s=a&&a.changes&&t-this.prevTime-1e.id-t.id))}}let nextModifierID=0;class Modifier{constructor(){this.instances=[],this.id=nextModifierID++}static get(t,i){if(!i.length)return t;var e,n=i[0].instances.find(e=>e.base==t&&sameArray(i,e.modified));if(n)return n;let r=[],s=new Tag(r,t,i);for(e of i)e.instances.push(s);var a,o=permute(i);for(a of t.set)for(var l of o)r.push(Modifier.get(a,l));return s}}function sameArray(e,i){return e.length==i.length&&e.every((e,t)=>e==i[t])}function permute(t){let i=[t];for(let e=0;ee.scope)?void 0:Object.create(null);return(e,t)=>{var i,n=o&&o[e.id];if(void 0!==n)return n;let r=null;for(i of a){var s=i.match(e,t);s&&(r=r?r+" "+s:s)}return o&&(o[e.id]=r),r}}static define(e,t){return new HighlightStyle(e,t||{})}static get(e,t,i){let n=getHighlightStyle(e);return n&&n(t,i||NodeType.none)}}class TreeHighlighter{constructor(e){this.markCache=Object.create(null),this.tree=syntaxTree(e.state),this.decorations=this.buildDeco(e,getHighlightStyle(e.state))}update(e){var t=syntaxTree(e.state),i=getHighlightStyle(e.state),n=i!=e.startState.facet(highlightStyle);t.length{n.add(e,t,this.markCache[i]||(this.markCache[i]=Decoration.mark({class:i})))});return n.finish()}}const treeHighlighter=Prec.fallback(ViewPlugin.fromClass(TreeHighlighter,{decorations:e=>e.decorations})),nodeStack=[""];function highlightTreeRange(e,t,i,u,n){let r=t,p="",O=e.topNode.cursor;function f(e,t){p&&n(r,e,p),r=e,p=t}!function r(s,a,o){let{type:l,from:c,to:h}=O;if(!(i<=c||h<=t)){nodeStack[a]=l.name,l.isTop&&(o=l);let e=s,t=l.prop(ruleNodeProp),i=!1;for(;t;){if(!t.context||matchContext(t.context,nodeStack,a)){for(var d of t.tags)(d=u(d,o))&&(e&&(e+=" "),e+=d,1==t.mode?s+=(s?" ":"")+d:0==t.mode&&(i=!0));break}t=t.next}let n=c;if(!i&&O.firstChild()){for(;O.from>n&&p!=e&&f(n,e),n=O.to,r(s,a+1,o),O.nextSibling(););O.parent()}h>n&&p!=e&&f(n,e)}}("",0,e.type),f(i,"")}function matchContext(i,n,r){if(i.length>r-1)return!1;for(let e=r-1,t=i.length-1;0<=t;t--,e--){var s=i[t];if(s&&s!=n[e])return!1}return!0}const t=Tag.define,comment=t(),name=t(),typeName=t(name),literal=t(),string=t(literal),number=t(literal),content=t(),heading=t(content),keyword=t(),operator=t(),punctuation=t(),bracket=t(punctuation),meta=t(),tags$1={comment:comment,lineComment:t(comment),blockComment:t(comment),docComment:t(comment),name:name,variableName:t(name),typeName:typeName,tagName:t(typeName),propertyName:t(name),className:t(name),labelName:t(name),namespace:t(name),macroName:t(name),literal:literal,string:string,docString:t(string),character:t(string),number:number,integer:t(number),float:t(number),bool:t(literal),regexp:t(literal),escape:t(literal),color:t(literal),url:t(literal),keyword:keyword,self:t(keyword),null:t(keyword),atom:t(keyword),unit:t(keyword),modifier:t(keyword),operatorKeyword:t(keyword),controlKeyword:t(keyword),definitionKeyword:t(keyword),operator:operator,derefOperator:t(operator),arithmeticOperator:t(operator),logicOperator:t(operator),bitwiseOperator:t(operator),compareOperator:t(operator),updateOperator:t(operator),definitionOperator:t(operator),typeOperator:t(operator),controlOperator:t(operator),punctuation:punctuation,separator:t(punctuation),bracket:bracket,angleBracket:t(bracket),squareBracket:t(bracket),paren:t(bracket),brace:t(bracket),content:content,heading:heading,heading1:t(heading),heading2:t(heading),heading3:t(heading),heading4:t(heading),heading5:t(heading),heading6:t(heading),contentSeparator:t(content),list:t(content),quote:t(content),emphasis:t(content),strong:t(content),link:t(content),monospace:t(content),strikethrough:t(content),inserted:t(),deleted:t(),changed:t(),invalid:t(),meta:meta,documentMeta:t(meta),annotation:t(meta),processingInstruction:t(meta),definition:Tag.defineModifier(),constant:Tag.defineModifier(),function:Tag.defineModifier(),standard:Tag.defineModifier(),local:Tag.defineModifier(),special:Tag.defineModifier()};class CompositeBlock{constructor(e,t,i,n,r,s,a){this.type=e,this.value=t,this.from=i,this.hash=n,this.end=r,this.children=s,this.positions=a}static create(e,t,i,n,r){n=n+(n<<8)+e+(t<<4)|0;return new CompositeBlock(e,t,i,n,r,[],[])}toTree(e,t=this.end){var i=this.children.length-1;0<=i&&(t=Math.max(t,this.positions[i]+this.children[i].length+this.from));t=new Tree(e.types[this.type],this.children,this.positions,t-this.from).balance(2048);return stampContext(t.children,this.hash),t}copy(){return new CompositeBlock(this.type,this.value,this.from,this.hash,this.end,this.children.slice(),this.positions.slice())}}!function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.URL=33]="URL",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeInfo=40]="CodeInfo",e[e.LinkTitle=41]="LinkTitle",e[e.LinkLabel=42]="LinkLabel"}(Type=Type||{});class LeafBlock{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class Line{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){var e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return skipSpace(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(t,i=0,n=0){for(let e=i;e=t.stack[i.depth+1].value+i.baseIndent)return!0;if(i.indent>=i.baseIndent+4)return!1;var n=(e.type==Type.OrderedList?isOrderedList:isBulletList)(i,t,!1);return 0e.pos+9||46!=r&&41!=r||ne.pos+1||49!=e.next)?-1:n+1-e.pos}function isAtxHeading(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,ProcessingEnd=/\?>/,HTMLBlockStyle=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(r);if(e)return t.append(elt(Type.Comment,n,n+1+e[0].length));e=/^\?[^]*?\?>/.exec(r);if(e)return t.append(elt(Type.ProcessingInstruction,n,n+1+e[0].length));r=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(r);if(!r)return-1;let s=[];if(t.parser.htmlParser){let e=t.parser.htmlParser.startParse(stringInput(t.slice(n,n+1+r[0].length)),0,{}),i;for(;!(i=e.advance()););s=i.children.map((e,t)=>new TreeElement(e,n+i.positions[t]))}return t.append(elt(Type.HTMLTag,n,n+1+r[0].length,s))},Emphasis(e,t,i){if(95!=t&&42!=t)return-1;let n=i+1;for(;e.char(n)==t;)n++;var r=e.slice(i-1,i),s=e.slice(n,n+1),a=Punctuation.test(r),o=Punctuation.test(s),l=/\s|^$/.test(r),r=/\s|^$/.test(s),s=!r&&(!o||l||a),r=!l&&(!a||r||o),a=s&&(42==t||!r||a),o=r&&(42==t||!s||o);return e.append(new InlineDelimiter(95==t?EmphasisUnderscore:EmphasisAsterisk,i,n,(a?1:0)|(o?2:0)))},HardBreak(t,e,i){if(92==e&&10==t.char(i+1))return t.append(elt(Type.HardBreak,i,i+2));if(32==e){let e=i+1;for(;32==t.char(e);)e++;if(10==t.char(e)&&e>=i+2)return t.append(elt(Type.HardBreak,i,e+1))}return-1},Link(e,t,i){return 91==t?e.append(new InlineDelimiter(LinkStart,i,i+1,1)):-1},Image(e,t,i){return 33==t&&91==e.char(i+1)?e.append(new InlineDelimiter(ImageStart,i,i+2,1)):-1},LinkEnd(i,e,t){if(93!=e)return-1;for(let e=i.parts.length-1;0<=e;e--){var n=i.parts[e];if(n instanceof InlineDelimiter&&(n.type==LinkStart||n.type==ImageStart)){if(!n.side||i.skipSpace(n.to)==t&&!/[(\[]/.test(i.slice(t+1,t+2)))return i.parts[e]=null,-1;var r=i.takeContent(e),r=i.parts[e]=finishLink(i,r,n.type==LinkStart?Type.Link:Type.Image,n.from,t+1);if(n.type==LinkStart)for(let t=0;tr?elt(Type.URL,r+s,i+s):i==n.length&&null}}function parseLinkTitle(i,n,r){var e=i.charCodeAt(n);if(39!=e&&34!=e&&40!=e)return!1;var s=40==e?41:e;for(let e=n+1,t=!1;e=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,i,n,r){return this.append(new InlineDelimiter(e,t,i,(n?1:0)|(r?2:0)))}addElement(e){return this.append(e)}resolveMarkers(t){for(let a=t;a=t;s--){var e=this.parts[s];if(e instanceof InlineDelimiter&&1&e.side&&e.type==o.type&&!(l&&(1&o.side||2&e.side)&&(e.to-e.from+c)%3==0&&((e.to-e.from)%3||c%3))){r=e;break}}if(r){let e=o.type.resolve,t=[],i=r.from,n=o.to;l&&(h=Math.min(2,r.to-r.from,c),i=r.to-h,n=o.from+h,e=1==h?"Emphasis":"StrongEmphasis"),r.type.mark&&t.push(this.elt(r.type.mark,i,r.to));for(let e=s+1;e(e?e-1:0))return!1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;0=n)return this.fragment.from<=t;if(!i.childAfter(n))return!1}}matches(e){var t=this.cursor.tree;return t&&ContextHash.get(t)==e}takeNodes(e){let t=this.cursor,i=this.fragment.offset,n=e.lineStart,r=n,s=e.block.children.length,a=r,o=s;for(;;){if(t.to-i>=this.fragmentEnd){if(t.type.isAnonymous&&t.firstChild())continue;break}if(e.addNode(t.tree,t.from-i),t.type.is("Block")&&(NotLast.indexOf(t.type.id)<0?(r=t.to-i,s=e.block.children.length):(r=a,s=o,a=t.to-i,o=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>s;)e.block.children.pop(),e.block.positions.pop();return r-n}}const parser$4=new MarkdownParser(new NodeSet(nodeTypes),null,null,Object.keys(DefaultBlockParsers).map(e=>DefaultBlockParsers[e]),Object.keys(DefaultBlockParsers).map(e=>DefaultLeafBlocks[e]),Object.keys(DefaultBlockParsers),DefaultEndLeaf,DefaultSkipMarkup,Object.keys(DefaultInline).map(e=>DefaultInline[e]),Object.keys(DefaultInline)),StrikethroughDelim={resolve:"Strikethrough",mark:"StrikethroughMark"},Strikethrough={defineNodes:["Strikethrough","StrikethroughMark"],parseInline:[{name:"Strikethrough",parse(e,t,i){return 126!=t||126!=e.char(i+1)?-1:e.addDelimiter(StrikethroughDelim,i,i+2,!0,!0)},after:"Emphasis"}]};function parseRow(t,i,n=0,r,s=0){let a=0,o=!0,l=-1,c=-1,h=!1;var d=()=>{r.push(t.elt("TableCell",s+l,s+c,t.parser.parseInline(i.slice(l,c),s+l)))};for(let e=n;e{if(e!=s||t.char(i+1)==s)return-1;let n=[t.elt(o,i,i+1)];for(let e=i+1;et%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){var n=e.parser.context;return new Stack(e,[],t,i,i,0,[],0,n?new StackContext(n,n.start):null,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t=e>>19,i=65535&e;let{parser:n}=this.p;var r=n.dynamicPrecedence(i);if(r&&(this.score+=r),0==t)return is;)this.stack.pop();this.reduceContext(i)}storeNode(t,i,n,r=4,e=!1){if(0==t){let e=this,t=this.buffer.length;if(0==t&&e.parent&&(t=e.bufferBase-e.parent.bufferBase,e=e.parent),0=i)return void(e.buffer[t-2]=n)}}if(e&&this.pos!=n){let e=this.buffer.length;if(0n;)this.buffer[e]=this.buffer[e-4],this.buffer[e+1]=this.buffer[e-3],this.buffer[e+2]=this.buffer[e-2],this.buffer[e+3]=this.buffer[e-1],e-=4,4this.pos||r<=i.maxNode)&&(this.pos=s,i.stateFlag(t,1)||(this.reducePos=s)),this.pushState(t,e),r<=i.maxNode&&this.buffer.push(r,e,s,4),this.shiftContext(r)}else r<=this.p.parser.maxNode&&this.buffer.push(r,this.pos,s,4),this.pos=s}apply(e,t,i){65536&e?this.reduce(e):this.shift(e,t,i)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);var n=this.pos;this.reducePos=this.pos=n+e.length,this.pushState(t,n),this.buffer.push(i,n,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this.p.input,this))}split(){let e=this,t=e.buffer.length;for(;0e.reducePos;)t-=4;for(var i=e.buffer.slice(t),n=e.bufferBase+t;e&&n==e.bufferBase;)e=e.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,n,this.curContext,e)}recoverByDelete(e,t){var i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=200}canShift(t){for(let e=new SimulatedStack(this);;){var i=this.p.parser.stateSlot(e.top,4)||this.p.parser.hasAction(e.top,t);if(0==(65536&i))return!0;if(0==i)return!1;e.reduce(i)}}get ruleStart(){for(let e=this.state,t=this.stack.length;;){var i=this.p.parser.stateSlot(e,5);if(!(65536&i))return 0;if(t-=3*(i>>19),(65535&i)>19,o=65535&s;if(-1>19),s=this.stack[1+s];if(null==t||s1&t&&e==i)||n.push(r[e],i)}r=n}let n=[];for(let t=0;t>19;0==e?(this.rest==this.stack.stack&&(this.rest=this.rest.slice()),this.rest.push(this.top,0,0),this.offset+=3):this.offset-=3*(e-1);t=this.stack.p.parser.getGoto(this.rest[this.offset-3],t,!0);this.top=t}}class StackBufferCursor{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,0==this.index&&this.maybeNext()}static create(e){return new StackBufferCursor(e,e.bufferBase+e.buffer.length,e.buffer.length)}maybeNext(){var e=this.stack.parent;null!=e&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new StackBufferCursor(this.stack,this.pos,this.index)}}class Token{constructor(){this.start=-1,this.value=-1,this.end=-1}accept(e,t){this.value=e,this.end=t}}class TokenGroup{constructor(e,t){this.data=e,this.id=t}token(e,t,i){readToken(this.data,e,t,i,this.id)}}TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=!1;class ExternalTokenizer{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function readToken(i,e,n,r,t){let s=0,a=1<>1,u=l+d+(d<<1),p=i[u],O=i[u+1];if(ht)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,t-5)):Math.min(e.length,Math.max(n.from+1,t+5));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:e.length}}class FragmentCursor{constructor(e){this.fragments=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){var e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?cutAt(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?cutAt(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e=this.safeFrom?r:null;r instanceof TreeBuffer?(this.index[t]++,this.nextStart=n+r.length):(this.index[t]++,n+r.length>=e&&(this.trees.push(r),this.start.push(n),this.index.push(0)))}else this.trees.pop(),this.start.pop(),this.index.pop()}}}class CachedToken extends Token{constructor(){super(...arguments),this.extended=-1,this.mask=0,this.context=0}clear(e){this.start=e,this.value=this.extended=-1}}const dummyToken=new Token;class TokenCache{constructor(e){this.tokens=[],this.mainToken=dummyToken,this.actions=[],this.tokens=e.tokenizers.map(e=>new CachedToken)}getActions(n,r){let s=0,a=null,{parser:e}=n.p,{tokenizers:o}=e;var l=e.stateSlot(n.state,3),c=n.curContext?n.curContext.hash:0;for(let i=0;ih))break}}for(;this.actions.length>s;)this.actions.pop();return a||(a=dummyToken,a.start=n.pos,n.pos==r.length?a.accept(n.p.parser.eofTerm,n.pos):a.accept(0,n.pos+1)),this.mainToken=a,this.actions}updateCachedToken(i,e,n,r){if(i.clear(n.pos),e.token(r,i,n),-1>1)){0==(1&s)?i.value=s>>1:i.extended=s>>1;break}}}else n.pos==r.length?i.accept(n.p.parser.eofTerm,n.pos):i.accept(0,n.pos+1)}putAction(t,e,i,n){for(let e=0;ei)n.push(o);else if(l=this.checkNest(o))(!a||a.stack.scorec)for(n.sort((e,t)=>t.score-e.score);n.length>c;)n.pop();n.some(e=>e.reducePos>i)&&this.recovering--}else if(1 ":"";if(this.fragments){var t=i.curContext&&i.curContext.tracker.strict,l=t?i.curContext.hash:0;for(let e=this.fragments.nodeAt(s);e;){var c=this.parser.nodeSet.types[e.type.id]==e.type?a.getGoto(i.state,e.type.id):-1;if(-1s?n:r).push(e)}return!1}advanceFully(e,t){for(var i=e.pos;;){var n=this.checkNest(e);if(n)return n;if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return pushStackDedup(e,t),!0}}runRecovery(a,o,l){let c=null,h=!1,d;for(let s=0;s ":"";if(e.deadEnd){if(h)continue;h=!0,e.restart(),verbose&&console.log(p+this.stackID(e)+" (restarted)");var O=this.advanceFully(e,l);if(O){!0!==O&&(d=O);continue}}let n=e.split(),r=p;for(let e=0;n.forceReduce()&&e<10;e++){verbose&&console.log(r+this.stackID(n)+" (via force-reduce)");var f=this.advanceFully(n,l);if(f){!0!==f&&(d=f);break}verbose&&(r=this.stackID(n)+" -> ")}for(u of e.recoverByInsert(t))verbose&&console.log(p+this.stackID(u)+" (via recover-insert)"),this.advanceFully(u,l);this.input.length>e.pos?(i==e.pos&&(i++,t=0),e.recoverByDelete(t,i),verbose&&console.log(p+this.stackID(e)+` (via recover-delete ${this.parser.getName(t)})`),pushStackDedup(e,l)):(!c||c.scored.stack.score){d=void 0;break}return d&&this.startNested(d),null}forceFinish(){let e=this.stacks[0].split();return this.nested&&this.finishNested(e,this.nested.forceFinish()),this.stackToTree(e.forceAll())}stackToTree(e,t=e.pos){return this.parser.context&&e.emitContext(),Tree.build({buffer:StackBufferCursor.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.startPos,length:t-this.startPos,minRepeatType:this.parser.minRepeatTerm})}checkNest(e){var t=this.parser.findNested(e.state);if(!t)return null;let i=t.value;return"function"==typeof i&&(i=i(this.input,e)),i?{stack:e,info:t,spec:i}:null}startNested(e){let{stack:t,info:i,spec:n}=e;this.stacks=[t],this.nestEnd=this.scanForNestEnd(t,i.end,n.filterEnd),this.nestWrap="number"==typeof n.wrapType?this.parser.nodeSet.types[n.wrapType]:n.wrapType||null,n.startParse?this.nested=n.startParse(this.input.clip(this.nestEnd),t.pos,this.context):this.finishNested(t)}scanForNestEnd(t,i,n){for(let e=t.pos;ee;class ContextTracker{constructor(e){this.start=e.start,this.shift=e.shift||id,this.reduce=e.reduce||id,this.reuse=e.reuse||id,this.hash=e.hash,this.strict=!1!==e.strict}}class Parser{constructor(i){if(this.bufferLength=DefaultBufferLength,this.strict=!1,this.cachedDialect=null,13!=i.version)throw new RangeError(`Parser version (${i.version}) doesn't match runtime version (13)`);let t=decodeArray(i.tokenData),n=i.nodeNames.split(" ");this.minRepeatTerm=n.length,this.context=i.context;for(let e=0;ei.topRules[e][1]);this.nodeSet=new NodeSet(n.map((e,t)=>NodeType.define({name:t>=this.minRepeatTerm?void 0:e,id:t,props:r[t],top:-1"number"==typeof e?new TokenGroup(t,e):e),this.topRules=i.topRules,this.nested=(i.nested||[]).map(([e,t,i,n])=>({name:e,value:t,end:new TokenGroup(decodeArray(i),0),placeholder:n})),this.dialects=i.dialects||{},this.dynamicPrecedences=i.dynamicPrecedences||null,this.tokenPrecTable=i.tokenPrec,this.termNames=i.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}parse(e,t=0,i={}){"string"==typeof e&&(e=stringInput(e));let n=new Parse(this,e,t,i);for(;;){var r=n.advance();if(r)return r}}startParse(e,t=0,i={}){return"string"==typeof e&&(e=stringInput(e)),new Parse(this,e,t,i)}getGoto(t,i,n=!1){var r=this.goto;if(i>=r[0])return-1;for(let e=r[i+1];;){var s=r[e++],a=1&s,o=r[e++];if(a&&n)return o;for(var l=e+(s>>1);e>10]:null}validAction(t,i){if(i==this.stateSlot(t,4))return!0;for(let e=this.stateSlot(t,1);;e+=3){if(65535==this.data[e]){if(1!=this.data[e+1])return!1;e=pair(this.data,e+2)}if(i==pair(this.data,e+1))return!0}}nextStates(t){let n=[];for(let e=this.stateSlot(t,1);;e+=3){if(65535==this.data[e]){if(1!=this.data[e+1])break;e=pair(this.data,e+2)}if(0==(1&this.data[e+2])){let i=this.data[e+1];n.some((e,t)=>1&t&&e==i)||n.push(this.data[e],i)}}return n}overrides(e,t){t=findOffset(this.data,this.tokenPrecTable,t);return t<0||findOffset(this.data,this.tokenPrecTable,e){var e=i.tokenizers.find(e=>e.from==t);return e?e.to:t})),i.dialect&&(e.dialect=this.parseDialect(i.dialect)),i.nested&&(e.nested=this.nested.map(e=>Object.prototype.hasOwnProperty.call(i.nested,e.name)?{name:e.name,value:i.nested[e.name],end:e.end,placeholder:e.placeholder}:e)),null!=i.strict&&(e.strict=i.strict),null!=i.bufferLength&&(e.bufferLength=i.bufferLength),e}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get hasNested(){return 0!1);if(e)for(var i of e.split(" ")){i=n.indexOf(i);0<=i&&(t[i]=!0)}let r=null;for(let i=0;i{let n=t.start,r=e.get(n),s;if(r<0&&i.context&&t.accept(missingCloseTag,t.start),r==lessThan){n++,(s=e.get(n)==slash$1)&&n++;var a=tagNameAfter(e,n);if(void 0!==a){if(!a)return t.accept(s?IncompleteCloseTag:StartTag,n);e=i.context?i.context.name:null;if(s){if(a==e)return t.accept(StartCloseTag,n);if(e&&implicitlyClosed[e])return t.accept(missingCloseTag,t.start);if(i.dialectEnabled(Dialect_noMatch))return t.accept(StartCloseTag,n);for(let e=i.context;e;e=e.parent)if(e.name==a)return;t.accept(MismatchedStartCloseTag,n)}else e&&closeOnOpen[e]&&closeOnOpen[e][a]?t.accept(missingCloseTag,t.start):t.accept(StartTag,n)}}}),selfClosed=new ExternalTokenizer((e,t,i)=>{let n=e.get(t.start),r=t.start+1;if(n==slash$1){if(e.get(r)!=greaterThan)return;r++}else if(n!=greaterThan)return;i.context&&selfClosers[i.context.name]&&t.accept(SelfCloseEndTag,r)}),commentContent$1=new ExternalTokenizer((e,t)=>{let i=t.start,n=0;for(;;){var r=e.get(i);if(r<0)break;if(i++,r=="--\x3e".charCodeAt(n)){if(n++,3==n){i-=3;break}}else n=0}i>t.start&&t.accept(commentContent,i)}),openTag=/^<\/?\s*([\.\-\:\w\xa1-\uffff]+)/;function tagName(e){let t=openTag.exec(e);return t?t[1].toLowerCase():null}function attributes(i){let n=openTag.exec(i),r={};if(n){let e=/\s*([\.\-\:\w\xa1-\uffff]+)\s*(?:=\s*(?:"([^"]*)"|'([^']*)'|([^\s=<>"'/]+)))?/g,t;for(e.lastIndex=n.index+n[0].length;t=e.exec(i);)r[t[1]]=t[4]||t[3]||t[2]||t[1]}return r}function skip(t){return e=>tagName(e)==t}function resolveContent(e){let o=null;for(var t of e)o=o||Object.create(null),(o[t.tag]||(o[t.tag]=[])).push({attrs:t.attrs,value:{filterEnd:skip(t.tag),startParse:t.parser.startParse.bind(t.parser)}});return function(e,t){var i=e.read(t.ruleStart,t.pos);let n=tagName(i),r,s;if(!n)return null;if(o&&(r=o[n]))for(var a of r)if(!a.attrs||a.attrs(s=s||attributes(i)))return a.value;return"script"==n||"textarea"==n||"style"==n?{filterEnd:skip(n),wrapType:RawText}:null}}const elementContent=resolveContent([]);function configureNesting(e){return{elementContent:resolveContent(e)}}const parser$3=Parser.deserialize({version:13,states:"'OOVOXOOOtQ`O'#CgS!eOXO'#CfOOOP'#Cf'#CfO!oOdO'#CqO!wQ`O'#CsOOOP'#DR'#DROOOP'#Cv'#CvQVOXOOO!|QrO,59ROOOP'#Cz'#CzO#XOXO'#DWO#cOPO,59QOOOS'#C{'#C{O#kOdO,59]OOOP,59],59]O#sQ`O,59_OOOP-E6t-E6tO#xQrO'#CiOOQQ'#Cw'#CwO$WQrO1G.mOOOP1G.m1G.mOOOP1G.v1G.vOOOP-E6x-E6xO$cQ`O'#CoOOOP1G.l1G.lOOOS-E6y-E6yOOOP1G.w1G.wOOOP1G.y1G.yO$hQ!bO,59TOOQQ-E6u-E6uOOOP7+$X7+$XOOOP7+$b7+$bO$sQ`O,59ZO$xO#tO'#ClO%WO&jO'#ClOOQQ1G.o1G.oOOOP1G.u1G.uOOOO'#Cx'#CxO%fO#tO,59WOOQQ,59W,59WOOOO'#Cy'#CyO%tO&jO,59WOOOO-E6v-E6vOOQQ1G.r1G.rOOOO-E6w-E6w",stateData:"&X~OtOS~OPPORTOSUOVUOWUOXUOfUOhVO{SO~O[XO~OPPORTOSUOVUOWUOXUOfUO{SO~OQzPqzP~PyOr]O|_O~O[`O~OTfO^bObeO~OQzXqzX~PyOQhOqiO~Or]O|kO~OblO~O_mOT]X^]Xb]X~OTpO^bOboO~O[qO~OatOvrOxsO~ObuO~OWvOXvOvxOwvO~OWyOXyOxxOyyO~OWvOXvOv|OwvO~OWyOXyOx|OyyO~O{fhf~",goto:"#k{PPPPPPPPPP|!SP!YPP!^PP!a!d|P|PP!j!p!v!|#S#YPPPPP#`PPPP#hXUOQWZXQOQWZTcXdRtmRi[XROQWZQWORaWQdXRndQwrR{wQzsR}zQZQRgZQ^SRj^SVOWTYQZR[Q",nodeNames:"⚠ StartTag StartCloseTag StartCloseTag IncompleteCloseTag SelfCloseEndTag Document Text EntityReference CharacterReference Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue EndTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag DoctypeDecl RawText",maxTerm:44,context:elementContext,nodeProps:[[NodeProp.closedBy,-2,1,2,"EndTag SelfCloseEndTag",11,"CloseTag"],[NodeProp.openedBy,5,"StartTag",18,"StartTag StartCloseTag",19,"OpenTag"]],skippedNodes:[0,25],repeatNodeCount:6,tokenData:"!#`!aR!WOX$kXY)sYZ)sZ]$k]^)s^p$kpq)sqr$krs*zsv$kvw+dwx2wx}$k}!O3d!O!P$k!P!Q7]!Q![$k![!]8s!]!^$k!^!_>`!_!`!!n!`!a8R!a!c$k!c!}8s!}#R$k#R#S8s#S#T$k#T#o8s#o$f$k$f$g&R$g%W$k%W%o8s%o%p$k%p&a8s&a&b$k&b1p8s1p4U$k4U4d8s4d4e$k4e$IS8s$IS$I`$k$I`$Ib8s$Ib$Kh$k$Kh%#t8s%#t&/x$k&/x&Et8s&Et&FV$k&FV;'S8s;'S;:jgWw`ypOq(kqr?Prs'gsv(kwx(]x!a(k!a!bKh!b~(k!R?WZw`ypOr(krs'gsv(kwx(]x}(k}!O?y!O!f(k!f!gAP!g#W(k#W#XGx#X~(k!R@QVw`ypOr(krs'gsv(kwx(]x}(k}!O@g!O~(k!R@pTw`yp{POr(krs'gsv(kwx(]x~(k!RAWVw`ypOr(krs'gsv(kwx(]x!q(k!q!rAm!r~(k!RAtVw`ypOr(krs'gsv(kwx(]x!e(k!e!fBZ!f~(k!RBbVw`ypOr(krs'gsv(kwx(]x!v(k!v!wBw!w~(k!RCOVw`ypOr(krs'gsv(kwx(]x!{(k!{!|Ce!|~(k!RClVw`ypOr(krs'gsv(kwx(]x!r(k!r!sDR!s~(k!RDYVw`ypOr(krs'gsv(kwx(]x!g(k!g!hDo!h~(k!RDvWw`ypOrDorsE`svDovwEtwxFdx!`Do!`!aG`!a~DoqEeTypOvE`vxEtx!`E`!`!aFV!a~E`PEwRO!`Et!`!aFQ!a~EtPFVOhPqF^QyphPOv'gx~'gaFiVw`OrFdrsEtsvFdvwEtw!`Fd!`!aGO!a~FdaGVRw`hPOr(]sv(]w~(]!RGiTw`yphPOr(krs'gsv(kwx(]x~(k!RHPVw`ypOr(krs'gsv(kwx(]x#c(k#c#dHf#d~(k!RHmVw`ypOr(krs'gsv(kwx(]x#V(k#V#WIS#W~(k!RIZVw`ypOr(krs'gsv(kwx(]x#h(k#h#iIp#i~(k!RIwVw`ypOr(krs'gsv(kwx(]x#m(k#m#nJ^#n~(k!RJeVw`ypOr(krs'gsv(kwx(]x#d(k#d#eJz#e~(k!RKRVw`ypOr(krs'gsv(kwx(]x#X(k#X#YDo#Y~(k!RKoWw`ypOrKhrsLXsvKhvwLmwxM}x!aKh!a!b! e!b~KhqL^TypOvLXvxLmx!aLX!a!bM[!b~LXPLpRO!aLm!a!bLy!b~LmPL|RO!`Lm!`!aMV!a~LmPM[OfPqMaTypOvLXvxLmx!`LX!`!aMp!a~LXqMwQypfPOv'gx~'gaNSVw`OrM}rsLmsvM}vwLmw!aM}!a!bNi!b~M}aNnVw`OrM}rsLmsvM}vwLmw!`M}!`!a! T!a~M}a! [Rw`fPOr(]sv(]w~(]!R! lWw`ypOrKhrsLXsvKhvwLmwxM}x!`Kh!`!a!!U!a~Kh!R!!_Tw`ypfPOr(krs'gsv(kwx(]x~(k!V!!yV_SVPw`ypOr&Rrs&qsv&Rwx'rx!^&R!^!_(k!_~&R",tokenizers:[tagStart,selfClosed,commentContent$1,0,1,2,3,4,5],topRules:{Document:[0,6]},nested:[["elementContent",elementContent,"%S~RP!^!_U~XP!P!Q[~_dXY[YZ[]^[pq[![!]!m!c!}!m#R#S!m#T#o!m%W%o!m%p&a!m&b1p!m4U4d!m4e$IS!m$I`$Ib!m$Kh%#t!m&/x&Et!m&FV;'S!m;'S;:j$|?&r?Ah!m?BY?Mn!m~!pkXY$eYZ$e]^$epq$e}!O!m!O!P!m!Q![!m![!]!m!`!a$w!c!}!m#R#S!m#T#o!m$}%O!m%W%o!m%p&a!m&b1p!m1p4U!m4U4d!m4e$IS!m$I`$Ib!m$Je$Jg!m$Kh%#t!m&/x&Et!m&FV;'S!m;'S;:j$|?&r?Ah!m?BY?Mn!m~$hTXY$eYZ$e]^$epq$e!`!a$w~$|Op~~%PP;=`<%l!m",42]],dialects:{noMatch:0},tokenPrec:234}),descendantOp=92,Unit=1,callee=93,identifier$1=94,space$1=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],colon=58,parenL=40,underscore=95,bracketL=91,dash=45,period=46,hash=35,percent=37;function isAlpha(e){return 65<=e&&e<=90||97<=e&&e<=122||161<=e}function isDigit(e){return 48<=e&&e<=57}const identifiers=new ExternalTokenizer((e,t)=>{let i=t.start,n=i,r=!1;for(;;){var s=e.get(n);if(!(isAlpha(s)||s==dash||s==underscore||r&&isDigit(s))){r&&t.accept(s==parenL?callee:identifier$1,n);break}!r&&(s!=dash||n>i)&&(r=!0),n++}}),descendant=new ExternalTokenizer((e,t)=>{space$1.includes(e.get(t.start-1))&&(!isAlpha(e=e.get(t.start))&&e!=underscore&&e!=hash&&e!=period&&e!=bracketL&&e!=colon&&e!=dash||t.accept(descendantOp,t.start))}),unitToken=new ExternalTokenizer((t,i)=>{var{start:n}=i;if(!space$1.includes(t.get(n-1))){var e=t.get(n);if(e==percent&&i.accept(Unit,n+1),isAlpha(e)){let e=n+1;for(;isAlpha(t.get(e));)e++;i.accept(Unit,e)}}}),spec_callee={__proto__:null,not:30,url:64,"url-prefix":64,domain:64,regexp:64,selector:132},spec_AtKeyword={__proto__:null,"@import":112,"@media":136,"@charset":140,"@namespace":144,"@keyframes":150,"@supports":162},spec_identifier$1={__proto__:null,not:126,only:126,from:156,to:158},parser$2=Parser.deserialize({version:13,states:"7WOYQ[OOOOQP'#Cc'#CcOOQP'#Cb'#CbO!ZQ[O'#CeO!}QXO'#C`O#UQ[O'#CgO#aQ[O'#DOO#fQ[O'#DSOOQP'#Eb'#EbO#kQdO'#DdO$SQ[O'#DqO#kQdO'#DsO$eQ[O'#DuO$pQ[O'#DxO$uQ[O'#EOO%TQ[O'#EQOOQS'#Ea'#EaOOQS'#ER'#ERQYQ[OOOOQP'#Cf'#CfOOQP,59P,59PO!ZQ[O,59PO%[Q[O'#ESO%vQWO,58zO&OQ[O,59RO#aQ[O,59jO#fQ[O,59nO%[Q[O,59rO%[Q[O,59tO%[Q[O,59uO'[Q[O'#D_OOQS,58z,58zOOQP'#Cj'#CjOOQO'#Cp'#CpOOQP,59R,59RO'cQWO,59RO'hQWO,59ROOQP'#DQ'#DQOOQP,59j,59jOOQO'#DU'#DUO'mQ`O,59nOOQS'#Cr'#CrO#kQdO'#CsO'uQvO'#CuO(|QtO,5:OOOQO'#Cz'#CzO'hQWO'#CyO)bQWO'#C{OOQS'#Ef'#EfOOQO'#Dg'#DgO)gQ[O'#DnO)uQWO'#EhO$uQ[O'#DlO*TQWO'#DoOOQO'#Ei'#EiO%yQWO,5:]O*YQpO,5:_OOQS'#Dw'#DwO*bQWO,5:aO*gQ[O,5:aOOQO'#Dz'#DzO*oQWO,5:dO*tQWO,5:jO*|QWO,5:lOOQS-E8P-E8POOQP1G.k1G.kO+pQXO,5:nOOQO-E8Q-E8QOOQS1G.f1G.fOOQP1G.m1G.mO'cQWO1G.mO'hQWO1G.mOOQP1G/U1G/UO+}Q`O1G/YO,hQXO1G/^O-OQXO1G/`O-fQXO1G/aO-|QXO'#CcO.qQWO'#D`OOQS,59y,59yO.vQWO,59yO/OQ[O,59yO/VQ[O'#CnO/^QdO'#CqOOQP1G/Y1G/YO#kQdO1G/YO/eQpO,59_OOQS,59a,59aO#kQdO,59cO/mQWO1G/jOOQS,59e,59eO/rQ!bO,59gO/zQWO'#DgO0VQWO,5:SO0[QWO,5:YO$uQ[O,5:UO$uQ[O'#EXO0dQWO,5;SO0oQWO,5:WO%[Q[O,5:ZOOQS1G/w1G/wOOQS1G/y1G/yOOQS1G/{1G/{O1QQWO1G/{O1VQdO'#D{OOQS1G0O1G0OOOQS1G0U1G0UOOQS1G0W1G0WOOQP7+$X7+$XOOQP7+$t7+$tO#kQdO7+$tO#kQdO,59zO1eQ[O'#EWO1oQWO1G/eOOQS1G/e1G/eO1oQWO1G/eO1wQXO'#EdO2OQWO,59YO2TQtO'#ETO2uQdO'#EeO3PQWO,59]O3UQpO7+$tOOQS1G.y1G.yOOQS1G.}1G.}OOQS7+%U7+%UO3^QWO1G/RO#kQdO1G/nOOQO1G/t1G/tOOQO1G/p1G/pO3cQWO,5:sOOQO-E8V-E8VO3qQXO1G/uOOQS7+%g7+%gO3xQYO'#CuO%yQWO'#EYO4QQdO,5:gOOQS,5:g,5:gO4`QpO<P!a!b$w!b!c>o!c!}$w!}#O?{#O#P$w#P#Q@W#Q#R2U#R#T$w#T#U@c#U#c$w#c#dAb#d#o$w#o#pAq#p#q2U#q#rA|#r#sBX#s#y$w#y#z%]#z$f$w$f$g%]$g#BY$w#BY#BZ%]#BZ$IS$w$IS$I_%]$I_$I|$w$I|$JO%]$JO$JT$w$JT$JU%]$JU$KV$w$KV$KW%]$KW&FU$w&FU&FV%]&FV~$wW$zQOy%Qz~%QW%VQqWOy%Qz~%Q~%bf#S~OX%QX^&v^p%Qpq&vqy%Qz#y%Q#y#z&v#z$f%Q$f$g&v$g#BY%Q#BY#BZ&v#BZ$IS%Q$IS$I_&v$I_$I|%Q$I|$JO&v$JO$JT%Q$JT$JU&v$JU$KV%Q$KV$KW&v$KW&FU%Q&FU&FV&v&FV~%Q~&}f#S~qWOX%QX^&v^p%Qpq&vqy%Qz#y%Q#y#z&v#z$f%Q$f$g&v$g#BY%Q#BY#BZ&v#BZ$IS%Q$IS$I_&v$I_$I|%Q$I|$JO&v$JO$JT%Q$JT$JU&v$JU$KV%Q$KV$KW&v$KW&FU%Q&FU&FV&v&FV~%Q^(fSOy%Qz#]%Q#]#^(r#^~%Q^(wSqWOy%Qz#a%Q#a#b)T#b~%Q^)YSqWOy%Qz#d%Q#d#e)f#e~%Q^)kSqWOy%Qz#c%Q#c#d)w#d~%Q^)|SqWOy%Qz#f%Q#f#g*Y#g~%Q^*_SqWOy%Qz#h%Q#h#i*k#i~%Q^*pSqWOy%Qz#T%Q#T#U*|#U~%Q^+RSqWOy%Qz#b%Q#b#c+_#c~%Q^+dSqWOy%Qz#h%Q#h#i+p#i~%Q^+wQ!UUqWOy%Qz~%Q~,QUOY+}Zr+}rs,ds#O+}#O#P,i#P~+}~,iOj~~,lPO~+}_,tWsPOy%Qz!Q%Q!Q![-^![!c%Q!c!i-^!i#T%Q#T#Z-^#Z~%Q^-cWqWOy%Qz!Q%Q!Q![-{![!c%Q!c!i-{!i#T%Q#T#Z-{#Z~%Q^.QWqWOy%Qz!Q%Q!Q![.j![!c%Q!c!i.j!i#T%Q#T#Z.j#Z~%Q^.qWhUqWOy%Qz!Q%Q!Q![/Z![!c%Q!c!i/Z!i#T%Q#T#Z/Z#Z~%Q^/bWhUqWOy%Qz!Q%Q!Q![/z![!c%Q!c!i/z!i#T%Q#T#Z/z#Z~%Q^0PWqWOy%Qz!Q%Q!Q![0i![!c%Q!c!i0i!i#T%Q#T#Z0i#Z~%Q^0pWhUqWOy%Qz!Q%Q!Q![1Y![!c%Q!c!i1Y!i#T%Q#T#Z1Y#Z~%Q^1_WqWOy%Qz!Q%Q!Q![1w![!c%Q!c!i1w!i#T%Q#T#Z1w#Z~%Q^2OQhUqWOy%Qz~%QY2XSOy%Qz!_%Q!_!`2e!`~%QY2lQyQqWOy%Qz~%QX2wQWPOy%Qz~%Q~3QUOY2}Zw2}wx,dx#O2}#O#P3d#P~2}~3gPO~2}_3oQaVOy%Qz~%Q~3zO`~_4RSTPlSOy%Qz!_%Q!_!`2e!`~%Q_4fUlS!OPOy%Qz!O%Q!O!P4x!P!Q%Q!Q![7_![~%Q^4}SqWOy%Qz!Q%Q!Q![5Z![~%Q^5bWqW#ZUOy%Qz!Q%Q!Q![5Z![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q^6PWqWOy%Qz{%Q{|6i|}%Q}!O6i!O!Q%Q!Q![6z![~%Q^6nSqWOy%Qz!Q%Q!Q![6z![~%Q^7RSqW#ZUOy%Qz!Q%Q!Q![6z![~%Q^7fYqW#ZUOy%Qz!O%Q!O!P8U!P!Q%Q!Q![7_![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q^8]WqW#ZUOy%Qz!Q%Q!Q![8U![!g%Q!g!h5z!h#X%Q#X#Y5z#Y~%Q_8zQcVOy%Qz~%Q^9VUlSOy%Qz!O%Q!O!P4x!P!Q%Q!Q![7_![~%Q_9nS#VPOy%Qz!Q%Q!Q![5Z![~%Q~:PRlSOy%Qz{:Y{~%Q~:_SqWOy:Yyz:kz{;`{~:Y~:nROz:kz{:w{~:k~:zTOz:kz{:w{!P:k!P!Q;Z!Q~:k~;`OQ~~;eUqWOy:Yyz:kz{;`{!P:Y!P!Q;w!Q~:Y~US{POy%Qz!`%Q!`!a>b!a~%QX>iQ{PqWOy%Qz~%QX>rUOy%Qz!c%Q!c!}?U!}#T%Q#T#o?U#o~%QX?]Y!XPqWOy%Qz}%Q}!O?U!O!Q%Q!Q![?U![!c%Q!c!}?U!}#T%Q#T#o?U#o~%QX@QQwPOy%Qz~%Q^@]QuUOy%Qz~%QX@fSOy%Qz#b%Q#b#c@r#c~%QX@wSqWOy%Qz#W%Q#W#XAT#X~%QXA[Q!_PqWOy%Qz~%QXAeSOy%Qz#f%Q#f#gAT#g~%QXAvQ!QPOy%Qz~%Q_BRQ!PVOy%Qz~%QZB^S!OPOy%Qz!_%Q!_!`2e!`~%Q",tokenizers:[descendant,unitToken,identifiers,0,1,2,3],topRules:{StyleSheet:[0,3]},specialized:[{term:93,get:e=>spec_callee[e]||-1},{term:55,get:e=>spec_AtKeyword[e]||-1},{term:94,get:e=>spec_identifier$1[e]||-1}],tokenPrec:1060});let _properties=null;function properties(){if(!_properties&&"object"==typeof document&&document.body){let e=[];for(var t in document.body.style)/[A-Z]|^-|^(item|length)$/.test(t)||e.push(t);_properties=e.sort().map(e=>({type:"property",label:e}))}return _properties||[]}const pseudoClasses=["active","after","before","checked","default","disabled","empty","enabled","first-child","first-letter","first-line","first-of-type","focus","hover","in-range","indeterminate","invalid","lang","last-child","last-of-type","link","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-of-type","only-child","optional","out-of-range","placeholder","read-only","read-write","required","root","selection","target","valid","visited"].map(e=>({type:"class",label:e})),values=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(e=>({type:"keyword",label:e})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(e=>({type:"constant",label:e}))),tags=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(e=>({type:"type",label:e})),span=/^[\w-]*/,completeCSS=e=>{let{state:t,pos:i}=e,n=syntaxTree(t).resolve(i,-1);if("PropertyName"==n.name)return{from:n.from,options:properties(),span:span};if("ValueName"==n.name)return{from:n.from,options:values,span:span};if("PseudoClassName"==n.name)return{from:n.from,options:pseudoClasses,span:span};if("TagName"==n.name){for(let{parent:e}=n;e;e=e.parent)if("Block"==e.name)return{from:n.from,options:properties(),span:span};return{from:n.from,options:tags,span:span}}if(!e.explicit)return null;let r=n.resolve(i),s=r.childBefore(i);return s&&":"==s.name&&"PseudoClassSelector"==r.name?{from:i,options:pseudoClasses,span:span}:s&&":"==s.name&&"Declaration"==r.name||"ArgList"==r.name?{from:i,options:values,span:span}:"Block"==r.name?{from:i,options:properties(),span:span}:null},cssLanguage=LezerLanguage.define({parser:parser$2.configure({props:[indentNodeProp.add({Declaration:continuedIndent()}),foldNodeProp.add({Block:foldInside}),styleTags({"import charset namespace keyframes":tags$1.definitionKeyword,"media supports":tags$1.controlKeyword,"from to":tags$1.keyword,NamespaceName:tags$1.namespace,KeyframeName:tags$1.labelName,TagName:tags$1.typeName,ClassName:tags$1.className,PseudoClassName:tags$1.constant(tags$1.className),not:tags$1.operatorKeyword,IdName:tags$1.labelName,"FeatureName PropertyName AttributeName":tags$1.propertyName,NumberLiteral:tags$1.number,KeywordQuery:tags$1.keyword,UnaryQueryOp:tags$1.operatorKeyword,callee:tags$1.keyword,"CallTag ValueName":tags$1.atom,Callee:tags$1.variableName,Unit:tags$1.unit,"UniversalSelector NestingSelector":tags$1.definitionOperator,AtKeyword:tags$1.keyword,MatchOp:tags$1.compareOperator,"ChildOp SiblingOp, LogicOp":tags$1.logicOperator,BinOp:tags$1.arithmeticOperator,Important:tags$1.modifier,Comment:tags$1.blockComment,ParenthesizedContent:tags$1.special(tags$1.name),ColorLiteral:tags$1.color,StringLiteral:tags$1.string,":":tags$1.punctuation,"PseudoOp #":tags$1.derefOperator,"; ,":tags$1.separator,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/}}),cssCompletion=cssLanguage.data.of({autocomplete:completeCSS});function css(){return new LanguageSupport(cssLanguage,cssCompletion)}var index$3=Object.freeze({__proto__:null,css:css,cssCompletion:cssCompletion,cssLanguage:cssLanguage});const noSemi=269,incdec=1,incdecPrefix=2,templateContent=270,templateDollarBrace=271,templateEnd=272,insertSemi=273,TSExtends=3,Dialect_ts=1,newline=[10,13,8232,8233],space=[9,11,12,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288],braceR=125,braceL=123,semicolon=59,slash=47,star=42,plus=43,minus=45,dollar=36,backtick=96,backslash=92;function newlineBefore(t,i){for(let e=i-1;0<=e;e--){var n=t.get(e);if(-1{var n=t.start,r=e.get(n);(r==braceR||-1==r||newlineBefore(e,n))&&i.canShift(insertSemi)&&t.accept(insertSemi,t.start)},{contextual:!0,fallback:!0}),noSemicolon=new ExternalTokenizer((e,t,i)=>{var n=t.start,r=e.get(n++);if(!(-1{var n=t.start,r=e.get(n);r!=plus&&r!=minus||r!=e.get(n+1)||(i=!newlineBefore(e,t.start)&&i.canShift(incdec),t.accept(i?incdec:incdecPrefix,n+2))},{contextual:!0}),template=new ExternalTokenizer((e,t)=>{let i=t.start,n=!1;for(;;){var r=e.get(i++);if(r<0){i-1>t.start&&t.accept(templateContent,i-1);break}if(r==backtick){i==t.start+1?t.accept(templateEnd,i):t.accept(templateContent,i-1);break}if(r==braceL&&n){i==t.start+2?t.accept(templateDollarBrace,i):t.accept(templateContent,i-2);break}if(10==r&&i>t.start+1){t.accept(templateContent,i);break}r==backslash&&i!=e.length&&i++,n=r==dollar}});function tsExtends(e,t){return"extends"==e&&t.dialectEnabled(Dialect_ts)?TSExtends:-1}const spec_identifier={__proto__:null,export:16,as:21,from:25,default:30,async:35,function:36,this:46,true:54,false:54,void:58,typeof:62,null:76,super:78,new:112,await:129,yield:131,delete:132,class:142,extends:144,public:181,private:181,protected:181,readonly:183,in:202,instanceof:204,const:206,import:238,keyof:289,unique:293,infer:299,is:333,abstract:353,implements:355,type:357,let:360,var:362,interface:369,enum:373,namespace:379,module:381,declare:385,global:389,for:410,of:419,while:422,with:426,do:430,if:434,else:436,switch:440,case:446,try:452,catch:454,finally:456,return:460,throw:464,break:468,continue:472,debugger:476},spec_word={__proto__:null,async:99,get:101,set:103,public:151,private:151,protected:151,static:153,abstract:155,readonly:159,new:337},spec_LessThan={__proto__:null,"<":119},parser$1=Parser.deserialize({version:13,states:"$,lO]QYOOO&zQ!LdO'#CgO'ROSO'#DRO)ZQYO'#DWO)kQYO'#DcO)rQYO'#DmO-iQYO'#DsOOQO'#ET'#ETO-|QWO'#ESO.RQWO'#ESO0QQ!LdO'#IgO2hQ!LdO'#IhO3UQWO'#EqO3ZQpO'#FWOOQ!LS'#Ey'#EyO3cO!bO'#EyO3qQWO'#F_O4{QWO'#F^OOQ!LS'#Ih'#IhOOQ!LQ'#Ig'#IgOOQQ'#JR'#JRO5QQWO'#HeO5VQ!LYO'#HfOOQQ'#I['#I[OOQQ'#Hg'#HgQ]QYOOO)rQYO'#DeO5_QWO'#GRO5dQ#tO'#ClO5rQWO'#ERO5}Q#tO'#ExO6iQWO'#GRO6nQWO'#GVO6yQWO'#GVO7XQWO'#GYO7XQWO'#GZO7XQWO'#G]O5_QWO'#G`O7xQWO'#GcO9WQWO'#CcO9hQWO'#GpO9pQWO'#GvO9pQWO'#GxO]QYO'#GzO9pQWO'#G|O9pQWO'#HPO9uQWO'#HVO9zQ!LZO'#HZO)rQYO'#H]O:VQ!LZO'#H_O:bQ!LZO'#HaO5VQ!LYO'#HcO)rQYO'#IjOOOS'#Hh'#HhO:mOSO,59mOOQ!LS,59m,59mO=OQbO'#CgO=YQYO'#HiO=gQWO'#IlO?fQbO'#IlO'^QYO'#IlO?mQWO,59rO@TQ&jO'#D]O@|QWO'#ETOAZQWO'#IvOAfQWO'#IuOAnQWO,5:qOAsQWO'#ItOAzQWO'#DtO5dQ#tO'#EROBYQWO'#EROBeQ`O'#ExOOQ!LS,59},59}OBmQYO,59}ODkQ!LdO,5:XOEXQWO,5:_OErQ!LYO'#IsO6nQWO'#IrOEyQWO'#IrOFRQWO,5:pOFWQWO'#IrOFfQYO,5:nOHcQWO'#EPOIjQWO,5:nOJvQWO'#DgOJ}QYO'#DlOKXQ&jO,5:wO)rQYO,5:wOOQQ'#Ei'#EiOOQQ'#Ek'#EkO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xO)rQYO,5:xOOQQ'#Eo'#EoOK^QYO,5;YOOQ!LS,5;_,5;_OOQ!LS,5;`,5;`OMZQWO,5;`OOQ!LS,5;a,5;aO)rQYO'#HsOM`Q!LYO,5;zOMzQWO,5:xO)rQYO,5;]ONdQpO'#IzONRQpO'#IzONkQpO'#IzON|QpO,5;hOOQO,5;r,5;rO! [QYO'#FYOOOO'#Hr'#HrO3cO!bO,5;eO! cQpO'#F[OOQ!LS,5;e,5;eO!!PQ,UO'#CqOOQ!LS'#Ct'#CtO!!dQWO'#CtO!!zQ#tO,5;wO!#RQWO,5;yO!$[QWO'#FiO!$iQWO'#FjO!$nQWO'#FnO!%pQ&jO'#FrO!&cQ,UO'#IeOOQ!LS'#Ie'#IeO!&mQWO'#IdO!&{QWO'#IcOOQ!LS'#Cr'#CrOOQ!LS'#Cx'#CxO!'TQWO'#CzOIoQWO'#FaOIoQWO'#FcO!'YQWO'#FeOIeQWO'#FfO!'_QWO'#FlOIoQWO'#FqO!'dQWO'#EUO!'{QWO,5;xO]QYO,5>POOQQ'#I_'#I_OOQQ,5>Q,5>QOOQQ-E;e-E;eO!)wQ!LdO,5:POOQ!LQ'#Co'#CoO!*hQ#tO,5TO)rQYO,5>TOOQO-E;g-E;gO!6tQWO,5?WO!6|QbO,5?WO!7TQWO,5?aOOQ!LS1G/^1G/^O!7]QpO'#DPOOQO'#In'#InO)rQYO'#InO!7zQpO'#InO!8iQpO'#D^O!8zQ&jO'#D^O!;SQYO'#D^O!;ZQWO'#ImO!;cQWO,59wO!;hQWO'#EXO!;vQWO'#IwO!YQ!LYO,5?_O!>kQ!LYO,5?_O!>rQWO,5?^O!>zQWO'#HpO!>rQWO,5?^OOQ!LQ1G0[1G0[O6nQWO,5?^OOQ!LS1G0Y1G0YO!?fQ!LdO1G0YO!@VQ!LbO,5:kOOQ!LS'#Fh'#FhO!@sQ!LdO'#IeOFfQYO1G0YO!BrQ#tO'#IoO!B|QWO,5:RO!CRQbO'#IpO)rQYO'#IpO!C]QWO,5:WOOQ!LS'#DP'#DPOOQ!LS1G0c1G0cO!CbQWO1G0cO!EsQ!LdO1G0dO!EzQ!LdO1G0dO!H_Q!LdO1G0dO!HfQ!LdO1G0dO!JmQ!LdO1G0dO!KQQ!LdO1G0dO!MqQ!LdO1G0dO!MxQ!LdO1G0dO#!]Q!LdO1G0dO#!dQ!LdO1G0dO#$XQ!LdO1G0dO#'RQ7^O'#CgO#(|Q7^O1G0tO#*wQ7^O'#IhOOQ!LS1G0z1G0zO#+[Q!LdO,5>_OOQ!LQ-E;q-E;qO#+{Q!LdO1G0dOOQ!LS1G0d1G0dO#-}Q!LdO1G0wO#.nQpO,5;jO#.sQpO,5;kO#.xQpO'#FRO#/^QWO'#FQOOQO'#I{'#I{OOQO'#Hq'#HqO#/cQpO1G1SOOQ!LS1G1S1G1SOOQO1G1]1G1]O#/qQ7^O'#IgO#/{QWO,5;tOK^QYO,5;tOOOO-E;p-E;pOOQ!LS1G1P1G1POOQ!LS,5;v,5;vO#0QQpO,5;vOOQ!LS,59`,59`O)rQYO1G1cOKXQ&jO'#HuO#0VQWO,5<[OOQ!LS,5}OOQ!LS'#Cg'#CgO#4hQ#tO,59fOOQ!LS,59f,59fO#5ZQ#tO,5;{O#5|Q#tO,5;}O#6WQWO,5z,5>zO#8gQ!LYO,5>zOOQQ1G.r1G.rO9uQWO1G.rO!+aQpO1G.rO!+iQ#tO1G.rO#8uQWO1G0YO#8zQWO'#CgO#9VQWO'#JWO#9_QWO,5=ZO#9dQWO'#JWO#9iQWO'#IQO#9wQWO,5?qO#:PQbO1G0|OOQ!LS1G1O1G1OO5_QWO1G2tO#:WQWO1G2tO#:]QWO1G2tO#:bQWO1G2tOOQQ1G2t1G2tO#:gQ#tO1G2XO6nQWO'#IuO6nQWO'#EXO6nQWO'#HzO#:xQ!LYO,5?nOOQQ1G2]1G2]O!.YQWO1G2cOHcQWO1G2`O#;TQWO1G2`OOQQ1G2a1G2aOHcQWO1G2aO#;YQWO1G2aO#;bQ&jO'#G_OOQQ1G2c1G2cO!%kQ&jO'#H|O!._Q`O1G2fOOQQ1G2f1G2fOOQQ,5=P,5=PO#;jQ#tO,5=RO5_QWO,5=RO#2pQWO,5=UO4{QWO,5=UO!+aQpO,5=UO!+iQ#tO,5=UO5dQ#tO,5=UO#;{QWO'#JUO#Y,5>YO6nQWO,5>YOOQO-E;l-E;lO#DWQ!LrO'#D|O!%kQ&jO'#DxOOQO'#Hm'#HmO#DrQ&jO,5:cOOQ!LS,5:c,5:cO#DyQ&jO'#DxO#EXQ&jO'#D|O#EmQ&jO'#D|O!%kQ&jO'#D|O#EwQWO1G/zO#E|Q`O1G/zOOQ!LS1G/z1G/zO)rQYO1G/zOHcQWO1G/zOOQ!LS1G0X1G0XO9uQWO1G0XO!+aQpO1G0XO!+iQ#tO1G0XO#FTQ!LdO1G4yO)rQYO1G4yO#FeQ!LYO1G4yO#FvQWO1G4xO6nQWO,5>[OOQO,5>[,5>[O#GOQWO,5>[OOQO-E;n-E;nO#FvQWO1G4xO#G^Q!LdO,59fO#I]Q!LdO,5;{O#K_Q!LdO,5;}O#MaQ!LdO,5<]OOQ!LS7+%t7+%tO$ iQ!LdO7+%tO$!YQWO'#HkO$!dQWO,5?ZOOQ!LS1G/m1G/mO$!lQYO'#HlO$!yQWO,5?[O$#RQbO,5?[OOQ!LS1G/r1G/rOOQ!LS7+%}7+%}O$#]Q7^O,5:XO)rQYO7+&`O$#gQ7^O,5:POOQO1G1U1G1UOOQO1G1V1G1VO$#tQMhO,5;mOK^QYO,5;lOOQO-E;o-E;oOOQ!LS7+&n7+&nOOQO7+&w7+&wOOOO1G1`1G1`O$$PQWO1G1`OOQ!LS1G1b1G1bO$$UQ!LdO7+&}OOQ!LS,5>a,5>aO$$uQWO,5>aOOQ!LS1G1v1G1vP$$zQWO'#HuPOQ!LS-E;s-E;sO$%kQ#tO1G2RO$&^Q#tO1G2TO$&hQ#tO1G2VOOQ!LS1G1o1G1oO$&oQWO'#HtO$&}QWO,5?jO$&}QWO,5?jO$'VQWO,5?jO$'bQWO,5?jOOQO1G1q1G1qO$'pQ#tO1G1pO$(QQWO'#HvO$(bQWO,5?kOHcQWO,5?kO$(jQ`O,5?kOOQ!LS1G1t1G1tO5VQ!LYO,5<_O5VQ!LYO,5<`O$(tQWO,5<`O#2kQWO,5<`O!+aQpO,5<_O$(yQWO,5d,5>dOOQO-E;v-E;vOKXQ&jO,59hO)rQYO,59hO$)uQWO1G1kOIoQWO1G1rO$)zQ!LdO7+'OOOQ!LS7+'O7+'OOFfQYO7+'OOOQ!LS7+%V7+%VO$*kQ`O'#JQO#EwQWO7+'sO$*uQWO7+'sO$*}Q`O7+'sOOQQ7+'s7+'sOHcQWO7+'sO)rQYO7+'sOHcQWO7+'sOOQO1G.v1G.vO$+XQ!LbO'#CgO$+iQ!LbO,5l,5>lOOQO-Ef,5>fOOQ!LQ-E;x-E;xOOQQ7+'}7+'}O$-YQ!LbO7+'zOHcQWO7+'zO$-dQ`O7+'{OOQQ7+'{7+'{OHcQWO7+'{O$-kQWO'#JTO$-vQWO,5h,5>hOOQO-E;z-E;zOOQQ7+(Q7+(QO$.mQ&jO'#GhOOQQ1G2m1G2mOHcQWO1G2mO)rQYO1G2mOHcQWO1G2mO$.tQWO1G2mO$/SQ#tO1G2mO5VQ!LYO1G2pO#2pQWO1G2pO4{QWO1G2pO!+aQpO1G2pO!+iQ#tO1G2pO$/eQWO'#IOO$/pQWO,5?pO$/xQ&jO,5?pOOQ!LQ1G2q1G2qOOQQ7+$T7+$TO$/}QWO7+$TO5VQ!LYO7+$TO$0SQWO7+$TO)rQYO1G5_O)rQYO1G5`O$0XQYO1G2xO$0`QWO1G2xO$0eQYO1G2xO$0lQ!LYO1G5_OOQQ7+(b7+(bO5VQ!LYO7+(lO]QYO7+(nOOQQ'#JZ'#JZOOQQ'#IR'#IRO$0vQYO,5=mOOQQ,5=m,5=mO)rQYO'#HSO$1TQWO'#HUOOQQ7+(w7+(wO$1YQYO7+(wO6nQWO7+(wOOQQ7+({7+({OOQQ7+)P7+)POOQQ7+)R7+)ROOQO1G4t1G4tO$5TQ7^O1G0_O$5_QWO1G0_OOQO1G/d1G/dO$5jQ7^O1G/dO9uQWO1G/dOK^QYO'#D^OOQO,5>U,5>UOOQO-E;h-E;hOOQO,5>Z,5>ZOOQO-E;m-E;mO!+aQpO1G/dOOQO1G3t1G3tO9uQWO,5:dOOQO,5:h,5:hO)rQYO,5:hO$5tQ!LYO,5:hO$6PQ!LYO,5:hO!+aQpO,5:dOOQO-E;k-E;kOOQ!LS1G/}1G/}O!%kQ&jO,5:dO$6_Q!LrO,5:hO$6yQ&jO,5:dO!%kQ&jO,5:hO$7XQ&jO,5:hO$7mQ!LYO,5:hOOQ!LS7+%f7+%fO#EwQWO7+%fO#E|Q`O7+%fOOQ!LS7+%s7+%sO9uQWO7+%sO!+aQpO7+%sO$8RQ!LdO7+*eO)rQYO7+*eOOQO1G3v1G3vO6nQWO1G3vO$8cQWO7+*dO$8kQ!LdO1G2RO$:mQ!LdO1G2TO$wQ#tO,5>VOOQO-E;i-E;iO$?RQbO,5>WO)rQYO,5>WOOQO-E;j-E;jO$?]QWO1G4vO$?eQ7^O1G0YO$AlQ7^O1G0dO$AsQ7^O1G0dO$CtQ7^O1G0dO$C{Q7^O1G0dO$EpQ7^O1G0dO$FTQ7^O1G0dO$HbQ7^O1G0dO$HiQ7^O1G0dO$JjQ7^O1G0dO$JqQ7^O1G0dO$LfQ7^O1G0dO$LyQ!LdO<_OOOO7+&z7+&zOOQ!LS1G3{1G3{OIoQWO7+'qO%#sQWO,5>`O5_QWO,5>`OOQO-E;r-E;rO%$RQWO1G5UO%$RQWO1G5UO%$ZQWO1G5UO%$fQ`O,5>bO%$pQWO,5>bOHcQWO,5>bOOQO-E;t-E;tO%$uQ`O1G5VO%%PQWO1G5VOOQO1G1y1G1yOOQO1G1z1G1zO5VQ!LYO1G1zO$(tQWO1G1zO5VQ!LYO1G1yO%%XQWO1G1{OHcQWO1G1{OOQO1G1|1G1|O5VQ!LYO1G2PO!+aQpO1G1yO#2kQWO1G1zO%%^QWO1G1{O%%fQWO1G1zOIoQWO7+*UOOQ!LS1G/S1G/SO%%qQWO1G/SOOQ!LS7+'V7+'VO%%vQ#tO7+'^O%&WQ!LdO<k,5>kO%(SQWO,5>kOOQO-E;}-E;}O%(XQWO1G5^O%(aQWO<jOOQO-E;|-E;|OOQO'#Gl'#GlO%+VQWO1G5[O5VQ!LYO<eOOQO-E;w-E;wO#EwQWOAN@yOOQQAN@yAN@yOHcQWOAN@yO%;fQ!LbO7+'iOOQQAN=dAN=dO5_QWO1G4VO%;sQWO7+*xO5VQ!LYOANAfO%;{QWOANAfOOQQANAfANAfO%gOOQO-E;y-E;yO%PQ&jO1G4UO%>UQWO7+*vOOQQAN=ZAN=ZO5VQ!LYOAN=ZOOQQ<^QWO<cQYO<jQWO<oQWO<tQ7^O<yAN>yO%?}Q!LdO<tAN>tO%,eQ!LdOAN>tOOQOAN>pAN>pO)rQYOAN>tO9uQWOAN>pO&!kQ!LYOAN>tO&!vQ7^O<YO|&lO!^'fa~Ot$pO{+oO!O$qO!|+qO!}+oO'P$[O|&dX!^&dX~O^!vi|!vi&{!viy!vi!^!vi'_!vi!O!vi$w!vi!W!vi~P!(TO#O!sa|!sa!^!sa!t!sa!O!sa^!sa&{!say!sa~P!!iO#O'XXP'XXY'XX^'XXi'XXr'XX!['XX!_'XX!e'XX#R'XX#S'XX#T'XX#U'XX#V'XX#W'XX#X'XX#Y'XX#['XX#^'XX#`'XX#a'XX&{'XX']'XX!^'XXy'XX!O'XX$w'XX'_'XX!W'XX~P!%wO|+zO'T'cX~P!!iO'T+|O~O|+}O!^'dX~P!(TO!^,QO~Oy,RO~OP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO']QOY#Qi^#Qii#Qi|#Qi![#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O#R#Qi~P!CgO#R!|O~P!CgOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O']QOY#Qi^#Qi|#Qi![#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~Oi#Qi~P!FROi#OO~P!FROP#ZOi#OOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO']QO^#Qi|#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'l#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~OY#Qi![#Qi#W#Qi#X#Qi#Y#Qi~P!HmOY#aO![#QO#W#QO#X#QO#Y#QO~P!HmOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO']QO^#Qi|#Qi#^#Qi#`#Qi#a#Qi&{#Qi'e#Qi'm#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O'l#Qi~P!KeO'l!zO~P!KeOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO#^#TO']QO'l!zO^#Qi|#Qi#`#Qi#a#Qi&{#Qi'e#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~O'm#Qi~P!NPO'm!{O~P!NPOP#ZOY#aOi#OOq!xOr!xOt!yO![#QO!]!vO!_!wO!e#ZO#R!|O#S!}O#T!}O#U!}O#V#PO#W#QO#X#QO#Y#QO#[#RO#^#TO#`#VO']QO'l!zO'm!{O~O^#Qi|#Qi#a#Qi&{#Qi'e#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~P#!kOPZXYZXiZXqZXrZXtZX![ZX!]ZX!_ZX!eZX!tZX#OcX#RZX#SZX#TZX#UZX#VZX#WZX#XZX#YZX#[ZX#^ZX#`ZX#aZX#fZX']ZX'eZX'lZX'mZX|ZX}ZX~O#dZX~P#%OOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO#`8oO#a8pO']QO'e#XO'l!zO'm!{O~O#d,TO~P#'YOP'[XY'[Xi'[Xq'[Xr'[Xt'[X!['[X!]'[X!_'[X!e'[X#R'[X#S'[X#T'[X#U'[X#V'[X#W'[X#Y'[X#['[X#^'[X#`'[X#a'[X']'[X'e'[X'l'[X'm'[X|'[X~O!t8tO#f8tO#X'[X#d'[X}'[X~P#)TO^&ga|&ga&{&ga!^&ga'_&gay&ga!O&ga$w&ga!W&ga~P!(TOP#QiY#Qi^#Qii#Qir#Qi|#Qi![#Qi!]#Qi!_#Qi!e#Qi#R#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi&{#Qi']#Qiy#Qi!^#Qi'_#Qi!O#Qi$w#Qi!W#Qi~P!!iO^#ei|#ei&{#eiy#ei!^#ei'_#ei!O#ei$w#ei!W#ei~P!(TO#q,VO~O#q,WO~O!W'dO!t,XO!O#uX#n#uX#q#uX#x#uX~O{,YO~O!O'gO#n,[O#q'fO#x,]O~O|8qO}'ZX~P#'YO},^O~O#x,`O~O],cOj,cOy,dO~O|cX!WcX!^cX!^$[X'ecX~P! kO!^,jO~P!!iO|,kO!W!tO'e&gO!^'rX~O!^,pO~Oy$[X|$[X!W$cX~P! kO|,rOy'sX~P!!iO!W,tO~Oy,vO~O{(SO'P$[O!^'rP~Oi,zO!W!tO!_$TO'U$_O'e&gO~O!W)SO~O}-QO~P!${O!S-RO!T-RO'Q$^O'Y([O~Ot-TO'Y([O~O!q-UO~O'P$vO|&lX'T&lX~O|(lO'T'Va~Oq-ZOr-ZOt-[O'ena'lna'mna|na!tna~O'Tna#dna~P#3|Oq'vOt'wO'e$Ta'l$Ta'm$Ta|$Ta!t$Ta~O'T$Ta#d$Ta~P#4rOq'vOt'wO'e$Va'l$Va'm$Va|$Va!t$Va~O'T$Va#d$Va~P#5eO]-]O~O#O-^O~O'T$ea|$ea#d$ea!t$ea~P!!iO#O-aO~OR-jO!O&[O!j-iO$w-hO~O'T-kO~O]#nOi#oOj#nOk#nOm#{Oo8uOt#tO!O#uO!Y9wO!_#rO!}8{O#k$PO$U8wO$W8yO$Z$QO~Og-mO'P-lO~P#7[O!W)SO!O'Sa^'Sa&{'Sa~O#O-sO~OYZX|cX}cX~O|-tO}'zX~O}-vO~OY-wO~O!O$gO'P$[O[&tX|&tX~O|)`O['ya~O!^-zO~P!(TO]-|O~OY-}O~O[.OO~OR-jO!O&[O!j-iO$w-hO'U$_O~O|)lO^'va&{'va~O!t.UO~OR.XO!O#uO~O'Y&{O}'wP~OR.cO!O._O!j.bO$w.aO'U$_O~OY.mO|.kO}'xX~O}.nO~O[.pO^$WO&{$WO~O].qO~O#X.sO%i.tO~P0kO!t#bO#X.sO%i.tO~O^.uO~P)rO^.wO~O%r.{OP%piQ%piW%pi]%pi^%pia%pib%pig%pii%pij%pik%pim%pio%pit%piv%piw%pix%pi!O%pi!Y%pi!_%pi!b%pi!c%pi!d%pi!e%pi!f%pi!i%pi#Z%pi#k%pi#o%pi$v%pi$x%pi$z%pi${%pi%O%pi%Q%pi%T%pi%U%pi%W%pi%e%pi%k%pi%m%pi%o%pi%q%pi%t%pi%z%pi&O%pi&Q%pi&S%pi&U%pi&W%pi&v%pi'P%pi']%pi'q%pi}%pi_%pi%w%pi~O_/RO}/PO%w/QO~P]O!OSO!_/UO~O|#_O'_$Sa~Oy&]i|&]i~P!(TO|!ZOy'`i~O|&XOy'ii~Oy/YO~O|!Qa}!Qa~P#'YO]%zOj%zO{/`O'Y([O|&^X}&^X~P?rO|*|O}'aa~O]&SOj&SO{)kO'Y&{O|&cX}&cX~O|+PO}'ka~Oy'ji|'ji~P!(TO^$WO!W!tO!_$TO!e/kO!t/iO&{$WO'U$_O'e&gO~O}/nO~P!=UO!S/oO!T/oO'Q$^O'Y([O~O!R/qO!S/oO!T/oO!q/rO'Q$^O'Y([O~O!n/sO!o/sO~P#EXO!O&[O~O!O&[O~P!!iO|'gi!^'gi^'gi&{'gi~P!(TO!t/|O|'gi!^'gi^'gi&{'gi~O|&lO!^'fi~Ot$pO!O$qO!}0OO'P$[O~O#OnaPnaYna^naina![na!]na!_na!ena#Rna#Sna#Tna#Una#Vna#Wna#Xna#Yna#[na#^na#`na#ana&{na']na!^nayna!Ona$wna'_na!Wna~P#3|O#O$TaP$TaY$Ta^$Tai$Tar$Ta![$Ta!]$Ta!_$Ta!e$Ta#R$Ta#S$Ta#T$Ta#U$Ta#V$Ta#W$Ta#X$Ta#Y$Ta#[$Ta#^$Ta#`$Ta#a$Ta&{$Ta']$Ta!^$Tay$Ta!O$Ta$w$Ta'_$Ta!W$Ta~P#4rO#O$VaP$VaY$Va^$Vai$Var$Va![$Va!]$Va!_$Va!e$Va#R$Va#S$Va#T$Va#U$Va#V$Va#W$Va#X$Va#Y$Va#[$Va#^$Va#`$Va#a$Va&{$Va']$Va!^$Vay$Va!O$Va$w$Va'_$Va!W$Va~P#5eO#O$eaP$eaY$ea^$eai$ear$ea|$ea![$ea!]$ea!_$ea!e$ea#R$ea#S$ea#T$ea#U$ea#V$ea#W$ea#X$ea#Y$ea#[$ea#^$ea#`$ea#a$ea&{$ea']$ea!^$eay$ea!O$ea!t$ea$w$ea'_$ea!W$ea~P!!iO^!vq|!vq&{!vqy!vq!^!vq'_!vq!O!vq$w!vq!W!vq~P!(TO|&_X'T&_X~PIoO|+zO'T'ca~O{0WO|&`X!^&`X~P)rO|+}O!^'da~O|+}O!^'da~P!(TO#d!aa}!aa~PBtO#d!Xa|!Xa}!Xa~P#'YO!O0kO#o]O#v0lO~O}0pO~O^$Pq|$Pq&{$Pqy$Pq!^$Pq'_$Pq!O$Pq$w$Pq!W$Pq~P!(TOy0qO~O],cOj,cO~Oq'vOt'wO'm'{O'e$oi'l$oi|$oi!t$oi~O'T$oi#d$oi~P$%SOq'vOt'wO'e$qi'l$qi'm$qi|$qi!t$qi~O'T$qi#d$qi~P$%uO#d0rO~P!!iO{0tO'P$[O|&hX!^&hX~O|,kO!^'ra~O|,kO!W!tO!^'ra~O|,kO!W!tO'e&gO!^'ra~O'T$^i|$^i#d$^i!t$^i~P!!iO{0{O'P(VOy&jX|&jX~P!#WO|,rOy'sa~O|,rOy'sa~P!!iO!W!tO~O!W!tO#X1VO~Oi1ZO!W!tO'e&gO~O|'Wi'T'Wi~P!!iO!t1^O|'Wi'T'Wi~P!!iO!^1aO~O^$Qq|$Qq&{$Qqy$Qq!^$Qq'_$Qq!O$Qq$w$Qq!W$Qq~P!(TO|1eO!O'tX~P!!iO!O&[O$w1hO~O!O&[O$w1hO~P!!iO!O$[X$lZX^$[X&{$[X~P! kO$l1lOqfXtfX!OfX'efX'lfX'mfX^fX&{fX~O$l1lO~O'P)[O|&sX}&sX~O|-tO}'za~O[1uO~O]1xO~OR1zO!O&[O!j1yO$w1hO~O^$WO&{$WO~P!!iO!O#uO~P!!iO|2PO!t2RO}'wX~O}2SO~Ot(`O!R2]O!S2UO!T2UO!m2[O!n2ZO!o2ZO!q2YO'Q$^O'Y([O~O}2XO~P$-{OR2dO!O._O!j2cO$w2bO~OR2dO!O._O!j2cO$w2bO'U$_O~O'P(nO|&rX}&rX~O|.kO}'xa~O'Y2mO~O]2oO~O[2qO~O!^2tO~P)rO^2vO~O^2vO~P)rO#X2xO%i2yO~PE^O_/RO}2}O%w/QO~P]O!W3PO~O%|3QOP%yqQ%yqW%yq]%yq^%yqa%yqb%yqg%yqi%yqj%yqk%yqm%yqo%yqt%yqv%yqw%yqx%yq!O%yq!Y%yq!_%yq!b%yq!c%yq!d%yq!e%yq!f%yq!i%yq#Z%yq#k%yq#o%yq$v%yq$x%yq$z%yq${%yq%O%yq%Q%yq%T%yq%U%yq%W%yq%e%yq%k%yq%m%yq%o%yq%q%yq%t%yq%z%yq&O%yq&Q%yq&S%yq&U%yq&W%yq&v%yq'P%yq']%yq'q%yq}%yq%r%yq_%yq%w%yq~O|!{i}!{i~P#'YO!t3SO|!{i}!{i~O|!Qi}!Qi~P#'YO^$WO!t3ZO&{$WO~O^$WO!W!tO!t3ZO&{$WO~O^$WO!W!tO!_$TO!e3_O!t3ZO&{$WO'U$_O'e&gO~O!S3`O!T3`O'Q$^O'Y([O~O!R3cO!S3`O!T3`O!q3dO'Q$^O'Y([O~O^$WO!W!tO!e3_O!t3ZO&{$WO'e&gO~O|'gq!^'gq^'gq&{'gq~P!(TO|&lO!^'fq~O#O$oiP$oiY$oi^$oii$oir$oi![$oi!]$oi!_$oi!e$oi#R$oi#S$oi#T$oi#U$oi#V$oi#W$oi#X$oi#Y$oi#[$oi#^$oi#`$oi#a$oi&{$oi']$oi!^$oiy$oi!O$oi$w$oi'_$oi!W$oi~P$%SO#O$qiP$qiY$qi^$qii$qir$qi![$qi!]$qi!_$qi!e$qi#R$qi#S$qi#T$qi#U$qi#V$qi#W$qi#X$qi#Y$qi#[$qi#^$qi#`$qi#a$qi&{$qi']$qi!^$qiy$qi!O$qi$w$qi'_$qi!W$qi~P$%uO#O$^iP$^iY$^i^$^ii$^ir$^i|$^i![$^i!]$^i!_$^i!e$^i#R$^i#S$^i#T$^i#U$^i#V$^i#W$^i#X$^i#Y$^i#[$^i#^$^i#`$^i#a$^i&{$^i']$^i!^$^iy$^i!O$^i!t$^i$w$^i'_$^i!W$^i~P!!iO|&_a'T&_a~P!!iO|&`a!^&`a~P!(TO|+}O!^'di~O#d!vi|!vi}!vi~P#'YOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO']QOY#Qii#Qi![#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~O#R#Qi~P$?rO#R8fO~P$?rOP#ZOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO']QOY#Qi![#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~Oi#Qi~P$AzOi8hO~P$AzOP#ZOi8hOq!xOr!xOt!yO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO']QO#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'l#Qi'm#Qi|#Qi}#Qi~OY#Qi![#Qi#W#Qi#X#Qi#Y#Qi~P$DSOY8sO![8jO#W8jO#X8jO#Y8jO~P$DSOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO']QO#^#Qi#`#Qi#a#Qi#d#Qi'e#Qi'm#Qi|#Qi}#Qi~O'l#Qi~P$FhO'l!zO~P$FhOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO']QO'l!zO#`#Qi#a#Qi#d#Qi'e#Qi|#Qi}#Qi~O'm#Qi~P$HpO'm!{O~P$HpOP#ZOY8sOi8hOq!xOr!xOt!yO![8jO!]!vO!_!wO!e#ZO#R8fO#S8gO#T8gO#U8gO#V8iO#W8jO#X8jO#Y8jO#[8kO#^8mO#`8oO']QO'l!zO'm!{O~O#a#Qi#d#Qi'e#Qi|#Qi}#Qi~P$JxO^#by|#by&{#byy#by!^#by'_#by!O#by$w#by!W#by~P!(TOP#QiY#Qii#Qir#Qi![#Qi!]#Qi!_#Qi!e#Qi#R#Qi#S#Qi#T#Qi#U#Qi#V#Qi#W#Qi#X#Qi#Y#Qi#[#Qi#^#Qi#`#Qi#a#Qi#d#Qi']#Qi|#Qi}#Qi~P!!iO!]!vOP'XXY'XXi'XXq'XXr'XXt'XX!['XX!_'XX!e'XX#R'XX#S'XX#T'XX#U'XX#V'XX#W'XX#X'XX#Y'XX#['XX#^'XX#`'XX#a'XX#d'XX']'XX'e'XX'l'XX'm'XX|'XX}'XX~O#d#ei|#ei}#ei~P#'YO}3tO~O|&ga}&ga~P#'YO!W!tO'e&gO|&ha!^&ha~O|,kO!^'ri~O|,kO!W!tO!^'ri~Oy&ja|&ja~P!!iO!W3{O~O|,rOy'si~P!!iO|,rOy'si~Oy4RO~O!W!tO#X4XO~Oi4YO!W!tO'e&gO~Oy4[O~O'T$`q|$`q#d$`q!t$`q~P!!iO^$Qy|$Qy&{$Qyy$Qy!^$Qy'_$Qy!O$Qy$w$Qy!W$Qy~P!(TO|1eO!O'ta~O!O&[O$w4aO~O!O&[O$w4aO~P!!iO^!vy|!vy&{!vyy!vy!^!vy'_!vy!O!vy$w!vy!W!vy~P!(TOY4dO~O|-tO}'zi~O]4fO~O[4gO~O'Y&{O|&oX}&oX~O|2PO}'wa~O}4tO~P$-{O!R4wO!S4vO!T4vO!q/rO'Q$^O'Y([O~O!n4xO!o4xO~P%)VO!S4vO!T4vO'Q$^O'Y([O~O!O._O~O!O._O$w4zO~O!O._O$w4zO~P!!iOR5PO!O._O!j5OO$w4zO~OY5UO|&ra}&ra~O|.kO}'xi~O]5XO~O!^5YO~O!^5ZO~O!^5[O~O!^5[O~P)rO^5^O~O!W5aO~O!^5cO~O|'ji}'ji~P#'YO^$WO&{$WO~P!(TO^$WO!t5hO&{$WO~O^$WO!W!tO!t5hO&{$WO~O^$WO!W!tO!e5mO!t5hO&{$WO'e&gO~O!_$TO'U$_O~P%-YO!S5nO!T5nO'Q$^O'Y([O~O|'gy!^'gy^'gy&{'gy~P!(TO#O$`qP$`qY$`q^$`qi$`qr$`q|$`q![$`q!]$`q!_$`q!e$`q#R$`q#S$`q#T$`q#U$`q#V$`q#W$`q#X$`q#Y$`q#[$`q#^$`q#`$`q#a$`q&{$`q']$`q!^$`qy$`q!O$`q!t$`q$w$`q'_$`q!W$`q~P!!iO|&`i!^&`i~P!(TO#d!vq|!vq}!vq~P#'YOq-ZOr-ZOt-[OPnaYnaina![na!]na!_na!ena#Rna#Sna#Tna#Una#Vna#Wna#Xna#Yna#[na#^na#`na#ana#dna']na'ena'lna'mna|na}na~Oq'vOt'wOP$TaY$Tai$Tar$Ta![$Ta!]$Ta!_$Ta!e$Ta#R$Ta#S$Ta#T$Ta#U$Ta#V$Ta#W$Ta#X$Ta#Y$Ta#[$Ta#^$Ta#`$Ta#a$Ta#d$Ta']$Ta'e$Ta'l$Ta'm$Ta|$Ta}$Ta~Oq'vOt'wOP$VaY$Vai$Var$Va![$Va!]$Va!_$Va!e$Va#R$Va#S$Va#T$Va#U$Va#V$Va#W$Va#X$Va#Y$Va#[$Va#^$Va#`$Va#a$Va#d$Va']$Va'e$Va'l$Va'm$Va|$Va}$Va~OP$eaY$eai$ear$ea![$ea!]$ea!_$ea!e$ea#R$ea#S$ea#T$ea#U$ea#V$ea#W$ea#X$ea#Y$ea#[$ea#^$ea#`$ea#a$ea#d$ea']$ea|$ea}$ea~P!!iO#d$Pq|$Pq}$Pq~P#'YO#d$Qq|$Qq}$Qq~P#'YO}5xO~O'T$sy|$sy#d$sy!t$sy~P!!iO!W!tO|&hi!^&hi~O!W!tO'e&gO|&hi!^&hi~O|,kO!^'rq~Oy&ji|&ji~P!!iO|,rOy'sq~Oy6PO~P!!iOy6PO~O|'Wy'T'Wy~P!!iO|&ma!O&ma~P!!iO!O$kq^$kq&{$kq~P!!iO|-tO}'zq~O]6YO~O!O&[O$w6ZO~O!O&[O$w6ZO~P!!iO!t6[O|&oa}&oa~O|2PO}'wi~P#'YO!S6bO!T6bO'Q$^O'Y([O~O!R6dO!S6bO!T6bO!q3dO'Q$^O'Y([O~O!O._O$w6gO~O!O._O$w6gO~P!!iO'Y6mO~O|.kO}'xq~O!^6pO~O!^6pO~P)rO!^6rO~O!^6sO~O|!{y}!{y~P#'YO^$WO!t6xO&{$WO~O^$WO!W!tO!t6xO&{$WO~O^$WO!W!tO!e6|O!t6xO&{$WO'e&gO~O#O$syP$syY$sy^$syi$syr$sy|$sy![$sy!]$sy!_$sy!e$sy#R$sy#S$sy#T$sy#U$sy#V$sy#W$sy#X$sy#Y$sy#[$sy#^$sy#`$sy#a$sy&{$sy']$sy!^$syy$sy!O$sy!t$sy$w$sy'_$sy!W$sy~P!!iO#d#by|#by}#by~P#'YOP$^iY$^ii$^ir$^i![$^i!]$^i!_$^i!e$^i#R$^i#S$^i#T$^i#U$^i#V$^i#W$^i#X$^i#Y$^i#[$^i#^$^i#`$^i#a$^i#d$^i']$^i|$^i}$^i~P!!iOq'vOt'wO'm'{OP$oiY$oii$oir$oi![$oi!]$oi!_$oi!e$oi#R$oi#S$oi#T$oi#U$oi#V$oi#W$oi#X$oi#Y$oi#[$oi#^$oi#`$oi#a$oi#d$oi']$oi'e$oi'l$oi|$oi}$oi~Oq'vOt'wOP$qiY$qii$qir$qi![$qi!]$qi!_$qi!e$qi#R$qi#S$qi#T$qi#U$qi#V$qi#W$qi#X$qi#Y$qi#[$qi#^$qi#`$qi#a$qi#d$qi']$qi'e$qi'l$qi'm$qi|$qi}$qi~O#d$Qy|$Qy}$Qy~P#'YO#d!vy|!vy}!vy~P#'YO!W!tO|&hq!^&hq~O|,kO!^'ry~Oy&jq|&jq~P!!iOy7SO~P!!iO|2PO}'wq~O!S7_O!T7_O'Q$^O'Y([O~O!O._O$w7bO~O!O._O$w7bO~P!!iO!^7eO~O%|7fOP%y!ZQ%y!ZW%y!Z]%y!Z^%y!Za%y!Zb%y!Zg%y!Zi%y!Zj%y!Zk%y!Zm%y!Zo%y!Zt%y!Zv%y!Zw%y!Zx%y!Z!O%y!Z!Y%y!Z!_%y!Z!b%y!Z!c%y!Z!d%y!Z!e%y!Z!f%y!Z!i%y!Z#Z%y!Z#k%y!Z#o%y!Z$v%y!Z$x%y!Z$z%y!Z${%y!Z%O%y!Z%Q%y!Z%T%y!Z%U%y!Z%W%y!Z%e%y!Z%k%y!Z%m%y!Z%o%y!Z%q%y!Z%t%y!Z%z%y!Z&O%y!Z&Q%y!Z&S%y!Z&U%y!Z&W%y!Z&v%y!Z'P%y!Z']%y!Z'q%y!Z}%y!Z%r%y!Z_%y!Z%w%y!Z~O^$WO!t7jO&{$WO~O^$WO!W!tO!t7jO&{$WO~OP$`qY$`qi$`qr$`q![$`q!]$`q!_$`q!e$`q#R$`q#S$`q#T$`q#U$`q#V$`q#W$`q#X$`q#Y$`q#[$`q#^$`q#`$`q#a$`q#d$`q']$`q|$`q}$`q~P!!iO|&oq}&oq~P#'YO^$WO!t8OO&{$WO~OP$syY$syi$syr$sy![$sy!]$sy!_$sy!e$sy#R$sy#S$sy#T$sy#U$sy#V$sy#W$sy#X$sy#Y$sy#[$sy#^$sy#`$sy#a$sy#d$sy']$sy|$sy}$sy~P!!iO'_'ZX~P.ZO'_ZXyZX!^ZX%iZX!OZX$wZX!WZX~P$tO!WcX!^ZX!^cX'ecX~P:xOP8`OQ8`O]bOa9uOb!gOgbOi8`OjbOkbOm8`Oo8`OtROvbOwbOxbO!OSO!Y8bO!_UO!b8`O!c8`O!d8`O!e8`O!f8`O!i!fO#k!iO#o]O'P'ZO']QO'q9sO~O|8qO}$Sa~O]#nOg#zOi#oOj#nOk#nOm#{Oo8vOt#tO!O#uO!Y9xO!_#rO!}8|O#k$PO$U8xO$W8zO$Z$QO'P&sO~O#Z'bO~P&'mO}ZX}cX~P:xO#O8eO~O!W!tO#O8eO~O!t8tO~O!t8}O|'jX}'jX~O!t8tO|'hX}'hX~O#O9OO~O'T9QO~P!!iO#O9VO~O#O9WO~O!W!tO#O9XO~O!W!tO#O9OO~O#d9YO~P#'YO#O9ZO~O#O9[O~O#O9]O~O#O9^O~O#d9_O~P!!iO#d9`O~P!!iO#o~!]!m!o!|!}'q$U$W$Z$l$v$w$x%O%Q%T%U%W%Y~TS#o'q#q'Y'P&}#Sx~",goto:"#UPPP>[@_P;fPBrPPPPDj;fPPPPPFc;fPPIbJ_PPPJcPJkKlP;f;fNs!#l!([!([!+iPPP!+p;fPPPPPPPPPP!.dP!/uPP;f!1SP;fP;f;f;f;fP;f!3fPP!6]P!9O!9W!9[!9[P!6YP!9`!9`P!}4|P4|P4|4|P!@Q4|4|!At4|4|4|!Cu4|4|!Dc!F[!F[!F`!F[!FhP!F[P4|!Gd4|!Hm4|4|-]PPP!IyPP!Jc!JcP!JcP!Jx!JcPP!KOP!JuP!Ju!KbJg!Ju!LP!LV!LY(P!L](PP!Ld!Ld!LdP(PP(PP(PP(PPP(PP!Lj!LmP!Lm(PPPP(PP(PP(PP(PP(PP(P(P!Lq!L{!MR!Ma!Mg!Mm!Mw!M}!NX!N_!Nm!Ns!Ny# X# n##P##_##e##k##q##w#$R#$X#$_#$i#$s#$yPPPPPPPP#%PPP#%s#)qPP#+U#+]#+eP#/n#2RP#7{P#8P#8S#8V#8b#8eP#8h#8l#9Z#:O#:S#:fPP#:j#:p#:tP#:w#:{#;O#;n#Z![!^$t!_#o$t#p~$ty=jT#{WO!O$t!O!P=y!P!^$t!_#o$t#p~$ty>QR{q#{WO!^$t!_#o$t#p~$ty>bZ#{WjqO!Q$t!Q![>Z![!^$t!_!g$t!g!h?T!h#R$t#R#S>Z#S#X$t#X#Y?T#Y#o$t#p~$ty?YZ#{WO{$t{|?{|}$t}!O?{!O!Q$t!Q![@g![!^$t!_#R$t#R#S@g#S#o$t#p~$ty@QV#{WO!Q$t!Q![@g![!^$t!_#R$t#R#S@g#S#o$t#p~$ty@nV#{WjqO!Q$t!Q![@g![!^$t!_#R$t#R#S@g#S#o$t#p~$t,TA[`#{W#S#vOYB^YZ$tZzB^z{HT{!PB^!P!Q!*|!Q!^B^!^!_Da!_!`!+u!`!a!,t!a!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^XBe[#{WxPOYB^YZ$tZ!PB^!P!QCZ!Q!^B^!^!_Da!_!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^XCb_#{WxPO!^$t!_#Z$t#Z#[CZ#[#]$t#]#^CZ#^#a$t#a#bCZ#b#g$t#g#hCZ#h#i$t#i#jCZ#j#m$t#m#nCZ#n#o$t#p~$tPDfVxPOYDaZ!PDa!P!QD{!Q!}Da!}#OEd#O#PFP#P~DaPEQUxP#Z#[D{#]#^D{#a#bD{#g#hD{#i#jD{#m#nD{PEgTOYEdZ#OEd#O#PEv#P#QDa#Q~EdPEyQOYEdZ~EdPFSQOYDaZ~DaXF_Y#{WOYFYYZ$tZ!^FY!^!_Ed!_#OFY#O#PF}#P#QB^#Q#oFY#o#pEd#p~FYXGSV#{WOYFYYZ$tZ!^FY!^!_Ed!_#oFY#o#pEd#p~FYXGnV#{WOYB^YZ$tZ!^B^!^!_Da!_#oB^#o#pDa#p~B^,TH[^#{WxPOYHTYZIWZzHTz{Ki{!PHT!P!Q!)j!Q!^HT!^!_Mt!_!}HT!}#O!%e#O#P!(x#P#oHT#o#pMt#p~HT,TI]V#{WOzIWz{Ir{!^IW!^!_Jt!_#oIW#o#pJt#p~IW,TIwX#{WOzIWz{Ir{!PIW!P!QJd!Q!^IW!^!_Jt!_#oIW#o#pJt#p~IW,TJkR#{WT+{O!^$t!_#o$t#p~$t+{JwROzJtz{KQ{~Jt+{KTTOzJtz{KQ{!PJt!P!QKd!Q~Jt+{KiOT+{,TKp^#{WxPOYHTYZIWZzHTz{Ki{!PHT!P!QLl!Q!^HT!^!_Mt!_!}HT!}#O!%e#O#P!(x#P#oHT#o#pMt#p~HT,TLu_#{WT+{xPO!^$t!_#Z$t#Z#[CZ#[#]$t#]#^CZ#^#a$t#a#bCZ#b#g$t#g#hCZ#h#i$t#i#jCZ#j#m$t#m#nCZ#n#o$t#p~$t+{MyYxPOYMtYZJtZzMtz{Ni{!PMt!P!Q!$a!Q!}Mt!}#O! w#O#P!#}#P~Mt+{NnYxPOYMtYZJtZzMtz{Ni{!PMt!P!Q! ^!Q!}Mt!}#O! w#O#P!#}#P~Mt+{! eUT+{xP#Z#[D{#]#^D{#a#bD{#g#hD{#i#jD{#m#nD{+{! zWOY! wYZJtZz! wz{!!d{#O! w#O#P!#k#P#QMt#Q~! w+{!!gYOY! wYZJtZz! wz{!!d{!P! w!P!Q!#V!Q#O! w#O#P!#k#P#QMt#Q~! w+{!#[TT+{OYEdZ#OEd#O#PEv#P#QDa#Q~Ed+{!#nTOY! wYZJtZz! wz{!!d{~! w+{!$QTOYMtYZJtZzMtz{Ni{~Mt+{!$f_xPOzJtz{KQ{#ZJt#Z#[!$a#[#]Jt#]#^!$a#^#aJt#a#b!$a#b#gJt#g#h!$a#h#iJt#i#j!$a#j#mJt#m#n!$a#n~Jt,T!%j[#{WOY!%eYZIWZz!%ez{!&`{!^!%e!^!_! w!_#O!%e#O#P!(W#P#QHT#Q#o!%e#o#p! w#p~!%e,T!&e^#{WOY!%eYZIWZz!%ez{!&`{!P!%e!P!Q!'a!Q!^!%e!^!_! w!_#O!%e#O#P!(W#P#QHT#Q#o!%e#o#p! w#p~!%e,T!'hY#{WT+{OYFYYZ$tZ!^FY!^!_Ed!_#OFY#O#PF}#P#QB^#Q#oFY#o#pEd#p~FY,T!(]X#{WOY!%eYZIWZz!%ez{!&`{!^!%e!^!_! w!_#o!%e#o#p! w#p~!%e,T!(}X#{WOYHTYZIWZzHTz{Ki{!^HT!^!_Mt!_#oHT#o#pMt#p~HT,T!)qc#{WxPOzIWz{Ir{!^IW!^!_Jt!_#ZIW#Z#[!)j#[#]IW#]#^!)j#^#aIW#a#b!)j#b#gIW#g#h!)j#h#iIW#i#j!)j#j#mIW#m#n!)j#n#oIW#o#pJt#p~IW,T!+TV#{WS+{OY!*|YZ$tZ!^!*|!^!_!+j!_#o!*|#o#p!+j#p~!*|+{!+oQS+{OY!+jZ~!+j$P!,O[#{W#f#vxPOYB^YZ$tZ!PB^!P!QCZ!Q!^B^!^!_Da!_!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^]!,}[#nS#{WxPOYB^YZ$tZ!PB^!P!QCZ!Q!^B^!^!_Da!_!}B^!}#OFY#O#PGi#P#oB^#o#pDa#p~B^y!-zd#{WjqO!O$t!O!P>Z!P!Q$t!Q![!/Y![!^$t!_!g$t!g!h?T!h#R$t#R#S!/Y#S#U$t#U#V!0p#V#X$t#X#Y?T#Y#b$t#b#c!0`#c#d!2O#d#l$t#l#m!3W#m#o$t#p~$ty!/a_#{WjqO!O$t!O!P>Z!P!Q$t!Q![!/Y![!^$t!_!g$t!g!h?T!h#R$t#R#S!/Y#S#X$t#X#Y?T#Y#b$t#b#c!0`#c#o$t#p~$ty!0gR#{WjqO!^$t!_#o$t#p~$ty!0uW#{WO!Q$t!Q!R!1_!R!S!1_!S!^$t!_#R$t#R#S!1_#S#o$t#p~$ty!1fW#{WjqO!Q$t!Q!R!1_!R!S!1_!S!^$t!_#R$t#R#S!1_#S#o$t#p~$ty!2TV#{WO!Q$t!Q!Y!2j!Y!^$t!_#R$t#R#S!2j#S#o$t#p~$ty!2qV#{WjqO!Q$t!Q!Y!2j!Y!^$t!_#R$t#R#S!2j#S#o$t#p~$ty!3]Z#{WO!Q$t!Q![!4O![!^$t!_!c$t!c!i!4O!i#R$t#R#S!4O#S#T$t#T#Z!4O#Z#o$t#p~$ty!4VZ#{WjqO!Q$t!Q![!4O![!^$t!_!c$t!c!i!4O!i#R$t#R#S!4O#S#T$t#T#Z!4O#Z#o$t#p~$t%w!5RR!WV#{W#d%hO!^$t!_#o$t#p~$t!P!5cR^w#{WO!^$t!_#o$t#p~$t+c!5wR'Ud![%Y#o&s'qP!P!Q!6Q!^!_!6V!_!`!6dW!6VO#}W#v!6[P#V#v!_!`!6_#v!6dO#f#v#v!6iO#W#v%w!6pT!t%o#{WO!^$t!_!`'V!`!a!7P!a#o$t#p~$t$P!7WR#O#w#{WO!^$t!_#o$t#p~$t%w!7lT'T!s#W#v#xS#{WO!^$t!_!`!7{!`!a!8]!a#o$t#p~$t$O!8SR#W#v#{WO!^$t!_#o$t#p~$t$O!8dT#V#v#{WO!^$t!_!`2l!`!a!8s!a#o$t#p~$t$O!8zS#V#v#{WO!^$t!_!`2l!`#o$t#p~$t%w!9_V'e%o#{WO!O$t!O!P!9t!P!^$t!_!a$t!a!b!:U!b#o$t#p~$t$`!9{Rr$W#{WO!^$t!_#o$t#p~$t$O!:]S#{W#a#vO!^$t!_!`2l!`#o$t#p~$t&e!:pRt&]#{WO!^$t!_#o$t#p~$tZ!;QRyR#{WO!^$t!_#o$t#p~$t$O!;bS#^#v#{WO!^$t!_!`2l!`#o$t#p~$t$P!;uR#{W']#wO!^$t!_#o$t#p~$t~!tsExtends(e,t)<<1|1},{term:277,get:e=>spec_identifier[e]||-1},{term:286,get:e=>spec_word[e]||-1},{term:58,get:e=>spec_LessThan[e]||-1}],tokenPrec:11096});function toSet(e){let t=Object.keys(e).join("");e=/\w/.test(t);return e&&(t=t.replace(/\w/g,"")),`[${e?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function prefixMatch(e){let t=Object.create(null),i=Object.create(null);for(var{label:n}of e){t[n[0]]=!0;for(let e=1;e"string"==typeof e?{label:e}:e),[n,r]=i.every(e=>/^\w+$/.test(e.label))?[/\w*$/,/\w+$/]:prefixMatch(i);return e=>{var t=e.matchBefore(r);return t||e.explicit?{from:t?t.from:e.pos,options:i,span:n}:null}}function ifNotIn(i,e){return t=>{for(let e=syntaxTree(t.state).resolve(t.pos,-1);e;e=e.parent)if(-1 ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",maxHeight:"10em",listStyle:"none",margin:0,padding:0,"& > li":{cursor:"pointer",padding:"1px 1em 1px 3px",lineHeight:1.2},"& > li[aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"}}},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:MaxInfoWidth+"px"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class FieldPos{constructor(e,t,i,n){this.field=e,this.line=t,this.from=i,this.to=n}}class FieldRange{constructor(e,t,i){this.field=e,this.from=t,this.to=i}map(e){return new FieldRange(this.field,e.mapPos(this.from,-1),e.mapPos(this.to,1))}}class Snippet{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(n,e){let t=[],r=[e];var s,i=n.doc.lineAt(e),a=/^\s*/.exec(i.text)[0];for(s of this.lines){if(t.length){let t=a,i=/^\t*/.exec(s)[0].length;for(let e=0;enew FieldRange(e.field,r[e.line]+e.from,r[e.line]+e.to));return{text:t,ranges:i}}static parse(e){let r=[],s=[],a=[],o;for(var l of e.split(/\r\n?|\n/)){for(;o=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(l);){let t=o[1]?+o[1]:null,i=o[2]||o[3],n=-1;for(let e=0;e=n&&c.field++}a.push(new FieldPos(n,s.length,o.index,o.index+i.length)),l=l.slice(0,o.index)+i+l.slice(o.index+o[0].length)}s.push(l)}return new Snippet(s,a)}}let fieldMarker=Decoration.widget({widget:new class extends WidgetType{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),fieldRange=Decoration.mark({class:"cm-snippetField"});class ActiveSnippet{constructor(e,t){this.ranges=e,this.active=t,this.deco=Decoration.set(e.map(e=>(e.from==e.to?fieldMarker:fieldRange).range(e.from,e.to)))}map(t){return new ActiveSnippet(this.ranges.map(e=>e.map(t)),this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(e=>e.field==this.active&&e.from<=t.from&&e.to>=t.to))}}const setActive=StateEffect.define({map(e,t){return e&&e.map(t)}}),moveToField=StateEffect.define(),snippetState=StateField.define({create(){return null},update(e,t){for(var i of t.effects){if(i.is(setActive))return i.value;if(i.is(moveToField)&&e)return new ActiveSnippet(e.ranges,i.value)}return e=(e=e&&t.docChanged?e.map(t.changes):e)&&t.selection&&!e.selectionInsideField(t.selection)?null:e},provide:e=>EditorView.decorations.from(e,e=>e?e.deco:Decoration.none)});function fieldSelection(e,t){return EditorSelection.create(e.filter(e=>e.field==t).map(e=>EditorSelection.range(e.from,e.to)))}function snippet(e){let o=Snippet.parse(e);return(i,e,t,n)=>{var{text:r,ranges:s}=o.instantiate(i.state,t);let a={changes:{from:t,to:n,insert:Text.of(r)}};if(s.length&&(a.selection=fieldSelection(s,0)),1e),addSnippetKeymap,snippetPointerHandler,baseTheme]))}i.dispatch(i.state.update(a))}}function moveField(s){return({state:e,dispatch:t})=>{let i=e.field(snippetState,!1);if(!i||s<0&&0==i.active)return!1;let n=i.active+s,r=0e.field==n+s);return t(e.update({selection:fieldSelection(i.ranges,n),effects:setActive.of(r?null:new ActiveSnippet(i.ranges,n))})),!0}}const clearSnippet=({state:e,dispatch:t})=>{return!!e.field(snippetState,!1)&&(t(e.update({effects:setActive.of(null)})),!0)},nextSnippetField=moveField(1),prevSnippetField=moveField(-1),defaultSnippetKeymap=[{key:"Tab",run:nextSnippetField,shift:prevSnippetField},{key:"Escape",run:clearSnippet}],snippetKeymap=Facet.define({combine(e){return e.length?e[0]:defaultSnippetKeymap}}),addSnippetKeymap=Prec.override(keymap.compute([snippetKeymap],e=>e.facet(snippetKeymap)));function snippetCompletion(e,t){return Object.assign(Object.assign({},t),{apply:snippet(e)})}const snippetPointerHandler=EditorView.domEventHandlers({mousedown(e,t){let i=t.state.field(snippetState,!1),n;if(!i||null==(n=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let r=i.ranges.find(e=>e.from<=n&&e.to>=n);return!(!r||r.field==i.active)&&(t.dispatch({selection:fieldSelection(i.ranges,r.field),effects:setActive.of(i.ranges.some(e=>e.field>r.field)?new ActiveSnippet(i.ranges,r.field):null)}),!0)}}),snippets=[snippetCompletion("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),snippetCompletion("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),snippetCompletion("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),snippetCompletion("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"block",type:"keyword"}),snippetCompletion("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),snippetCompletion('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),snippetCompletion('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],javascriptLanguage=LezerLanguage.define({parser:parser$1.configure({props:[indentNodeProp.add({IfStatement:continuedIndent({except:/^\s*({|else\b)/}),TryStatement:continuedIndent({except:/^\s*({|catch|finally)\b/}),LabeledStatement:flatIndent,SwitchBody:e=>{var t=e.textAfter,i=/^\s*\}/.test(t),t=/^\s*(case|default)\b/.test(t);return e.baseIndent+(i?0:t?1:2)*e.unit},Block:delimitedIndent({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>-1,"Statement Property":continuedIndent({except:/^{/}),JSXElement(e){var t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.state.doc.lineAt(e.node.from))+(t?0:e.unit)},JSXEscape(e){var t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.state.doc.lineAt(e.node.from))+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag"(e){return e.column(e.node.from)+e.unit}}),foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression":foldInside,BlockComment(e){return{from:e.from+2,to:e.to-2}}}),styleTags({"get set async static":tags$1.modifier,"for while do if else switch try catch finally return throw break continue default case":tags$1.controlKeyword,"in of await yield void typeof delete instanceof":tags$1.operatorKeyword,"export import let var const function class extends":tags$1.definitionKeyword,"with debugger from as new":tags$1.keyword,TemplateString:tags$1.special(tags$1.string),Super:tags$1.atom,BooleanLiteral:tags$1.bool,this:tags$1.self,null:tags$1.null,Star:tags$1.modifier,VariableName:tags$1.variableName,"CallExpression/VariableName":tags$1.function(tags$1.variableName),VariableDefinition:tags$1.definition(tags$1.variableName),Label:tags$1.labelName,PropertyName:tags$1.propertyName,"CallExpression/MemberExpression/PropertyName":tags$1.function(tags$1.propertyName),"FunctionDeclaration/VariableDefinition":tags$1.function(tags$1.definition(tags$1.variableName)),"ClassDeclaration/VariableDefinition":tags$1.definition(tags$1.className),PropertyNameDefinition:tags$1.definition(tags$1.propertyName),UpdateOp:tags$1.updateOperator,LineComment:tags$1.lineComment,BlockComment:tags$1.blockComment,Number:tags$1.number,String:tags$1.string,ArithOp:tags$1.arithmeticOperator,LogicOp:tags$1.logicOperator,BitOp:tags$1.bitwiseOperator,CompareOp:tags$1.compareOperator,RegExp:tags$1.regexp,Equals:tags$1.definitionOperator,"Arrow : Spread":tags$1.punctuation,"( )":tags$1.paren,"[ ]":tags$1.squareBracket,"{ }":tags$1.brace,".":tags$1.derefOperator,", ;":tags$1.separator,TypeName:tags$1.typeName,TypeDefinition:tags$1.definition(tags$1.typeName),"type enum interface implements namespace module declare":tags$1.definitionKeyword,"abstract global privacy readonly":tags$1.modifier,"is keyof unique infer":tags$1.operatorKeyword,JSXAttributeValue:tags$1.string,JSXText:tags$1.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":tags$1.angleBracket,"JSXIdentifier JSXNameSpacedName":tags$1.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":tags$1.propertyName})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),typescriptLanguage=javascriptLanguage.configure({dialect:"ts"}),jsxLanguage=javascriptLanguage.configure({dialect:"jsx"}),tsxLanguage=javascriptLanguage.configure({dialect:"jsx ts"});function javascript(e={}){e=e.jsx?e.typescript?tsxLanguage:jsxLanguage:e.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(e,javascriptLanguage.data.of({autocomplete:ifNotIn(["LineComment","BlockComment","String"],completeFromList(snippets))}))}function esLint(l,c){return c||(c={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},l.getRules().forEach((e,t)=>{e.meta.docs.recommended&&(c.rules[t]=2)})),e=>{let{state:t}=e,i=[];for(var{from:n,to:r}of javascriptLanguage.findRegions(t)){var s,a=t.doc.lineAt(n),o={line:a.number-1,col:n-a.from,pos:n};for(s of l.verify(t.sliceDoc(n,r),c))i.push(translateDiagnostic(s,t.doc,o))}return i}}function mapPos(e,t,i,n){return i.line(e+n.line).from+t+(1==e?n.col-1:-1)}function translateDiagnostic(t,e,s){var a=mapPos(t.line,t.column,e,s);let o={from:a,to:null!=t.endLine&&1!=t.endColumn?mapPos(t.endLine,t.endColumn,e,s):a,message:t.message,source:t.ruleId?"jshint:"+t.ruleId:"jshint",severity:1==t.severity?"warning":"error"};if(t.fix){let{range:e,text:i}=t.fix,n=e[0]+s.pos-a,r=e[1]+s.pos-a;o.actions=[{name:"fix",apply(e,t){e.dispatch({changes:{from:t+n,to:t+r,insert:i},scrollIntoView:!0})}}]}return o}var index$2=Object.freeze({__proto__:null,esLint:esLint,javascript:javascript,javascriptLanguage:javascriptLanguage,jsxLanguage:jsxLanguage,snippets:snippets,tsxLanguage:tsxLanguage,typescriptLanguage:typescriptLanguage});const Targets=["_blank","_self","_top","_parent"],Charsets=["ascii","utf-8","utf-16","latin1","latin1"],Methods=["get","post","put","delete"],Encs=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],Bool=["true","false"],S={},Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,acronym:S,address:S,applet:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:S,base:{attrs:{href:null,target:Targets}},basefont:S,bdi:S,bdo:S,big:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:S,dir:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:S,figure:S,font:S,footer:S,form:{attrs:{action:null,name:null,"accept-charset":Charsets,autocomplete:["on","off"],enctype:Encs,method:Methods,novalidate:["novalidate"],target:Targets}},frame:S,frameset:S,h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null},children:["head","body"]},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:Encs,formmethod:Methods,formnovalidate:["novalidate"],formtarget:Targets,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:Charsets,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noframes:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,s:S,samp:S,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strike:S,strong:S,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},tt:S,u:S,ul:{children:["li","script","template","ul","ol"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:S},GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":Bool,"aria-autocomplete":["inline","list","both","none"],"aria-busy":Bool,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":Bool,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":Bool,"aria-hidden":Bool,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":Bool,"aria-multiselectable":Bool,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":Bool,"aria-relevant":null,"aria-required":Bool,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},AllTags=Object.keys(Tags),GlobalAttrNames=Object.keys(GlobalAttrs);function elementName(e,t){let i=t.firstChild;t=i&&i.getChild("TagName");return t?e.sliceString(t.from,t.to):""}function findParentElement(t,i=!1){for(let e=t.parent;e;e=e.parent)if("Element"==e.name){if(!i)return e;i=!1}return null}function allowedChildren(e,t){t=findParentElement(t,!0),t=t?Tags[elementName(e,t)]:null;return(null==t?void 0:t.children)||AllTags}function openTags(t,i){let n=[];for(let e=i;e=findParentElement(e);){var r=elementName(t,e);if(r&&"CloseTag"==e.lastChild.name)break;r&&n.indexOf(r)<0&&("EndTag"==i.name||i.from>=e.firstChild.to)&&n.push(r)}return n}const identifier=/^[:\-\.\w\u00b7-\uffff]+$/;function completeTag(e,t,i,n){let r=/\s*>/.test(e.sliceDoc(n,n+5))?"":">";return{from:i,to:n,options:allowedChildren(e.doc,t).map(e=>({label:e,type:"type"})).concat(openTags(e.doc,t).map((e,t)=>({label:"/"+e,apply:"/"+e+r,type:"type",boost:99-t}))),span:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeCloseTag(e,t,i,n){let r=/\s*>/.test(e.sliceDoc(n,n+5))?"":">";return{from:i,to:n,options:openTags(e.doc,t).map((e,t)=>({label:e,apply:e+r,type:"type",boost:99-t})),span:identifier}}function completeStartTag(e,t,i){let n=[],r=0;for(var s of allowedChildren(e.doc,t))n.push({label:"<"+s,type:"type"});for(var a of openTags(e.doc,t))n.push({label:"",type:"type",boost:99-r++});return{from:i,to:i,options:n,span:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function completeAttrName(e,t,i,n){t=findParentElement(t),t=t?Tags[elementName(e.doc,t)]:null;let r=t&&t.attrs?Object.keys(t.attrs).concat(GlobalAttrNames):GlobalAttrNames;return{from:i,to:n,options:r.map(e=>({label:e,type:"property"})),span:identifier}}function completeAttrValue(r,e,s,a){var t=null===(t=e.parent)||void 0===t?void 0:t.getChild("AttributeName");let o=[],l=void 0;if(t){t=r.sliceDoc(t.from,t.to);let n=GlobalAttrs[t];if(n||(e=(e=findParentElement(e))?Tags[elementName(r.doc,e)]:null,n=(null==e?void 0:e.attrs)&&e.attrs[t]),n){let e=r.sliceDoc(s,a).toLowerCase(),t='"',i='"';/^['"]/.test(e)?(l='"'==e[0]?/^[^"]*$/:/^[^']*$/,t="",i=r.sliceDoc(a,a+1)==e[0]?"":e[0],e=e.slice(1),s++):l=/^[^\s<>='"]*$/;for(var c of n)o.push({label:c,apply:t+c+i,type:"constant"})}}return{from:s,to:a,options:o,span:l}}function completeHTML(e){let{state:t,pos:i}=e,n=syntaxTree(t).resolve(i),r=n.resolve(i,-1);return"TagName"==r.name?(r.parent&&/CloseTag$/.test(r.parent.name)?completeCloseTag:completeTag)(t,r,r.from,i):"StartTag"==r.name?completeTag(t,r,i,i):"StartCloseTag"==r.name||"IncompleteCloseTag"==r.name?completeCloseTag(t,r,i,i):e.explicit&&("OpenTag"==r.name||"SelfClosingTag"==r.name)||"AttributeName"==r.name?completeAttrName(t,r,"AttributeName"==r.name?r.from:i,i):"Is"==r.name||"AttributeValue"==r.name||"UnquotedAttributeValue"==r.name?completeAttrValue(t,r,"Is"==r.name?i:r.from,i):!e.explicit||"Element"!=n.name&&"Text"!=n.name&&"Document"!=n.name?null:completeStartTag(t,r,i)}const htmlLanguage=LezerLanguage.define({parser:parser$3.configure({props:[indentNodeProp.add({Element(e){var t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.state.doc.lineAt(e.node.from))+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(t){if(t.pos+/\s*/.exec(t.textAfter)[0].length{if(e.is("Block")&&!e.is("Document"))return(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})}),indentNodeProp.add({Document:()=>null}),languageDataProp.add({Document:data})],htmlParser:htmlLanguage.parser.configure({dialect:"noMatch"})}),commonmarkLanguage=mkLang(commonmark),extended=commonmark.configure([GFM,Subscript,Superscript,Emoji,{props:[styleTags({"TableDelimiter SubscriptMark SuperscriptMark StrikethroughMark":tags$1.processingInstruction,"TableHeader/...":tags$1.heading,"Strikethrough/...":tags$1.strikethrough,TaskMarker:tags$1.atom,Task:tags$1.list,Emoji:tags$1.character,"Subscript Superscript":tags$1.special(tags$1.content),TableCell:tags$1.content})]}]),markdownLanguage=mkLang(extended);function mkLang(e){return new Language(data,e,e.nodeSet.types.find(e=>"Document"==e.name))}function addCodeLanguages(i,n){return{codeParser(e){let t=e&&LanguageDescription.matchLanguageName(i,e,!0);return t?t.support?t.support.language.parser:EditorParseContext.getSkippingParser(t.load()):n?n.parser:null}}}function nodeStart(e,t){return t.sliceString(e.from,e.from+50)}function gatherMarkup(t,n,r){let s=[];for(let e=t;e&&"Document"!=e.name;e=e.parent)"ListItem"!=e.name&&"Blockquote"!=e.name||s.push(e);let a=[],o=0;for(let i=s.length-1;0<=i;i--){let e=s[i],t;var l;"Blockquote"==e.name&&(t=/^\s*> ?/.exec(n.slice(o)))?(a.push({from:o,string:t[0],node:e}),o+=t[0].length):"ListItem"==e.name&&"OrderedList"==e.parent.name&&(t=/^\s*\d+([.)])\s*/.exec(nodeStart(e,r)))?(l=4<=t[1].length?t[0].length-t[1].length+1:t[0].length,a.push({from:o,string:n.slice(o,o+l).replace(/\S/g," "),node:e}),o+=l):"ListItem"==e.name&&"BulletList"==e.parent.name&&(t=/^\s*[-+*] (\s*)/.exec(nodeStart(e,r)))&&(l=4<=t[1].length?t[0].length-t[1].length:t[0].length,a.push({from:o,string:n.slice(o,o+l).replace(/\S/g," "),node:e}),o+=l)}return a}function renumberList(i,n,r){for(let e=-1,t=i;;){if("ListItem"==t.name){var s=/^(\s*)(\d+)(?=[.)])/.exec(n.sliceString(t.from,t.from+10));if(!s)return;var a=+s[2];if(0<=e){if(a!=e+1)return;r.push({from:t.from+s[1].length,to:t.from+s[0].length,insert:String(e+2)})}e=a}a=t.nextSibling;if(!a)break;t=a}}const insertNewlineContinueMarkup=({state:l,dispatch:e})=>{let i=syntaxTree(l),t=null,n=l.changeByRange(a=>{if(a.empty&&markdownLanguage.isActiveAt(l,a.from)){let n=l.doc.lineAt(a.from),e=gatherMarkup(i.resolve(a.from,-1),n.text,l.doc),r=a.from,s=[];if(e.length){let t=e[e.length-1],i=t.from+t.string.length;var o=a.from-n.from>=i&&!/\S/.test(n.text.slice(i,a.from-n.from));if(o){let e=/List/.test(t.node.name)?t.from:i;for(;0]/.test(l.doc.lineAt(n.from-1).text))return{range:EditorSelection.cursor(r),changes:{from:r,to:a.from}};r=n.from?t.string=n.text.slice(t.from,t.from+t.string.length):t.string=/^\s*/.exec(n.text)[0].slice(0,t.string.length),"OrderedList"==t.node.parent.name&&r==a.from&&(t.string=t.string.replace(/\d+/,e=>+e+1),renumberList(t.node,l.doc,s)))}}let t=e.map(e=>e.string).join("");return a.from-n.from{let a=syntaxTree(s),o=null,t=s.changeByRange(t=>{if(t.empty&&markdownLanguage.isActiveAt(s,t.from)){let e=s.doc.lineAt(t.from);var i=gatherMarkup(a.resolve(t.from,-1),e.text,s.doc);if(i.length){var n=i[i.length-1],r=n.from+n.string.length;if(t.from>r+e.from&&!/\S/.test(e.text.slice(r,t.from-e.from)))return{range:EditorSelection.cursor(r+e.from),changes:{from:r+e.from,to:t.from}};if(t.from-e.from==r){i=e.from+n.from;return"ListItem"==n.node.name&&n.node.parent.fromnew LanguageSupport(e.StreamLanguage.define(t)))}function sql(t){return import("./index-01d24eaf.js").then(e=>e.sql({dialect:e[t]}))}const languages=[LanguageDescription.of({name:"C",extensions:["c","h","ino"],load(){return import("./index-0a69c00f.js").then(e=>e.cpp())}}),LanguageDescription.of({name:"C++",alias:["cpp"],extensions:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],load(){return import("./index-0a69c00f.js").then(e=>e.cpp())}}),LanguageDescription.of({name:"CQL",alias:["cassandra"],extensions:["cql"],load(){return sql("Cassandra")}}),LanguageDescription.of({name:"CSS",extensions:["css"],load(){return Promise.resolve().then(function(){return index$3}).then(e=>e.css())}}),LanguageDescription.of({name:"HTML",alias:["xhtml"],extensions:["html","htm","handlebars","hbs"],load(){return Promise.resolve().then(function(){return index$1}).then(e=>e.html())}}),LanguageDescription.of({name:"Java",extensions:["java"],load(){return import("./index-7206f25e.js").then(e=>e.java())}}),LanguageDescription.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript())}}),LanguageDescription.of({name:"JSON",alias:["json5"],extensions:["json","map"],load(){return import("./index-aa082e7b.js").then(e=>e.json())}}),LanguageDescription.of({name:"JSX",extensions:["jsx"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript({jsx:!0}))}}),LanguageDescription.of({name:"MariaDB SQL",load(){return sql("MariaSQL")}}),LanguageDescription.of({name:"Markdown",extensions:["md","markdown","mkd"],load(){return Promise.resolve().then(function(){return index}).then(e=>e.markdown())}}),LanguageDescription.of({name:"MS SQL",load(){return sql("MSSQL")}}),LanguageDescription.of({name:"MySQL",load(){return sql("MySQL")}}),LanguageDescription.of({name:"PLSQL",extensions:["pls"],load(){return sql("PLSQL")}}),LanguageDescription.of({name:"PostgreSQL",load(){return sql("PostgreSQL")}}),LanguageDescription.of({name:"Python",extensions:["BUILD","bzl","py","pyw"],filename:/^(BUCK|BUILD)$/,load(){return import("./index-e9ab6ca5.js").then(e=>e.python())}}),LanguageDescription.of({name:"Rust",extensions:["rs"],load(){return import("./index-26513241.js").then(e=>e.rust())}}),LanguageDescription.of({name:"SQL",extensions:["sql"],load(){return sql("StandardSQL")}}),LanguageDescription.of({name:"SQLite",load(){return sql("SQLite")}}),LanguageDescription.of({name:"TSX",extensions:["tsx"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript({jsx:!0,typescript:!0}))}}),LanguageDescription.of({name:"TypeScript",alias:["ts"],extensions:["ts"],load(){return Promise.resolve().then(function(){return index$2}).then(e=>e.javascript({typescript:!0}))}}),LanguageDescription.of({name:"XML",alias:["rss","wsdl","xsd"],extensions:["xml","xsl","xsd","svg"],load(){return import("./index-8b02e2f7.js").then(e=>e.xml())}}),LanguageDescription.of({name:"APL",extensions:["dyalog","apl"],load(){return import("./apl-2030b4c5.js").then(e=>legacy(e.apl))}}),LanguageDescription.of({name:"PGP",alias:["asciiarmor"],extensions:["asc","pgp","sig"],load(){return import("./asciiarmor-093bcdbd.js").then(e=>legacy(e.asciiArmor))}}),LanguageDescription.of({name:"ASN.1",extensions:["asn","asn1"],load(){return import("./asn1-afa00132.js").then(e=>legacy(e.asn1({})))}}),LanguageDescription.of({name:"Asterisk",filename:/^extensions\.conf$/i,load(){return import("./asterisk-09307b50.js").then(e=>legacy(e.asterisk))}}),LanguageDescription.of({name:"Brainfuck",extensions:["b","bf"],load(){return import("./brainfuck-80b1f4f5.js").then(e=>legacy(e.brainfuck))}}),LanguageDescription.of({name:"Cobol",extensions:["cob","cpy"],load(){return import("./cobol-43d95731.js").then(e=>legacy(e.cobol))}}),LanguageDescription.of({name:"C#",alias:["csharp","cs"],extensions:["cs"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.csharp))}}),LanguageDescription.of({name:"Clojure",extensions:["clj","cljc","cljx"],load(){return import("./clojure-32cc1305.js").then(e=>legacy(e.clojure))}}),LanguageDescription.of({name:"ClojureScript",extensions:["cljs"],load(){return import("./clojure-32cc1305.js").then(e=>legacy(e.clojure))}}),LanguageDescription.of({name:"Closure Stylesheets (GSS)",extensions:["gss"],load(){return import("./css-79b391c7.js").then(e=>legacy(e.gss))}}),LanguageDescription.of({name:"CMake",extensions:["cmake","cmake.in"],filename:/^CMakeLists\.txt$/,load(){return import("./cmake-2227f645.js").then(e=>legacy(e.cmake))}}),LanguageDescription.of({name:"CoffeeScript",alias:["coffee","coffee-script"],extensions:["coffee"],load(){return import("./coffeescript-fc762049.js").then(e=>legacy(e.coffeeScript))}}),LanguageDescription.of({name:"Common Lisp",alias:["lisp"],extensions:["cl","lisp","el"],load(){return import("./commonlisp-ba6e115c.js").then(e=>legacy(e.commonLisp))}}),LanguageDescription.of({name:"Cypher",extensions:["cyp","cypher"],load(){return import("./cypher-5d7834b7.js").then(e=>legacy(e.cypher))}}),LanguageDescription.of({name:"Cython",extensions:["pyx","pxd","pxi"],load(){return import("./python-103af9e0.js").then(e=>legacy(e.cython))}}),LanguageDescription.of({name:"Crystal",extensions:["cr"],load(){return import("./crystal-5772ab5b.js").then(e=>legacy(e.crystal))}}),LanguageDescription.of({name:"D",extensions:["d"],load(){return import("./d-7ec7aa31.js").then(e=>legacy(e.d))}}),LanguageDescription.of({name:"Dart",extensions:["dart"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.dart))}}),LanguageDescription.of({name:"diff",extensions:["diff","patch"],load(){return import("./diff-e72a85b3.js").then(e=>legacy(e.diff))}}),LanguageDescription.of({name:"Dockerfile",filename:/^Dockerfile$/,load(){return import("./dockerfile-f2730f07.js").then(e=>legacy(e.dockerFile))}}),LanguageDescription.of({name:"DTD",extensions:["dtd"],load(){return import("./dtd-da1e6af8.js").then(e=>legacy(e.dtd))}}),LanguageDescription.of({name:"Dylan",extensions:["dylan","dyl","intr"],load(){return import("./dylan-f2ba9f15.js").then(e=>legacy(e.dylan))}}),LanguageDescription.of({name:"EBNF",load(){return import("./ebnf-2174d665.js").then(e=>legacy(e.ebnf))}}),LanguageDescription.of({name:"ECL",extensions:["ecl"],load(){return import("./ecl-e5271367.js").then(e=>legacy(e.ecl))}}),LanguageDescription.of({name:"edn",extensions:["edn"],load(){return import("./clojure-32cc1305.js").then(e=>legacy(e.clojure))}}),LanguageDescription.of({name:"Eiffel",extensions:["e"],load(){return import("./eiffel-efa88d90.js").then(e=>legacy(e.eiffel))}}),LanguageDescription.of({name:"Elm",extensions:["elm"],load(){return import("./elm-63fbccd1.js").then(e=>legacy(e.elm))}}),LanguageDescription.of({name:"Erlang",extensions:["erl"],load(){return import("./erlang-8c025459.js").then(e=>legacy(e.erlang))}}),LanguageDescription.of({name:"Esper",load(){return import("./sql-fbfc84a5.js").then(e=>legacy(e.esper))}}),LanguageDescription.of({name:"Factor",extensions:["factor"],load(){return import("./factor-b9688504.js").then(e=>legacy(e.factor))}}),LanguageDescription.of({name:"FCL",load(){return import("./fcl-d6276f3f.js").then(e=>legacy(e.fcl))}}),LanguageDescription.of({name:"Forth",extensions:["forth","fth","4th"],load(){return import("./forth-02de8e5b.js").then(e=>legacy(e.forth))}}),LanguageDescription.of({name:"Fortran",extensions:["f","for","f77","f90","f95"],load(){return import("./fortran-92612c49.js").then(e=>legacy(e.fortran))}}),LanguageDescription.of({name:"F#",alias:["fsharp"],extensions:["fs"],load(){return import("./mllike-10ca148e.js").then(e=>legacy(e.fSharp))}}),LanguageDescription.of({name:"Gas",extensions:["s"],load(){return import("./gas-c1ef3a64.js").then(e=>legacy(e.gas))}}),LanguageDescription.of({name:"Gherkin",extensions:["feature"],load(){return import("./gherkin-446ca897.js").then(e=>legacy(e.gherkin))}}),LanguageDescription.of({name:"Go",extensions:["go"],load(){return import("./go-7157bdcf.js").then(e=>legacy(e.go))}}),LanguageDescription.of({name:"Groovy",extensions:["groovy","gradle"],filename:/^Jenkinsfile$/,load(){return import("./groovy-15bb0a05.js").then(e=>legacy(e.groovy))}}),LanguageDescription.of({name:"Haskell",extensions:["hs"],load(){return import("./haskell-659ae93f.js").then(e=>legacy(e.haskell))}}),LanguageDescription.of({name:"Haxe",extensions:["hx"],load(){return import("./haxe-8482e88f.js").then(e=>legacy(e.haxe))}}),LanguageDescription.of({name:"HXML",extensions:["hxml"],load(){return import("./haxe-8482e88f.js").then(e=>legacy(e.hxml))}}),LanguageDescription.of({name:"HTTP",load(){return import("./http-6c3ca047.js").then(e=>legacy(e.http))}}),LanguageDescription.of({name:"IDL",extensions:["pro"],load(){return import("./idl-0ef7209d.js").then(e=>legacy(e.idl))}}),LanguageDescription.of({name:"JSON-LD",alias:["jsonld"],extensions:["jsonld"],load(){return import("./javascript-9e8f260e.js").then(e=>legacy(e.jsonld))}}),LanguageDescription.of({name:"Jinja2",extensions:["j2","jinja","jinja2"],load(){return import("./jinja2-7915044e.js").then(e=>legacy(e.jinja2))}}),LanguageDescription.of({name:"Julia",extensions:["jl"],load(){return import("./julia-94b55ee6.js").then(e=>legacy(e.julia))}}),LanguageDescription.of({name:"Kotlin",extensions:["kt"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.kotlin))}}),LanguageDescription.of({name:"LESS",extensions:["less"],load(){return import("./css-79b391c7.js").then(e=>legacy(e.less))}}),LanguageDescription.of({name:"LiveScript",alias:["ls"],extensions:["ls"],load(){return import("./livescript-18d3ed4b.js").then(e=>legacy(e.liveScript))}}),LanguageDescription.of({name:"Lua",extensions:["lua"],load(){return import("./lua-9cec5372.js").then(e=>legacy(e.lua))}}),LanguageDescription.of({name:"mIRC",load(){return import("./mirc-959c94b1.js").then(e=>legacy(e.mirc))}}),LanguageDescription.of({name:"Mathematica",extensions:["m","nb","wl","wls"],load(){return import("./mathematica-4c7527d5.js").then(e=>legacy(e.mathematica))}}),LanguageDescription.of({name:"Modelica",extensions:["mo"],load(){return import("./modelica-decd8598.js").then(e=>legacy(e.modelica))}}),LanguageDescription.of({name:"MUMPS",extensions:["mps"],load(){return import("./mumps-067a7108.js").then(e=>legacy(e.mumps))}}),LanguageDescription.of({name:"mbox",extensions:["mbox"],load(){return import("./mbox-c94b8e5d.js").then(e=>legacy(e.mbox))}}),LanguageDescription.of({name:"Nginx",filename:/nginx.*\.conf$/i,load(){return import("./nginx-a6f68c33.js").then(e=>legacy(e.nginx))}}),LanguageDescription.of({name:"NSIS",extensions:["nsh","nsi"],load(){return import("./nsis-dc357a04.js").then(e=>legacy(e.nsis))}}),LanguageDescription.of({name:"NTriples",extensions:["nt","nq"],load(){return import("./ntriples-12e84b21.js").then(e=>legacy(e.ntriples))}}),LanguageDescription.of({name:"Objective-C",alias:["objective-c","objc"],extensions:["m"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.objectiveC))}}),LanguageDescription.of({name:"Objective-C++",alias:["objective-c++","objc++"],extensions:["mm"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.objectiveCpp))}}),LanguageDescription.of({name:"OCaml",extensions:["ml","mli","mll","mly"],load(){return import("./mllike-10ca148e.js").then(e=>legacy(e.oCaml))}}),LanguageDescription.of({name:"Octave",extensions:["m"],load(){return import("./octave-dfed99d7.js").then(e=>legacy(e.octave))}}),LanguageDescription.of({name:"Oz",extensions:["oz"],load(){return import("./oz-2401d70e.js").then(e=>legacy(e.oz))}}),LanguageDescription.of({name:"Pascal",extensions:["p","pas"],load(){return import("./pascal-05191d71.js").then(e=>legacy(e.pascal))}}),LanguageDescription.of({name:"Perl",extensions:["pl","pm"],load(){return import("./perl-1568efe3.js").then(e=>legacy(e.perl))}}),LanguageDescription.of({name:"Pig",extensions:["pig"],load(){return import("./pig-5d168e86.js").then(e=>legacy(e.pig))}}),LanguageDescription.of({name:"PowerShell",extensions:["ps1","psd1","psm1"],load(){return import("./powershell-c9f2935d.js").then(e=>legacy(e.powerShell))}}),LanguageDescription.of({name:"Properties files",alias:["ini","properties"],extensions:["properties","ini","in"],load(){return import("./properties-c93e40cd.js").then(e=>legacy(e.properties))}}),LanguageDescription.of({name:"ProtoBuf",extensions:["proto"],load(){return import("./protobuf-04fc4e3b.js").then(e=>legacy(e.protobuf))}}),LanguageDescription.of({name:"Puppet",extensions:["pp"],load(){return import("./puppet-ce3af938.js").then(e=>legacy(e.puppet))}}),LanguageDescription.of({name:"Q",extensions:["q"],load(){return import("./q-7adde666.js").then(e=>legacy(e.q))}}),LanguageDescription.of({name:"R",alias:["rscript"],extensions:["r","R"],load(){return import("./r-5c65ce1c.js").then(e=>legacy(e.r))}}),LanguageDescription.of({name:"RPM Changes",load(){return import("./rpm-c892928b.js").then(e=>legacy(e.rpmChanges))}}),LanguageDescription.of({name:"RPM Spec",extensions:["spec"],load(){return import("./rpm-c892928b.js").then(e=>legacy(e.rpmSpec))}}),LanguageDescription.of({name:"Ruby",alias:["jruby","macruby","rake","rb","rbx"],extensions:["rb"],load(){return import("./ruby-21600654.js").then(e=>legacy(e.ruby))}}),LanguageDescription.of({name:"SAS",extensions:["sas"],load(){return import("./sas-3cd85309.js").then(e=>legacy(e.sas))}}),LanguageDescription.of({name:"Scala",extensions:["scala"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.scala))}}),LanguageDescription.of({name:"Scheme",extensions:["scm","ss"],load(){return import("./scheme-9512b48c.js").then(e=>legacy(e.scheme))}}),LanguageDescription.of({name:"SCSS",extensions:["scss"],load(){return import("./css-79b391c7.js").then(e=>legacy(e.sCSS))}}),LanguageDescription.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load(){return import("./shell-c1b04770.js").then(e=>legacy(e.shell))}}),LanguageDescription.of({name:"Sieve",extensions:["siv","sieve"],load(){return import("./sieve-1e0e521e.js").then(e=>legacy(e.sieve))}}),LanguageDescription.of({name:"Smalltalk",extensions:["st"],load(){return import("./smalltalk-e6b766b8.js").then(e=>legacy(e.smalltalk))}}),LanguageDescription.of({name:"Solr",load(){return import("./solr-5597a2d7.js").then(e=>legacy(e.solr))}}),LanguageDescription.of({name:"SML",extensions:["sml","sig","fun","smackspec"],load(){return import("./mllike-10ca148e.js").then(e=>legacy(e.sml))}}),LanguageDescription.of({name:"SPARQL",alias:["sparul"],extensions:["rq","sparql"],load(){return import("./sparql-fc490387.js").then(e=>legacy(e.sparql))}}),LanguageDescription.of({name:"Spreadsheet",alias:["excel","formula"],load(){return import("./spreadsheet-9174e23d.js").then(e=>legacy(e.spreadsheet))}}),LanguageDescription.of({name:"SQL",extensions:["sql"],load(){return import("./sql-fbfc84a5.js").then(e=>legacy(e.standardSQL))}}),LanguageDescription.of({name:"SQLite",load(){return import("./sql-fbfc84a5.js").then(e=>legacy(e.sqlite))}}),LanguageDescription.of({name:"Squirrel",extensions:["nut"],load(){return import("./clike-e2a9d212.js").then(e=>legacy(e.squirrel))}}),LanguageDescription.of({name:"Stylus",extensions:["styl"],load(){return import("./stylus-6249521d.js").then(e=>legacy(e.stylus))}}),LanguageDescription.of({name:"Swift",extensions:["swift"],load(){return import("./swift-7fa7f33a.js").then(e=>legacy(e.swift))}}),LanguageDescription.of({name:"sTeX",load(){return import("./stex-9c1a0609.js").then(e=>legacy(e.stex))}}),LanguageDescription.of({name:"LaTeX",alias:["tex"],extensions:["text","ltx","tex"],load(){return import("./stex-9c1a0609.js").then(e=>legacy(e.stex))}}),LanguageDescription.of({name:"SystemVerilog",extensions:["v","sv","svh"],load(){return import("./verilog-026cb9a4.js").then(e=>legacy(e.verilog))}}),LanguageDescription.of({name:"Tcl",extensions:["tcl"],load(){return import("./tcl-64088cb9.js").then(e=>legacy(e.tcl))}}),LanguageDescription.of({name:"Textile",extensions:["textile"],load(){return import("./textile-b43085a6.js").then(e=>legacy(e.textile))}}),LanguageDescription.of({name:"TiddlyWiki",load(){return import("./tiddlywiki-719a9b51.js").then(e=>legacy(e.tiddlyWiki))}}),LanguageDescription.of({name:"Tiki wiki",load(){return import("./tiki-c7f18a22.js").then(e=>legacy(e.tiki))}}),LanguageDescription.of({name:"TOML",extensions:["toml"],load(){return import("./toml-adb7882d.js").then(e=>legacy(e.toml))}}),LanguageDescription.of({name:"troff",extensions:["1","2","3","4","5","6","7","8","9"],load(){return import("./troff-1f82bf74.js").then(e=>legacy(e.troff))}}),LanguageDescription.of({name:"TTCN",extensions:["ttcn","ttcn3","ttcnpp"],load(){return import("./ttcn-59c626fc.js").then(e=>legacy(e.ttcn))}}),LanguageDescription.of({name:"TTCN_CFG",extensions:["cfg"],load(){return import("./ttcn-cfg-078eba3a.js").then(e=>legacy(e.ttcnCfg))}}),LanguageDescription.of({name:"Turtle",extensions:["ttl"],load(){return import("./turtle-1cd5251a.js").then(e=>legacy(e.turtle))}}),LanguageDescription.of({name:"Web IDL",extensions:["webidl"],load(){return import("./webidl-dc65d1d3.js").then(e=>legacy(e.webIDL))}}),LanguageDescription.of({name:"VB.NET",extensions:["vb"],load(){return import("./vb-48de61b2.js").then(e=>legacy(e.vb))}}),LanguageDescription.of({name:"VBScript",extensions:["vbs"],load(){return import("./vbscript-5aa6df10.js").then(e=>legacy(e.vbScript))}}),LanguageDescription.of({name:"Velocity",extensions:["vtl"],load(){return import("./velocity-e1fbbfb7.js").then(e=>legacy(e.velocity))}}),LanguageDescription.of({name:"Verilog",extensions:["v"],load(){return import("./verilog-026cb9a4.js").then(e=>legacy(e.verilog))}}),LanguageDescription.of({name:"VHDL",extensions:["vhd","vhdl"],load(){return import("./vhdl-1e8a014b.js").then(e=>legacy(e.vhdl))}}),LanguageDescription.of({name:"XQuery",extensions:["xy","xquery"],load(){return import("./xquery-7782f779.js").then(e=>legacy(e.xQuery))}}),LanguageDescription.of({name:"Yacas",extensions:["ys"],load(){return import("./yacas-21340496.js").then(e=>legacy(e.yacas))}}),LanguageDescription.of({name:"YAML",alias:["yml"],extensions:["yaml","yml"],load(){return import("./yaml-b685a442.js").then(e=>legacy(e.yaml))}}),LanguageDescription.of({name:"Z80",extensions:["z80"],load(){return import("./z80-01cbb90e.js").then(e=>legacy(e.z80))}}),LanguageDescription.of({name:"mscgen",extensions:["mscgen","mscin","msc"],load(){return import("./mscgen-ceec9b1f.js").then(e=>legacy(e.mscgen))}}),LanguageDescription.of({name:"xu",extensions:["xu"],load(){return import("./mscgen-ceec9b1f.js").then(e=>legacy(e.xu))}}),LanguageDescription.of({name:"msgenny",extensions:["msgenny"],load(){return import("./mscgen-ceec9b1f.js").then(e=>legacy(e.msgenny))}}),LanguageDescription.of({name:"WebAssembly",extensions:["wat","wast"],load(){return import("./wast-e15ed0e8.js").then(e=>legacy(e.wast))}})];var theme=()=>HighlightStyle.define([{tag:tags$1.punctuation,color:"#808080"},{tag:tags$1.name,color:"#d19a66"},{tag:tags$1.propertyName,color:"#96c0d8"},{tag:tags$1.string,color:"#98c379"},{tag:tags$1.keyword,color:"#c678dd"},{tag:tags$1.operator,color:"#96c0d8"},{tag:tags$1.variableName,color:"#e06c75"},{tag:tags$1.number,color:"#d19a66"},{tag:tags$1.comment,color:"#6a9955"},{tag:tags$1.processingInstruction,color:"#abb2bf"},{tag:tags$1.labelName,color:"#abb2bf"},{tag:tags$1.definition(tags$1.propertyName),color:"#e06c75"},{tag:tags$1.definition(tags$1.variableName),color:"#e5c07b"},{tag:tags$1.local(tags$1.variableName),color:"#d19a66"},{tag:tags$1.atom,color:"#d19a66"},{tag:tags$1.meta,color:"#abb2bf"},{tag:tags$1.strong,color:"#61afef",fontWeight:"500"},{tag:tags$1.emphasis,color:"#b294bb",fontStyle:"italic",fontFamily:"Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, 微软雅黑, Arial, sans-serif"},{tag:tags$1.strikethrough,color:"#ed6a43",textDecoration:"line-through"},{tag:tags$1.link,color:"#e26666"},{tag:tags$1.url,color:"#5fa76f"},{tag:tags$1.heading1,color:"#e06c75",fontSize:"18px",fontWeight:"700"},{tag:tags$1.heading2,color:"#e06c75",fontSize:"18px",fontWeight:"700"},{tag:tags$1.heading3,color:"#e06c75",fontSize:"18px",fontWeight:"700"},{tag:tags$1.heading4,color:"#e06c75",fontSize:"18px",fontWeight:"700"},{tag:tags$1.heading5,color:"#e06c75",fontSize:"18px",fontWeight:"700"},{tag:tags$1.heading6,color:"#e06c75",fontSize:"18px",fontWeight:"700"}]),tools=[{type:"undo",title:"撤销",innerHTML:''},{type:"redo",title:"重做",innerHTML:''},{type:"bold",title:"加粗",innerHTML:''},{type:"italic",title:"倾斜",innerHTML:''},{type:"delete",title:"删除",innerHTML:''},{type:"code-inline",title:"行内代码",innerHTML:''},{type:"hr",title:"横线",innerHTML:''},{type:"quote",title:"引用",innerHTML:''},{type:"title",title:"标题",innerHTML:''},{type:"ordered-list",title:"有序列表",innerHTML:''},{type:"unordered-list",title:"无序列表",innerHTML:''},{type:"link",title:"超链接",innerHTML:''},{type:"image",title:"插入图片",innerHTML:''},{type:"table",title:"表格",innerHTML:''},{type:"code-block",title:"代码块",innerHTML:''},{type:"html",title:"原生HTML",innerHTML:''},{type:"time",title:"当前时间",innerHTML:''},{type:"indent",title:"缩进",innerHTML:''},{type:"character",title:"实体符号",innerHTML:''},{type:"emoji",title:"符号表情",innerHTML:''},{type:"expression",title:"图片表情",innerHTML:''},{type:"task-no",title:"任务 - 未完成",innerHTML:''},{type:"task-yes",title:"任务 - 已完成",innerHTML:''},{type:"mtitle",title:"居中标题",innerHTML:''},{type:"dplayer",title:"M3U8/MP4视频",innerHTML:''},{type:"bilibili",title:"哔哩哔哩视频",innerHTML:''},{type:"netease-list",title:"网易云列表",innerHTML:''},{type:"netease-single",title:"网易云单首",innerHTML:''},{type:"abtn",title:"多彩按钮",innerHTML:''},{type:"anote",title:"便条按钮",innerHTML:''},{type:"dotted",title:"彩色虚线",innerHTML:''},{type:"hide",title:"回复可见",innerHTML:''},{type:"card-default",title:"默认卡片",innerHTML:''},{type:"message",title:"消息提示",innerHTML:''},{type:"progress",title:"进度条",innerHTML:''},{type:"callout",title:"标注",innerHTML:''},{type:"mp3",title:"外部音乐",innerHTML:''},{type:"tabs",title:"标签页",innerHTML:''},{type:"card-list",title:"卡片列表",innerHTML:''},{type:"timeline",title:"时间轴",innerHTML:''},{type:"copy",title:"复制文本",innerHTML:''},{type:"card-describe",title:"描述卡片",innerHTML:''},{type:"lamp",title:"跑马灯",innerHTML:''},{type:"collapse",title:"折叠面板",innerHTML:''},{type:"cloud",title:"云盘下载",innerHTML:''},{type:"gird",title:"宫格",innerHTML:''},{type:"alert",title:"提示",innerHTML:''},{type:"clean",title:"清屏",innerHTML:''},{type:"download",title:"下载",innerHTML:''},{type:"fullScreen",title:"全屏/取消全屏",innerHTML:''},{type:"preview",title:"预览/取消预览",innerHTML:''},{type:"draft",title:"保存草稿",innerHTML:''},{type:"publish",title:"发布文章",innerHTML:''},{type:"about",title:"关于",innerHTML:''}];class JoeAction{constructor(){$("body").append(`
@@ -274,7 +274,7 @@ let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,
- `,confirm:()=>{var e=$(".cm-modal select[name='type']").val(),e=`\n{cloud title="${$(".cm-modal input[name='title']").val()}" type="${e}" url="${$(".cm-modal input[name='url']").val()}" password="${$(".cm-modal input[name='password']").val()}"/}\n\n`;this._getLineCh(t)?this._replaceSelection(t,"\n"+e):this._replaceSelection(t,e),t.focus()}})}}const parser=new HyperDown,player=window.JoeConfig.playerAPI;function createPreviewHtml(e){if(!window.JoeConfig.canPreview)return $(".cm-preview-content").html("1. 预览已默认关闭
2. 点击上方预览按钮启用预览
3. 若编辑器卡顿可尝试关闭预览");-1!==e.indexOf(" ")&&(e=e.replace(/ /g," ")),-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=(e=(e=parser.makeHtml(e)).replace(/\:\:\(\s*(呵呵|哈哈|吐舌|太开心|笑眼|花心|小乖|乖|捂嘴笑|滑稽|你懂的|不高兴|怒|汗|黑线|泪|真棒|喷|惊哭|阴险|鄙视|酷|啊|狂汗|what|疑问|酸爽|呀咩爹|委屈|惊讶|睡觉|笑尿|挖鼻|吐|犀利|小红脸|懒得理|勉强|爱心|心碎|玫瑰|礼物|彩虹|太阳|星星月亮|钱币|茶杯|蛋糕|大拇指|胜利|haha|OK|沙发|手纸|香蕉|便便|药丸|红领巾|蜡烛|音乐|灯泡|开心|钱|咦|呼|冷|生气|弱|吐血|狗头)\s*\)/g,function(e,t){return t=encodeURI(t).replace(/%/g,""),``})).replace(/\:\@\(\s*(高兴|小怒|脸红|内伤|装大款|赞一个|害羞|汗|吐血倒地|深思|不高兴|无语|亲亲|口水|尴尬|中指|想一想|哭泣|便便|献花|皱眉|傻笑|狂汗|吐|喷水|看不见|鼓掌|阴暗|长草|献黄瓜|邪恶|期待|得意|吐舌|喷血|无所谓|观察|暗地观察|肿包|中枪|大囧|呲牙|抠鼻|不说话|咽气|欢呼|锁眉|蜡烛|坐等|击掌|惊喜|喜极而泣|抽烟|不出所料|愤怒|无奈|黑线|投降|看热闹|扇耳光|小眼睛|中刀)\s*\)/g,function(e,t){return t=encodeURI(t).replace(/%/g,""),``})).indexOf("{lamp")?e.replace(/{lamp\/}/g,''):e).indexOf("{x}")?e.replace(/{x}/g,''):e).indexOf("{ }")?e.replace(/{ }/g,''):e).indexOf("{mtitle")?e.replace(/{mtitle([^}]*)\/}/g,""):e).indexOf("{dplayer")?e.replace(/{dplayer([^}]*)\/}/g,''):e).indexOf("{bilibili")?e.replace(/{bilibili([^}]*)\/}/g,""):e).indexOf("{music-list")?e.replace(/{music-list([^}]*)\/}/g,""):e).indexOf("{music")?e.replace(/{music([^}]*)\/}/g,""):e).indexOf("{mp3")?e.replace(/{mp3([^}]*)\/}/g,""):e).indexOf("{abtn")?e.replace(/{abtn([^}]*)\/}/g,""):e).indexOf("{anote")?e.replace(/{anote([^}]*)\/}/g,""):e).indexOf("{copy")?e.replace(/{copy([^}]*)\/}/g,""):e).indexOf("{dotted")?e.replace(/{dotted([^}]*)\/}/g,""):e).indexOf("{message")?e.replace(/{message([^}]*)\/}/g,""):e).indexOf("{progress")?e.replace(/{progress([^}]*)\/}/g,""):e).indexOf("{cloud")?e.replace(/{cloud([^}]*)\/}/g,""):e).indexOf("{hide")?e.replace(/{hide[^}]*}([\s\S]*?){\/hide}/g,""):e).indexOf("{card-default")?e.replace(/{card-default([^}]*)}([\s\S]*?){\/card-default}/g,'
'):e).indexOf("{callout")?e.replace(/{callout([^}]*)}([\s\S]*?){\/callout}/g,'
'):e).indexOf("{card-describe")?e.replace(/{card-describe([^}]*)}([\s\S]*?){\/card-describe}/g,'
'):e).indexOf("{tabs")?e.replace(/{tabs}([\s\S]*?){\/tabs}/g,'
'):e).indexOf("{card-list")?e.replace(/{card-list}([\s\S]*?){\/card-list}/g,'
'):e).indexOf("{timeline")?e.replace(/{timeline}([\s\S]*?){\/timeline}/g,'
'):e).indexOf("{collapse")?e.replace(/{collapse}([\s\S]*?){\/collapse}/g,'
'):e).indexOf("{alert")?e.replace(/{alert([^}]*)}([\s\S]*?){\/alert}/g,'
'):e).indexOf("{gird")&&(e=e.replace(/{gird([^}]*)}([\s\S]*?){\/gird}/g,'
')),$(".cm-preview-content").html(e),$(".cm-preview-content p:empty").remove(),Prism.highlightAll()}class Joe extends JoeAction{constructor(){super(),this.plugins=[classHighlightStyle,history(),bracketMatching(),closeBrackets(),highlightActiveLine()],this._isPasting=!1,this.init_ViewPort(),this.init_Editor(),this.init_Preview(),this.init_Tools(),this.init_Insert(),this.init_AutoSave()}init_ViewPort(){0<$('meta[name="viewport"]').length?$('meta[name="viewport"]').attr("content","width=device-width, user-scalable=no, initial-scale=1.0, shrink-to-fit=no, viewport-fit=cover"):$("head").append('')}init_Editor(){$("#text").before(` + `,confirm:()=>{var e=$(".cm-modal select[name='type']").val(),e=`\n{cloud title="${$(".cm-modal input[name='title']").val()}" type="${e}" url="${$(".cm-modal input[name='url']").val()}" password="${$(".cm-modal input[name='password']").val()}"/}\n\n`;this._getLineCh(t)?this._replaceSelection(t,"\n"+e):this._replaceSelection(t,e),t.focus()}})}}const parser=new HyperDown,player=window.JoeConfig.playerAPI;function createPreviewHtml(e){if(!window.JoeConfig.canPreview)return $(".cm-preview-content").html("1. 预览已默认关闭
2. 点击上方预览按钮启用预览
3. 若编辑器卡顿可尝试关闭预览");-1!==e.indexOf(" ")&&(e=e.replace(/ /g," ")),-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=-1!==(e=(e=(e=parser.makeHtml(e)).replace(/\:\:\(\s*(呵呵|哈哈|吐舌|太开心|笑眼|花心|小乖|乖|捂嘴笑|滑稽|你懂的|不高兴|怒|汗|黑线|泪|真棒|喷|惊哭|阴险|鄙视|酷|啊|狂汗|what|疑问|酸爽|呀咩爹|委屈|惊讶|睡觉|笑尿|挖鼻|吐|犀利|小红脸|懒得理|勉强|爱心|心碎|玫瑰|礼物|彩虹|太阳|星星月亮|钱币|茶杯|蛋糕|大拇指|胜利|haha|OK|沙发|手纸|香蕉|便便|药丸|红领巾|蜡烛|音乐|灯泡|开心|钱|咦|呼|冷|生气|弱|吐血|狗头)\s*\)/g,function(e,t){return t=encodeURI(t).replace(/%/g,""),``})).replace(/\:\@\(\s*(高兴|小怒|脸红|内伤|装大款|赞一个|害羞|汗|吐血倒地|深思|不高兴|无语|亲亲|口水|尴尬|中指|想一想|哭泣|便便|献花|皱眉|傻笑|狂汗|吐|喷水|看不见|鼓掌|阴暗|长草|献黄瓜|邪恶|期待|得意|吐舌|喷血|无所谓|观察|暗地观察|肿包|中枪|大囧|呲牙|抠鼻|不说话|咽气|欢呼|锁眉|蜡烛|坐等|击掌|惊喜|喜极而泣|抽烟|不出所料|愤怒|无奈|黑线|投降|看热闹|扇耳光|小眼睛|中刀)\s*\)/g,function(e,t){return t=encodeURI(t).replace(/%/g,""),``})).indexOf("{lamp")?e.replace(/{lamp\/}/g,''):e).indexOf("{x}")?e.replace(/{x}/g,''):e).indexOf("{ }")?e.replace(/{ }/g,''):e).indexOf("{mtitle")?e.replace(/{mtitle([^}]*)\/}/g,""):e).indexOf("{dplayer")?e.replace(/{dplayer([^}]*)\/}/g,''):e).indexOf("{bilibili")?e.replace(/{bilibili([^}]*)\/}/g,""):e).indexOf("{music-list")?e.replace(/{music-list([^}]*)\/}/g,""):e).indexOf("{music")?e.replace(/{music([^}]*)\/}/g,""):e).indexOf("{mp3")?e.replace(/{mp3([^}]*)\/}/g,""):e).indexOf("{abtn")?e.replace(/{abtn([^}]*)\/}/g,""):e).indexOf("{anote")?e.replace(/{anote([^}]*)\/}/g,""):e).indexOf("{copy")?e.replace(/{copy([^}]*)\/}/g,""):e).indexOf("{dotted")?e.replace(/{dotted([^}]*)\/}/g,""):e).indexOf("{message")?e.replace(/{message([^}]*)\/}/g,""):e).indexOf("{progress")?e.replace(/{progress([^}]*)\/}/g,""):e).indexOf("{cloud")?e.replace(/{cloud([^}]*)\/}/g,""):e).indexOf("{hide")?e.replace(/{hide[^}]*}([\s\S]*?){\/hide}/g,""):e).indexOf("{card-default")?e.replace(/{card-default([^}]*)}([\s\S]*?){\/card-default}/g,'
'):e).indexOf("{callout")?e.replace(/{callout([^}]*)}([\s\S]*?){\/callout}/g,'
'):e).indexOf("{card-describe")?e.replace(/{card-describe([^}]*)}([\s\S]*?){\/card-describe}/g,'
'):e).indexOf("{tabs")?e.replace(/{tabs}([\s\S]*?){\/tabs}/g,'
'):e).indexOf("{card-list")?e.replace(/{card-list}([\s\S]*?){\/card-list}/g,'
'):e).indexOf("{timeline")?e.replace(/{timeline}([\s\S]*?){\/timeline}/g,'
'):e).indexOf("{collapse")?e.replace(/{collapse}([\s\S]*?){\/collapse}/g,'
'):e).indexOf("{alert")?e.replace(/{alert([^}]*)}([\s\S]*?){\/alert}/g,'
'):e).indexOf("{gird")&&(e=e.replace(/{gird([^}]*)}([\s\S]*?){\/gird}/g,'
')),$(".cm-preview-content").html(e),$(".cm-preview-content p:empty").remove(),Prism.highlightAll()}class Joe extends JoeAction{constructor(){super(),this.plugins=[theme(),history(),bracketMatching(),closeBrackets(),highlightActiveLine()],this.keymaps=[{key:"Tab",run:({state:e,dispatch:t})=>e.selection.ranges.some(e=>!e.empty)?indentMore({state:e,dispatch:t}):(t(e.update(e.replaceSelection(" "),{scrollIntoView:!0})),!0),shift:indentLess}],this._isPasting=!1,this.init_ViewPort(),this.init_Editor(),this.init_Preview(),this.init_Tools(),this.init_Insert(),this.init_AutoSave()}init_ViewPort(){0<$('meta[name="viewport"]').length?$('meta[name="viewport"]').attr("content","width=device-width, user-scalable=no, initial-scale=1.0, shrink-to-fit=no, viewport-fit=cover"):$("head").append('')}init_Editor(){$("#text").before(`
@@ -285,4 +285,4 @@ let extend="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,
- `),createPreviewHtml(null);let t=null,i=null;const s=new EditorView({state:EditorState.create({doc:$("#text").val(),extensions:[...this.plugins,markdown({base:markdownLanguage,codeLanguages:languages}),keymap.of([defaultTabBinding,...closeBracketsKeymap,...defaultKeymap,...historyKeymap]),EditorView.updateListener.of(e=>{e.docChanged&&t!==e.state.doc.toString()&&(t=e.state.doc.toString(),clearTimeout(i),i=setTimeout(createPreviewHtml.bind(null,e.state.doc.toString()),200))}),EditorView.domEventHandlers({paste:t=>{var n=t.clipboardData;if(n&&n.items){const r=n.items;if(r.length){let i=null;for(let e=0;e{const e=$.ajaxSettings.xhr();if(e.upload)return e.upload.addEventListener("progress",e=>{e=e.loaded/e.total*100;$(".cm-progress-left").width(e/2+"%"),$(".cm-progress-right").width(e/2+"%")},!1),e},success:e=>{$(".cm-progress-left").width(0),$(".cm-progress-right").width(0),this._isPasting=!1;e=`${super._getLineCh(s)?"\n":""}![${e[1].title}](${e[0]})\n`;super._replaceSelection(s,e),s.focus()},error:()=>{$(".cm-progress-left").width(0),$(".cm-progress-right").width(0),this._isPasting=!1}})}}}}}},scroll:e=>{window.JoeConfig.canPreview&&e&&e.target&&"cm-scroller"===e.target.className&&(window.requestAnimationFrame?window.requestAnimationFrame(()=>super._updateScroller(e.target,document.querySelector(".cm-preview"))):super._updateScroller(e.target,document.querySelector(".cm-preview")))}})],tabSize:4})});$(".cm-mainer").prepend(s.dom),$("#text")[0].form&&$("#text")[0].form.addEventListener("submit",()=>$("#text").val(s.state.doc.toString())),this.cm=s}init_Preview(){const n=(e,t,i)=>{let n=t+(e-i);n<=0&&(n=0),n>=$(".cm-mainer").outerWidth()-16&&(n=$(".cm-mainer").outerWidth()-16),$(".cm-preview").width(n)};$(".cm-resize").on({mousedown:e=>{e.preventDefault(),e.stopPropagation();const t=$(".cm-preview").outerWidth(),i=e.clientX;return $(".cm-preview").addClass("move"),document.onmousemove=e=>{window.requestAnimationFrame?requestAnimationFrame(()=>n(i,t,e.clientX)):n(i,t,e.clientX)},!(document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,$(".cm-preview").removeClass("move")})},touchstart:e=>{e.preventDefault(),e.stopPropagation();const t=$(".cm-preview").outerWidth(),i=e.originalEvent.targetTouches[0].clientX;return $(".cm-preview").addClass("move"),document.ontouchmove=e=>{window.requestAnimationFrame?requestAnimationFrame(()=>n(i,t,e.targetTouches[0].clientX)):n(i,t,e.targetTouches[0].clientX)},!(document.ontouchend=()=>{document.ontouchmove=null,document.ontouchend=null,$(".cm-preview").removeClass("move")})}})}init_Tools(){tools.forEach(t=>{if("title"===t.type)super.handleTitle(this.cm,t);else{const i=$(`
${t.innerHTML}
`);i.on("click",e=>{switch(e.preventDefault(),t.type){case"fullScreen":super.handleFullScreen(i);break;case"publish":super.handlePublish();break;case"undo":super.handleUndo(this.cm);break;case"redo":super.handleRedo(this.cm);break;case"time":super.handleTime(this.cm);break;case"bold":super._insetAmboText(this.cm,"**");break;case"italic":super._insetAmboText(this.cm,"*");break;case"delete":super._insetAmboText(this.cm,"~~");break;case"code-inline":super._insetAmboText(this.cm,"`");break;case"indent":super.handleIndent(this.cm);break;case"hr":super.handleHr(this.cm);break;case"clean":super.handleClean(this.cm);break;case"ordered-list":super.handleOrdered(this.cm);break;case"unordered-list":super.handleUnordered(this.cm);break;case"quote":super.handleQuote(this.cm);break;case"download":super.handleDownload(this.cm);break;case"link":super.handleLink(this.cm);break;case"image":super.handleImage(this.cm);break;case"table":super.handleTable(this.cm);break;case"code-block":super.handleCodeBlock(this.cm);break;case"about":super.handleAbout();break;case"character":super._createTableLists(this.cm,JoeConfig.characterAPI,"星星符号","字符大全");break;case"emoji":super._createTableLists(this.cm,JoeConfig.emojiAPI,"表情","符号表情(需数据库支持)");break;case"task-no":super.handleTask(this.cm,!1);break;case"task-yes":super.handleTask(this.cm,!0);break;case"netease-list":super.handleNetease(this.cm,!0);break;case"netease-single":super.handleNetease(this.cm,!1);break;case"bilibili":super.handleBilibili(this.cm);break;case"dplayer":super.handleDplayer(this.cm);break;case"draft":super.handleDraft();break;case"expression":super.handleExpression(this.cm);break;case"mtitle":super.handleMtitle(this.cm);break;case"html":super.handleHtml(this.cm);break;case"abtn":super.handleAbtn(this.cm);break;case"anote":super.handleAnote(this.cm);break;case"dotted":super.handleDotted(this.cm);break;case"hide":super.handleHide(this.cm);break;case"card-default":super.handleCardDefault(this.cm);break;case"message":super.handleMessage(this.cm);break;case"progress":super.handleProgress(this.cm);break;case"callout":super.handleCallout(this.cm);break;case"mp3":super.handleMp3(this.cm);break;case"tabs":super.handleTabs(this.cm);break;case"card-list":super.handleCardList(this.cm);break;case"timeline":super.handleTimeline(this.cm);break;case"copy":super.handleCopy(this.cm);break;case"card-describe":super.handleCardDescribe(this.cm);break;case"lamp":super.handleLamp(this.cm);break;case"collapse":super.handleCollapse(this.cm);break;case"cloud":super.handleCloud(this.cm);break;case"gird":super.handleGird(this.cm);break;case"alert":super.handleAlert(this.cm);break;case"preview":i.toggleClass("active"),i.hasClass("active")?window.JoeConfig.canPreview=!0:window.JoeConfig.canPreview=!1,createPreviewHtml(this.cm.state.doc.toString()),window.JoeConfig.canPreview&&super._updateScroller(document.querySelector(".cm-scroller"),document.querySelector(".cm-preview"))}}),$(".cm-tools").append(i)}})}init_Insert(){Typecho.insertFileToEditor=(e,t,i)=>{t=`${super._getLineCh(this.cm)?"\n":""}${i?"!":""}[${e}](${t})\n`;super._replaceSelection(this.cm,t),this.cm.focus()}}init_AutoSave(){if(1===window.JoeConfig.autoSave){const a=$("#text")[0].form;let i=$(a).find('input[name="cid"]').val(),n=null,r=$(a).find('input[name="title"]').val(),s=$(a).find('textarea[name="text"]').val();setInterval(()=>{$(a).find('input[name="cid"]').val(i),$(a).find('textarea[name="text"]').val(this.cm.state.doc.toString());let e=$(a).find('input[name="title"]').val();var t=$(a).find('textarea[name="text"]').val();""!==e.trim()&&(r===e&&s===t||(r=e,s=t,$(".cm-autosave").addClass("active"),$.ajax({url:a.action,type:"POST",data:$(a).serialize()+"&do=save",dataType:"json",success:e=>{i=e.cid,n=setTimeout(()=>{$(".cm-autosave").removeClass("active"),clearTimeout(n)},1e3)}})))},5e3)}}}document.addEventListener("DOMContentLoaded",()=>new Joe);export{ContextTracker as C,ExternalTokenizer as E,Language as L,NodeType as N,Parser as P,Tree as T,styleTags as a,NodeSet as b,countColumn as c,defineLanguageFacet as d,indentNodeProp as e,continuedIndent as f,getIndentUnit as g,foldNodeProp as h,indentService as i,LezerLanguage as j,ifNotIn as k,languageDataProp as l,completeFromList as m,LanguageSupport as n,NodeProp as o,flatIndent as p,foldInside as q,syntaxTree as s,tags$1 as t}; + `),createPreviewHtml(null);let t=null,i=null;const s=new EditorView({state:EditorState.create({doc:$("#text").val(),extensions:[...this.plugins,markdown({base:markdownLanguage,codeLanguages:languages}),keymap.of([...this.keymaps,...closeBracketsKeymap,...defaultKeymap,...historyKeymap]),EditorView.updateListener.of(e=>{e.docChanged&&t!==e.state.doc.toString()&&(t=e.state.doc.toString(),clearTimeout(i),i=setTimeout(createPreviewHtml.bind(null,e.state.doc.toString()),200))}),EditorView.domEventHandlers({paste:t=>{var n=t.clipboardData;if(n&&n.items){const r=n.items;if(r.length){let i=null;for(let e=0;e{const e=$.ajaxSettings.xhr();if(e.upload)return e.upload.addEventListener("progress",e=>{e=e.loaded/e.total*100;$(".cm-progress-left").width(e/2+"%"),$(".cm-progress-right").width(e/2+"%")},!1),e},success:e=>{$(".cm-progress-left").width(0),$(".cm-progress-right").width(0),this._isPasting=!1;e=`${super._getLineCh(s)?"\n":""}![${e[1].title}](${e[0]})\n`;super._replaceSelection(s,e),s.focus()},error:()=>{$(".cm-progress-left").width(0),$(".cm-progress-right").width(0),this._isPasting=!1}})}}}}}},scroll:e=>{window.JoeConfig.canPreview&&e&&e.target&&"cm-scroller"===e.target.className&&(window.requestAnimationFrame?window.requestAnimationFrame(()=>super._updateScroller(e.target,document.querySelector(".cm-preview"))):super._updateScroller(e.target,document.querySelector(".cm-preview")))}})]})});$(".cm-mainer").prepend(s.dom),$("#text")[0].form&&$("#text")[0].form.addEventListener("submit",()=>$("#text").val(s.state.doc.toString())),this.cm=s}init_Preview(){const n=(e,t,i)=>{let n=t+(e-i);n<=0&&(n=0),n>=$(".cm-mainer").outerWidth()-16&&(n=$(".cm-mainer").outerWidth()-16),$(".cm-preview").width(n)};$(".cm-resize").on({mousedown:e=>{e.preventDefault(),e.stopPropagation();const t=$(".cm-preview").outerWidth(),i=e.clientX;return $(".cm-preview").addClass("move"),document.onmousemove=e=>{window.requestAnimationFrame?requestAnimationFrame(()=>n(i,t,e.clientX)):n(i,t,e.clientX)},!(document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,$(".cm-preview").removeClass("move")})},touchstart:e=>{e.preventDefault(),e.stopPropagation();const t=$(".cm-preview").outerWidth(),i=e.originalEvent.targetTouches[0].clientX;return $(".cm-preview").addClass("move"),document.ontouchmove=e=>{window.requestAnimationFrame?requestAnimationFrame(()=>n(i,t,e.targetTouches[0].clientX)):n(i,t,e.targetTouches[0].clientX)},!(document.ontouchend=()=>{document.ontouchmove=null,document.ontouchend=null,$(".cm-preview").removeClass("move")})}})}init_Tools(){tools.forEach(t=>{if("title"===t.type)super.handleTitle(this.cm,t);else{const i=$(`
${t.innerHTML}
`);i.on("click",e=>{switch(e.preventDefault(),t.type){case"fullScreen":super.handleFullScreen(i);break;case"publish":super.handlePublish();break;case"undo":super.handleUndo(this.cm);break;case"redo":super.handleRedo(this.cm);break;case"time":super.handleTime(this.cm);break;case"bold":super._insetAmboText(this.cm,"**");break;case"italic":super._insetAmboText(this.cm,"*");break;case"delete":super._insetAmboText(this.cm,"~~");break;case"code-inline":super._insetAmboText(this.cm,"`");break;case"indent":super.handleIndent(this.cm);break;case"hr":super.handleHr(this.cm);break;case"clean":super.handleClean(this.cm);break;case"ordered-list":super.handleOrdered(this.cm);break;case"unordered-list":super.handleUnordered(this.cm);break;case"quote":super.handleQuote(this.cm);break;case"download":super.handleDownload(this.cm);break;case"link":super.handleLink(this.cm);break;case"image":super.handleImage(this.cm);break;case"table":super.handleTable(this.cm);break;case"code-block":super.handleCodeBlock(this.cm);break;case"about":super.handleAbout();break;case"character":super._createTableLists(this.cm,JoeConfig.characterAPI,"星星符号","字符大全");break;case"emoji":super._createTableLists(this.cm,JoeConfig.emojiAPI,"表情","符号表情(需数据库支持)");break;case"task-no":super.handleTask(this.cm,!1);break;case"task-yes":super.handleTask(this.cm,!0);break;case"netease-list":super.handleNetease(this.cm,!0);break;case"netease-single":super.handleNetease(this.cm,!1);break;case"bilibili":super.handleBilibili(this.cm);break;case"dplayer":super.handleDplayer(this.cm);break;case"draft":super.handleDraft();break;case"expression":super.handleExpression(this.cm);break;case"mtitle":super.handleMtitle(this.cm);break;case"html":super.handleHtml(this.cm);break;case"abtn":super.handleAbtn(this.cm);break;case"anote":super.handleAnote(this.cm);break;case"dotted":super.handleDotted(this.cm);break;case"hide":super.handleHide(this.cm);break;case"card-default":super.handleCardDefault(this.cm);break;case"message":super.handleMessage(this.cm);break;case"progress":super.handleProgress(this.cm);break;case"callout":super.handleCallout(this.cm);break;case"mp3":super.handleMp3(this.cm);break;case"tabs":super.handleTabs(this.cm);break;case"card-list":super.handleCardList(this.cm);break;case"timeline":super.handleTimeline(this.cm);break;case"copy":super.handleCopy(this.cm);break;case"card-describe":super.handleCardDescribe(this.cm);break;case"lamp":super.handleLamp(this.cm);break;case"collapse":super.handleCollapse(this.cm);break;case"cloud":super.handleCloud(this.cm);break;case"gird":super.handleGird(this.cm);break;case"alert":super.handleAlert(this.cm);break;case"preview":i.toggleClass("active"),i.hasClass("active")?window.JoeConfig.canPreview=!0:window.JoeConfig.canPreview=!1,createPreviewHtml(this.cm.state.doc.toString()),window.JoeConfig.canPreview&&super._updateScroller(document.querySelector(".cm-scroller"),document.querySelector(".cm-preview"))}}),$(".cm-tools").append(i)}})}init_Insert(){Typecho.insertFileToEditor=(e,t,i)=>{t=`${super._getLineCh(this.cm)?"\n":""}${i?"!":""}[${e}](${t})\n`;super._replaceSelection(this.cm,t),this.cm.focus()}}init_AutoSave(){if(1===window.JoeConfig.autoSave){const a=$("#text")[0].form;let i=$(a).find('input[name="cid"]').val(),n=null,r=$(a).find('input[name="title"]').val(),s=$(a).find('textarea[name="text"]').val();setInterval(()=>{$(a).find('input[name="cid"]').val(i),$(a).find('textarea[name="text"]').val(this.cm.state.doc.toString());let e=$(a).find('input[name="title"]').val();var t=$(a).find('textarea[name="text"]').val();""!==e.trim()&&(r===e&&s===t||(r=e,s=t,$(".cm-autosave").addClass("active"),$.ajax({url:a.action,type:"POST",data:$(a).serialize()+"&do=save",dataType:"json",success:e=>{i=e.cid,n=setTimeout(()=>{$(".cm-autosave").removeClass("active"),clearTimeout(n)},1e3)}})))},5e3)}}}document.addEventListener("DOMContentLoaded",()=>new Joe);export{ContextTracker as C,ExternalTokenizer as E,Language as L,NodeType as N,Parser as P,Tree as T,styleTags as a,NodeSet as b,countColumn as c,defineLanguageFacet as d,indentNodeProp as e,continuedIndent as f,getIndentUnit as g,foldNodeProp as h,indentService as i,LezerLanguage as j,ifNotIn as k,languageDataProp as l,completeFromList as m,LanguageSupport as n,NodeProp as o,flatIndent as p,foldInside as q,syntaxTree as s,tags$1 as t}; diff --git a/typecho/write/js/_theme.js b/typecho/write/js/_theme.js new file mode 100644 index 0000000..af8f9e1 --- /dev/null +++ b/typecho/write/js/_theme.js @@ -0,0 +1,156 @@ +import { HighlightStyle, tags } from '@codemirror/highlight'; + +export default () => { + return HighlightStyle.define([ + /* -----------------以下为代码高亮部分-------------------- */ + /* 应该是括号类的样式 */ + { + tag: tags.punctuation, + color: '#808080' + }, + /* 应该是标签名的样式 */ + { + tag: tags.name, + color: '#d19a66' + }, + /* 应该是属性名的样式 */ + { + tag: tags.propertyName, + color: '#96c0d8' + }, + /* 应该是属性值的样式 */ + { + tag: tags.string, + color: '#98c379' + }, + /* 应该是关键词的样式 */ + { + tag: tags.keyword, + color: '#c678dd' + }, + /* 应该是特殊符号的样式 */ + { + tag: tags.operator, + color: '#96c0d8' + }, + /* 应该是变量名的样式 */ + { + tag: tags.variableName, + color: '#e06c75' + }, + /* 应该是数字的样式 */ + { + tag: tags.number, + color: '#d19a66' + }, + /* 注释的样式 */ + { + tag: tags.comment, + color: '#6a9955' + }, + /* 未知 */ + { + tag: tags.processingInstruction, + color: '#abb2bf' + }, + /* 未知 */ + { + tag: tags.labelName, + color: '#abb2bf' + }, + /* 未知 */ + { + tag: tags.definition(tags.propertyName), + color: '#e06c75' + }, + /* 未知 */ + { + tag: tags.definition(tags.variableName), + color: '#e5c07b' + }, + /* 未知 */ + { + tag: tags.local(tags.variableName), + color: '#d19a66' + }, + /* 未知 */ + { + tag: tags.atom, + color: '#d19a66' + }, + /* 未知 */ + { + tag: tags.meta, + color: '#abb2bf' + }, + + /* -----------------以下为Markdown高亮部分-------------------- */ + + /* 加粗 **Text** */ + { + tag: tags.strong, + color: '#61afef', + fontWeight: '500' + }, + /* 倾斜文字 *Text* */ + { + tag: tags.emphasis, + color: '#b294bb', + fontStyle: 'italic', + fontFamily: 'Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, 微软雅黑, Arial, sans-serif' + }, + /* 删除线 ~~Text~~ */ + { + tag: tags.strikethrough, + color: '#ed6a43', + textDecoration: 'line-through' + }, + /* 链接 [Test] */ + { + tag: tags.link, + color: '#e26666' + }, + /* 地址 (http://) */ + { + tag: tags.url, + color: '#5fa76f' + }, + /* 标题样式 # */ + { + tag: tags.heading1, + color: '#e06c75', + fontSize: '18px', + fontWeight: '700' + }, + { + tag: tags.heading2, + color: '#e06c75', + fontSize: '18px', + fontWeight: '700' + }, + { + tag: tags.heading3, + color: '#e06c75', + fontSize: '18px', + fontWeight: '700' + }, + { + tag: tags.heading4, + color: '#e06c75', + fontSize: '18px', + fontWeight: '700' + }, + { + tag: tags.heading5, + color: '#e06c75', + fontSize: '18px', + fontWeight: '700' + }, + { + tag: tags.heading6, + color: '#e06c75', + fontSize: '18px', + fontWeight: '700' + }, + ]); +}; diff --git a/typecho/write/js/index.js b/typecho/write/js/index.js index 74ed031..b430679 100644 --- a/typecho/write/js/index.js +++ b/typecho/write/js/index.js @@ -2,11 +2,11 @@ import { EditorView, keymap, highlightActiveLine } from '@codemirror/view'; import { EditorState } from '@codemirror/state'; import { bracketMatching } from '@codemirror/matchbrackets'; import { closeBrackets, closeBracketsKeymap } from '@codemirror/closebrackets'; -import { defaultKeymap, defaultTabBinding } from '@codemirror/commands'; +import { defaultKeymap, indentLess, indentMore } from '@codemirror/commands'; import { history, historyKeymap } from '@codemirror/history'; -import { classHighlightStyle } from '@codemirror/highlight'; import { markdown, markdownLanguage } from '@codemirror/lang-markdown'; import { languages } from '@codemirror/language-data'; +import theme from './_theme'; import tools from './_tools'; import JoeAction from './_actions'; import createPreviewHtml from './_create'; @@ -14,7 +14,18 @@ import createPreviewHtml from './_create'; class Joe extends JoeAction { constructor() { super(); - this.plugins = [classHighlightStyle, history(), bracketMatching(), closeBrackets(), highlightActiveLine()]; + this.plugins = [theme(), history(), bracketMatching(), closeBrackets(), highlightActiveLine()]; + this.keymaps = [ + { + key: 'Tab', + run: ({ state, dispatch }) => { + if (state.selection.ranges.some(r => !r.empty)) return indentMore({ state, dispatch }); + dispatch(state.update(state.replaceSelection(' '), { scrollIntoView: true })); + return true; + }, + shift: indentLess + } + ]; this._isPasting = false; this.init_ViewPort(); this.init_Editor(); @@ -56,7 +67,7 @@ class Joe extends JoeAction { base: markdownLanguage, codeLanguages: languages }), - keymap.of([defaultTabBinding, ...closeBracketsKeymap, ...defaultKeymap, ...historyKeymap]), + keymap.of([...this.keymaps, ...closeBracketsKeymap, ...defaultKeymap, ...historyKeymap]), EditorView.updateListener.of(update => { if (!update.docChanged) return; if (_temp !== update.state.doc.toString()) { @@ -134,8 +145,7 @@ class Joe extends JoeAction { } } }) - ], - tabSize: 4 + ] }) }); $('.cm-mainer').prepend(cm.dom); diff --git a/typecho/write/package.json b/typecho/write/package.json index e44d4d7..14a4ed3 100644 --- a/typecho/write/package.json +++ b/typecho/write/package.json @@ -11,7 +11,7 @@ "@codemirror/language-data": "^0.18.0", "@codemirror/matchbrackets": "^0.18.0", "@codemirror/state": "^0.18.7", - "@codemirror/view": "^0.18.14", + "@codemirror/view": "^0.18.15", "@rollup/plugin-node-resolve": "^13.0.0", "rollup-plugin-uglify": "^6.0.4" }