1?v.onMatch=this.$applyToken:v.onMatch=v.token),D>1&&(/\\\d/.test(v.regex)?E=v.regex.replace(/\\([0-9]+)/g,function(C,w){return"\\"+(parseInt(w,10)+f+1)}):(D=1,E=this.removeCapturingGroups(v.regex)),!v.splitRegex&&typeof v.token!="string"&&y.push(v)),p[f]=b,f+=D,d.push(E),v.onMatch||(v.onMatch=null)}}d.length||(p[0]=0,d.push("$")),y.forEach(function(C){C.splitRegex=this.createSplitterRegexp(C.regex,g)},this),this.regExps[c]=new RegExp("("+d.join(")|(")+")|($)",g)}}return l.prototype.$setMaxTokenCount=function(u){o=u|0},l.prototype.$applyToken=function(u){var c=this.splitRegex.exec(u).slice(1),h=this.token.apply(this,c);if(typeof h=="string")return[{type:h,value:u}];for(var d=[],f=0,p=h.length;fv){var $=u.substring(v,A-T.length);D.type==C?D.value+=$:(D.type&&b.push(D),D={type:C,value:$})}for(var N=0;No){for(E>2*u.length&&this.reportError("infinite loop with in ace tokenizer",{startState:c,line:u});v1&&h[0]!==d&&h.unshift("#tmp",d),{tokens:b,state:h.length?h:d}},l}();a.prototype.reportError=s,n.Tokenizer=a}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/deep_copy"],function(r,n,i){var s=r("../lib/deep_copy").deepCopy,o;o=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}},(function(){this.addRules=function(u,c){if(!c){for(var h in u)this.$rules[h]=u[h];return}for(var h in u){for(var d=u[h],f=0;f=this.$rowTokens.length;){if(this.$row+=1,l||(l=this.$session.getLength()),this.$row>=l)return this.$row=l-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},a.prototype.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},a.prototype.getCurrentTokenRow=function(){return this.$row},a.prototype.getCurrentTokenColumn=function(){var l=this.$rowTokens,u=this.$tokenIndex,c=l[u].start;if(c!==void 0)return c;for(c=0;u>0;)u-=1,c+=l[u].value.length;return c},a.prototype.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},a.prototype.getCurrentTokenRange=function(){var l=this.$rowTokens[this.$tokenIndex],u=this.getCurrentTokenColumn();return new s(this.$row,u,this.$row,u+l.value.length)},a}();n.TokenIterator=o}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(r,n,i){var s=r("../../lib/oop"),o=r("../behaviour").Behaviour,a=r("../../token_iterator").TokenIterator,l=r("../../lib/lang"),u=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],h,d={},f={'"':'"',"'":"'"},p=function(b){var v=-1;if(b.multiSelect&&(v=b.selection.index,d.rangeCount!=b.multiSelect.rangeCount&&(d={rangeCount:b.multiSelect.rangeCount})),d[v])return h=d[v];h=d[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},g=function(b,v,E,D){var C=b.end.row-b.start.row;return{text:E+v+D,selection:[0,b.start.column+1,C,b.end.column+(C?0:1)]}},y;y=function(b){b=b||{},this.add("braces","insertion",function(v,E,D,C,w){var T=D.getCursorPosition(),A=C.doc.getLine(T.row);if(w=="{"){p(D);var $=D.getSelectionRange(),N=C.doc.getTextRange($),I=C.getTokenAt(T.row,T.column);if(N!==""&&N!=="{"&&D.getWrapBehavioursEnabled())return g($,N,"{","}");if(I&&/(?:string)\.quasi|\.xml/.test(I.type)){var L=[/tag\-(?:open|name)/,/attribute\-name/];return L.some(function(G){return G.test(I.type)})||/(string)\.quasi/.test(I.type)&&I.value[T.column-I.start-1]!=="$"?void 0:(y.recordAutoInsert(D,C,"}"),{text:"{}",selection:[1,1]})}else if(y.isSaneInsertion(D,C))return/[\]\}\)]/.test(A[T.column])||D.inMultiSelectMode||b.braces?(y.recordAutoInsert(D,C,"}"),{text:"{}",selection:[1,1]}):(y.recordMaybeInsert(D,C,"{"),{text:"{",selection:[1,1]})}else if(w=="}"){p(D);var P=A.substring(T.column,T.column+1);if(P=="}"){var F=C.$findOpeningBracket("}",{column:T.column+1,row:T.row});if(F!==null&&y.isAutoInsertedClosing(T,A,w))return y.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(w==`
+`||w==`\r
+`){p(D);var _="";y.isMaybeInsertedClosing(T,A)&&(_=l.stringRepeat("}",h.maybeInsertedBrackets),y.clearMaybeInsertedClosing());var P=A.substring(T.column,T.column+1);if(P==="}"){var M=C.findMatchingBracket({row:T.row,column:T.column+1},"}");if(!M)return null;var z=this.$getIndent(C.getLine(M.row))}else if(_)var z=this.$getIndent(A);else{y.clearMaybeInsertedClosing();return}var R=z+C.getTabString();return{text:`
+`+R+`
+`+z+_,selection:[1,R.length,1,R.length]}}else y.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,E,D,C,w){var T=C.doc.getTextRange(w);if(!w.isMultiLine()&&T=="{"){p(D);var A=C.doc.getLine(w.start.row),$=A.substring(w.end.column,w.end.column+1);if($=="}")return w.end.column++,w;h.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,E,D,C,w){if(w=="("){p(D);var T=D.getSelectionRange(),A=C.doc.getTextRange(T);if(A!==""&&D.getWrapBehavioursEnabled())return g(T,A,"(",")");if(y.isSaneInsertion(D,C))return y.recordAutoInsert(D,C,")"),{text:"()",selection:[1,1]}}else if(w==")"){p(D);var $=D.getCursorPosition(),N=C.doc.getLine($.row),I=N.substring($.column,$.column+1);if(I==")"){var L=C.$findOpeningBracket(")",{column:$.column+1,row:$.row});if(L!==null&&y.isAutoInsertedClosing($,N,w))return y.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,E,D,C,w){var T=C.doc.getTextRange(w);if(!w.isMultiLine()&&T=="("){p(D);var A=C.doc.getLine(w.start.row),$=A.substring(w.start.column+1,w.start.column+2);if($==")")return w.end.column++,w}}),this.add("brackets","insertion",function(v,E,D,C,w){if(w=="["){p(D);var T=D.getSelectionRange(),A=C.doc.getTextRange(T);if(A!==""&&D.getWrapBehavioursEnabled())return g(T,A,"[","]");if(y.isSaneInsertion(D,C))return y.recordAutoInsert(D,C,"]"),{text:"[]",selection:[1,1]}}else if(w=="]"){p(D);var $=D.getCursorPosition(),N=C.doc.getLine($.row),I=N.substring($.column,$.column+1);if(I=="]"){var L=C.$findOpeningBracket("]",{column:$.column+1,row:$.row});if(L!==null&&y.isAutoInsertedClosing($,N,w))return y.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,E,D,C,w){var T=C.doc.getTextRange(w);if(!w.isMultiLine()&&T=="["){p(D);var A=C.doc.getLine(w.start.row),$=A.substring(w.start.column+1,w.start.column+2);if($=="]")return w.end.column++,w}}),this.add("string_dquotes","insertion",function(v,E,D,C,w){var T=C.$mode.$quotes||f;if(w.length==1&&T[w]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(w)!=-1)return;p(D);var A=w,$=D.getSelectionRange(),N=C.doc.getTextRange($);if(N!==""&&(N.length!=1||!T[N])&&D.getWrapBehavioursEnabled())return g($,N,A,A);if(!N){var I=D.getCursorPosition(),L=C.doc.getLine(I.row),P=L.substring(I.column-1,I.column),F=L.substring(I.column,I.column+1),_=C.getTokenAt(I.row,I.column),M=C.getTokenAt(I.row,I.column+1);if(P=="\\"&&_&&/escape/.test(_.type))return null;var z=_&&/string|escape/.test(_.type),R=!M||/string|escape/.test(M.type),G;if(F==A)G=z!==R,G&&/string\.end/.test(M.type)&&(G=!1);else{if(z&&!R||z&&R)return null;var q=C.$mode.tokenRe;q.lastIndex=0;var ee=q.test(P);q.lastIndex=0;var Y=q.test(F),X=C.$mode.$pairQuotesAfter,Q=X&&X[A]&&X[A].test(P);if(!Q&&ee||Y||F&&!/[\s;,.})\]\\]/.test(F))return null;var te=L[I.column-2];if(P==A&&(te==A||q.test(te)))return null;G=!0}return{text:G?A+A:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,E,D,C,w){var T=C.$mode.$quotes||f,A=C.doc.getTextRange(w);if(!w.isMultiLine()&&T.hasOwnProperty(A)){p(D);var $=C.doc.getLine(w.start.row),N=$.substring(w.start.column+1,w.start.column+2);if(N==A)return w.end.column++,w}}),b.closeDocComment!==!1&&this.add("doc comment end","insertion",function(v,E,D,C,w){if(v==="doc-start"&&(w===`
+`||w===`\r
+`)&&D.selection.isEmpty()){var T=D.getCursorPosition(),A=C.doc.getLine(T.row),$=C.doc.getLine(T.row+1),N=this.$getIndent(A);if(/\s*\*/.test($))return/^\s*\*/.test(A)?{text:w+N+"* ",selection:[1,3+N.length,1,3+N.length]}:{text:w+N+" * ",selection:[1,3+N.length,1,3+N.length]};if(/\/\*\*/.test(A.substring(0,T.column)))return{text:w+N+" * "+w+" "+N+"*/",selection:[1,4+N.length,1,4+N.length]}}})},y.isSaneInsertion=function(b,v){var E=b.getCursorPosition(),D=new a(v,E.row,E.column);if(!this.$matchTokenType(D.getCurrentToken()||"text",u)){if(/[)}\]]/.test(b.session.getLine(E.row)[E.column]))return!0;var C=new a(v,E.row,E.column+1);if(!this.$matchTokenType(C.getCurrentToken()||"text",u))return!1}return D.stepForward(),D.getCurrentTokenRow()!==E.row||this.$matchTokenType(D.getCurrentToken()||"text",c)},y.$matchTokenType=function(b,v){return v.indexOf(b.type||b)>-1},y.recordAutoInsert=function(b,v,E){var D=b.getCursorPosition(),C=v.doc.getLine(D.row);this.isAutoInsertedClosing(D,C,h.autoInsertedLineEnd[0])||(h.autoInsertedBrackets=0),h.autoInsertedRow=D.row,h.autoInsertedLineEnd=E+C.substr(D.column),h.autoInsertedBrackets++},y.recordMaybeInsert=function(b,v,E){var D=b.getCursorPosition(),C=v.doc.getLine(D.row);this.isMaybeInsertedClosing(D,C)||(h.maybeInsertedBrackets=0),h.maybeInsertedRow=D.row,h.maybeInsertedLineStart=C.substr(0,D.column)+E,h.maybeInsertedLineEnd=C.substr(D.column),h.maybeInsertedBrackets++},y.isAutoInsertedClosing=function(b,v,E){return h.autoInsertedBrackets>0&&b.row===h.autoInsertedRow&&E===h.autoInsertedLineEnd[0]&&v.substr(b.column)===h.autoInsertedLineEnd},y.isMaybeInsertedClosing=function(b,v){return h.maybeInsertedBrackets>0&&b.row===h.maybeInsertedRow&&v.substr(b.column)===h.maybeInsertedLineEnd&&v.substr(0,b.column)==h.maybeInsertedLineStart},y.popAutoInsertedClosing=function(){h.autoInsertedLineEnd=h.autoInsertedLineEnd.substr(1),h.autoInsertedBrackets--},y.clearMaybeInsertedClosing=function(){h&&(h.maybeInsertedBrackets=0,h.maybeInsertedRow=-1)},s.inherits(y,o),n.CstyleBehaviour=y}),ace.define("ace/unicode",["require","exports","module"],function(r,n,i){for(var s=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],o=0,a=[],l=0;l2?te%w!=w-1:te%w==0}}else{if(!this.blockComment)return!1;var A=this.blockComment.start,$=this.blockComment.end,N=new RegExp("^(\\s*)(?:"+c.escapeRegExp(A)+")"),I=new RegExp("(?:"+c.escapeRegExp($)+")\\s*$"),L=function(G,q){F(G,q)||(!E||/\S/.test(G))&&(v.insertInLine({row:q,column:G.length},$),v.insertInLine({row:q,column:C},A))},P=function(G,q){var ee;(ee=G.match(I))&&v.removeInLine(q,G.length-ee[0].length,G.length),(ee=G.match(N))&&v.removeInLine(q,ee[1].length,ee[0].length)},F=function(G,q){if(N.test(G))return!0;for(var ee=g.getTokens(q),Y=0;YG.length&&(R=G.length)}),C==1/0&&(C=R,E=!1,D=!1),T&&C%w!=0&&(C=Math.floor(C/w)*w),z(D?P:L)},this.toggleBlockComment=function(p,g,y,b){var v=this.blockComment;if(v){!v.start&&v[0]&&(v=v[0]);var E=new h(g,b.row,b.column),D=E.getCurrentToken();g.selection;var C=g.selection.toOrientedRange(),w,T;if(D&&/comment/.test(D.type)){for(var A,$;D&&/comment/.test(D.type);){var N=D.value.indexOf(v.start);if(N!=-1){var I=E.getCurrentTokenRow(),L=E.getCurrentTokenColumn()+N;A=new d(I,L,I,L+v.start.length);break}D=E.stepBackward()}for(var E=new h(g,b.row,b.column),D=E.getCurrentToken();D&&/comment/.test(D.type);){var N=D.value.indexOf(v.end);if(N!=-1){var I=E.getCurrentTokenRow(),L=E.getCurrentTokenColumn()+N;$=new d(I,L,I,L+v.end.length);break}D=E.stepForward()}$&&g.remove($),A&&(g.remove(A),w=A.start.row,T=-v.start.length)}else T=v.start.length,w=y.start.row,g.insert(y.end,v.end),g.insert(y.start,v.start);C.start.row==w&&(C.start.column+=T),C.end.row==w&&(C.end.column+=T),g.selection.fromOrientedRange(C)}},this.getNextLineIndent=function(p,g,y){return this.$getIndent(g)},this.checkOutdent=function(p,g,y){return!1},this.autoOutdent=function(p,g,y){},this.$getIndent=function(p){return p.match(/^\s*/)[0]},this.createWorker=function(p){return null},this.createModeDelegates=function(p){this.$embeds=[],this.$modes={};for(var g in p)if(p[g]){var y=p[g],b=y.prototype.$id,v=s.$modes[b];v||(s.$modes[b]=v=new y),s.$modes[g]||(s.$modes[g]=v),this.$embeds.push(g),this.$modes[g]=v}for(var E=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],D=function(w){(function(T){var A=E[w],$=T[A];T[E[w]]=function(){return this.$delegator(A,arguments,$)}})(C)},C=this,g=0;gthis.row)){var d=u(h,{row:this.row,column:this.column},this.$insertRight);this.setPosition(d.row,d.column,!0)}},c.prototype.setPosition=function(h,d,f){var p;if(f?p={row:h,column:d}:p=this.$clipPositionToDocument(h,d),!(this.row==p.row&&this.column==p.column)){var g={row:this.row,column:this.column};this.row=p.row,this.column=p.column,this._signal("change",{old:g,value:p})}},c.prototype.detach=function(){this.document.off("change",this.$onChange)},c.prototype.attach=function(h){this.document=h||this.document,this.document.on("change",this.$onChange)},c.prototype.$clipPositionToDocument=function(h,d){var f={};return h>=this.document.getLength()?(f.row=Math.max(0,this.document.getLength()-1),f.column=this.document.getLine(f.row).length):h<0?(f.row=0,f.column=0):(f.row=h,f.column=Math.min(this.document.getLine(f.row).length,Math.max(0,d))),d<0&&(f.column=0),f},c}();a.prototype.$insertRight=!1,s.implement(a.prototype,o);function l(c,h,d){var f=d?c.column<=h.column:c.column=p&&(d=p-1,f=void 0);var g=this.getLine(d);return f==null&&(f=g.length),f=Math.min(Math.max(f,0),g.length),{row:d,column:f}},h.prototype.clonePos=function(d){return{row:d.row,column:d.column}},h.prototype.pos=function(d,f){return{row:d,column:f}},h.prototype.$clipPosition=function(d){var f=this.getLength();return d.row>=f?(d.row=Math.max(0,f-1),d.column=this.getLine(f-1).length):(d.row=Math.max(0,d.row),d.column=Math.min(Math.max(d.column,0),this.getLine(d.row).length)),d},h.prototype.insertFullLines=function(d,f){d=Math.min(Math.max(d,0),this.getLength());var p=0;d0,g=f=0&&this.applyDelta({start:this.pos(d,this.getLine(d).length),end:this.pos(d+1,0),action:"remove",lines:["",""]})},h.prototype.replace=function(d,f){if(d instanceof l||(d=l.fromPoints(d.start,d.end)),f.length===0&&d.isEmpty())return d.start;if(f==this.getTextRange(d))return d.end;this.remove(d);var p;return f?p=this.insert(d.start,f):p=d.start,p},h.prototype.applyDeltas=function(d){for(var f=0;f=0;f--)this.revertDelta(d[f])},h.prototype.applyDelta=function(d,f){var p=d.action=="insert";(p?d.lines.length<=1&&!d.lines[0]:!l.comparePoints(d.start,d.end))||(p&&d.lines.length>2e4?this.$splitAndapplyLargeDelta(d,2e4):(o(this.$lines,d,f),this._signal("change",d)))},h.prototype.$safeApplyDelta=function(d){var f=this.$lines.length;(d.action=="remove"&&d.start.row20){h.running=setTimeout(h.$worker,20);break}}h.currentLine=f,p==-1&&(p=f),y<=p&&h.fireUpdateEvent(y,p)}}}return l.prototype.setTokenizer=function(u){this.tokenizer=u,this.lines=[],this.states=[],this.start(0)},l.prototype.setDocument=function(u){this.doc=u,this.lines=[],this.states=[],this.stop()},l.prototype.fireUpdateEvent=function(u,c){var h={first:u,last:c};this._signal("update",{data:h})},l.prototype.start=function(u){this.currentLine=Math.min(u||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},l.prototype.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},l.prototype.$updateOnChange=function(u){var c=u.start.row,h=u.end.row-c;if(h===0)this.lines[c]=null;else if(u.action=="remove")this.lines.splice(c,h+1,null),this.states.splice(c,h+1,null);else{var d=Array(h+1);d.unshift(c,1),this.lines.splice.apply(this.lines,d),this.states.splice.apply(this.states,d)}this.currentLine=Math.min(c,this.currentLine,this.doc.getLength()),this.stop()},l.prototype.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},l.prototype.getTokens=function(u){return this.lines[u]||this.$tokenizeRow(u)},l.prototype.getState=function(u){return this.currentLine==u&&this.$tokenizeRow(u),this.states[u]||"start"},l.prototype.$tokenizeRow=function(u){var c=this.doc.getLine(u),h=this.states[u-1],d=this.tokenizer.getLineTokens(c,h,u);return this.states[u]+""!=d.state+""?(this.states[u]=d.state,this.lines[u+1]=null,this.currentLine>u+1&&(this.currentLine=u+1)):this.currentLine==u&&(this.currentLine=u+1),this.lines[u]=d.tokens},l.prototype.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()},l}();s.implement(a.prototype,o),n.BackgroundTokenizer=a}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/range"],function(r,n,i){var s=r("./lib/lang"),o=r("./range").Range,a=function(){function l(u,c,h){h===void 0&&(h="text"),this.setRegexp(u),this.clazz=c,this.type=h}return l.prototype.setRegexp=function(u){this.regExp+""!=u+""&&(this.regExp=u,this.cache=[])},l.prototype.update=function(u,c,h,d){if(this.regExp)for(var f=d.firstRow,p=d.lastRow,g={},y=f;y<=p;y++){var b=this.cache[y];b==null&&(b=s.getMatchOffsets(h.getLine(y),this.regExp),b.length>this.MAX_RANGES&&(b=b.slice(0,this.MAX_RANGES)),b=b.map(function(C){return new o(y,C.offset,y,C.offset+C.length)}),this.cache[y]=b.length?b:"");for(var v=b.length;v--;){var E=b[v].toScreenRange(h),D=E.toString();g[D]||(g[D]=!0,c.drawSingleLineMarker(u,E,this.clazz,d))}}},l}();a.prototype.MAX_RANGES=500,n.SearchHighlight=a}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(r,n,i){var s=function(){function C(){this.$keepRedoStack,this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()}return C.prototype.addSession=function(w){this.$session=w},C.prototype.add=function(w,T,A){if(!this.$fromUndo&&w!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),T===!1||!this.lastDeltas){this.lastDeltas=[];var $=this.$undoStack.length;$>this.$undoDepth-1&&this.$undoStack.splice(0,$-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),w.id=this.$rev=++this.$maxRev}(w.action=="remove"||w.action=="insert")&&(this.$lastDelta=w),this.lastDeltas.push(w)}},C.prototype.addSelection=function(w,T){this.selections.push({value:w,rev:T||this.$rev})},C.prototype.startNewGroup=function(){return this.lastDeltas=null,this.$rev},C.prototype.markIgnored=function(w,T){T==null&&(T=this.$rev+1);for(var A=this.$undoStack,$=A.length;$--;){var N=A[$][0];if(N.id<=w)break;N.id0},C.prototype.canRedo=function(){return this.$redoStack.length>0},C.prototype.bookmark=function(w){w==null&&(w=this.$rev),this.mark=w},C.prototype.isAtBookmark=function(){return this.$rev===this.mark},C.prototype.toJSON=function(){return{$redoStack:this.$redoStack,$undoStack:this.$undoStack}},C.prototype.fromJSON=function(w){this.reset(),this.$undoStack=w.$undoStack,this.$redoStack=w.$redoStack},C.prototype.$prettyPrint=function(w){return w?h(w):h(this.$undoStack)+`
+---
+`+h(this.$redoStack)},C}();s.prototype.hasUndo=s.prototype.canUndo,s.prototype.hasRedo=s.prototype.canRedo,s.prototype.isClean=s.prototype.isAtBookmark,s.prototype.markClean=s.prototype.bookmark;function o(C,w){for(var T=w;T--;){var A=C[T];if(A&&!A[0].ignore){for(;T"+C.end.row+":"+C.end.column}function f(C,w){var T=C.action=="insert",A=w.action=="insert";if(T&&A)if(l(w.start,C.end)>=0)y(w,C,-1);else if(l(w.start,C.start)<=0)y(C,w,1);else return null;else if(T&&!A)if(l(w.start,C.end)>=0)y(w,C,-1);else if(l(w.end,C.start)<=0)y(C,w,-1);else return null;else if(!T&&A)if(l(w.start,C.start)>=0)y(w,C,1);else if(l(w.start,C.start)<=0)y(C,w,1);else return null;else if(!T&&!A)if(l(w.start,C.start)>=0)y(w,C,1);else if(l(w.end,C.start)<=0)y(C,w,-1);else return null;return[w,C]}function p(C,w){for(var T=C.length;T--;)for(var A=0;A=0?y(C,w,-1):(l(C.start,w.start)<=0||y(C,a.fromPoints(w.start,C.start),-1),y(w,C,1));else if(!T&&A)l(w.start,C.end)>=0?y(w,C,-1):(l(w.start,C.start)<=0||y(w,a.fromPoints(C.start,w.start),-1),y(C,w,1));else if(!T&&!A)if(l(w.start,C.end)>=0)y(w,C,-1);else if(l(w.end,C.start)<=0)y(C,w,-1);else{var $,N;return l(C.start,w.start)<0&&($=C,C=v(C,w.start)),l(C.end,w.end)>0&&(N=v(C,w.end)),b(w.end,C.start,C.end,-1),N&&!$&&(C.lines=N.lines,C.start=N.start,C.end=N.end,N=C),[w,$,N].filter(Boolean)}return[w,C]}function y(C,w,T){b(C.start,w.start,w.end,T),b(C.end,w.start,w.end,T)}function b(C,w,T,A){C.row==(A==1?w:T).row&&(C.column+=A*(T.column-w.column)),C.row+=A*(T.row-w.row)}function v(C,w){var T=C.lines,A=C.end;C.end=u(w);var $=C.end.row-C.start.row,N=T.splice($,T.length),I=$?w.column:w.column-C.start.column;T.push(N[0].substring(0,I)),N[0]=N[0].substr(I);var L={start:u(w),end:A,lines:N,action:C.action};return L}function E(C,w){w=c(w);for(var T=C.length;T--;){for(var A=C[T],$=0;$this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(l),this.folds.sort(function(u,c){return-u.range.compareEnd(c.start.row,c.start.column)}),this.range.compareEnd(l.start.row,l.start.column)>0?(this.end.row=l.end.row,this.end.column=l.end.column):this.range.compareStart(l.end.row,l.end.column)<0&&(this.start.row=l.start.row,this.start.column=l.start.column)}else if(l.start.row==this.end.row)this.folds.push(l),this.end.row=l.end.row,this.end.column=l.end.column;else if(l.end.row==this.start.row)this.folds.unshift(l),this.start.row=l.start.row,this.start.column=l.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");l.foldLine=this},a.prototype.containsRow=function(l){return l>=this.start.row&&l<=this.end.row},a.prototype.walk=function(l,u,c){var h=0,d=this.folds,f,p,g,y=!0;u==null&&(u=this.end.row,c=this.end.column);for(var b=0;b0)){var y=o(u,p.start);return g===0?c&&y!==0?-f-2:f:y>0||y===0&&!c?f:-f-1}}return-f-1},l.prototype.add=function(u){var c=!u.isEmpty(),h=this.pointIndex(u.start,c);h<0&&(h=-h-1);var d=this.pointIndex(u.end,c,h);return d<0?d=-d-1:d++,this.ranges.splice(h,d-h,u)},l.prototype.addList=function(u){for(var c=[],h=u.length;h--;)c.push.apply(c,this.add(u[h]));return c},l.prototype.substractPoint=function(u){var c=this.pointIndex(u);if(c>=0)return this.ranges.splice(c,1)},l.prototype.merge=function(){var u=[],c=this.ranges;c=c.sort(function(g,y){return o(g.start,y.start)});for(var h=c[0],d,f=1;f=0},l.prototype.containsPoint=function(u){return this.pointIndex(u)>=0},l.prototype.rangeAtPoint=function(u){var c=this.pointIndex(u);if(c>=0)return this.ranges[c]},l.prototype.clipRows=function(u,c){var h=this.ranges;if(h[0].start.row>c||h[h.length-1].start.row=d)break}if(u.action=="insert")for(var v=f-d,E=-c.column+h.column;gd)break;if(b.start.row==d&&b.start.column>=c.column&&(b.start.column==c.column&&this.$bias<=0||(b.start.column+=E,b.start.row+=v)),b.end.row==d&&b.end.column>=c.column){if(b.end.column==c.column&&this.$bias<0)continue;b.end.column==c.column&&E>0&&gb.start.column&&b.end.column==p[g+1].start.column&&(b.end.column-=E),b.end.column+=E,b.end.row+=v}}else for(var v=d-f,E=c.column-h.column;gf)break;b.end.rowc.column)&&(b.end.column=c.column,b.end.row=c.row):(b.end.column+=E,b.end.row+=v):b.end.row>f&&(b.end.row+=v),b.start.rowc.column)&&(b.start.column=c.column,b.start.row=c.row):(b.start.column+=E,b.start.row+=v):b.start.row>f&&(b.start.row+=v)}if(v!=0&&g=h)return g;if(g.end.row>h)return null}return null},this.getNextFoldLine=function(h,d){var f=this.$foldData,p=0;for(d&&(p=f.indexOf(d)),p==-1&&(p=0),p;p=h)return g}return null},this.getFoldedRowCount=function(h,d){for(var f=this.$foldData,p=d-h+1,g=0;g=d){v=h?p-=d-v:p=0);break}else b>=h&&(v>=h?p-=b-v:p-=b-h+1)}return p},this.$addFoldLine=function(h){return this.$foldData.push(h),this.$foldData.sort(function(d,f){return d.start.row-f.start.row}),h},this.addFold=function(h,d){var f=this.$foldData,p=!1,g;h instanceof a?g=h:(g=new a(d,h),g.collapseChildren=d.collapseChildren),this.$clipRangeToDocument(g.range);var y=g.start.row,b=g.start.column,v=g.end.row,E=g.end.column,D=this.getFoldAt(y,b,1),C=this.getFoldAt(v,E,-1);if(D&&C==D)return D.addSubFold(g);D&&!D.range.isStart(y,b)&&this.removeFold(D),C&&!C.range.isEnd(v,E)&&this.removeFold(C);var w=this.getFoldsInRange(g.range);w.length>0&&(this.removeFolds(w),g.collapseChildren||w.forEach(function(N){g.addSubFold(N)}));for(var T=0;T0&&this.foldAll(h.start.row+1,h.end.row,h.collapseChildren-1),h.subFolds=[]},this.expandFolds=function(h){h.forEach(function(d){this.expandFold(d)},this)},this.unfold=function(h,d){var f,p;if(h==null)f=new s(0,0,this.getLength(),0),d==null&&(d=!0);else if(typeof h=="number")f=new s(h,0,h,this.getLine(h).length);else if("row"in h)f=s.fromPoints(h,h);else{if(Array.isArray(h))return p=[],h.forEach(function(y){p=p.concat(this.unfold(y))},this),p;f=h}p=this.getFoldsInRangeList(f);for(var g=p;p.length==1&&s.comparePoints(p[0].start,f.start)<0&&s.comparePoints(p[0].end,f.end)>0;)this.expandFolds(p),p=this.getFoldsInRangeList(f);if(d!=!1?this.removeFolds(p):this.expandFolds(p),g.length)return g},this.isRowFolded=function(h,d){return!!this.getFoldLine(h,d)},this.getRowFoldEnd=function(h,d){var f=this.getFoldLine(h,d);return f?f.end.row:h},this.getRowFoldStart=function(h,d){var f=this.getFoldLine(h,d);return f?f.start.row:h},this.getFoldDisplayLine=function(h,d,f,p,g){p==null&&(p=h.start.row),g==null&&(g=0),d==null&&(d=h.end.row),f==null&&(f=this.getLine(d).length);var y=this.doc,b="";return h.walk(function(v,E,D,C){if(!(EE)break;while(g&&b.test(g.type)&&!/^comment.start/.test(g.type));g=p.stepBackward()}else g=p.getCurrentToken();return v.end.row=p.getCurrentTokenRow(),v.end.column=p.getCurrentTokenColumn(),/^comment.end/.test(g.type)||(v.end.column+=g.value.length-2),v}},this.foldAll=function(h,d,f,p){f==null&&(f=1e5);var g=this.foldWidgets;if(g){d=d||this.getLength(),h=h||0;for(var y=h;y=h&&(y=b.end.row,b.collapseChildren=f,this.addFold("...",b))}}},this.foldToLevel=function(h){for(this.foldAll();h-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var h=this;this.foldAll(null,null,null,function(d){for(var f=h.getTokens(d),p=0;p=0;){var y=f[p];if(y==null&&(y=f[p]=this.getFoldWidget(p)),y=="start"){var b=this.getFoldWidgetRange(p);if(g||(g=b),b&&b.end.row>=h)break}p--}return{range:p!==-1&&b,firstRange:g}},this.onFoldWidgetClick=function(h,d){d instanceof u&&(d=d.domEvent);var f={children:d.shiftKey,all:d.ctrlKey||d.metaKey,siblings:d.altKey},p=this.$toggleFoldWidget(h,f);if(!p){var g=d.target||d.srcElement;g&&/ace_fold-widget/.test(g.className)&&(g.className+=" ace_invalid")}},this.$toggleFoldWidget=function(h,d){if(this.getFoldWidget){var f=this.getFoldWidget(h),p=this.getLine(h),g=f==="end"?-1:1,y=this.getFoldAt(h,g===-1?0:p.length,g);if(y)return d.children||d.all?this.removeFold(y):this.expandFold(y),y;var b=this.getFoldWidgetRange(h,!0);if(b&&!b.isMultiLine()&&(y=this.getFoldAt(b.start.row,b.start.column,1),y&&b.isEqual(y.range)))return this.removeFold(y),y;if(d.siblings){var v=this.getParentFoldRangeData(h);if(v.range)var E=v.range.start.row+1,D=v.range.end.row;this.foldAll(E,D,d.all?1e4:0)}else d.children?(D=b?b.end.row:this.getLength(),this.foldAll(h+1,D,d.all?1e4:0)):b&&(d.all&&(b.collapseChildren=1e4),this.addFold("...",b));return b}},this.toggleFoldWidget=function(h){var d=this.selection.getCursor().row;d=this.getRowFoldStart(d);var f=this.$toggleFoldWidget(d,{});if(!f){var p=this.getParentFoldRangeData(d,!0);if(f=p.range||p.firstRange,f){d=f.start.row;var g=this.getFoldAt(d,this.getLine(d).length,1);g?this.removeFold(g):this.addFold("...",f)}}},this.updateFoldWidgets=function(h){var d=h.start.row,f=h.end.row-d;if(f===0)this.foldWidgets[d]=null;else if(h.action=="remove")this.foldWidgets.splice(d,f+1,null);else{var p=Array(f+1);p.unshift(d,1),this.foldWidgets.splice.apply(this.foldWidgets,p)}},this.tokenizerUpdateFoldWidgets=function(h){var d=h.data;d.first!=d.last&&this.foldWidgets.length>d.first&&this.foldWidgets.splice(d.first,this.foldWidgets.length)}}n.Folding=c}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(r,n,i){var s=r("../token_iterator").TokenIterator,o=r("../range").Range;function a(){this.findMatchingBracket=function(l,u){if(l.column==0)return null;var c=u||this.getLine(l.row).charAt(l.column-1);if(c=="")return null;var h=c.match(/([\(\[\{])|([\)\]\}])/);return h?h[1]?this.$findClosingBracket(h[1],l):this.$findOpeningBracket(h[2],l):null},this.getBracketRange=function(l){var u=this.getLine(l.row),c=!0,h,d=u.charAt(l.column-1),f=d&&d.match(/([\(\[\{])|([\)\]\}])/);if(f||(d=u.charAt(l.column),l={row:l.row,column:l.column+1},f=d&&d.match(/([\(\[\{])|([\)\]\}])/),c=!1),!f)return null;if(f[1]){var p=this.$findClosingBracket(f[1],l);if(!p)return null;h=o.fromPoints(l,p),c||(h.end.column++,h.start.column--),h.cursor=h.end}else{var p=this.$findOpeningBracket(f[2],l);if(!p)return null;h=o.fromPoints(p,l),c||(h.start.column++,h.end.column--),h.cursor=h.start}return h},this.getMatchingBracketRanges=function(l,u){var c=this.getLine(l.row),h=/([\(\[\{])|([\)\]\}])/,d=!u&&c.charAt(l.column-1),f=d&&d.match(h);if(f||(d=(u===void 0||u)&&c.charAt(l.column),l={row:l.row,column:l.column+1},f=d&&d.match(h)),!f)return null;var p=new o(l.row,l.column-1,l.row,l.column),g=f[1]?this.$findClosingBracket(f[1],l):this.$findOpeningBracket(f[2],l);if(!g)return[p];var y=new o(g.row,g.column,g.row,g.column+1);return[p,y]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(l,u,c){var h=this.$brackets[l],d=1,f=new s(this,u.row,u.column),p=f.getCurrentToken();if(p||(p=f.stepForward()),!!p){c||(c=new RegExp("(\\.?"+p.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)").replace(/-close\b/,"-(close|open)")+")+"));for(var g=u.column-f.getCurrentTokenColumn()-2,y=p.value;;){for(;g>=0;){var b=y.charAt(g);if(b==h){if(d-=1,d==0)return{row:f.getCurrentTokenRow(),column:g+f.getCurrentTokenColumn()}}else b==l&&(d+=1);g-=1}do p=f.stepBackward();while(p&&!c.test(p.type));if(p==null)break;y=p.value,g=y.length-1}return null}},this.$findClosingBracket=function(l,u,c){var h=this.$brackets[l],d=1,f=new s(this,u.row,u.column),p=f.getCurrentToken();if(p||(p=f.stepForward()),!!p){c||(c=new RegExp("(\\.?"+p.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)").replace(/-open\b/,"-(close|open)")+")+"));for(var g=u.column-f.getCurrentTokenColumn();;){for(var y=p.value,b=y.length;g"?h=!0:u.type.indexOf("tag-name")!==-1&&(c=!0));while(u&&!c);return u},this.$findClosingTag=function(l,u){var c,h=u.value,d=u.value,f=0,p=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);u=l.stepForward();var g=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+u.value.length),y=!1;do{if(c=u,c.type.indexOf("tag-close")!==-1&&!y){var b=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);y=!0}if(u=l.stepForward(),u){if(u.value===">"&&!y){var b=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);y=!0}if(u.type.indexOf("tag-name")!==-1){if(h=u.value,d===h){if(c.value==="<")f++;else if(c.value===""&&(f--,f<0)){l.stepBackward();var v=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+2);u=l.stepForward();var E=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+u.value.length);if(u.type.indexOf("tag-close")===-1&&(u=l.stepForward()),u&&u.value===">")var D=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);else return}}}else if(d===h&&u.value==="/>"&&(f--,f<0))var v=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+2),E=v,D=E,b=new o(g.end.row,g.end.column,g.end.row,g.end.column+1)}}while(u&&f>=0);if(p&&b&&v&&D&&g&&E)return{openTag:new o(p.start.row,p.start.column,b.end.row,b.end.column),closeTag:new o(v.start.row,v.start.column,D.end.row,D.end.column),openTagName:g,closeTagName:E}},this.$findOpeningTag=function(l,u){var c=l.getCurrentToken(),h=u.value,d=0,f=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn(),g=p+2,y=new o(f,p,f,g);l.stepForward();var b=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+u.value.length);if(u.type.indexOf("tag-close")===-1&&(u=l.stepForward()),!(!u||u.value!==">")){var v=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);l.stepBackward(),l.stepBackward();do if(u=c,f=l.getCurrentTokenRow(),p=l.getCurrentTokenColumn(),g=p+u.value.length,c=l.stepBackward(),u){if(u.type.indexOf("tag-name")!==-1){if(h===u.value)if(c.value==="<"){if(d++,d>0){var E=new o(f,p,f,g),D=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1);do u=l.stepForward();while(u&&u.value!==">");var C=new o(l.getCurrentTokenRow(),l.getCurrentTokenColumn(),l.getCurrentTokenRow(),l.getCurrentTokenColumn()+1)}}else c.value===""&&d--}else if(u.value==="/>"){for(var w=0,T=c;T;){if(T.type.indexOf("tag-name")!==-1&&T.value===h){d--;break}else if(T.value==="<")break;T=l.stepBackward(),w++}for(var A=0;AF&&(this.$docRowCache.splice(F,P),this.$screenRowCache.splice(F,P))},I.prototype.$getRowCacheIndex=function(L,P){for(var F=0,_=L.length-1;F<=_;){var M=F+_>>1,z=L[M];if(P>z)F=M+1;else if(P=P));z++);return _=F[z],_?(_.index=z,_.start=M-_.value.length,_):null},I.prototype.setUndoManager=function(L){if(this.$undoManager=L,this.$informUndoManager&&this.$informUndoManager.cancel(),L){var P=this;L.addSession(this),this.$syncInformUndoManager=function(){P.$informUndoManager.cancel(),P.mergeUndoDeltas=!1},this.$informUndoManager=o.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},I.prototype.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},I.prototype.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},I.prototype.getTabString=function(){return this.getUseSoftTabs()?o.stringRepeat(" ",this.getTabSize()):" "},I.prototype.setUseSoftTabs=function(L){this.setOption("useSoftTabs",L)},I.prototype.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},I.prototype.setTabSize=function(L){this.setOption("tabSize",L)},I.prototype.getTabSize=function(){return this.$tabSize},I.prototype.isTabStop=function(L){return this.$useSoftTabs&&L.column%this.$tabSize===0},I.prototype.setNavigateWithinSoftTabs=function(L){this.setOption("navigateWithinSoftTabs",L)},I.prototype.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},I.prototype.setOverwrite=function(L){this.setOption("overwrite",L)},I.prototype.getOverwrite=function(){return this.$overwrite},I.prototype.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},I.prototype.addGutterDecoration=function(L,P){this.$decorations[L]||(this.$decorations[L]=""),this.$decorations[L]+=" "+P,this._signal("changeBreakpoint",{})},I.prototype.removeGutterDecoration=function(L,P){this.$decorations[L]=(this.$decorations[L]||"").replace(" "+P,""),this._signal("changeBreakpoint",{})},I.prototype.getBreakpoints=function(){return this.$breakpoints},I.prototype.setBreakpoints=function(L){this.$breakpoints=[];for(var P=0;P0&&(_=!!F.charAt(P-1).match(this.tokenRe)),_||(_=!!F.charAt(P).match(this.tokenRe)),_)var M=this.tokenRe;else if(/^\s+$/.test(F.slice(P-1,P+1)))var M=/\s/;else var M=this.nonTokenRe;var z=P;if(z>0){do z--;while(z>=0&&F.charAt(z).match(M));z++}for(var R=P;RL&&(L=P.screenWidth)}),this.lineWidgetWidth=L},I.prototype.$computeWidth=function(L){if(this.$modified||L){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var P=this.doc.getAllLines(),F=this.$rowLengthCache,_=0,M=0,z=this.$foldData[M],R=z?z.start.row:1/0,G=P.length,q=0;qR){if(q=z.end.row+1,q>=G)break;z=this.$foldData[M++],R=z?z.start.row:1/0}F[q]==null&&(F[q]=this.$getStringScreenWidth(P[q])[0]),F[q]>_&&(_=F[q])}this.screenWidth=_}},I.prototype.getLine=function(L){return this.doc.getLine(L)},I.prototype.getLines=function(L,P){return this.doc.getLines(L,P)},I.prototype.getLength=function(){return this.doc.getLength()},I.prototype.getTextRange=function(L){return this.doc.getTextRange(L||this.selection.getRange())},I.prototype.insert=function(L,P){return this.doc.insert(L,P)},I.prototype.remove=function(L){return this.doc.remove(L)},I.prototype.removeFullLines=function(L,P){return this.doc.removeFullLines(L,P)},I.prototype.undoChanges=function(L,P){if(L.length){this.$fromUndo=!0;for(var F=L.length-1;F!=-1;F--){var _=L[F];_.action=="insert"||_.action=="remove"?this.doc.revertDelta(_):_.folds&&this.addFolds(_.folds)}!P&&this.$undoSelect&&(L.selectionBefore?this.selection.fromJSON(L.selectionBefore):this.selection.setRange(this.$getUndoSelection(L,!0))),this.$fromUndo=!1}},I.prototype.redoChanges=function(L,P){if(L.length){this.$fromUndo=!0;for(var F=0;FL.end.column&&(z.start.column+=G),z.end.row==L.end.row&&z.end.column>L.end.column&&(z.end.column+=G)),R&&z.start.row>=L.end.row&&(z.start.row+=R,z.end.row+=R)}if(z.end=this.insert(z.start,_),M.length){var q=L.start,ee=z.start,R=ee.row-q.row,G=ee.column-q.column;this.addFolds(M.map(function(Q){return Q=Q.clone(),Q.start.row==q.row&&(Q.start.column+=G),Q.end.row==q.row&&(Q.end.column+=G),Q.start.row+=R,Q.end.row+=R,Q}))}return z},I.prototype.indentRows=function(L,P,F){F=F.replace(/\t/g,this.getTabString());for(var _=L;_<=P;_++)this.doc.insertInLine({row:_,column:0},F)},I.prototype.outdentRows=function(L){for(var P=L.collapseRows(),F=new d(0,0,0,0),_=this.getTabSize(),M=P.start.row;M<=P.end.row;++M){var z=this.getLine(M);F.start.row=M,F.end.row=M;for(var R=0;R<_&&z.charAt(R)==" ";++R);R<_&&z.charAt(R)==" "?(F.start.column=R,F.end.column=R+1):(F.start.column=0,F.end.column=R),this.remove(F)}},I.prototype.$moveLines=function(L,P,F){if(L=this.getRowFoldStart(L),P=this.getRowFoldEnd(P),F<0){var _=this.getRowFoldStart(L+F);if(_<0)return 0;var M=_-L}else if(F>0){var _=this.getRowFoldEnd(P+F);if(_>this.doc.getLength()-1)return 0;var M=_-P}else{L=this.$clipRowToDocument(L),P=this.$clipRowToDocument(P);var M=P-L+1}var z=new d(L,0,P,Number.MAX_VALUE),R=this.getFoldsInRange(z).map(function(q){return q=q.clone(),q.start.row+=M,q.end.row+=M,q}),G=F==0?this.doc.getLines(L,P):this.doc.removeFullLines(L,P);return this.doc.insertFullLines(L+M,G),R.length&&this.addFolds(R),M},I.prototype.moveLinesUp=function(L,P){return this.$moveLines(L,P,-1)},I.prototype.moveLinesDown=function(L,P){return this.$moveLines(L,P,1)},I.prototype.duplicateLines=function(L,P){return this.$moveLines(L,P,0)},I.prototype.$clipRowToDocument=function(L){return Math.max(0,Math.min(L,this.doc.getLength()-1))},I.prototype.$clipColumnToRow=function(L,P){return P<0?0:Math.min(this.doc.getLine(L).length,P)},I.prototype.$clipPositionToDocument=function(L,P){if(P=Math.max(0,P),L<0)L=0,P=0;else{var F=this.doc.getLength();L>=F?(L=F-1,P=this.doc.getLine(F-1).length):P=Math.min(this.doc.getLine(L).length,P)}return{row:L,column:P}},I.prototype.$clipRangeToDocument=function(L){L.start.row<0?(L.start.row=0,L.start.column=0):L.start.column=this.$clipColumnToRow(L.start.row,L.start.column);var P=this.doc.getLength()-1;return L.end.row>P?(L.end.row=P,L.end.column=this.doc.getLine(P).length):L.end.column=this.$clipColumnToRow(L.end.row,L.end.column),L},I.prototype.setUseWrapMode=function(L){if(L!=this.$useWrapMode){if(this.$useWrapMode=L,this.$modified=!0,this.$resetRowCache(0),L){var P=this.getLength();this.$wrapData=Array(P),this.$updateWrapData(0,P-1)}this._signal("changeWrapMode")}},I.prototype.getUseWrapMode=function(){return this.$useWrapMode},I.prototype.setWrapLimitRange=function(L,P){(this.$wrapLimitRange.min!==L||this.$wrapLimitRange.max!==P)&&(this.$wrapLimitRange={min:L,max:P},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},I.prototype.adjustWrapLimit=function(L,P){var F=this.$wrapLimitRange;F.max<0&&(F={min:P,max:P});var _=this.$constrainWrapLimit(L,F.min,F.max);return _!=this.$wrapLimit&&_>1?(this.$wrapLimit=_,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},I.prototype.$constrainWrapLimit=function(L,P,F){return P&&(L=Math.max(P,L)),F&&(L=Math.min(F,L)),L},I.prototype.getWrapLimit=function(){return this.$wrapLimit},I.prototype.setWrapLimit=function(L){this.setWrapLimitRange(L,L)},I.prototype.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},I.prototype.$updateInternalDataOnChange=function(L){var P=this.$useWrapMode,F=L.action,_=L.start,M=L.end,z=_.row,R=M.row,G=R-z,q=null;if(this.$updating=!0,G!=0)if(F==="remove"){this[P?"$wrapData":"$rowLengthCache"].splice(z,G);var ee=this.$foldData;q=this.getFoldsInRange(L),this.removeFolds(q);var Y=this.getFoldLine(M.row),X=0;if(Y){Y.addRemoveChars(M.row,M.column,_.column-M.column),Y.shiftRow(-G);var Q=this.getFoldLine(z);Q&&Q!==Y&&(Q.merge(Y),Y=Q),X=ee.indexOf(Y)+1}for(X;X=M.row&&Y.shiftRow(-G)}R=z}else{var te=Array(G);te.unshift(z,0);var Z=P?this.$wrapData:this.$rowLengthCache;Z.splice.apply(Z,te);var ee=this.$foldData,Y=this.getFoldLine(z),X=0;if(Y){var de=Y.range.compareInside(_.row,_.column);de==0?(Y=Y.split(_.row,_.column),Y&&(Y.shiftRow(G),Y.addRemoveChars(R,0,M.column-_.column))):de==-1&&(Y.addRemoveChars(z,0,M.column-_.column),Y.shiftRow(G)),X=ee.indexOf(Y)+1}for(X;X=z&&Y.shiftRow(G)}}else{G=Math.abs(L.start.column-L.end.column),F==="remove"&&(q=this.getFoldsInRange(L),this.removeFolds(q),G=-G);var Y=this.getFoldLine(z);Y&&Y.addRemoveChars(z,_.column,G)}return P&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,P?this.$updateWrapData(z,R):this.$updateRowLengthCache(z,R),q},I.prototype.$updateRowLengthCache=function(L,P){this.$rowLengthCache[L]=null,this.$rowLengthCache[P]=null},I.prototype.$updateWrapData=function(L,P){var F=this.doc.getAllLines(),_=this.getTabSize(),M=this.$wrapData,z=this.$wrapLimit,R,G,q=L;for(P=Math.min(P,F.length-1);q<=P;)G=this.getFoldLine(q,G),G?(R=[],G.walk((function(ee,Y,X,Q){var te;if(ee!=null){te=this.$getDisplayTokens(ee,R.length),te[0]=D;for(var Z=1;ZP-Q;){var te=z+P-Q;if(L[te-1]>=T&&L[te]>=T){X(te);continue}if(L[te]==D||L[te]==C){for(te;te!=z-1&&L[te]!=D;te--);if(te>z){X(te);continue}for(te=z+P,te;te>2)),z-1);te>Z&&L[te]Z&&L[te]Z&&L[te]==w;)te--}else for(;te>Z&&L[te]Z){X(++te);continue}te=z+P,L[te]==E&&te--,X(te-Q)}return _},I.prototype.$getDisplayTokens=function(L,P){var F=[],_;P=P||0;for(var M=0;M39&&z<48||z>57&&z<64?F.push(w):z>=4352&&N(z)?F.push(v,E):F.push(v)}return F},I.prototype.$getStringScreenWidth=function(L,P,F){if(P==0)return[0,0];P==null&&(P=1/0),F=F||0;var _,M;for(M=0;M=4352&&N(_)?F+=2:F+=1,!(F>P));M++);return[F,M]},I.prototype.getRowLength=function(L){var P=1;return this.lineWidgets&&(P+=this.lineWidgets[L]&&this.lineWidgets[L].rowCount||0),!this.$useWrapMode||!this.$wrapData[L]?P:this.$wrapData[L].length+P},I.prototype.getRowLineCount=function(L){return!this.$useWrapMode||!this.$wrapData[L]?1:this.$wrapData[L].length+1},I.prototype.getRowWrapIndent=function(L){if(this.$useWrapMode){var P=this.screenToDocumentPosition(L,Number.MAX_VALUE),F=this.$wrapData[P.row];return F.length&&F[0]=0)var G=ee[Y],M=this.$docRowCache[Y],Q=L>ee[X-1];else var Q=!X;for(var te=this.getLength()-1,Z=this.getNextFoldLine(M),de=Z?Z.start.row:1/0;G<=L&&(q=this.getRowLength(M),!(G+q>L||M>=te));)G+=q,M++,M>de&&(M=Z.end.row+1,Z=this.getNextFoldLine(M,Z),de=Z?Z.start.row:1/0),Q&&(this.$docRowCache.push(M),this.$screenRowCache.push(G));if(Z&&Z.start.row<=M)_=this.getFoldDisplayLine(Z),M=Z.start.row;else{if(G+q<=L||M>te)return{row:te,column:this.getLine(te).length};_=this.getLine(M),Z=null}var ke=0,me=Math.floor(L-G);if(this.$useWrapMode){var Fe=this.$wrapData[M];Fe&&(R=Fe[me],me>0&&Fe.length&&(ke=Fe.indent,z=Fe[me-1]||Fe[Fe.length-1],_=_.substring(z)))}return F!==void 0&&this.$bidiHandler.isBidiRow(G+me,M,me)&&(P=this.$bidiHandler.offsetToCol(F)),z+=this.$getStringScreenWidth(_,P-ke)[1],this.$useWrapMode&&z>=R&&(z=R-1),Z?Z.idxToPosition(z):{row:M,column:z}},I.prototype.documentToScreenPosition=function(L,P){if(typeof P>"u")var F=this.$clipPositionToDocument(L.row,L.column);else F=this.$clipPositionToDocument(L,P);L=F.row,P=F.column;var _=0,M=null,z=null;z=this.getFoldAt(L,P,1),z&&(L=z.start.row,P=z.start.column);var R,G=0,q=this.$docRowCache,ee=this.$getRowCacheIndex(q,L),Y=q.length;if(Y&&ee>=0)var G=q[ee],_=this.$screenRowCache[ee],X=L>q[Y-1];else var X=!Y;for(var Q=this.getNextFoldLine(G),te=Q?Q.start.row:1/0;G=te){if(R=Q.end.row+1,R>L)break;Q=this.getNextFoldLine(R,Q),te=Q?Q.start.row:1/0}else R=G+1;_+=this.getRowLength(G),G=R,X&&(this.$docRowCache.push(G),this.$screenRowCache.push(_))}var Z="";Q&&G>=te?(Z=this.getFoldDisplayLine(Q,L,P),M=Q.start.row):(Z=this.getLine(L).substring(0,P),M=L);var de=0;if(this.$useWrapMode){var ke=this.$wrapData[M];if(ke){for(var me=0;Z.length>=ke[me];)_++,me++;Z=Z.substring(ke[me-1]||0,Z.length),de=me>0?ke.indent:0}}return this.lineWidgets&&this.lineWidgets[G]&&this.lineWidgets[G].rowsAbove&&(_+=this.lineWidgets[G].rowsAbove),{row:_,column:de+this.$getStringScreenWidth(Z)[0]}},I.prototype.documentToScreenColumn=function(L,P){return this.documentToScreenPosition(L,P).column},I.prototype.documentToScreenRow=function(L,P){return this.documentToScreenPosition(L,P).row},I.prototype.getScreenLength=function(){var L=0,P=null;if(this.$useWrapMode)for(var M=this.$wrapData.length,z=0,_=0,P=this.$foldData[_++],R=P?P.start.row:1/0;zR&&(z=P.end.row+1,P=this.$foldData[_++],R=P?P.start.row:1/0)}else{L=this.getLength();for(var F=this.$foldData,_=0;_F));z++);return[_,z]})},I.prototype.getPrecedingCharacter=function(){var L=this.selection.getCursor();if(L.column===0)return L.row===0?"":this.doc.getNewLineCharacter();var P=this.getLine(L.row);return P[L.column-1]},I.prototype.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},I}();b.$uid=0,b.prototype.$modes=l.$modes,b.prototype.getValue=b.prototype.toString,b.prototype.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},b.prototype.$overwrite=!1,b.prototype.$mode=null,b.prototype.$modeId=null,b.prototype.$scrollTop=0,b.prototype.$scrollLeft=0,b.prototype.$wrapLimit=80,b.prototype.$useWrapMode=!1,b.prototype.$wrapLimitRange={min:null,max:null},b.prototype.lineWidgets=null,b.prototype.isFullWidth=N,s.implement(b.prototype,u);var v=1,E=2,D=3,C=4,w=9,T=10,A=11,$=12;function N(I){return I<4352?!1:I>=4352&&I<=4447||I>=4515&&I<=4519||I>=4602&&I<=4607||I>=9001&&I<=9002||I>=11904&&I<=11929||I>=11931&&I<=12019||I>=12032&&I<=12245||I>=12272&&I<=12283||I>=12288&&I<=12350||I>=12353&&I<=12438||I>=12441&&I<=12543||I>=12549&&I<=12589||I>=12593&&I<=12686||I>=12688&&I<=12730||I>=12736&&I<=12771||I>=12784&&I<=12830||I>=12832&&I<=12871||I>=12880&&I<=13054||I>=13056&&I<=19903||I>=19968&&I<=42124||I>=42128&&I<=42182||I>=43360&&I<=43388||I>=44032&&I<=55203||I>=55216&&I<=55238||I>=55243&&I<=55291||I>=63744&&I<=64255||I>=65040&&I<=65049||I>=65072&&I<=65106||I>=65108&&I<=65126||I>=65128&&I<=65131||I>=65281&&I<=65376||I>=65504&&I<=65510}r("./edit_session/folding").Folding.call(b.prototype),r("./edit_session/bracket_match").BracketMatch.call(b.prototype),l.defineOptions(b.prototype,"session",{wrap:{set:function(I){if(!I||I=="off"?I=!1:I=="free"?I=!0:I=="printMargin"?I=-1:typeof I=="string"&&(I=parseInt(I,10)||!1),this.$wrap!=I)if(this.$wrap=I,!I)this.setUseWrapMode(!1);else{var L=typeof I=="number"?I:null;this.setWrapLimitRange(L,L),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(I){I=I=="auto"?this.$mode.type!="text":I!="text",I!=this.$wrapAsCode&&(this.$wrapAsCode=I,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(I){this.$useWorker=I,this.$stopWorker(),I&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(I){I=parseInt(I),I>0&&this.$tabSize!==I&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=I,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(I){this.setFoldStyle(I)},handlesSet:!0},overwrite:{set:function(I){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(I){this.doc.setNewLineMode(I)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(I){this.setMode(I)},get:function(){return this.$modeId},handlesSet:!0}}),n.EditSession=b}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(r,n,i){var s=r("./lib/lang"),o=r("./lib/oop"),a=r("./range").Range,l=function(){function c(){this.$options={}}return c.prototype.set=function(h){return o.mixin(this.$options,h),this},c.prototype.getOptions=function(){return s.copyObject(this.$options)},c.prototype.setOptions=function(h){this.$options=h},c.prototype.find=function(h){var d=this.$options,f=this.$matchIterator(h,d);if(!f)return!1;var p=null;return f.forEach(function(g,y,b,v){return p=new a(g,y,b,v),y==v&&d.start&&d.start.start&&d.skipCurrent!=!1&&p.isEqual(d.start)?(p=null,!1):!0}),p},c.prototype.findAll=function(h){var d=this.$options;if(!d.needle)return[];this.$assembleRegExp(d);var f=d.range,p=f?h.getLines(f.start.row,f.end.row):h.doc.getAllLines(),g=[],y=d.re;if(d.$isMultiLine){var b=y.length,v=p.length-b,E;e:for(var D=y.offset||0;D<=v;D++){for(var C=0;CA||(g.push(E=new a(D,A,D+b-1,$)),b>2&&(D=D+b-2))}}else for(var N=0;NF&&g[C].end.row==_;)C--;for(g=g.slice(N,C+1),N=0,C=g.length;N=E;$--)if(T($,Number.MAX_VALUE,A))return;if(d.wrap!=!1){for($=D,E=v.row;$>=E;$--)if(T($,Number.MAX_VALUE,A))return}}};else var C=function($){var N=v.row;if(!T(N,v.column,$)){for(N=N+1;N<=D;N++)if(T(N,0,$))return;if(d.wrap!=!1){for(N=E,D=v.row;N<=D;N++)if(T(N,0,$))return}}};if(d.$isMultiLine)var w=f.length,T=function(A,$,N){var I=p?A-w+1:A;if(!(I<0||I+w>h.getLength())){var L=h.getLine(I),P=L.search(f[0]);if(!(!p&&P<$||P===-1)){for(var F=1;F$)&&N(I,P,I+w-1,_))return!0}}};else if(p)var T=function($,N,I){var L=h.getLine($),P=[],F,_=0;for(f.lastIndex=0;F=f.exec(L);){var M=F[0].length;if(_=F.index,!M){if(_>=L.length)break;f.lastIndex=_+=s.skipEmptyMatch(L,_,y)}if(F.index+M>N)break;P.push(F.index,M)}for(var z=P.length-1;z>=0;z-=2){var R=P[z-1],M=P[z];if(I($,R,$,R+M))return!0}};else var T=function($,N,I){var L=h.getLine($),P,F;for(f.lastIndex=N;F=f.exec(L);){var _=F[0].length;if(P=F.index,I($,P,$,P+_))return!0;if(!_&&(f.lastIndex=P+=s.skipEmptyMatch(L,P,y),P>=L.length))return!1}};return{forEach:C}},c}();function u(c,h){var d=s.supportsLookbehind();function f(b,v){v===void 0&&(v=!0);var E=d&&h.$supportsUnicodeFlag?new RegExp("[\\p{L}\\p{N}_]","u"):new RegExp("\\w");return E.test(b)||h.regExp?d&&h.$supportsUnicodeFlag?v?"(?<=^|[^\\p{L}\\p{N}_])":"(?=[^\\p{L}\\p{N}_]|$)":"\\b":""}var p=Array.from(c),g=p[0],y=p[p.length-1];return f(g)+c+f(y,!1)}n.Search=l}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(r,n,i){var s=this&&this.__extends||function(){var d=function(f,p){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(g,y){g.__proto__=y}||function(g,y){for(var b in y)Object.prototype.hasOwnProperty.call(y,b)&&(g[b]=y[b])},d(f,p)};return function(f,p){if(typeof p!="function"&&p!==null)throw new TypeError("Class extends value "+String(p)+" is not a constructor or null");d(f,p);function g(){this.constructor=f}f.prototype=p===null?Object.create(p):(g.prototype=p.prototype,new g)}}(),o=r("../lib/keys"),a=r("../lib/useragent"),l=o.KEY_MODS,u=function(){function d(f,p){this.$init(f,p,!1)}return d.prototype.$init=function(f,p,g){this.platform=p||(a.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(f),this.$singleCommand=g},d.prototype.addCommand=function(f){this.commands[f.name]&&this.removeCommand(f),this.commands[f.name]=f,f.bindKey&&this._buildKeyHash(f)},d.prototype.removeCommand=function(f,p){var g=f&&(typeof f=="string"?f:f.name);f=this.commands[g],p||delete this.commands[g];var y=this.commandKeyBinding;for(var b in y){var v=y[b];if(v==f)delete y[b];else if(Array.isArray(v)){var E=v.indexOf(f);E!=-1&&(v.splice(E,1),v.length==1&&(y[b]=v[0]))}}},d.prototype.bindKey=function(f,p,g){if(typeof f=="object"&&f&&(g==null&&(g=f.position),f=f[this.platform]),!!f){if(typeof p=="function")return this.addCommand({exec:p,bindKey:f,name:p.name||f});f.split("|").forEach(function(y){var b="";if(y.indexOf(" ")!=-1){var v=y.split(/\s+/);y=v.pop(),v.forEach(function(C){var w=this.parseKeys(C),T=l[w.hashId]+w.key;b+=(b?" ":"")+T,this._addCommandToBinding(b,"chainKeys")},this),b+=" "}var E=this.parseKeys(y),D=l[E.hashId]+E.key;this._addCommandToBinding(b+D,p,g)},this)}},d.prototype._addCommandToBinding=function(f,p,g){var y=this.commandKeyBinding,b;if(!p)delete y[f];else if(!y[f]||this.$singleCommand)y[f]=p;else{Array.isArray(y[f])?(b=y[f].indexOf(p))!=-1&&y[f].splice(b,1):y[f]=[y[f]],typeof g!="number"&&(g=c(p));var v=y[f];for(b=0;bg)break}v.splice(b,0,p)}},d.prototype.addCommands=function(f){f&&Object.keys(f).forEach(function(p){var g=f[p];if(g){if(typeof g=="string")return this.bindKey(g,p);typeof g=="function"&&(g={exec:g}),typeof g=="object"&&(g.name||(g.name=p),this.addCommand(g))}},this)},d.prototype.removeCommands=function(f){Object.keys(f).forEach(function(p){this.removeCommand(f[p])},this)},d.prototype.bindKeys=function(f){Object.keys(f).forEach(function(p){this.bindKey(p,f[p])},this)},d.prototype._buildKeyHash=function(f){this.bindKey(f.bindKey,f)},d.prototype.parseKeys=function(f){var p=f.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(D){return D}),g=p.pop(),y=o[g];if(o.FUNCTION_KEYS[y])g=o.FUNCTION_KEYS[y].toLowerCase();else if(p.length){if(p.length==1&&p[0]=="shift")return{key:g.toUpperCase(),hashId:-1}}else return{key:g,hashId:-1};for(var b=0,v=p.length;v--;){var E=o.KEY_MODS[p[v]];if(E==null)return typeof console<"u"&&console.error("invalid modifier "+p[v]+" in "+f),!1;b|=E}return{key:g,hashId:b}},d.prototype.findKeyCommand=function(f,p){var g=l[f]+p;return this.commandKeyBinding[g]},d.prototype.handleKeyboard=function(f,p,g,y){if(!(y<0)){var b=l[p]+g,v=this.commandKeyBinding[b];return f.$keyChain&&(f.$keyChain+=" "+b,v=this.commandKeyBinding[f.$keyChain]||v),v&&(v=="chainKeys"||v[v.length-1]=="chainKeys")?(f.$keyChain=f.$keyChain||b,{command:"null"}):(f.$keyChain&&((!p||p==4)&&g.length==1?f.$keyChain=f.$keyChain.slice(0,-b.length-1):(p==-1||y>0)&&(f.$keyChain="")),{command:v})}},d.prototype.getStatusText=function(f,p){return p.$keyChain||""},d}();function c(d){return typeof d=="object"&&d.bindKey&&d.bindKey.position||(d.isDefault?-100:0)}var h=function(d){s(f,d);function f(p,g){var y=d.call(this,p,g)||this;return y.$singleCommand=!0,y}return f}(u);h.call=function(d,f,p){u.prototype.$init.call(d,f,p,!0)},u.call=function(d,f,p){u.prototype.$init.call(d,f,p,!1)},n.HashHandler=h,n.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(r,n,i){var s=this&&this.__extends||function(){var c=function(h,d){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(f,p){f.__proto__=p}||function(f,p){for(var g in p)Object.prototype.hasOwnProperty.call(p,g)&&(f[g]=p[g])},c(h,d)};return function(h,d){if(typeof d!="function"&&d!==null)throw new TypeError("Class extends value "+String(d)+" is not a constructor or null");c(h,d);function f(){this.constructor=h}h.prototype=d===null?Object.create(d):(f.prototype=d.prototype,new f)}}(),o=r("../lib/oop"),a=r("../keyboard/hash_handler").MultiHashHandler,l=r("../lib/event_emitter").EventEmitter,u=function(c){s(h,c);function h(d,f){var p=c.call(this,f,d)||this;return p.byName=p.commands,p.setDefaultHandler("exec",function(g){return g.args?g.command.exec(g.editor,g.args,g.event,!1):g.command.exec(g.editor,{},g.event,!0)}),p}return h.prototype.exec=function(d,f,p){if(Array.isArray(d)){for(var g=d.length;g--;)if(this.exec(d[g],f,p))return!0;return!1}if(typeof d=="string"&&(d=this.commands[d]),!d||f&&f.$readOnly&&!d.readOnly||this.$checkCommandState!=!1&&d.isAvailable&&!d.isAvailable(f))return!1;var y={editor:f,command:d,args:p};return y.returnValue=this._emit("exec",y),this._signal("afterExec",y),y.returnValue!==!1},h.prototype.toggleRecording=function(d){if(!this.$inReplay)return d&&d._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=(function(f){this.macro.push([f.command,f.args])}).bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},h.prototype.replay=function(d){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(d);try{this.$inReplay=!0,this.macro.forEach(function(f){typeof f=="string"?this.exec(f,d):this.exec(f[0],d,f[1])},this)}finally{this.$inReplay=!1}}},h.prototype.trimMacro=function(d){return d.map(function(f){return typeof f[0]!="string"&&(f[0]=f[0].name),f[1]||(f=f[0]),f})},h}(a);o.implement(u.prototype,l),n.CommandManager=u}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(r,n,i){var s=r("../lib/lang"),o=r("../config"),a=r("../range").Range;function l(c,h){return{win:c,mac:h}}n.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:l("Ctrl-,","Command-,"),exec:function(c){o.loadModule("ace/ext/settings_menu",function(h){h.init(c),c.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:l("Alt-E","F4"),exec:function(c){o.loadModule("ace/ext/error_marker",function(h){h.showErrorMarker(c,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:l("Alt-Shift-E","Shift-F4"),exec:function(c){o.loadModule("ace/ext/error_marker",function(h){h.showErrorMarker(c,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:l("Ctrl-A","Command-A"),exec:function(c){c.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:l(null,"Ctrl-L"),exec:function(c){c.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:l("Ctrl-L","Command-L"),exec:function(c,h){typeof h=="number"&&!isNaN(h)&&c.gotoLine(h),c.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:l("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(c){c.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:l("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(c){c.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:l("F2","F2"),exec:function(c){c.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:l("Alt-F2","Alt-F2"),exec:function(c){c.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:l(null,"Ctrl-Command-Option-0"),exec:function(c){c.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:l(null,"Ctrl-Command-Option-0"),exec:function(c){c.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:l("Alt-0","Command-Option-0"),exec:function(c){c.session.foldAll(),c.session.unfold(c.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:l("Alt-Shift-0","Command-Option-Shift-0"),exec:function(c){c.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:l("Ctrl-K","Command-G"),exec:function(c){c.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:l("Ctrl-Shift-K","Command-Shift-G"),exec:function(c){c.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:l("Alt-K","Ctrl-G"),exec:function(c){c.selection.isEmpty()?c.selection.selectWord():c.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:l("Alt-Shift-K","Ctrl-Shift-G"),exec:function(c){c.selection.isEmpty()?c.selection.selectWord():c.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:l("Ctrl-F","Command-F"),exec:function(c){o.loadModule("ace/ext/searchbox",function(h){h.Search(c)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(c){c.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:l("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(c){c.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:l("Ctrl-Home","Command-Home|Command-Up"),exec:function(c){c.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:l("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(c){c.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:l("Up","Up|Ctrl-P"),exec:function(c,h){c.navigateUp(h.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:l("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(c){c.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:l("Ctrl-End","Command-End|Command-Down"),exec:function(c){c.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:l("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(c){c.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:l("Down","Down|Ctrl-N"),exec:function(c,h){c.navigateDown(h.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:l("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(c){c.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:l("Ctrl-Left","Option-Left"),exec:function(c){c.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:l("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(c){c.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:l("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(c){c.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:l("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(c){c.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:l("Left","Left|Ctrl-B"),exec:function(c,h){c.navigateLeft(h.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:l("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(c){c.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:l("Ctrl-Right","Option-Right"),exec:function(c){c.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:l("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(c){c.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:l("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(c){c.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:l("Shift-Right","Shift-Right"),exec:function(c){c.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:l("Right","Right|Ctrl-F"),exec:function(c,h){c.navigateRight(h.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(c){c.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:l(null,"Option-PageDown"),exec:function(c){c.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:l("PageDown","PageDown|Ctrl-V"),exec:function(c){c.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(c){c.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:l(null,"Option-PageUp"),exec:function(c){c.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(c){c.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:l("Ctrl-Up",null),exec:function(c){c.renderer.scrollBy(0,-2*c.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:l("Ctrl-Down",null),exec:function(c){c.renderer.scrollBy(0,2*c.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(c){c.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(c){c.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:l("Ctrl-Alt-E","Command-Option-E"),exec:function(c){c.commands.toggleRecording(c)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:l("Ctrl-Shift-E","Command-Shift-E"),exec:function(c){c.commands.replay(c)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:l("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(c){c.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:l("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(c){c.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:l("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(c){c.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:l(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(c){},readOnly:!0},{name:"cut",description:"Cut",exec:function(c){var h=c.$copyWithEmptySelection&&c.selection.isEmpty(),d=h?c.selection.getLineRange():c.selection.getRange();c._emit("cut",d),d.isEmpty()||c.session.remove(d),c.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(c,h){c.$handlePaste(h)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:l("Ctrl-D","Command-D"),exec:function(c){c.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:l("Ctrl-Shift-D","Command-Shift-D"),exec:function(c){c.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:l("Ctrl-Alt-S","Command-Alt-S"),exec:function(c){c.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:l("Ctrl-/","Command-/"),exec:function(c){c.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:l("Ctrl-Shift-/","Command-Shift-/"),exec:function(c){c.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:l("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(c){c.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:l("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(c){c.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:l("Ctrl-H","Command-Option-F"),exec:function(c){o.loadModule("ace/ext/searchbox",function(h){h.Search(c,!0)})}},{name:"undo",description:"Undo",bindKey:l("Ctrl-Z","Command-Z"),exec:function(c){c.undo()}},{name:"redo",description:"Redo",bindKey:l("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(c){c.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:l("Alt-Shift-Up","Command-Option-Up"),exec:function(c){c.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:l("Alt-Up","Option-Up"),exec:function(c){c.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:l("Alt-Shift-Down","Command-Option-Down"),exec:function(c){c.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:l("Alt-Down","Option-Down"),exec:function(c){c.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:l("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(c){c.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:l("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(c){c.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:l("Shift-Delete",null),exec:function(c){if(c.selection.isEmpty())c.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:l("Alt-Backspace","Command-Backspace"),exec:function(c){c.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:l("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(c){c.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:l("Ctrl-Shift-Backspace",null),exec:function(c){var h=c.selection.getRange();h.start.column=0,c.session.remove(h)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:l("Ctrl-Shift-Delete",null),exec:function(c){var h=c.selection.getRange();h.end.column=Number.MAX_VALUE,c.session.remove(h)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:l("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(c){c.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:l("Ctrl-Delete","Alt-Delete"),exec:function(c){c.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:l("Shift-Tab","Shift-Tab"),exec:function(c){c.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:l("Tab","Tab"),exec:function(c){c.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:l("Ctrl-[","Ctrl-["),exec:function(c){c.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:l("Ctrl-]","Ctrl-]"),exec:function(c){c.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(c,h){c.insert(h)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(c,h){c.insert(s.stringRepeat(h.text||"",h.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:l(null,"Ctrl-O"),exec:function(c){c.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:l("Alt-Shift-X","Ctrl-T"),exec:function(c){c.transposeLetters()},multiSelectAction:function(c){c.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:l("Ctrl-U","Ctrl-U"),exec:function(c){c.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:l("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(c){c.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:l(null,null),exec:function(c){c.autoIndent()},scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:l("Ctrl-Shift-L","Command-Shift-L"),exec:function(c){var h=c.selection.getRange();h.start.column=h.end.column=0,h.end.row++,c.selection.setRange(h,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:l("Ctrl+F3","F3"),exec:function(c){c.openLink()}},{name:"joinlines",description:"Join lines",bindKey:l(null,null),exec:function(c){for(var h=c.selection.isBackwards(),d=h?c.selection.getSelectionLead():c.selection.getSelectionAnchor(),f=h?c.selection.getSelectionAnchor():c.selection.getSelectionLead(),p=c.session.doc.getLine(d.row).length,g=c.session.doc.getTextRange(c.selection.getRange()),y=g.replace(/\n\s*/," ").length,b=c.session.doc.getLine(d.row),v=d.row+1;v<=f.row+1;v++){var E=s.stringTrimLeft(s.stringTrimRight(c.session.doc.getLine(v)));E.length!==0&&(E=" "+E),b+=E}f.row+10?(c.selection.moveCursorTo(d.row,d.column),c.selection.selectTo(d.row,d.column+y)):(p=c.session.doc.getLine(d.row).length>p?p+1:p,c.selection.moveCursorTo(d.row,p))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:l(null,null),exec:function(c){var h=c.session.doc.getLength()-1,d=c.session.doc.getLine(h).length,f=c.selection.rangeList.ranges,p=[];f.length<1&&(f=[c.selection.getRange()]);for(var g=0;gu[c].column&&c++,f.unshift(c,0),u.splice.apply(u,f),this.$updateRows()}}},a.prototype.$updateRows=function(){var l=this.session.lineWidgets;if(l){var u=!0;l.forEach(function(c,h){if(c)for(u=!1,c.row=h;c.$oldWidget;)c.$oldWidget.row=h,c=c.$oldWidget}),u&&(this.session.lineWidgets=null)}},a.prototype.$registerLineWidget=function(l){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var u=this.session.lineWidgets[l.row];return u&&(l.$oldWidget=u,u.el&&u.el.parentNode&&(u.el.parentNode.removeChild(u.el),u._inDocument=!1)),this.session.lineWidgets[l.row]=l,l},a.prototype.addLineWidget=function(l){if(this.$registerLineWidget(l),l.session=this.session,!this.editor)return l;var u=this.editor.renderer;l.html&&!l.el&&(l.el=s.createElement("div"),l.el.innerHTML=l.html),l.text&&!l.el&&(l.el=s.createElement("div"),l.el.textContent=l.text),l.el&&(s.addCssClass(l.el,"ace_lineWidgetContainer"),l.className&&s.addCssClass(l.el,l.className),l.el.style.position="absolute",l.el.style.zIndex="5",u.container.appendChild(l.el),l._inDocument=!0,l.coverGutter||(l.el.style.zIndex="3"),l.pixelHeight==null&&(l.pixelHeight=l.el.offsetHeight)),l.rowCount==null&&(l.rowCount=l.pixelHeight/u.layerConfig.lineHeight);var c=this.session.getFoldAt(l.row,0);if(l.$fold=c,c){var h=this.session.lineWidgets;l.row==c.end.row&&!h[c.start.row]?h[c.start.row]=l:l.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:l.row}}}),this.$updateRows(),this.renderWidgets(null,u),this.onWidgetChanged(l),l},a.prototype.removeLineWidget=function(l){if(l._inDocument=!1,l.session=null,l.el&&l.el.parentNode&&l.el.parentNode.removeChild(l.el),l.editor&&l.editor.destroy)try{l.editor.destroy()}catch{}if(this.session.lineWidgets){var u=this.session.lineWidgets[l.row];if(u==l)this.session.lineWidgets[l.row]=l.$oldWidget,l.$oldWidget&&this.onWidgetChanged(l.$oldWidget);else for(;u;){if(u.$oldWidget==l){u.$oldWidget=l.$oldWidget;break}u=u.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:l.row}}}),this.$updateRows()},a.prototype.getWidgetsAtRow=function(l){for(var u=this.session.lineWidgets,c=u&&u[l],h=[];c;)h.push(c),c=c.$oldWidget;return h},a.prototype.onWidgetChanged=function(l){this.session._changedWidgets.push(l),this.editor&&this.editor.renderer.updateFull()},a.prototype.measureWidgets=function(l,u){var c=this.session._changedWidgets,h=u.layerConfig;if(!(!c||!c.length)){for(var d=1/0,f=0;f0&&!h[d];)d--;this.firstRow=c.firstRow,this.lastRow=c.lastRow,u.$cursorLayer.config=c;for(var p=d;p<=f;p++){var g=h[p];if(!(!g||!g.el)){if(g.hidden){g.el.style.top=-100-(g.pixelHeight||0)+"px";continue}g._inDocument||(g._inDocument=!0,u.container.appendChild(g.el));var y=u.$cursorLayer.getPixelPosition({row:p,column:0},!0).top;g.coverLine||(y+=c.lineHeight*this.session.getRowLineCount(g.row)),g.el.style.top=y-c.offset+"px";var b=g.coverGutter?0:u.gutterWidth;g.fixedWidth||(b-=u.scrollLeft),g.el.style.left=b+"px",g.fullWidth&&g.screenWidth&&(g.el.style.minWidth=c.width+2*c.padding+"px"),g.fixedWidth?g.el.style.right=u.scrollBar.getWidth()+"px":g.el.style.right=""}}}},a}();n.LineWidgets=o}),ace.define("ace/keyboard/gutter_handler",["require","exports","module","ace/lib/keys","ace/mouse/default_gutter_handler"],function(r,n,i){var s=r("../lib/keys"),o=r("../mouse/default_gutter_handler").GutterTooltip,a=function(){function u(c){this.editor=c,this.gutterLayer=c.renderer.$gutterLayer,this.element=c.renderer.$gutter,this.lines=c.renderer.$gutterLayer.$lines,this.activeRowIndex=null,this.activeLane=null,this.annotationTooltip=new o(this.editor)}return u.prototype.addListener=function(){this.element.addEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.addEventListener("focusout",this.$blurGutter.bind(this)),this.editor.on("mousewheel",this.$blurGutter.bind(this))},u.prototype.removeListener=function(){this.element.removeEventListener("keydown",this.$onGutterKeyDown.bind(this)),this.element.removeEventListener("focusout",this.$blurGutter.bind(this)),this.editor.off("mousewheel",this.$blurGutter.bind(this))},u.prototype.$onGutterKeyDown=function(c){if(this.annotationTooltip.isOpen){c.preventDefault(),c.keyCode===s.escape&&this.annotationTooltip.hideTooltip();return}if(c.target===this.element){if(c.keyCode!=s.enter)return;c.preventDefault();var h=this.editor.getCursorPosition().row;this.editor.isRowVisible(h)||this.editor.scrollToLine(h,!0,!0),setTimeout((function(){var d=this.$rowToRowIndex(this.gutterLayer.$cursorCell.row),f=this.$findNearestFoldWidget(d),p=this.$findNearestAnnotation(d);if(!(f===null&&p===null)){if(f===null&&p!==null){this.activeRowIndex=p,this.activeLane="annotation",this.$focusAnnotation(this.activeRowIndex);return}if(f!==null&&p===null){this.activeRowIndex=f,this.activeLane="fold",this.$focusFoldWidget(this.activeRowIndex);return}if(Math.abs(p-d)0||c+h=0&&this.$isFoldWidgetVisible(c-h))return c-h;if(c+h<=this.lines.getLength()-1&&this.$isFoldWidgetVisible(c+h))return c+h}return null},u.prototype.$findNearestAnnotation=function(c){if(this.$isAnnotationVisible(c))return c;for(var h=0;c-h>0||c+h=0&&this.$isAnnotationVisible(c-h))return c-h;if(c+h<=this.lines.getLength()-1&&this.$isAnnotationVisible(c+h))return c+h}return null},u.prototype.$focusFoldWidget=function(c){if(c!=null){var h=this.$getFoldWidget(c);h.classList.add(this.editor.renderer.keyboardFocusClassName),h.focus()}},u.prototype.$focusAnnotation=function(c){if(c!=null){var h=this.$getAnnotation(c);h.classList.add(this.editor.renderer.keyboardFocusClassName),h.focus()}},u.prototype.$blurFoldWidget=function(c){var h=this.$getFoldWidget(c);h.classList.remove(this.editor.renderer.keyboardFocusClassName),h.blur()},u.prototype.$blurAnnotation=function(c){var h=this.$getAnnotation(c);h.classList.remove(this.editor.renderer.keyboardFocusClassName),h.blur()},u.prototype.$moveFoldWidgetUp=function(){for(var c=this.activeRowIndex;c>0;)if(c--,this.$isFoldWidgetVisible(c)){this.$blurFoldWidget(this.activeRowIndex),this.activeRowIndex=c,this.$focusFoldWidget(this.activeRowIndex);return}},u.prototype.$moveFoldWidgetDown=function(){for(var c=this.activeRowIndex;c0;)if(c--,this.$isAnnotationVisible(c)){this.$blurAnnotation(this.activeRowIndex),this.activeRowIndex=c,this.$focusAnnotation(this.activeRowIndex);return}},u.prototype.$moveAnnotationDown=function(){for(var c=this.activeRowIndex;c=P.length&&(P=void 0),{value:P&&P[M++],done:!P}}};throw new TypeError(F?"Object is not iterable.":"Symbol.iterator is not defined.")},o=r("./lib/oop"),a=r("./lib/dom"),l=r("./lib/lang"),u=r("./lib/useragent"),c=r("./keyboard/textinput").TextInput,h=r("./mouse/mouse_handler").MouseHandler,d=r("./mouse/fold_handler").FoldHandler,f=r("./keyboard/keybinding").KeyBinding,p=r("./edit_session").EditSession,g=r("./search").Search,y=r("./range").Range,b=r("./lib/event_emitter").EventEmitter,v=r("./commands/command_manager").CommandManager,E=r("./commands/default_commands").commands,D=r("./config"),C=r("./token_iterator").TokenIterator,w=r("./line_widgets").LineWidgets,T=r("./keyboard/gutter_handler").GutterKeyboardHandler,A=r("./config").nls,$=r("./clipboard"),N=r("./lib/keys"),I=function(){function P(F,_,M){this.session,this.$toDestroy=[];var z=F.getContainerElement();this.container=z,this.renderer=F,this.id="editor"+ ++P.$uid,this.commands=new v(u.isMac?"mac":"win",E),typeof document=="object"&&(this.textInput=new c(F.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new h(this),new d(this)),this.keyBinding=new f(this),this.$search=new g().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=l.delayedCall((function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}).bind(this)),this.on("change",function(R,G){G._$emitInputEvent.schedule(31)}),this.setSession(_||M&&M.session||new p("")),D.resetOptions(this),M&&this.setOptions(M),D._signal("editor",this)}return P.prototype.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=l.delayedCall(this.endOperation.bind(this,!0)),this.on("change",(function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}).bind(this),!0),this.on("changeSelection",(function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}).bind(this),!0)},P.prototype.startOperation=function(F){if(this.curOp){if(!F||this.curOp.command)return;this.prevOp=this.curOp}F||(this.previousCommand=null,F={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:F.command||{},args:F.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},P.prototype.endOperation=function(F){if(this.curOp&&this.session){if(F&&F.returnValue===!1||!this.session)return this.curOp=null;if(F==!0&&this.curOp.command&&this.curOp.command.name=="mouse"||(this._signal("beforeEndOperation"),!this.curOp))return;var _=this.curOp.command,M=_&&_.scrollIntoView;if(M){switch(M){case"center-animate":M="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var z=this.selection.getRange(),R=this.renderer.layerConfig;(z.start.row>=R.lastRow||z.end.row<=R.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}M=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var G=this.selection.toJSON();this.curOp.selectionAfter=G,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(G),this.prevOp=this.curOp,this.curOp=null}},P.prototype.$historyTracker=function(F){if(this.$mergeUndoDeltas){var _=this.prevOp,M=this.$mergeableCommands,z=_.command&&F.command.name==_.command.name;if(F.command.name=="insertstring"){var R=F.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),z=z&&this.mergeNextCommand&&(!/\s/.test(R)||/\s/.test(_.args)),this.mergeNextCommand=!0}else z=z&&M.indexOf(F.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(z=!1),z?this.session.mergeUndoDeltas=!0:M.indexOf(F.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},P.prototype.setKeyboardHandler=function(F,_){if(F&&typeof F=="string"&&F!="ace"){this.$keybindingId=F;var M=this;D.loadModule(["keybinding",F],function(z){M.$keybindingId==F&&M.keyBinding.setKeyboardHandler(z&&z.handler),_&&_()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(F),_&&_()},P.prototype.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},P.prototype.setSession=function(F){if(this.session!=F){this.curOp&&this.endOperation(),this.curOp={};var _=this.session;if(_){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var M=this.session.getSelection();M.off("changeCursor",this.$onCursorChange),M.off("changeSelection",this.$onSelectionChange)}this.session=F,F?(this.$onDocumentChange=this.onDocumentChange.bind(this),F.on("change",this.$onDocumentChange),this.renderer.setSession(F),this.$onChangeMode=this.onChangeMode.bind(this),F.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),F.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),F.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),F.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),F.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),F.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=F.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(F)),this._signal("changeSession",{session:F,oldSession:_}),this.curOp=null,_&&_._signal("changeEditor",{oldEditor:this}),F&&F._signal("changeEditor",{editor:this}),F&&!F.destroyed&&F.bgTokenizer.scheduleStart()}},P.prototype.getSession=function(){return this.session},P.prototype.setValue=function(F,_){return this.session.doc.setValue(F),_?_==1?this.navigateFileEnd():_==-1&&this.navigateFileStart():this.selectAll(),F},P.prototype.getValue=function(){return this.session.getValue()},P.prototype.getSelection=function(){return this.selection},P.prototype.resize=function(F){this.renderer.onResize(F)},P.prototype.setTheme=function(F,_){this.renderer.setTheme(F,_)},P.prototype.getTheme=function(){return this.renderer.getTheme()},P.prototype.setStyle=function(F){this.renderer.setStyle(F)},P.prototype.unsetStyle=function(F){this.renderer.unsetStyle(F)},P.prototype.getFontSize=function(){return this.getOption("fontSize")||a.computedStyle(this.container).fontSize},P.prototype.setFontSize=function(F){this.setOption("fontSize",F)},P.prototype.$highlightBrackets=function(){if(!this.$highlightPending){var F=this;this.$highlightPending=!0,setTimeout(function(){F.$highlightPending=!1;var _=F.session;if(!(!_||_.destroyed)){_.$bracketHighlight&&(_.$bracketHighlight.markerIds.forEach(function(Q){_.removeMarker(Q)}),_.$bracketHighlight=null);var M=F.getCursorPosition(),z=F.getKeyboardHandler(),R=z&&z.$getDirectionForHighlight&&z.$getDirectionForHighlight(F),G=_.getMatchingBracketRanges(M,R);if(!G){var q=new C(_,M.row,M.column),ee=q.getCurrentToken();if(ee&&/\b(?:tag-open|tag-name)/.test(ee.type)){var Y=_.getMatchingTags(M);Y&&(G=[Y.openTagName.isEmpty()?Y.openTag:Y.openTagName,Y.closeTagName.isEmpty()?Y.closeTag:Y.closeTagName])}}if(!G&&_.$mode.getMatching&&(G=_.$mode.getMatching(F.session)),!G){F.getHighlightIndentGuides()&&F.renderer.$textLayer.$highlightIndentGuide();return}var X="ace_bracket";Array.isArray(G)?G.length==1&&(X="ace_error_bracket"):G=[G],G.length==2&&(y.comparePoints(G[0].end,G[1].start)==0?G=[y.fromPoints(G[0].start,G[1].end)]:y.comparePoints(G[0].start,G[1].end)==0&&(G=[y.fromPoints(G[1].start,G[0].end)])),_.$bracketHighlight={ranges:G,markerIds:G.map(function(Q){return _.addMarker(Q,X,"text")})},F.getHighlightIndentGuides()&&F.renderer.$textLayer.$highlightIndentGuide()}},50)}},P.prototype.focus=function(){this.textInput.focus()},P.prototype.isFocused=function(){return this.textInput.isFocused()},P.prototype.blur=function(){this.textInput.blur()},P.prototype.onFocus=function(F){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",F))},P.prototype.onBlur=function(F){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",F))},P.prototype.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},P.prototype.onDocumentChange=function(F){var _=this.session.$useWrapMode,M=F.start.row==F.end.row?F.end.row:1/0;this.renderer.updateLines(F.start.row,M,_),this._signal("change",F),this.$cursorChange()},P.prototype.onTokenizerUpdate=function(F){var _=F.data;this.renderer.updateLines(_.first,_.last)},P.prototype.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},P.prototype.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},P.prototype.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},P.prototype.$updateHighlightActiveLine=function(){var F=this.getSession(),_;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(_=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(_=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(_=!1)),F.$highlightLineMarker&&!_)F.removeMarker(F.$highlightLineMarker.id),F.$highlightLineMarker=null;else if(!F.$highlightLineMarker&&_){var M=new y(_.row,_.column,_.row,1/0);M.id=F.addMarker(M,"ace_active-line","screenLine"),F.$highlightLineMarker=M}else _&&(F.$highlightLineMarker.start.row=_.row,F.$highlightLineMarker.end.row=_.row,F.$highlightLineMarker.start.column=_.column,F._signal("changeBackMarker"))},P.prototype.onSelectionChange=function(F){var _=this.session;if(_.$selectionMarker&&_.removeMarker(_.$selectionMarker),_.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var M=this.selection.getRange(),z=this.getSelectionStyle();_.$selectionMarker=_.addMarker(M,"ace_selection",z)}var R=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(R),this._signal("changeSelection")},P.prototype.$getSelectionHighLightRegexp=function(){var F=this.session,_=this.getSelectionRange();if(!(_.isEmpty()||_.isMultiLine())){var M=_.start.column,z=_.end.column,R=F.getLine(_.start.row),G=R.substring(M,z);if(!(G.length>5e3||!/[\w\d]/.test(G))){var q=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:G}),ee=R.substring(M-1,z+1);if(q.test(ee))return q}}},P.prototype.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},P.prototype.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},P.prototype.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},P.prototype.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},P.prototype.onChangeMode=function(F){this.renderer.updateText(),this._emit("changeMode",F)},P.prototype.onChangeWrapLimit=function(){this.renderer.updateFull()},P.prototype.onChangeWrapMode=function(){this.renderer.onResize(!0)},P.prototype.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},P.prototype.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},P.prototype.getCopyText=function(){var F=this.getSelectedText(),_=this.session.doc.getNewLineCharacter(),M=!1;if(!F&&this.$copyWithEmptySelection){M=!0;for(var z=this.selection.getAllRanges(),R=0;RQ.search(/\S|$/)){var ee=Q.substr(R.column).search(/\S|$/);M.doc.removeInLine(R.row,R.column,R.column+ee)}}this.clearSelection();var Y=R.column,X=M.getState(R.row),Q=M.getLine(R.row),te=z.checkOutdent(X,Q,F);if(M.insert(R,F),G&&G.selection&&(G.selection.length==2?this.selection.setSelectionRange(new y(R.row,Y+G.selection[0],R.row,Y+G.selection[1])):this.selection.setSelectionRange(new y(R.row+G.selection[0],G.selection[1],R.row+G.selection[2],G.selection[3]))),this.$enableAutoIndent){if(M.getDocument().isNewLine(F)){var Z=z.getNextLineIndent(X,Q.slice(0,R.column),M.getTabString());M.insert({row:R.row+1,column:0},Z)}te&&z.autoOutdent(X,M,R.row)}},P.prototype.autoIndent=function(){for(var F=this.session,_=F.getMode(),M=this.selection.isEmpty()?[new y(0,0,F.doc.getLength()-1,0)]:this.selection.getAllRanges(),z="",R="",G="",q=F.getTabString(),ee=0;ee0&&(z=F.getState(Q-1),R=F.getLine(Q-1),G=_.getNextLineIndent(z,R,q));var te=F.getLine(Q),Z=_.$getIndent(te);if(G!==Z){if(Z.length>0){var de=new y(Q,0,Q,Z.length);F.remove(de)}G.length>0&&F.insert({row:Q,column:0},G)}_.autoOutdent(z,F,Q)}},P.prototype.onTextInput=function(F,_){if(!_)return this.keyBinding.onTextInput(F);this.startOperation({command:{name:"insertstring"}});var M=this.applyComposition.bind(this,F,_);this.selection.rangeCount?this.forEachSelection(M):M(),this.endOperation()},P.prototype.applyComposition=function(F,_){if(_.extendLeft||_.extendRight){var M=this.selection.getRange();M.start.column-=_.extendLeft,M.end.column+=_.extendRight,M.start.column<0&&(M.start.row--,M.start.column+=this.session.getLine(M.start.row).length+1),this.selection.setRange(M),!F&&!M.isEmpty()&&this.remove()}if((F||!this.selection.isEmpty())&&this.insert(F,!0),_.restoreStart||_.restoreEnd){var M=this.selection.getRange();M.start.column-=_.restoreStart,M.end.column-=_.restoreEnd,this.selection.setRange(M)}},P.prototype.onCommandKey=function(F,_,M){return this.keyBinding.onCommandKey(F,_,M)},P.prototype.setOverwrite=function(F){this.session.setOverwrite(F)},P.prototype.getOverwrite=function(){return this.session.getOverwrite()},P.prototype.toggleOverwrite=function(){this.session.toggleOverwrite()},P.prototype.setScrollSpeed=function(F){this.setOption("scrollSpeed",F)},P.prototype.getScrollSpeed=function(){return this.getOption("scrollSpeed")},P.prototype.setDragDelay=function(F){this.setOption("dragDelay",F)},P.prototype.getDragDelay=function(){return this.getOption("dragDelay")},P.prototype.setSelectionStyle=function(F){this.setOption("selectionStyle",F)},P.prototype.getSelectionStyle=function(){return this.getOption("selectionStyle")},P.prototype.setHighlightActiveLine=function(F){this.setOption("highlightActiveLine",F)},P.prototype.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},P.prototype.setHighlightGutterLine=function(F){this.setOption("highlightGutterLine",F)},P.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},P.prototype.setHighlightSelectedWord=function(F){this.setOption("highlightSelectedWord",F)},P.prototype.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},P.prototype.setAnimatedScroll=function(F){this.renderer.setAnimatedScroll(F)},P.prototype.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},P.prototype.setShowInvisibles=function(F){this.renderer.setShowInvisibles(F)},P.prototype.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},P.prototype.setDisplayIndentGuides=function(F){this.renderer.setDisplayIndentGuides(F)},P.prototype.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},P.prototype.setHighlightIndentGuides=function(F){this.renderer.setHighlightIndentGuides(F)},P.prototype.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},P.prototype.setShowPrintMargin=function(F){this.renderer.setShowPrintMargin(F)},P.prototype.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},P.prototype.setPrintMarginColumn=function(F){this.renderer.setPrintMarginColumn(F)},P.prototype.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},P.prototype.setReadOnly=function(F){this.setOption("readOnly",F)},P.prototype.getReadOnly=function(){return this.getOption("readOnly")},P.prototype.setBehavioursEnabled=function(F){this.setOption("behavioursEnabled",F)},P.prototype.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},P.prototype.setWrapBehavioursEnabled=function(F){this.setOption("wrapBehavioursEnabled",F)},P.prototype.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},P.prototype.setShowFoldWidgets=function(F){this.setOption("showFoldWidgets",F)},P.prototype.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},P.prototype.setFadeFoldWidgets=function(F){this.setOption("fadeFoldWidgets",F)},P.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},P.prototype.remove=function(F){this.selection.isEmpty()&&(F=="left"?this.selection.selectLeft():this.selection.selectRight());var _=this.getSelectionRange();if(this.getBehavioursEnabled()){var M=this.session,z=M.getState(_.start.row),R=M.getMode().transformAction(z,"deletion",this,M,_);if(_.end.column===0){var G=M.getTextRange(_);if(G[G.length-1]==`
+`){var q=M.getLine(_.end.row);/^\s+$/.test(q)&&(_.end.column=q.length)}}R&&(_=R)}this.session.remove(_),this.clearSelection()},P.prototype.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},P.prototype.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},P.prototype.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},P.prototype.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var F=this.getSelectionRange();F.start.column==F.end.column&&F.start.row==F.end.row&&(F.end.column=0,F.end.row++),this.session.remove(F),this.clearSelection()},P.prototype.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var F=this.getCursorPosition();this.insert(`
+`),this.moveCursorToPosition(F)},P.prototype.setGhostText=function(F,_){this.session.widgetManager||(this.session.widgetManager=new w(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(F,_)},P.prototype.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},P.prototype.transposeLetters=function(){if(this.selection.isEmpty()){var F=this.getCursorPosition(),_=F.column;if(_!==0){var M=this.session.getLine(F.row),z,R;_ee.toLowerCase()?1:0});for(var R=new y(0,0,0,0),z=F.first;z<=F.last;z++){var G=_.getLine(z);R.start.row=z,R.end.row=z,R.end.column=G.length,_.replace(R,M[z-F.first])}},P.prototype.toggleCommentLines=function(){var F=this.session.getState(this.getCursorPosition().row),_=this.$getSelectedRows();this.session.getMode().toggleCommentLines(F,this.session,_.first,_.last)},P.prototype.toggleBlockComment=function(){var F=this.getCursorPosition(),_=this.session.getState(F.row),M=this.getSelectionRange();this.session.getMode().toggleBlockComment(_,this.session,M,F)},P.prototype.getNumberAt=function(F,_){var M=/[\-]?[0-9]+(?:\.[0-9]+)?/g;M.lastIndex=0;for(var z=this.session.getLine(F);M.lastIndex<_;){var R=M.exec(z);if(R.index<=_&&R.index+R[0].length>=_){var G={value:R[0],start:R.index,end:R.index+R[0].length};return G}}return null},P.prototype.modifyNumber=function(F){var _=this.selection.getCursor().row,M=this.selection.getCursor().column,z=new y(_,M-1,_,M),R=this.session.getTextRange(z);if(!isNaN(parseFloat(R))&&isFinite(R)){var G=this.getNumberAt(_,M);if(G){var q=G.value.indexOf(".")>=0?G.start+G.value.indexOf(".")+1:G.end,ee=G.start+G.value.length-q,Y=parseFloat(G.value);Y*=Math.pow(10,ee),q!==G.end&&M=q&&G<=ee&&(M=je,Y.selection.clearSelection(),Y.moveCursorTo(F,q+z),Y.selection.selectTo(F,ee+z)),q=ee});for(var X=this.$toggleWordPairs,Q,te=0;te=ee&&q<=Y&&Z.match(/((?:https?|ftp):\/\/[\S]+)/)){X=Z.replace(/[\s:.,'";}\]]+$/,"");break}ee=Y}}catch(de){M={error:de}}finally{try{te&&!te.done&&(z=Q.return)&&z.call(Q)}finally{if(M)throw M.error}}return X},P.prototype.openLink=function(){var F=this.selection.getCursor(),_=this.findLinkAt(F.row,F.column);return _&&window.open(_,"_blank"),_!=null},P.prototype.removeLines=function(){var F=this.$getSelectedRows();this.session.removeFullLines(F.first,F.last),this.clearSelection()},P.prototype.duplicateSelection=function(){var F=this.selection,_=this.session,M=F.getRange(),z=F.isBackwards();if(M.isEmpty()){var R=M.start.row;_.duplicateLines(R,R)}else{var G=z?M.start:M.end,q=_.insert(G,_.getTextRange(M));M.start=G,M.end=q,F.setSelectionRange(M,z)}},P.prototype.moveLinesDown=function(){this.$moveLines(1,!1)},P.prototype.moveLinesUp=function(){this.$moveLines(-1,!1)},P.prototype.moveText=function(F,_,M){return this.session.moveText(F,_,M)},P.prototype.copyLinesUp=function(){this.$moveLines(-1,!0)},P.prototype.copyLinesDown=function(){this.$moveLines(1,!0)},P.prototype.$moveLines=function(F,_){var M,z,R=this.selection;if(!R.inMultiSelectMode||this.inVirtualSelectionMode){var G=R.toOrientedRange();M=this.$getSelectedRows(G),z=this.session.$moveLines(M.first,M.last,_?0:F),_&&F==-1&&(z=0),G.moveBy(z,0),R.fromOrientedRange(G)}else{var q=R.rangeList.ranges;R.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var ee=0,Y=0,X=q.length,Q=0;Qde+1)break;de=ke.last}for(Q--,ee=this.session.$moveLines(Z,de,_?0:F),_&&F==-1&&(te=Q+1);te<=Q;)q[te].moveBy(ee,0),te++;_||(ee=0),Y+=ee}R.fromOrientedRange(R.ranges[0]),R.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},P.prototype.$getSelectedRows=function(F){return F=(F||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(F.start.row),last:this.session.getRowFoldEnd(F.end.row)}},P.prototype.onCompositionStart=function(F){this.renderer.showComposition(F)},P.prototype.onCompositionUpdate=function(F){this.renderer.setCompositionText(F)},P.prototype.onCompositionEnd=function(){this.renderer.hideComposition()},P.prototype.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},P.prototype.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},P.prototype.isRowVisible=function(F){return F>=this.getFirstVisibleRow()&&F<=this.getLastVisibleRow()},P.prototype.isRowFullyVisible=function(F){return F>=this.renderer.getFirstFullyVisibleRow()&&F<=this.renderer.getLastFullyVisibleRow()},P.prototype.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},P.prototype.$moveByPage=function(F,_){var M=this.renderer,z=this.renderer.layerConfig,R=F*Math.floor(z.height/z.lineHeight);_===!0?this.selection.$moveSelection(function(){this.moveCursorBy(R,0)}):_===!1&&(this.selection.moveCursorBy(R,0),this.selection.clearSelection());var G=M.scrollTop;M.scrollBy(0,R*z.lineHeight),_!=null&&M.scrollCursorIntoView(null,.5),M.animateScrolling(G)},P.prototype.selectPageDown=function(){this.$moveByPage(1,!0)},P.prototype.selectPageUp=function(){this.$moveByPage(-1,!0)},P.prototype.gotoPageDown=function(){this.$moveByPage(1,!1)},P.prototype.gotoPageUp=function(){this.$moveByPage(-1,!1)},P.prototype.scrollPageDown=function(){this.$moveByPage(1)},P.prototype.scrollPageUp=function(){this.$moveByPage(-1)},P.prototype.scrollToRow=function(F){this.renderer.scrollToRow(F)},P.prototype.scrollToLine=function(F,_,M,z){this.renderer.scrollToLine(F,_,M,z)},P.prototype.centerSelection=function(){var F=this.getSelectionRange(),_={row:Math.floor(F.start.row+(F.end.row-F.start.row)/2),column:Math.floor(F.start.column+(F.end.column-F.start.column)/2)};this.renderer.alignCursor(_,.5)},P.prototype.getCursorPosition=function(){return this.selection.getCursor()},P.prototype.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},P.prototype.getSelectionRange=function(){return this.selection.getRange()},P.prototype.selectAll=function(){this.selection.selectAll()},P.prototype.clearSelection=function(){this.selection.clearSelection()},P.prototype.moveCursorTo=function(F,_){this.selection.moveCursorTo(F,_)},P.prototype.moveCursorToPosition=function(F){this.selection.moveCursorToPosition(F)},P.prototype.jumpToMatching=function(F,_){var M=this.getCursorPosition(),z=new C(this.session,M.row,M.column),R=z.getCurrentToken(),G=0;R&&R.type.indexOf("tag-name")!==-1&&(R=z.stepBackward());var q=R||z.stepForward();if(q){var ee,Y=!1,X={},Q=M.column-q.start,te,Z={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(q.value.match(/[{}()\[\]]/g)){for(;Q1?X[q.value]++:R.value===""&&X[q.value]--,X[q.value]===-1&&(ee="tag",Y=!0));Y||(R=q,G++,q=z.stepForward(),Q=0)}while(q&&!Y);if(ee){var de,ke;if(ee==="bracket")de=this.session.getBracketRange(M),de||(de=new y(z.getCurrentTokenRow(),z.getCurrentTokenColumn()+Q-1,z.getCurrentTokenRow(),z.getCurrentTokenColumn()+Q-1),ke=de.start,(_||ke.row===M.row&&Math.abs(ke.column-M.column)<2)&&(de=this.session.getBracketRange(ke)));else if(ee==="tag"){if(!q||q.type.indexOf("tag-name")===-1)return;if(de=new y(z.getCurrentTokenRow(),z.getCurrentTokenColumn()-2,z.getCurrentTokenRow(),z.getCurrentTokenColumn()-2),de.compare(M.row,M.column)===0){var me=this.session.getMatchingTags(M);me&&(me.openTag.contains(M.row,M.column)?(de=me.closeTag,ke=de.start):(de=me.openTag,me.closeTag.start.row===M.row&&me.closeTag.start.column===M.column?ke=de.end:ke=de.start))}ke=ke||de.start}ke=de&&de.cursor||ke,ke&&(F?de&&_?this.selection.setRange(de):de&&de.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(ke.row,ke.column):this.selection.moveTo(ke.row,ke.column))}}},P.prototype.gotoLine=function(F,_,M){this.selection.clearSelection(),this.session.unfold({row:F-1,column:_||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(F-1,_||0),this.isRowFullyVisible(F-1)||this.scrollToLine(F-1,!0,M)},P.prototype.navigateTo=function(F,_){this.selection.moveTo(F,_)},P.prototype.navigateUp=function(F){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var _=this.selection.anchor.getPosition();return this.moveCursorToPosition(_)}this.selection.clearSelection(),this.selection.moveCursorBy(-F||-1,0)},P.prototype.navigateDown=function(F){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var _=this.selection.anchor.getPosition();return this.moveCursorToPosition(_)}this.selection.clearSelection(),this.selection.moveCursorBy(F||1,0)},P.prototype.navigateLeft=function(F){if(this.selection.isEmpty())for(F=F||1;F--;)this.selection.moveCursorLeft();else{var _=this.getSelectionRange().start;this.moveCursorToPosition(_)}this.clearSelection()},P.prototype.navigateRight=function(F){if(this.selection.isEmpty())for(F=F||1;F--;)this.selection.moveCursorRight();else{var _=this.getSelectionRange().end;this.moveCursorToPosition(_)}this.clearSelection()},P.prototype.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},P.prototype.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},P.prototype.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},P.prototype.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},P.prototype.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},P.prototype.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},P.prototype.replace=function(F,_){_&&this.$search.set(_);var M=this.$search.find(this.session),z=0;return M&&(this.$tryReplace(M,F)&&(z=1),this.selection.setSelectionRange(M),this.renderer.scrollSelectionIntoView(M.start,M.end)),z},P.prototype.replaceAll=function(F,_){_&&this.$search.set(_);var M=this.$search.findAll(this.session),z=0;if(!M.length)return z;var R=this.getSelectionRange();this.selection.moveTo(0,0);for(var G=M.length-1;G>=0;--G)this.$tryReplace(M[G],F)&&z++;return this.selection.setSelectionRange(R),z},P.prototype.$tryReplace=function(F,_){var M=this.session.getTextRange(F);return _=this.$search.replace(M,_),_!==null?(F.end=this.session.replace(F,_),F):null},P.prototype.getLastSearchOptions=function(){return this.$search.getOptions()},P.prototype.find=function(F,_,M){_||(_={}),typeof F=="string"||F instanceof RegExp?_.needle=F:typeof F=="object"&&o.mixin(_,F);var z=this.selection.getRange();_.needle==null&&(F=this.session.getTextRange(z)||this.$search.$options.needle,F||(z=this.session.getWordRange(z.start.row,z.start.column),F=this.session.getTextRange(z)),this.$search.set({needle:F})),this.$search.set(_),_.start||this.$search.set({start:z});var R=this.$search.find(this.session);if(_.preventScroll)return R;if(R)return this.revealRange(R,M),R;_.backwards?z.start=z.end:z.end=z.start,this.selection.setRange(z)},P.prototype.findNext=function(F,_){this.find({skipCurrent:!0,backwards:!1},F,_)},P.prototype.findPrevious=function(F,_){this.find(F,{skipCurrent:!0,backwards:!0},_)},P.prototype.revealRange=function(F,_){this.session.unfold(F),this.selection.setSelectionRange(F);var M=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(F.start,F.end,.5),_!==!1&&this.renderer.animateScrolling(M)},P.prototype.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},P.prototype.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},P.prototype.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(F){F.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},P.prototype.setAutoScrollEditorIntoView=function(F){if(F){var _,M=this,z=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var R=this.$scrollAnchor;R.style.cssText="position:absolute",this.container.insertBefore(R,this.container.firstChild);var G=this.on("changeSelection",function(){z=!0}),q=this.renderer.on("beforeRender",function(){z&&(_=M.renderer.container.getBoundingClientRect())}),ee=this.renderer.on("afterRender",function(){if(z&&_&&(M.isFocused()||M.searchBox&&M.searchBox.isFocused())){var Y=M.renderer,X=Y.$cursorLayer.$pixelPos,Q=Y.layerConfig,te=X.top-Q.offset;X.top>=0&&te+_.top<0?z=!0:X.topwindow.innerHeight?z=!1:z=null,z!=null&&(R.style.top=te+"px",R.style.left=X.left+"px",R.style.height=Q.lineHeight+"px",R.scrollIntoView(z)),z=_=null}});this.setAutoScrollEditorIntoView=function(Y){Y||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",G),this.renderer.off("afterRender",ee),this.renderer.off("beforeRender",q))}}},P.prototype.$resetCursorStyle=function(){var F=this.$cursorStyle||"ace",_=this.renderer.$cursorLayer;_&&(_.setSmoothBlinking(/smooth/.test(F)),_.isBlinking=!this.$readOnly&&F!="wide",a.setCssClass(_.element,"ace_slim-cursors",/slim/.test(F)))},P.prototype.prompt=function(F,_,M){var z=this;D.loadModule("ace/ext/prompt",function(R){R.prompt(z,F,_,M)})},P}();I.$uid=0,I.prototype.curOp=null,I.prototype.prevOp={},I.prototype.$mergeableCommands=["backspace","del","insertstring"],I.prototype.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],o.implement(I.prototype,b),D.defineOptions(I.prototype,"editor",{selectionStyle:{set:function(P){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:P})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(P){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(P){this.textInput.setReadOnly(P),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(P){this.textInput.setCopyWithEmptySelection(P)},initialValue:!1},cursorStyle:{set:function(P){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(P){this.setAutoScrollEditorIntoView(P)}},keyboardHandler:{set:function(P){this.setKeyboardHandler(P)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(P){this.session.setValue(P)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(P){this.setSession(P)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(P){this.renderer.$gutterLayer.setShowLineNumbers(P),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),P&&this.$relativeLineNumbers?L.attach(this):L.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(P){this.$showLineNumbers&&P?L.attach(this):L.detach(this)}},placeholder:{set:function(P){this.$updatePlaceholder||(this.$updatePlaceholder=(function(){var F=this.session&&(this.renderer.$composition||this.session.getLength()>1||this.session.getLine(0).length>0);if(F&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),a.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!F&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),a.addCssClass(this.container,"ace_hasPlaceholder");var _=a.createElement("div");_.className="ace_placeholder",_.textContent=this.$placeholder||"",this.renderer.placeholderNode=_,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!F&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}).bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},enableKeyboardAccessibility:{set:function(P){var F={name:"blurTextInput",description:"Set focus to the editor content div to allow tabbing through the page",bindKey:"Esc",exec:function(z){z.blur(),z.renderer.scroller.focus()},readOnly:!0},_=function(z){if(z.target==this.renderer.scroller&&z.keyCode===N.enter){z.preventDefault();var R=this.getCursorPosition().row;this.isRowVisible(R)||this.scrollToLine(R,!0,!0),this.focus()}},M;P?(this.renderer.enableKeyboardAccessibility=!0,this.renderer.keyboardFocusClassName="ace_keyboard-focus",this.textInput.getElement().setAttribute("tabindex",-1),this.textInput.setNumberOfExtraLines(u.isWin?3:0),this.renderer.scroller.setAttribute("tabindex",0),this.renderer.scroller.setAttribute("role","group"),this.renderer.scroller.setAttribute("aria-roledescription",A("editor.scroller.aria-roledescription","editor")),this.renderer.scroller.classList.add(this.renderer.keyboardFocusClassName),this.renderer.scroller.setAttribute("aria-label",A("editor.scroller.aria-label","Editor content, press Enter to start editing, press Escape to exit")),this.renderer.scroller.addEventListener("keyup",_.bind(this)),this.commands.addCommand(F),this.renderer.$gutter.setAttribute("tabindex",0),this.renderer.$gutter.setAttribute("aria-hidden",!1),this.renderer.$gutter.setAttribute("role","group"),this.renderer.$gutter.setAttribute("aria-roledescription",A("editor.gutter.aria-roledescription","editor")),this.renderer.$gutter.setAttribute("aria-label",A("editor.gutter.aria-label","Editor gutter, press Enter to interact with controls using arrow keys, press Escape to exit")),this.renderer.$gutter.classList.add(this.renderer.keyboardFocusClassName),this.renderer.content.setAttribute("aria-hidden",!0),M||(M=new T(this)),M.addListener()):(this.renderer.enableKeyboardAccessibility=!1,this.textInput.getElement().setAttribute("tabindex",0),this.textInput.setNumberOfExtraLines(0),this.renderer.scroller.setAttribute("tabindex",-1),this.renderer.scroller.removeAttribute("role"),this.renderer.scroller.removeAttribute("aria-roledescription"),this.renderer.scroller.classList.remove(this.renderer.keyboardFocusClassName),this.renderer.scroller.removeAttribute("aria-label"),this.renderer.scroller.removeEventListener("keyup",_.bind(this)),this.commands.removeCommand(F),this.renderer.content.removeAttribute("aria-hidden"),this.renderer.$gutter.setAttribute("tabindex",-1),this.renderer.$gutter.setAttribute("aria-hidden",!0),this.renderer.$gutter.removeAttribute("role"),this.renderer.$gutter.removeAttribute("aria-roledescription"),this.renderer.$gutter.removeAttribute("aria-label"),this.renderer.$gutter.classList.remove(this.renderer.keyboardFocusClassName),M&&M.removeListener())},initialValue:!1},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",useResizeObserver:"renderer",useSvgGutterIcons:"renderer",showFoldedAnnotations:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var L={getText:function(P,F){return(Math.abs(P.selection.lead.row-F)||F+1+(F<9?"·":""))+""},getWidth:function(P,F,_){return Math.max(F.toString().length,(_.lastRow+1).toString().length,2)*_.characterWidth},update:function(P,F){F.renderer.$loop.schedule(F.renderer.CHANGE_GUTTER)},attach:function(P){P.renderer.$gutterLayer.$renderer=this,P.on("changeSelection",this.update),this.update(null,P)},detach:function(P){P.renderer.$gutterLayer.$renderer==this&&(P.renderer.$gutterLayer.$renderer=null),P.off("changeSelection",this.update),this.update(null,P)}};n.Editor=I}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(r,n,i){var s=r("../lib/dom"),o=function(){function a(l,u){this.element=l,this.canvasHeight=u||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0}return a.prototype.moveContainer=function(l){s.translate(this.element,0,-(l.firstRowScreen*l.lineHeight%this.canvasHeight)-l.offset*this.$offsetCoefficient)},a.prototype.pageChanged=function(l,u){return Math.floor(l.firstRowScreen*l.lineHeight/this.canvasHeight)!==Math.floor(u.firstRowScreen*u.lineHeight/this.canvasHeight)},a.prototype.computeLineTop=function(l,u,c){var h=u.firstRowScreen*u.lineHeight,d=Math.floor(h/this.canvasHeight),f=c.documentToScreenRow(l,0)*u.lineHeight;return f-d*this.canvasHeight},a.prototype.computeLineHeight=function(l,u,c){return u.lineHeight*c.getRowLineCount(l)},a.prototype.getLength=function(){return this.cells.length},a.prototype.get=function(l){return this.cells[l]},a.prototype.shift=function(){this.$cacheCell(this.cells.shift())},a.prototype.pop=function(){this.$cacheCell(this.cells.pop())},a.prototype.push=function(l){if(Array.isArray(l)){this.cells.push.apply(this.cells,l);for(var u=s.createFragment(this.element),c=0;cE&&(w=v.end.row+1,v=g.getNextFoldLine(w,v),E=v?v.start.row:1/0),w>b){for(;this.$lines.getLength()>C+1;)this.$lines.pop();break}D=this.$lines.get(++C),D?D.row=w:(D=this.$lines.createCell(w,p,this.session,d),this.$lines.push(D)),this.$renderCell(D,p,v,w),w++}this._signal("afterRender"),this.$updateGutterWidth(p)},f.prototype.$updateGutterWidth=function(p){var g=this.session,y=g.gutterRenderer||this.$renderer,b=g.$firstLineNumber,v=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||g.$useWrapMode)&&(v=g.getLength()+b-1);var E=y?y.getWidth(g,v,p):v.toString().length*p.characterWidth,D=this.$padding||this.$computePadding();E+=D.left+D.right,E!==this.gutterWidth&&!isNaN(E)&&(this.gutterWidth=E,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",E))},f.prototype.$updateCursorRow=function(){if(this.$highlightGutterLine){var p=this.session.selection.getCursor();this.$cursorRow!==p.row&&(this.$cursorRow=p.row)}},f.prototype.updateLineHighlight=function(){if(this.$highlightGutterLine){var p=this.session.selection.cursor.row;if(this.$cursorRow=p,!(this.$cursorCell&&this.$cursorCell.row==p)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var g=this.$lines.cells;this.$cursorCell=null;for(var y=0;y=this.$cursorRow){if(b.row>this.$cursorRow){var v=this.session.getFoldLine(this.$cursorRow);if(y>0&&v&&v.start.row==g[y-1].row)b=g[y-1];else break}b.element.className="ace_gutter-active-line "+b.element.className,this.$cursorCell=b;break}}}}},f.prototype.scrollLines=function(p){var g=this.config;if(this.config=p,this.$updateCursorRow(),this.$lines.pageChanged(g,p))return this.update(p);this.$lines.moveContainer(p);var y=Math.min(p.lastRow+p.gutterOffset,this.session.getLength()-1),b=this.oldLastRow;if(this.oldLastRow=y,!g||b0;v--)this.$lines.shift();if(b>y)for(var v=this.session.getFoldedRowCount(y+1,b);v>0;v--)this.$lines.pop();p.firstRowb&&this.$lines.push(this.$renderLines(p,b+1,y)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(p)},f.prototype.$renderLines=function(p,g,y){for(var b=[],v=g,E=this.session.getNextFoldLine(v),D=E?E.start.row:1/0;v>D&&(v=E.end.row+1,E=this.session.getNextFoldLine(v,E),D=E?E.start.row:1/0),!(v>y);){var C=this.$lines.createCell(v,p,this.session,d);this.$renderCell(C,p,E,v),b.push(C),v++}return b},f.prototype.$renderCell=function(p,g,y,b){var v=p.element,E=this.session,D=v.childNodes[0],C=v.childNodes[1],w=v.childNodes[2],T=w.firstChild,A=E.$firstLineNumber,$=E.$breakpoints,N=E.$decorations,I=E.gutterRenderer||this.$renderer,L=this.$showFoldWidgets&&E.foldWidgets,P=y?y.start.row:Number.MAX_VALUE,F=g.lineHeight+"px",_=this.$useSvgGutterIcons?"ace_gutter-cell_svg-icons ":"ace_gutter-cell ",M=this.$useSvgGutterIcons?"ace_icon_svg":"ace_icon",z=(I?I.getText(E,b):b+A).toString();if(this.$highlightGutterLine&&(b==this.$cursorRow||y&&b=P&&this.$cursorRow<=y.end.row)&&(_+="ace_gutter-active-line ",this.$cursorCell!=p&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=p)),$[b]&&(_+=$[b]),N[b]&&(_+=N[b]),this.$annotations[b]&&b!==P&&(_+=this.$annotations[b].className),L){var R=L[b];R==null&&(R=L[b]=E.getFoldWidget(b))}if(R){var G="ace_fold-widget ace_"+R,q=R=="start"&&b==P&&by.right-g.right)return"foldWidgets"},f}();h.prototype.$fixedWidth=!1,h.prototype.$highlightGutterLine=!0,h.prototype.$renderer="",h.prototype.$showLineNumbers=!0,h.prototype.$showFoldWidgets=!0,o.implement(h.prototype,l);function d(f){var p=document.createTextNode("");f.appendChild(p);var g=s.createElement("span");f.appendChild(g);var y=s.createElement("span");f.appendChild(y);var b=s.createElement("span");return y.appendChild(b),f}n.Gutter=h}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(r,n,i){var s=r("../range").Range,o=r("../lib/dom"),a=function(){function u(c){this.element=o.createElement("div"),this.element.className="ace_layer ace_marker-layer",c.appendChild(this.element)}return u.prototype.setPadding=function(c){this.$padding=c},u.prototype.setSession=function(c){this.session=c},u.prototype.setMarkers=function(c){this.markers=c},u.prototype.elt=function(c,h){var d=this.i!=-1&&this.element.childNodes[this.i];d?this.i++:(d=document.createElement("div"),this.element.appendChild(d),this.i=-1),d.style.cssText=h,d.className=c},u.prototype.update=function(c){if(c){this.config=c,this.i=0;var h;for(var d in this.markers){var f=this.markers[d];if(!f.range){f.update(h,this,this.session,c);continue}var p=f.range.clipRows(c.firstRow,c.lastRow);if(!p.isEmpty())if(p=p.toScreenRange(this.session),f.renderer){var g=this.$getTop(p.start.row,c),y=this.$padding+p.start.column*c.characterWidth;f.renderer(h,p,y,g,c)}else f.type=="fullLine"?this.drawFullLineMarker(h,p,f.clazz,c):f.type=="screenLine"?this.drawScreenLineMarker(h,p,f.clazz,c):p.isMultiLine()?f.type=="text"?this.drawTextMarker(h,p,f.clazz,c):this.drawMultiLineMarker(h,p,f.clazz,c):this.drawSingleLineMarker(h,p,f.clazz+" ace_start ace_br15",c)}if(this.i!=-1)for(;this.iC,v==b),f,v==b?0:1,p)},u.prototype.drawMultiLineMarker=function(c,h,d,f,p){var g=this.$padding,y=f.lineHeight,b=this.$getTop(h.start.row,f),v=g+h.start.column*f.characterWidth;if(p=p||"",this.session.$bidiHandler.isBidiRow(h.start.row)){var E=h.clone();E.end.row=E.start.row,E.end.column=this.session.getLine(E.start.row).length,this.drawBidiSingleLineMarker(c,E,d+" ace_br1 ace_start",f,null,p)}else this.elt(d+" ace_br1 ace_start","height:"+y+"px;right:0;top:"+b+"px;left:"+v+"px;"+(p||""));if(this.session.$bidiHandler.isBidiRow(h.end.row)){var E=h.clone();E.start.row=E.end.row,E.start.column=0,this.drawBidiSingleLineMarker(c,E,d+" ace_br12",f,null,p)}else{b=this.$getTop(h.end.row,f);var D=h.end.column*f.characterWidth;this.elt(d+" ace_br12","height:"+y+"px;width:"+D+"px;top:"+b+"px;left:"+g+"px;"+(p||""))}if(y=(h.end.row-h.start.row-1)*f.lineHeight,!(y<=0)){b=this.$getTop(h.start.row+1,f);var C=(h.start.column?1:0)|(h.end.column?0:8);this.elt(d+(C?" ace_br"+C:""),"height:"+y+"px;right:0;top:"+b+"px;left:"+g+"px;"+(p||""))}},u.prototype.drawSingleLineMarker=function(c,h,d,f,p,g){if(this.session.$bidiHandler.isBidiRow(h.start.row))return this.drawBidiSingleLineMarker(c,h,d,f,p,g);var y=f.lineHeight,b=(h.end.column+(p||0)-h.start.column)*f.characterWidth,v=this.$getTop(h.start.row,f),E=this.$padding+h.start.column*f.characterWidth;this.elt(d,"height:"+y+"px;width:"+b+"px;top:"+v+"px;left:"+E+"px;"+(g||""))},u.prototype.drawBidiSingleLineMarker=function(c,h,d,f,p,g){var y=f.lineHeight,b=this.$getTop(h.start.row,f),v=this.$padding,E=this.session.$bidiHandler.getSelections(h.start.column,h.end.column);E.forEach(function(D){this.elt(d,"height:"+y+"px;width:"+(D.width+(p||0))+"px;top:"+b+"px;left:"+(v+D.left)+"px;"+(g||""))},this)},u.prototype.drawFullLineMarker=function(c,h,d,f,p){var g=this.$getTop(h.start.row,f),y=f.lineHeight;h.start.row!=h.end.row&&(y+=this.$getTop(h.end.row,f)-g),this.elt(d,"height:"+y+"px;top:"+g+"px;left:0;right:0;"+(p||""))},u.prototype.drawScreenLineMarker=function(c,h,d,f,p){var g=this.$getTop(h.start.row,f),y=f.lineHeight;this.elt(d,"height:"+y+"px;top:"+g+"px;left:0;right:0;"+(p||""))},u}();a.prototype.$padding=0;function l(u,c,h,d){return(u?1:0)|(c?2:0)|(h?4:0)|(d?8:0)}n.Marker=a}),ace.define("ace/layer/text_util",["require","exports","module"],function(r,n,i){var s=new Set(["text","rparen","lparen"]);n.isTextToken=function(o){return s.has(o)}}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter","ace/config","ace/layer/text_util"],function(r,n,i){var s=r("../lib/oop"),o=r("../lib/dom"),a=r("../lib/lang"),l=r("./lines").Lines,u=r("../lib/event_emitter").EventEmitter,c=r("../config").nls,h=r("./text_util").isTextToken,d=function(){function f(p){this.dom=o,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",p.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new l(this.element)}return f.prototype.$updateEolChar=function(){var p=this.session.doc,g=p.getNewLineCharacter()==`
+`&&p.getNewLineMode()!="windows",y=g?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=y)return this.EOL_CHAR=y,!0},f.prototype.setPadding=function(p){this.$padding=p,this.element.style.margin="0 "+p+"px"},f.prototype.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},f.prototype.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},f.prototype.$setFontMetrics=function(p){this.$fontMetrics=p,this.$fontMetrics.on("changeCharacterSize",(function(g){this._signal("changeCharacterSize",g)}).bind(this)),this.$pollSizeChanges()},f.prototype.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},f.prototype.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},f.prototype.setSession=function(p){this.session=p,p&&this.$computeTabString()},f.prototype.setShowInvisibles=function(p){return this.showInvisibles==p?!1:(this.showInvisibles=p,typeof p=="string"?(this.showSpaces=/tab/i.test(p),this.showTabs=/space/i.test(p),this.showEOL=/eol/i.test(p)):this.showSpaces=this.showTabs=this.showEOL=p,this.$computeTabString(),!0)},f.prototype.setDisplayIndentGuides=function(p){return this.displayIndentGuides==p?!1:(this.displayIndentGuides=p,this.$computeTabString(),!0)},f.prototype.setHighlightIndentGuides=function(p){return this.$highlightIndentGuides===p?!1:(this.$highlightIndentGuides=p,p)},f.prototype.$computeTabString=function(){var p=this.session.getTabSize();this.tabSize=p;for(var g=this.$tabStrings=[0],y=1;yA&&(w=T.end.row+1,T=this.session.getNextFoldLine(w,T),A=T?T.start.row:1/0),!(w>v);){var $=E[D++];if($){this.dom.removeChildren($),this.$renderLine($,w,w==A?T:!1),C&&($.style.top=this.$lines.computeLineTop(w,p,this.session)+"px");var N=p.lineHeight*this.session.getRowLength(w)+"px";$.style.height!=N&&(C=!0,$.style.height=N)}w++}if(C)for(;D0;v--)this.$lines.shift();if(g.lastRow>p.lastRow)for(var v=this.session.getFoldedRowCount(p.lastRow+1,g.lastRow);v>0;v--)this.$lines.pop();p.firstRowg.lastRow&&this.$lines.push(this.$renderLinesFragment(p,g.lastRow+1,p.lastRow)),this.$highlightIndentGuide()},f.prototype.$renderLinesFragment=function(p,g,y){for(var b=[],v=g,E=this.session.getNextFoldLine(v),D=E?E.start.row:1/0;v>D&&(v=E.end.row+1,E=this.session.getNextFoldLine(v,E),D=E?E.start.row:1/0),!(v>y);){var C=this.$lines.createCell(v,p,this.session),w=C.element;this.dom.removeChildren(w),o.setStyle(w.style,"height",this.$lines.computeLineHeight(v,p,this.session)+"px"),o.setStyle(w.style,"top",this.$lines.computeLineTop(v,p,this.session)+"px"),this.$renderLine(w,v,v==D?E:!1),this.$useLineGroups()?w.className="ace_line_group":w.className="ace_line",b.push(C),v++}return b},f.prototype.update=function(p){this.$lines.moveContainer(p),this.config=p;for(var g=p.firstRow,y=p.lastRow,b=this.$lines;b.getLength();)b.pop();b.push(this.$renderLinesFragment(p,g,y))},f.prototype.$renderToken=function(p,g,y,b){for(var v=this,E=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,D=this.dom.createFragment(this.element),C,w=0;C=E.exec(b);){var T=C[1],A=C[2],$=C[3],N=C[4],I=C[5];if(!(!v.showSpaces&&A)){var L=w!=C.index?b.slice(w,C.index):"";if(w=C.index+C[0].length,L&&D.appendChild(this.dom.createTextNode(L,this.element)),T){var P=v.session.getScreenTabSize(g+C.index);D.appendChild(v.$tabStrings[P].cloneNode(!0)),g+=P-1}else if(A)if(v.showSpaces){var F=this.dom.createElement("span");F.className="ace_invisible ace_invisible_space",F.textContent=a.stringRepeat(v.SPACE_CHAR,A.length),D.appendChild(F)}else D.appendChild(this.dom.createTextNode(A,this.element));else if($){var F=this.dom.createElement("span");F.className="ace_invisible ace_invisible_space ace_invalid",F.textContent=a.stringRepeat(v.SPACE_CHAR,$.length),D.appendChild(F)}else if(N){g+=1;var F=this.dom.createElement("span");F.style.width=v.config.characterWidth*2+"px",F.className=v.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",F.textContent=v.showSpaces?v.SPACE_CHAR:N,D.appendChild(F)}else if(I){g+=1;var F=this.dom.createElement("span");F.style.width=v.config.characterWidth*2+"px",F.className="ace_cjk",F.textContent=I,D.appendChild(F)}}}if(D.appendChild(this.dom.createTextNode(w?b.slice(w):b,this.element)),h(y.type))p.appendChild(D);else{var _="ace_"+y.type.replace(/\./g," ace_"),F=this.dom.createElement("span");y.type=="fold"&&(F.style.width=y.value.length*this.config.characterWidth+"px",F.setAttribute("title",c("inline-fold.closed.title","Unfold code"))),F.className=_,F.appendChild(D),p.appendChild(F)}return g+b.length},f.prototype.renderIndentGuide=function(p,g,y){var b=g.search(this.$indentGuideRe);if(b<=0||b>=y)return g;if(g[0]==" "){b-=b%this.tabSize;for(var v=b/this.tabSize,E=0;EE[D].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&p[g.row]!==""&&g.column===p[g.row].length){this.$highlightIndentGuideMarker.dir=1;for(var D=g.row+1;D0){for(var v=0;v=this.$highlightIndentGuideMarker.start+1){if(b.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(b,g)}}else for(var y=p.length-1;y>=0;y--){var b=p[y];if(this.$highlightIndentGuideMarker.end&&b.row=E;)D=this.$renderToken(C,D,T,A.substring(0,E-b)),A=A.substring(E-b),b=E,C=this.$createLineElement(),p.appendChild(C),C.appendChild(this.dom.createTextNode(a.stringRepeat(" ",y.indent),this.element)),v++,D=0,E=y[v]||Number.MAX_VALUE;A.length!=0&&(b+=A.length,D=this.$renderToken(C,D,T,A))}}y[y.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(C,D,null,"",!0)},f.prototype.$renderSimpleLine=function(p,g){for(var y=0,b=0;bthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(p,y,v,E);y=this.$renderToken(p,y,v,E)}}},f.prototype.$renderOverflowMessage=function(p,g,y,b,v){y&&this.$renderToken(p,g,y,b.slice(0,this.MAX_LINE_LENGTH-g));var E=this.dom.createElement("span");E.className="ace_inline_button ace_keyword ace_toggle_wrap",E.textContent=v?"":"",p.appendChild(E)},f.prototype.$renderLine=function(p,g,y){if(!y&&y!=!1&&(y=this.session.getFoldLine(g)),y)var b=this.$getFoldLineTokens(g,y);else var b=this.session.getTokens(g);var v=p;if(b.length){var E=this.session.getRowSplitData(g);if(E&&E.length){this.$renderWrappedLine(p,b,E);var v=p.lastChild}else{var v=p;this.$useLineGroups()&&(v=this.$createLineElement(),p.appendChild(v)),this.$renderSimpleLine(v,b)}}else this.$useLineGroups()&&(v=this.$createLineElement(),p.appendChild(v));if(this.showEOL&&v){y&&(g=y.end.row);var D=this.dom.createElement("span");D.className="ace_invisible ace_invisible_eol",D.textContent=g==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,v.appendChild(D)}},f.prototype.$getFoldLineTokens=function(p,g){var y=this.session,b=[];function v(D,C,w){for(var T=0,A=0;A+D[T].value.lengthw-C&&($=$.substring(0,w-C)),b.push({type:D[T].type,value:$}),A=C+$.length,T+=1}for(;Aw?b.push({type:D[T].type,value:$.substring(0,w-A)}):b.push(D[T]),A+=$.length,T+=1}}var E=y.getTokens(p);return g.walk(function(D,C,w,T,A){D!=null?b.push({type:"fold",value:D}):(A&&(E=y.getTokens(C)),E.length&&v(E,T,w))},g.end.row,this.session.getLine(g.end.row).length),b},f.prototype.$useLineGroups=function(){return this.session.getUseWrapMode()},f}();d.prototype.EOF_CHAR="¶",d.prototype.EOL_CHAR_LF="¬",d.prototype.EOL_CHAR_CRLF="¤",d.prototype.EOL_CHAR=d.prototype.EOL_CHAR_LF,d.prototype.TAB_CHAR="—",d.prototype.SPACE_CHAR="·",d.prototype.$padding=0,d.prototype.MAX_LINE_LENGTH=1e4,d.prototype.showInvisibles=!1,d.prototype.showSpaces=!1,d.prototype.showTabs=!1,d.prototype.showEOL=!1,d.prototype.displayIndentGuides=!0,d.prototype.$highlightIndentGuides=!0,d.prototype.$tabStrings=[],d.prototype.destroy={},d.prototype.onChangeTabSize=d.prototype.$computeTabString,s.implement(d.prototype,u),n.Text=d}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(r,n,i){var s=r("../lib/dom"),o=function(){function a(l){this.element=s.createElement("div"),this.element.className="ace_layer ace_cursor-layer",l.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),s.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)}return a.prototype.$updateOpacity=function(l){for(var u=this.cursors,c=u.length;c--;)s.setStyle(u[c].style,"opacity",l?"":"0")},a.prototype.$startCssAnimation=function(){for(var l=this.cursors,u=l.length;u--;)l[u].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout((function(){this.$isAnimating&&s.addCssClass(this.element,"ace_animate-blinking")}).bind(this))},a.prototype.$stopCssAnimation=function(){this.$isAnimating=!1,s.removeCssClass(this.element,"ace_animate-blinking")},a.prototype.setPadding=function(l){this.$padding=l},a.prototype.setSession=function(l){this.session=l},a.prototype.setBlinking=function(l){l!=this.isBlinking&&(this.isBlinking=l,this.restartTimer())},a.prototype.setBlinkInterval=function(l){l!=this.blinkInterval&&(this.blinkInterval=l,this.restartTimer())},a.prototype.setSmoothBlinking=function(l){l!=this.smoothBlinking&&(this.smoothBlinking=l,s.setCssClass(this.element,"ace_smooth-blinking",l),this.$updateCursors(!0),this.restartTimer())},a.prototype.addCursor=function(){var l=s.createElement("div");return l.className="ace_cursor",this.element.appendChild(l),this.cursors.push(l),l},a.prototype.removeCursor=function(){if(this.cursors.length>1){var l=this.cursors.pop();return l.parentNode.removeChild(l),l}},a.prototype.hideCursor=function(){this.isVisible=!1,s.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},a.prototype.showCursor=function(){this.isVisible=!0,s.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},a.prototype.restartTimer=function(){var l=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,s.removeCssClass(this.element,"ace_smooth-blinking")),l(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout((function(){this.$isSmoothBlinking&&s.addCssClass(this.element,"ace_smooth-blinking")}).bind(this))),s.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var u=(function(){this.timeoutId=setTimeout(function(){l(!1)},.6*this.blinkInterval)}).bind(this);this.intervalId=setInterval(function(){l(!0),u()},this.blinkInterval),u()}},a.prototype.getPixelPosition=function(l,u){if(!this.config||!this.session)return{left:0,top:0};l||(l=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(l),h=this.$padding+(this.session.$bidiHandler.isBidiRow(c.row,l.row)?this.session.$bidiHandler.getPosLeft(c.column):c.column*this.config.characterWidth),d=(c.row-(u?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:h,top:d}},a.prototype.isCursorInView=function(l,u){return l.top>=0&&l.topl.height+l.offset||f.top<0)&&c>1)){var p=this.cursors[h++]||this.addCursor(),g=p.style;this.drawCursor?this.drawCursor(p,f,l,u[c],this.session):this.isCursorInView(f,l)?(s.setStyle(g,"display","block"),s.translate(p,f.left,f.top),s.setStyle(g,"width",Math.round(l.characterWidth)+"px"),s.setStyle(g,"height",l.lineHeight+"px")):s.setStyle(g,"display","none")}}for(;this.cursors.length>h;)this.removeCursor();var y=this.session.getOverwrite();this.$setOverwrite(y),this.$pixelPos=f,this.restartTimer()},a.prototype.$setOverwrite=function(l){l!=this.overwrite&&(this.overwrite=l,l?s.addCssClass(this.element,"ace_overwrite-cursors"):s.removeCssClass(this.element,"ace_overwrite-cursors"))},a.prototype.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)},a}();o.prototype.$padding=0,o.prototype.drawCursor=null,n.Cursor=o}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(r,n,i){var s=this&&this.__extends||function(){var p=function(g,y){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,v){b.__proto__=v}||function(b,v){for(var E in v)Object.prototype.hasOwnProperty.call(v,E)&&(b[E]=v[E])},p(g,y)};return function(g,y){if(typeof y!="function"&&y!==null)throw new TypeError("Class extends value "+String(y)+" is not a constructor or null");p(g,y);function b(){this.constructor=g}g.prototype=y===null?Object.create(y):(b.prototype=y.prototype,new b)}}(),o=r("./lib/oop"),a=r("./lib/dom"),l=r("./lib/event"),u=r("./lib/event_emitter").EventEmitter,c=32768,h=function(){function p(g,y){this.element=a.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+y,this.inner=a.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),g.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,l.addListener(this.element,"scroll",this.onScroll.bind(this)),l.addListener(this.element,"mousedown",l.preventDefault)}return p.prototype.setVisible=function(g){this.element.style.display=g?"":"none",this.isVisible=g,this.coeff=1},p}();o.implement(h.prototype,u);var d=function(p){s(g,p);function g(y,b){var v=p.call(this,y,"-v")||this;return v.scrollTop=0,v.scrollHeight=0,b.$scrollbarWidth=v.width=a.scrollbarWidth(y.ownerDocument),v.inner.style.width=v.element.style.width=(v.width||15)+5+"px",v.$minWidth=0,v}return g.prototype.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var y=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-y)/(this.coeff-y)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},g.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},g.prototype.setHeight=function(y){this.element.style.height=y+"px"},g.prototype.setScrollHeight=function(y){this.scrollHeight=y,y>c?(this.coeff=c/y,y=c):this.coeff!=1&&(this.coeff=1),this.inner.style.height=y+"px"},g.prototype.setScrollTop=function(y){this.scrollTop!=y&&(this.skipEvent=!0,this.scrollTop=y,this.element.scrollTop=y*this.coeff)},g}(h);d.prototype.setInnerHeight=d.prototype.setScrollHeight;var f=function(p){s(g,p);function g(y,b){var v=p.call(this,y,"-h")||this;return v.scrollLeft=0,v.height=b.$scrollbarWidth,v.inner.style.height=v.element.style.height=(v.height||15)+5+"px",v}return g.prototype.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},g.prototype.getHeight=function(){return this.isVisible?this.height:0},g.prototype.setWidth=function(y){this.element.style.width=y+"px"},g.prototype.setInnerWidth=function(y){this.inner.style.width=y+"px"},g.prototype.setScrollWidth=function(y){this.inner.style.width=y+"px"},g.prototype.setScrollLeft=function(y){this.scrollLeft!=y&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=y)},g}(h);n.ScrollBar=d,n.ScrollBarV=d,n.ScrollBarH=f,n.VScrollBar=d,n.HScrollBar=f}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(r,n,i){var s=this&&this.__extends||function(){var f=function(p,g){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,b){y.__proto__=b}||function(y,b){for(var v in b)Object.prototype.hasOwnProperty.call(b,v)&&(y[v]=b[v])},f(p,g)};return function(p,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");f(p,g);function y(){this.constructor=p}p.prototype=g===null?Object.create(g):(y.prototype=g.prototype,new y)}}(),o=r("./lib/oop"),a=r("./lib/dom"),l=r("./lib/event"),u=r("./lib/event_emitter").EventEmitter;a.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{
+ position: absolute;
+ background: rgba(128, 128, 128, 0.6);
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ border: 1px solid #bbb;
+ border-radius: 2px;
+ z-index: 8;
+}
+.ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {
+ position: absolute;
+ z-index: 6;
+ background: none;
+ overflow: hidden!important;
+}
+.ace_editor>.ace_sb-v {
+ z-index: 6;
+ right: 0;
+ top: 0;
+ width: 12px;
+}
+.ace_editor>.ace_sb-v div {
+ z-index: 8;
+ right: 0;
+ width: 100%;
+}
+.ace_editor>.ace_sb-h {
+ bottom: 0;
+ left: 0;
+ height: 12px;
+}
+.ace_editor>.ace_sb-h div {
+ bottom: 0;
+ height: 100%;
+}
+.ace_editor>.ace_sb_grabbed {
+ z-index: 8;
+ background: #000;
+}`,"ace_scrollbar.css",!1);var c=function(){function f(p,g){this.element=a.createElement("div"),this.element.className="ace_sb"+g,this.inner=a.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,p.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,l.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")}return f.prototype.setVisible=function(p){this.element.style.display=p?"":"none",this.isVisible=p,this.coeff=1},f}();o.implement(c.prototype,u);var h=function(f){s(p,f);function p(g,y){var b=f.call(this,g,"-v")||this;return b.scrollTop=0,b.scrollHeight=0,b.parent=g,b.width=b.VScrollWidth,b.renderer=y,b.inner.style.width=b.element.style.width=(b.width||15)+"px",b.$minWidth=0,b}return p.prototype.onMouseDown=function(g,y){if(g==="mousedown"&&!(l.getButton(y)!==0||y.detail===2)){if(y.target===this.inner){var b=this,v=y.clientY,E=function(N){v=N.clientY},D=function(){clearInterval(A)},C=y.clientY,w=this.thumbTop,T=function(){if(v!==void 0){var N=b.scrollTopFromThumbTop(w+v-C);N!==b.scrollTop&&b._emit("scroll",{data:N})}};l.capture(this.inner,E,D);var A=setInterval(T,20);return l.preventDefault(y)}var $=y.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop($)}),l.preventDefault(y)}},p.prototype.getHeight=function(){return this.height},p.prototype.scrollTopFromThumbTop=function(g){var y=g*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return y=y>>0,y<0?y=0:y>this.pageHeight-this.viewHeight&&(y=this.pageHeight-this.viewHeight),y},p.prototype.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},p.prototype.setHeight=function(g){this.height=Math.max(0,g),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},p.prototype.setScrollHeight=function(g,y){this.pageHeight===g&&!y||(this.pageHeight=g,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},p.prototype.setScrollTop=function(g){this.scrollTop=g,g<0&&(g=0),this.thumbTop=g*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"},p}(c);h.prototype.setInnerHeight=h.prototype.setScrollHeight;var d=function(f){s(p,f);function p(g,y){var b=f.call(this,g,"-h")||this;return b.scrollLeft=0,b.scrollWidth=0,b.height=b.HScrollHeight,b.inner.style.height=b.element.style.height=(b.height||12)+"px",b.renderer=y,b}return p.prototype.onMouseDown=function(g,y){if(g==="mousedown"&&!(l.getButton(y)!==0||y.detail===2)){if(y.target===this.inner){var b=this,v=y.clientX,E=function(N){v=N.clientX},D=function(){clearInterval(A)},C=y.clientX,w=this.thumbLeft,T=function(){if(v!==void 0){var N=b.scrollLeftFromThumbLeft(w+v-C);N!==b.scrollLeft&&b._emit("scroll",{data:N})}};l.capture(this.inner,E,D);var A=setInterval(T,20);return l.preventDefault(y)}var $=y.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft($)}),l.preventDefault(y)}},p.prototype.getHeight=function(){return this.isVisible?this.height:0},p.prototype.scrollLeftFromThumbLeft=function(g){var y=g*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return y=y>>0,y<0?y=0:y>this.pageWidth-this.viewWidth&&(y=this.pageWidth-this.viewWidth),y},p.prototype.setWidth=function(g){this.width=Math.max(0,g),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},p.prototype.setScrollWidth=function(g,y){this.pageWidth===g&&!y||(this.pageWidth=g,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},p.prototype.setScrollLeft=function(g){this.scrollLeft=g,g<0&&(g=0),this.thumbLeft=g*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"},p}(c);d.prototype.setInnerWidth=d.prototype.setScrollWidth,n.ScrollBar=h,n.ScrollBarV=h,n.ScrollBarH=d,n.VScrollBar=h,n.HScrollBar=d}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(r,n,i){var s=r("./lib/event"),o=function(){function a(l,u){this.onRender=l,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=u||window;var c=this;this._flush=function(h){c.pending=!1;var d=c.changes;if(d&&(s.blockIdle(100),c.changes=0,c.onRender(d)),c.changes){if(c.$recursionLimit--<0)return;c.schedule()}else c.$recursionLimit=2}}return a.prototype.schedule=function(l){this.changes=this.changes|l,this.changes&&!this.pending&&(s.nextFrame(this._flush),this.pending=!0)},a.prototype.clear=function(l){var u=this.changes;return this.changes=0,u},a}();n.RenderLoop=o}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(r,n,i){var s=r("../lib/oop"),o=r("../lib/dom"),a=r("../lib/lang"),l=r("../lib/event"),u=r("../lib/useragent"),c=r("../lib/event_emitter").EventEmitter,h=512,d=typeof ResizeObserver=="function",f=200,p=function(){function g(y){this.el=o.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=o.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=o.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),y.appendChild(this.el),this.$measureNode.textContent=a.stringRepeat("X",h),this.$characterSize={width:0,height:0},d?this.$addObserver():this.checkForSizeChanges()}return g.prototype.$setMeasureNodeStyles=function(y,b){y.width=y.height="auto",y.left=y.top="0px",y.visibility="hidden",y.position="absolute",y.whiteSpace="pre",u.isIE<8?y["font-family"]="inherit":y.font="inherit",y.overflow=b?"hidden":"visible"},g.prototype.checkForSizeChanges=function(y){if(y===void 0&&(y=this.$measureSizes()),y&&(this.$characterSize.width!==y.width||this.$characterSize.height!==y.height)){this.$measureNode.style.fontWeight="bold";var b=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=y,this.charSizes=Object.create(null),this.allowBoldFonts=b&&b.width===y.width&&b.height===y.height,this._emit("changeCharacterSize",{data:y})}},g.prototype.$addObserver=function(){var y=this;this.$observer=new window.ResizeObserver(function(b){y.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},g.prototype.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var y=this;return this.$pollSizeChangesTimer=l.onIdle(function b(){y.checkForSizeChanges(),l.onIdle(b,500)},500)},g.prototype.setPolling=function(y){y?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},g.prototype.$measureSizes=function(y){var b={height:(y||this.$measureNode).clientHeight,width:(y||this.$measureNode).clientWidth/h};return b.width===0||b.height===0?null:b},g.prototype.$measureCharWidth=function(y){this.$main.textContent=a.stringRepeat(y,h);var b=this.$main.getBoundingClientRect();return b.width/h},g.prototype.getCharacterWidth=function(y){var b=this.charSizes[y];return b===void 0&&(b=this.charSizes[y]=this.$measureCharWidth(y)/this.$characterSize.width),b},g.prototype.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},g.prototype.$getZoom=function(y){return!y||!y.parentElement?1:(window.getComputedStyle(y).zoom||1)*this.$getZoom(y.parentElement)},g.prototype.$initTransformMeasureNodes=function(){var y=function(b,v){return["div",{style:"position: absolute;top:"+b+"px;left:"+v+"px;"}]};this.els=o.buildDom([y(0,0),y(f,0),y(0,f),y(f,f)],this.el)},g.prototype.transformCoordinates=function(y,b){if(y){var v=this.$getZoom(this.el);y=w(1/v,y)}function E(q,ee,Y){var X=q[1]*ee[0]-q[0]*ee[1];return[(-ee[1]*Y[0]+ee[0]*Y[1])/X,(+q[1]*Y[0]-q[0]*Y[1])/X]}function D(q,ee){return[q[0]-ee[0],q[1]-ee[1]]}function C(q,ee){return[q[0]+ee[0],q[1]+ee[1]]}function w(q,ee){return[q*ee[0],q*ee[1]]}this.els||this.$initTransformMeasureNodes();function T(q){var ee=q.getBoundingClientRect();return[ee.left,ee.top]}var A=T(this.els[0]),$=T(this.els[1]),N=T(this.els[2]),I=T(this.els[3]),L=E(D(I,$),D(I,N),D(C($,N),C(I,A))),P=w(1+L[0],D($,A)),F=w(1+L[1],D(N,A));if(b){var _=b,M=L[0]*_[0]/f+L[1]*_[1]/f+1,z=C(w(_[0],P),w(_[1],F));return C(w(1/M/f,z),A)}var R=D(y,A),G=E(D(P,w(L[0],R)),D(F,w(L[1],R)),R);return w(f,G)},g}();p.prototype.$characterSize={width:0,height:0},s.implement(p.prototype,c),n.FontMetrics=p}),ace.define("ace/css/editor-css",["require","exports","module"],function(r,n,i){i.exports=`
+.ace_br1 {border-top-left-radius : 3px;}
+.ace_br2 {border-top-right-radius : 3px;}
+.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}
+.ace_br4 {border-bottom-right-radius: 3px;}
+.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}
+.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}
+.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}
+.ace_br8 {border-bottom-left-radius : 3px;}
+.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}
+.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}
+.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}
+.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
+.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
+.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
+.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
+
+
+.ace_editor {
+ position: relative;
+ overflow: hidden;
+ padding: 0;
+ font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'Source Code Pro', 'source-code-pro', monospace;
+ direction: ltr;
+ text-align: left;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+
+.ace_scroller {
+ position: absolute;
+ overflow: hidden;
+ top: 0;
+ bottom: 0;
+ background-color: inherit;
+ -ms-user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ cursor: text;
+}
+
+.ace_content {
+ position: absolute;
+ box-sizing: border-box;
+ min-width: 100%;
+ contain: style size layout;
+ font-variant-ligatures: no-common-ligatures;
+}
+
+.ace_keyboard-focus:focus {
+ box-shadow: inset 0 0 0 2px #5E9ED6;
+ outline: none;
+}
+
+.ace_dragging .ace_scroller:before{
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ content: '';
+ background: rgba(250, 250, 250, 0.01);
+ z-index: 1000;
+}
+.ace_dragging.ace_dark .ace_scroller:before{
+ background: rgba(0, 0, 0, 0.01);
+}
+
+.ace_gutter {
+ position: absolute;
+ overflow : hidden;
+ width: auto;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ cursor: default;
+ z-index: 4;
+ -ms-user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ contain: style size layout;
+}
+
+.ace_gutter-active-line {
+ position: absolute;
+ left: 0;
+ right: 0;
+}
+
+.ace_scroller.ace_scroll-left:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;
+ pointer-events: none;
+}
+
+.ace_gutter-cell, .ace_gutter-cell_svg-icons {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ padding-left: 19px;
+ padding-right: 6px;
+ background-repeat: no-repeat;
+}
+
+.ace_gutter-cell_svg-icons .ace_gutter_annotation {
+ margin-left: -14px;
+ float: left;
+}
+
+.ace_gutter-cell .ace_gutter_annotation {
+ margin-left: -19px;
+ float: left;
+}
+
+.ace_gutter-cell.ace_error, .ace_icon.ace_error, .ace_icon.ace_error_fold {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");
+ background-repeat: no-repeat;
+ background-position: 2px center;
+}
+
+.ace_gutter-cell.ace_warning, .ace_icon.ace_warning, .ace_icon.ace_warning_fold {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");
+ background-repeat: no-repeat;
+ background-position: 2px center;
+}
+
+.ace_gutter-cell.ace_info, .ace_icon.ace_info {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");
+ background-repeat: no-repeat;
+ background-position: 2px center;
+}
+.ace_dark .ace_gutter-cell.ace_info, .ace_dark .ace_icon.ace_info {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");
+}
+
+.ace_icon_svg.ace_error {
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJyZWQiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KPGNpcmNsZSBmaWxsPSJub25lIiBjeD0iOCIgY3k9IjgiIHI9IjciIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPGxpbmUgeDE9IjExIiB5MT0iNSIgeDI9IjUiIHkyPSIxMSIvPgo8bGluZSB4MT0iMTEiIHkxPSIxMSIgeDI9IjUiIHkyPSI1Ii8+CjwvZz4KPC9zdmc+");
+ background-color: crimson;
+}
+.ace_icon_svg.ace_warning {
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJkYXJrb3JhbmdlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+Cjxwb2x5Z29uIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGZpbGw9Im5vbmUiIHBvaW50cz0iOCAxIDE1IDE1IDEgMTUgOCAxIi8+CjxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iMC4wMSIgaGVpZ2h0PSIwLjAxIi8+CjxsaW5lIHgxPSI4IiB5MT0iNiIgeDI9IjgiIHkyPSIxMCIvPgo8L2c+Cjwvc3ZnPg==");
+ background-color: darkorange;
+}
+.ace_icon_svg.ace_info {
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiI+CjxnIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlPSJibHVlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CjxjaXJjbGUgZmlsbD0ibm9uZSIgY3g9IjgiIGN5PSI4IiByPSI3IiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjxwb2x5bGluZSBwb2ludHM9IjggMTEgOCA4Ii8+Cjxwb2x5bGluZSBwb2ludHM9IjkgOCA2IDgiLz4KPGxpbmUgeDE9IjEwIiB5MT0iMTEiIHgyPSI2IiB5Mj0iMTEiLz4KPHJlY3QgeD0iOCIgeT0iNSIgd2lkdGg9IjAuMDEiIGhlaWdodD0iMC4wMSIvPgo8L2c+Cjwvc3ZnPg==");
+ background-color: royalblue;
+}
+
+.ace_icon_svg.ace_error_fold {
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSI+CiAgPHBhdGggZD0ibSAxOC45Mjk4NTEsNy44Mjk4MDc2IGMgMC4xNDYzNTMsNi4zMzc0NjA0IC02LjMyMzE0Nyw3Ljc3Nzg0NDQgLTcuNDc3OTEyLDcuNzc3ODQ0NCAtMi4xMDcyNzI2LC0wLjEyODc1IDUuMTE3Njc4LDAuMzU2MjQ5IDUuMDUxNjk4LC03Ljg3MDA2MTggLTAuNjA0NjcyLC04LjAwMzk3MzQ5IC03LjA3NzI3MDYsLTcuNTYzMTE4OSAtNC44NTczLC03LjQzMDM5NTU2IDEuNjA2LC0wLjExNTE0MjI1IDYuODk3NDg1LDEuMjYyNTQ1OTYgNy4yODM1MTQsNy41MjI2MTI5NiB6IiBmaWxsPSJjcmltc29uIiBzdHJva2Utd2lkdGg9IjIiLz4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0ibSA4LjExNDc1NjIsMi4wNTI5ODI4IGMgMy4zNDkxNjk4LDAgNi4wNjQxMzI4LDIuNjc2ODYyNyA2LjA2NDEzMjgsNS45Nzg5NTMgMCwzLjMwMjExMjIgLTIuNzE0OTYzLDUuOTc4OTIwMiAtNi4wNjQxMzI4LDUuOTc4OTIwMiAtMy4zNDkxNDczLDAgLTYuMDY0MTc3MiwtMi42NzY4MDggLTYuMDY0MTc3MiwtNS45Nzg5MjAyIDAuMDA1MzksLTMuMjk5ODg2MSAyLjcxNzI2NTYsLTUuOTczNjQwOCA2LjA2NDE3NzIsLTUuOTc4OTUzIHogbSAwLC0xLjczNTgyNzE5IGMgLTQuMzIxNDgzNiwwIC03LjgyNDc0MDM4LDMuNDU0MDE4NDkgLTcuODI0NzQwMzgsNy43MTQ3ODAxOSAwLDQuMjYwNzI4MiAzLjUwMzI1Njc4LDcuNzE0NzQ1MiA3LjgyNDc0MDM4LDcuNzE0NzQ1MiA0LjMyMTQ0OTgsMCA3LjgyNDY5OTgsLTMuNDU0MDE3IDcuODI0Njk5OCwtNy43MTQ3NDUyIDAsLTIuMDQ2MDkxNCAtMC44MjQzOTIsLTQuMDA4MzY3MiAtMi4yOTE3NTYsLTUuNDU1MTc0NiBDIDEyLjE4MDIyNSwxLjEyOTk2NDggMTAuMTkwMDEzLDAuMzE3MTU1NjEgOC4xMTQ3NTYyLDAuMzE3MTU1NjEgWiBNIDYuOTM3NDU2Myw4LjI0MDU5ODUgNC42NzE4Njg1LDEwLjQ4NTg1MiA2LjAwODY4MTQsMTEuODc2NzI4IDguMzE3MDAzNSw5LjYwMDc5MTEgMTAuNjI1MzM3LDExLjg3NjcyOCAxMS45NjIxMzgsMTAuNDg1ODUyIDkuNjk2NTUwOCw4LjI0MDU5ODUgMTEuOTYyMTM4LDYuMDA2ODA2NiAxMC41NzMyNDYsNC42Mzc0MzM1IDguMzE3MDAzNSw2Ljg3MzQyOTcgNi4wNjA3NjA3LDQuNjM3NDMzNSA0LjY3MTg2ODUsNi4wMDY4MDY2IFoiIGZpbGw9ImNyaW1zb24iIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");
+ background-color: crimson;
+}
+.ace_icon_svg.ace_warning_fold {
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyMCAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNC43NzY5IDE0LjczMzdMOC42NTE5MiAyLjQ4MzY5QzguMzI5NDYgMS44Mzg3NyA3LjQwOTEzIDEuODM4NzcgNy4wODY2NyAyLjQ4MzY5TDAuOTYxNjY5IDE0LjczMzdDMC42NzA3NzUgMTUuMzE1NSAxLjA5MzgzIDE2IDEuNzQ0MjkgMTZIMTMuOTk0M0MxNC42NDQ4IDE2IDE1LjA2NzggMTUuMzE1NSAxNC43NzY5IDE0LjczMzdaTTMuMTYwMDcgMTQuMjVMNy44NjkyOSA0LjgzMTU2TDEyLjU3ODUgMTQuMjVIMy4xNjAwN1pNOC43NDQyOSAxMS42MjVWMTMuMzc1SDYuOTk0MjlWMTEuNjI1SDguNzQ0MjlaTTYuOTk0MjkgMTAuNzVWNy4yNUg4Ljc0NDI5VjEwLjc1SDYuOTk0MjlaIiBmaWxsPSIjRUM3MjExIi8+CjxwYXRoIGQ9Ik0xMS4xOTkxIDIuOTUyMzhDMTAuODgwOSAyLjMxNDY3IDEwLjM1MzcgMS44MDUyNiA5LjcwNTUgMS41MDlMMTEuMDQxIDEuMDY5NzhDMTEuNjg4MyAwLjk0OTgxNCAxMi4zMzcgMS4yNzI2MyAxMi42MzE3IDEuODYxNDFMMTcuNjEzNiAxMS44MTYxQzE4LjM1MjcgMTMuMjkyOSAxNy41OTM4IDE1LjA4MDQgMTYuMDE4IDE1LjU3NDVDMTYuNDA0NCAxNC40NTA3IDE2LjMyMzEgMTMuMjE4OCAxNS43OTI0IDEyLjE1NTVMMTEuMTk5MSAyLjk1MjM4WiIgZmlsbD0iI0VDNzIxMSIvPgo8L3N2Zz4=");
+ background-color: darkorange;
+}
+
+.ace_scrollbar {
+ contain: strict;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ z-index: 6;
+}
+
+.ace_scrollbar-inner {
+ position: absolute;
+ cursor: text;
+ left: 0;
+ top: 0;
+}
+
+.ace_scrollbar-v{
+ overflow-x: hidden;
+ overflow-y: scroll;
+ top: 0;
+}
+
+.ace_scrollbar-h {
+ overflow-x: scroll;
+ overflow-y: hidden;
+ left: 0;
+}
+
+.ace_print-margin {
+ position: absolute;
+ height: 100%;
+}
+
+.ace_text-input {
+ position: absolute;
+ z-index: 0;
+ width: 0.5em;
+ height: 1em;
+ opacity: 0;
+ background: transparent;
+ -moz-appearance: none;
+ appearance: none;
+ border: none;
+ resize: none;
+ outline: none;
+ overflow: hidden;
+ font: inherit;
+ padding: 0 1px;
+ margin: 0 -1px;
+ contain: strict;
+ -ms-user-select: text;
+ -moz-user-select: text;
+ -webkit-user-select: text;
+ user-select: text;
+ /*with \`pre-line\` chrome inserts instead of space*/
+ white-space: pre!important;
+}
+.ace_text-input.ace_composition {
+ background: transparent;
+ color: inherit;
+ z-index: 1000;
+ opacity: 1;
+}
+.ace_composition_placeholder { color: transparent }
+.ace_composition_marker {
+ border-bottom: 1px solid;
+ position: absolute;
+ border-radius: 0;
+ margin-top: 1px;
+}
+
+[ace_nocontext=true] {
+ transform: none!important;
+ filter: none!important;
+ clip-path: none!important;
+ mask : none!important;
+ contain: none!important;
+ perspective: none!important;
+ mix-blend-mode: initial!important;
+ z-index: auto;
+}
+
+.ace_layer {
+ z-index: 1;
+ position: absolute;
+ overflow: hidden;
+ /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/
+ word-wrap: normal;
+ white-space: pre;
+ height: 100%;
+ width: 100%;
+ box-sizing: border-box;
+ /* setting pointer-events: auto; on node under the mouse, which changes
+ during scroll, will break mouse wheel scrolling in Safari */
+ pointer-events: none;
+}
+
+.ace_gutter-layer {
+ position: relative;
+ width: auto;
+ text-align: right;
+ pointer-events: auto;
+ height: 1000000px;
+ contain: style size layout;
+}
+
+.ace_text-layer {
+ font: inherit !important;
+ position: absolute;
+ height: 1000000px;
+ width: 1000000px;
+ contain: style size layout;
+}
+
+.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {
+ contain: style size layout;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+}
+
+.ace_hidpi .ace_text-layer,
+.ace_hidpi .ace_gutter-layer,
+.ace_hidpi .ace_content,
+.ace_hidpi .ace_gutter {
+ contain: strict;
+}
+.ace_hidpi .ace_text-layer > .ace_line,
+.ace_hidpi .ace_text-layer > .ace_line_group {
+ contain: strict;
+}
+
+.ace_cjk {
+ display: inline-block;
+ text-align: center;
+}
+
+.ace_cursor-layer {
+ z-index: 4;
+}
+
+.ace_cursor {
+ z-index: 4;
+ position: absolute;
+ box-sizing: border-box;
+ border-left: 2px solid;
+ /* workaround for smooth cursor repaintng whole screen in chrome */
+ transform: translatez(0);
+}
+
+.ace_multiselect .ace_cursor {
+ border-left-width: 1px;
+}
+
+.ace_slim-cursors .ace_cursor {
+ border-left-width: 1px;
+}
+
+.ace_overwrite-cursors .ace_cursor {
+ border-left-width: 0;
+ border-bottom: 1px solid;
+}
+
+.ace_hidden-cursors .ace_cursor {
+ opacity: 0.2;
+}
+
+.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {
+ opacity: 0;
+}
+
+.ace_smooth-blinking .ace_cursor {
+ transition: opacity 0.18s;
+}
+
+.ace_animate-blinking .ace_cursor {
+ animation-duration: 1000ms;
+ animation-timing-function: step-end;
+ animation-name: blink-ace-animate;
+ animation-iteration-count: infinite;
+}
+
+.ace_animate-blinking.ace_smooth-blinking .ace_cursor {
+ animation-duration: 1000ms;
+ animation-timing-function: ease-in-out;
+ animation-name: blink-ace-animate-smooth;
+}
+
+@keyframes blink-ace-animate {
+ from, to { opacity: 1; }
+ 60% { opacity: 0; }
+}
+
+@keyframes blink-ace-animate-smooth {
+ from, to { opacity: 1; }
+ 45% { opacity: 1; }
+ 60% { opacity: 0; }
+ 85% { opacity: 0; }
+}
+
+.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {
+ position: absolute;
+ z-index: 3;
+}
+
+.ace_marker-layer .ace_selection {
+ position: absolute;
+ z-index: 5;
+}
+
+.ace_marker-layer .ace_bracket {
+ position: absolute;
+ z-index: 6;
+}
+
+.ace_marker-layer .ace_error_bracket {
+ position: absolute;
+ border-bottom: 1px solid #DE5555;
+ border-radius: 0;
+}
+
+.ace_marker-layer .ace_active-line {
+ position: absolute;
+ z-index: 2;
+}
+
+.ace_marker-layer .ace_selected-word {
+ position: absolute;
+ z-index: 4;
+ box-sizing: border-box;
+}
+
+.ace_line .ace_fold {
+ box-sizing: border-box;
+
+ display: inline-block;
+ height: 11px;
+ margin-top: -2px;
+ vertical-align: middle;
+
+ background-image:
+ url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),
+ url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");
+ background-repeat: no-repeat, repeat-x;
+ background-position: center center, top left;
+ color: transparent;
+
+ border: 1px solid black;
+ border-radius: 2px;
+
+ cursor: pointer;
+ pointer-events: auto;
+}
+
+.ace_dark .ace_fold {
+}
+
+.ace_fold:hover{
+ background-image:
+ url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),
+ url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");
+}
+
+.ace_tooltip {
+ background-color: #f5f5f5;
+ border: 1px solid gray;
+ border-radius: 1px;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
+ color: black;
+ max-width: 100%;
+ padding: 3px 4px;
+ position: fixed;
+ z-index: 999999;
+ box-sizing: border-box;
+ cursor: default;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+ line-height: normal;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ pointer-events: none;
+ overflow: auto;
+ max-width: min(60em, 66vw);
+ overscroll-behavior: contain;
+}
+.ace_tooltip pre {
+ white-space: pre-wrap;
+}
+
+.ace_tooltip.ace_dark {
+ background-color: #636363;
+ color: #fff;
+}
+
+.ace_tooltip:focus {
+ outline: 1px solid #5E9ED6;
+}
+
+.ace_icon {
+ display: inline-block;
+ width: 18px;
+ vertical-align: top;
+}
+
+.ace_icon_svg {
+ display: inline-block;
+ width: 12px;
+ vertical-align: top;
+ -webkit-mask-repeat: no-repeat;
+ -webkit-mask-size: 12px;
+ -webkit-mask-position: center;
+}
+
+.ace_folding-enabled > .ace_gutter-cell, .ace_folding-enabled > .ace_gutter-cell_svg-icons {
+ padding-right: 13px;
+}
+
+.ace_fold-widget {
+ box-sizing: border-box;
+
+ margin: 0 -12px 0 1px;
+ display: none;
+ width: 11px;
+ vertical-align: top;
+
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");
+ background-repeat: no-repeat;
+ background-position: center;
+
+ border-radius: 3px;
+
+ border: 1px solid transparent;
+ cursor: pointer;
+}
+
+.ace_folding-enabled .ace_fold-widget {
+ display: inline-block;
+}
+
+.ace_fold-widget.ace_end {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");
+}
+
+.ace_fold-widget.ace_closed {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");
+}
+
+.ace_fold-widget:hover {
+ border: 1px solid rgba(0, 0, 0, 0.3);
+ background-color: rgba(255, 255, 255, 0.2);
+ box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
+}
+
+.ace_fold-widget:active {
+ border: 1px solid rgba(0, 0, 0, 0.4);
+ background-color: rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
+}
+/**
+ * Dark version for fold widgets
+ */
+.ace_dark .ace_fold-widget {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");
+}
+.ace_dark .ace_fold-widget.ace_end {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");
+}
+.ace_dark .ace_fold-widget.ace_closed {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");
+}
+.ace_dark .ace_fold-widget:hover {
+ box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
+ background-color: rgba(255, 255, 255, 0.1);
+}
+.ace_dark .ace_fold-widget:active {
+ box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
+}
+
+.ace_inline_button {
+ border: 1px solid lightgray;
+ display: inline-block;
+ margin: -1px 8px;
+ padding: 0 5px;
+ pointer-events: auto;
+ cursor: pointer;
+}
+.ace_inline_button:hover {
+ border-color: gray;
+ background: rgba(200,200,200,0.2);
+ display: inline-block;
+ pointer-events: auto;
+}
+
+.ace_fold-widget.ace_invalid {
+ background-color: #FFB4B4;
+ border-color: #DE5555;
+}
+
+.ace_fade-fold-widgets .ace_fold-widget {
+ transition: opacity 0.4s ease 0.05s;
+ opacity: 0;
+}
+
+.ace_fade-fold-widgets:hover .ace_fold-widget {
+ transition: opacity 0.05s ease 0.05s;
+ opacity:1;
+}
+
+.ace_underline {
+ text-decoration: underline;
+}
+
+.ace_bold {
+ font-weight: bold;
+}
+
+.ace_nobold .ace_bold {
+ font-weight: normal;
+}
+
+.ace_italic {
+ font-style: italic;
+}
+
+
+.ace_error-marker {
+ background-color: rgba(255, 0, 0,0.2);
+ position: absolute;
+ z-index: 9;
+}
+
+.ace_highlight-marker {
+ background-color: rgba(255, 255, 0,0.2);
+ position: absolute;
+ z-index: 8;
+}
+
+.ace_mobile-menu {
+ position: absolute;
+ line-height: 1.5;
+ border-radius: 4px;
+ -ms-user-select: none;
+ -moz-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ background: white;
+ box-shadow: 1px 3px 2px grey;
+ border: 1px solid #dcdcdc;
+ color: black;
+}
+.ace_dark > .ace_mobile-menu {
+ background: #333;
+ color: #ccc;
+ box-shadow: 1px 3px 2px grey;
+ border: 1px solid #444;
+
+}
+.ace_mobile-button {
+ padding: 2px;
+ cursor: pointer;
+ overflow: hidden;
+}
+.ace_mobile-button:hover {
+ background-color: #eee;
+ opacity:1;
+}
+.ace_mobile-button:active {
+ background-color: #ddd;
+}
+
+.ace_placeholder {
+ font-family: arial;
+ transform: scale(0.9);
+ transform-origin: left;
+ white-space: pre;
+ opacity: 0.7;
+ margin: 0 10px;
+}
+
+.ace_ghost_text {
+ opacity: 0.5;
+ font-style: italic;
+ white-space: pre;
+}
+
+.ace_screenreader-only {
+ position:absolute;
+ left:-10000px;
+ top:auto;
+ width:1px;
+ height:1px;
+ overflow:hidden;
+}`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(r,n,i){var s=r("../lib/dom"),o=r("../lib/oop"),a=r("../lib/event_emitter").EventEmitter,l=function(){function u(c,h){this.canvas=s.createElement("canvas"),this.renderer=h,this.pixelRatio=1,this.maxHeight=h.layerConfig.maxHeight,this.lineHeight=h.layerConfig.lineHeight,this.canvasHeight=c.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=c.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},c.element.appendChild(this.canvas)}return u.prototype.$updateDecorators=function(c){var h=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(c){this.maxHeight=c.maxHeight,this.lineHeight=c.lineHeight,this.canvasHeight=c.height;var d=(c.lastRow+1)*this.lineHeight;dL.priority?1:0}var g=this.renderer.session.$annotations;if(f.clearRect(0,0,this.canvas.width,this.canvas.height),g){var y={info:1,warning:2,error:3};g.forEach(function(I){I.priority=y[I.type]||null}),g=g.sort(p);for(var b=this.renderer.session.$foldData,v=0;vthis.canvasHeight&&($=this.canvasHeight-this.halfMinDecorationHeight),w=Math.round($-this.halfMinDecorationHeight),T=Math.round($+this.halfMinDecorationHeight)}f.fillStyle=h[g[v].type]||null,f.fillRect(0,C,this.canvasWidth,T-w)}}var N=this.renderer.session.selection.getCursor();if(N){var D=this.compensateFoldRows(N.row,b),C=Math.round((N.row-D)*this.lineHeight*this.heightRatio);f.fillStyle="rgba(0, 0, 0, 0.5)",f.fillRect(0,C,this.canvasWidth,2)}},u.prototype.compensateFoldRows=function(c,h){var d=0;if(h&&h.length>0)for(var f=0;fh[f].start.row&&c=h[f].end.row&&(d+=h[f].end.row-h[f].start.row);return d},u}();o.implement(l.prototype,a),n.Decorator=l}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor-css","ace/layer/decorators","ace/lib/useragent"],function(r,n,i){var s=r("./lib/oop"),o=r("./lib/dom"),a=r("./lib/lang"),l=r("./config"),u=r("./layer/gutter").Gutter,c=r("./layer/marker").Marker,h=r("./layer/text").Text,d=r("./layer/cursor").Cursor,f=r("./scrollbar").HScrollBar,p=r("./scrollbar").VScrollBar,g=r("./scrollbar_custom").HScrollBar,y=r("./scrollbar_custom").VScrollBar,b=r("./renderloop").RenderLoop,v=r("./layer/font_metrics").FontMetrics,E=r("./lib/event_emitter").EventEmitter,D=r("./css/editor-css"),C=r("./layer/decorators").Decorator,w=r("./lib/useragent");o.importCssString(D,"ace_editor.css",!1);var T=function(){function A($,N){var I=this;this.container=$||o.createElement("div"),o.addCssClass(this.container,"ace_editor"),o.HI_DPI&&o.addCssClass(this.container,"ace_hidpi"),this.setTheme(N),l.get("useStrictCSP")==null&&l.set("useStrictCSP",!1),this.$gutter=o.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden","true"),this.scroller=o.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=o.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var L=this.$textLayer=new h(this.content);this.canvas=L.element,this.$markerFront=new c(this.content),this.$cursorLayer=new d(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new p(this.container,this),this.scrollBarH=new f(this.container,this),this.scrollBarV.on("scroll",function(P){I.$scrollAnimation||I.session.setScrollTop(P.data-I.scrollMargin.top)}),this.scrollBarH.on("scroll",function(P){I.$scrollAnimation||I.session.setScrollLeft(P.data-I.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new v(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function(P){I.updateCharacterSize(),I.onResize(!0,I.gutterWidth,I.$size.width,I.$size.height),I._signal("changeCharacterSize",P)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!w.isIOS,this.$loop=new b(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),this.$addResizeObserver(),l.resetOptions(this),l._signal("renderer",this)}return A.prototype.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),o.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},A.prototype.setSession=function($){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=$,$&&this.scrollMargin.top&&$.getScrollTop()<=0&&$.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession($),this.$markerBack.setSession($),this.$markerFront.setSession($),this.$gutterLayer.setSession($),this.$textLayer.setSession($),$&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},A.prototype.updateLines=function($,N,I){if(N===void 0&&(N=1/0),this.$changedLines?(this.$changedLines.firstRow>$&&(this.$changedLines.firstRow=$),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},A.prototype.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},A.prototype.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},A.prototype.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},A.prototype.updateFull=function($){$?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},A.prototype.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},A.prototype.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},A.prototype.onResize=function($,N,I,L){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=$?1:0;var P=this.container;L||(L=P.clientHeight||P.scrollHeight),I||(I=P.clientWidth||P.scrollWidth);var F=this.$updateCachedSize($,N,I,L);if(this.$resizeTimer&&this.$resizeTimer.cancel(),!this.$size.scrollerHeight||!I&&!L)return this.resizing=0;$&&(this.$gutterLayer.$padding=null),$?this.$renderChanges(F|this.$changes,!0):this.$loop.schedule(F|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},A.prototype.$updateCachedSize=function($,N,I,L){L-=this.$extraHeight||0;var P=0,F=this.$size,_={width:F.width,height:F.height,scrollerHeight:F.scrollerHeight,scrollerWidth:F.scrollerWidth};if(L&&($||F.height!=L)&&(F.height=L,P|=this.CHANGE_SIZE,F.scrollerHeight=F.height,this.$horizScroll&&(F.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(F.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",P=P|this.CHANGE_SCROLL),I&&($||F.width!=I)){P|=this.CHANGE_SIZE,F.width=I,N==null&&(N=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=N,o.setStyle(this.scrollBarH.element.style,"left",N+"px"),o.setStyle(this.scroller.style,"left",N+this.margin.left+"px"),F.scrollerWidth=Math.max(0,I-N-this.scrollBarV.getWidth()-this.margin.h),o.setStyle(this.$gutter.style,"left",this.margin.left+"px");var M=this.scrollBarV.getWidth()+"px";o.setStyle(this.scrollBarH.element.style,"right",M),o.setStyle(this.scroller.style,"right",M),o.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(F.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||$)&&(P|=this.CHANGE_FULL)}return F.$dirty=!I||!L,P&&this._signal("resize",_),P},A.prototype.onGutterResize=function($){var N=this.$showGutter?$:0;N!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,N,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},A.prototype.adjustWrapLimit=function(){var $=this.$size.scrollerWidth-this.$padding*2,N=Math.floor($/this.characterWidth);return this.session.adjustWrapLimit(N,this.$showPrintMargin&&this.$printMarginColumn)},A.prototype.setAnimatedScroll=function($){this.setOption("animatedScroll",$)},A.prototype.getAnimatedScroll=function(){return this.$animatedScroll},A.prototype.setShowInvisibles=function($){this.setOption("showInvisibles",$),this.session.$bidiHandler.setShowInvisibles($)},A.prototype.getShowInvisibles=function(){return this.getOption("showInvisibles")},A.prototype.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},A.prototype.setDisplayIndentGuides=function($){this.setOption("displayIndentGuides",$)},A.prototype.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},A.prototype.setHighlightIndentGuides=function($){this.setOption("highlightIndentGuides",$)},A.prototype.setShowPrintMargin=function($){this.setOption("showPrintMargin",$)},A.prototype.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},A.prototype.setPrintMarginColumn=function($){this.setOption("printMarginColumn",$)},A.prototype.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},A.prototype.getShowGutter=function(){return this.getOption("showGutter")},A.prototype.setShowGutter=function($){return this.setOption("showGutter",$)},A.prototype.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},A.prototype.setFadeFoldWidgets=function($){this.setOption("fadeFoldWidgets",$)},A.prototype.setHighlightGutterLine=function($){this.setOption("highlightGutterLine",$)},A.prototype.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},A.prototype.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var $=o.createElement("div");$.className="ace_layer ace_print-margin-layer",this.$printMarginEl=o.createElement("div"),this.$printMarginEl.className="ace_print-margin",$.appendChild(this.$printMarginEl),this.content.insertBefore($,this.content.firstChild)}var N=this.$printMarginEl.style;N.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",N.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},A.prototype.getContainerElement=function(){return this.container},A.prototype.getMouseEventTarget=function(){return this.scroller},A.prototype.getTextAreaContainer=function(){return this.container},A.prototype.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var $=this.textarea.style,N=this.$composition;if(!this.$keepTextAreaAtCursor&&!N){o.translate(this.textarea,-100,0);return}var I=this.$cursorLayer.$pixelPos;if(I){N&&N.markerRange&&(I=this.$cursorLayer.getPixelPosition(N.markerRange.start,!0));var L=this.layerConfig,P=I.top,F=I.left;P-=L.offset;var _=N&&N.useTextareaForIME||w.isMobile?this.lineHeight:1;if(P<0||P>L.height-_){o.translate(this.textarea,0,0);return}var M=1,z=this.$size.height-_;if(!N)P+=this.lineHeight;else if(N.useTextareaForIME){var R=this.textarea.value;M=this.characterWidth*this.session.$getStringScreenWidth(R)[0]}else P+=this.lineHeight+2;F-=this.scrollLeft,F>this.$size.scrollerWidth-M&&(F=this.$size.scrollerWidth-M),F+=this.gutterWidth+this.margin.left,o.setStyle($,"height",_+"px"),o.setStyle($,"width",M+"px"),o.translate(this.textarea,Math.min(F,this.$size.scrollerWidth-M),Math.min(P,z))}}},A.prototype.getFirstVisibleRow=function(){return this.layerConfig.firstRow},A.prototype.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},A.prototype.getLastFullyVisibleRow=function(){var $=this.layerConfig,N=$.lastRow,I=this.session.documentToScreenRow(N,0)*$.lineHeight;return I-this.session.getScrollTop()>$.height-$.lineHeight?N-1:N},A.prototype.getLastVisibleRow=function(){return this.layerConfig.lastRow},A.prototype.setPadding=function($){this.$padding=$,this.$textLayer.setPadding($),this.$cursorLayer.setPadding($),this.$markerFront.setPadding($),this.$markerBack.setPadding($),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},A.prototype.setScrollMargin=function($,N,I,L){var P=this.scrollMargin;P.top=$|0,P.bottom=N|0,P.right=L|0,P.left=I|0,P.v=P.top+P.bottom,P.h=P.left+P.right,P.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-P.top),this.updateFull()},A.prototype.setMargin=function($,N,I,L){var P=this.margin;P.top=$|0,P.bottom=N|0,P.right=L|0,P.left=I|0,P.v=P.top+P.bottom,P.h=P.left+P.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},A.prototype.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},A.prototype.setHScrollBarAlwaysVisible=function($){this.setOption("hScrollBarAlwaysVisible",$)},A.prototype.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},A.prototype.setVScrollBarAlwaysVisible=function($){this.setOption("vScrollBarAlwaysVisible",$)},A.prototype.$updateScrollBarV=function(){var $=this.layerConfig.maxHeight,N=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&($-=(N-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>$-N&&($=this.scrollTop+N,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight($+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},A.prototype.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},A.prototype.freeze=function(){this.$frozen=!0},A.prototype.unfreeze=function(){this.$frozen=!1},A.prototype.$renderChanges=function($,N){if(this.$changes&&($|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!$&&!N){this.$changes|=$;return}if(this.$size.$dirty)return this.$changes|=$,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",$),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var I=this.layerConfig;if($&this.CHANGE_FULL||$&this.CHANGE_SIZE||$&this.CHANGE_TEXT||$&this.CHANGE_LINES||$&this.CHANGE_SCROLL||$&this.CHANGE_H_SCROLL){if($|=this.$computeLayerConfig()|this.$loop.clear(),I.firstRow!=this.layerConfig.firstRow&&I.firstRowScreen==this.layerConfig.firstRowScreen){var L=this.scrollTop+(I.firstRow-Math.max(this.layerConfig.firstRow,0))*this.lineHeight;L>0&&(this.scrollTop=L,$=$|this.CHANGE_SCROLL,$|=this.$computeLayerConfig()|this.$loop.clear())}I=this.layerConfig,this.$updateScrollBarV(),$&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),o.translate(this.content,-this.scrollLeft,-I.offset);var P=I.width+2*this.$padding+"px",F=I.minHeight+"px";o.setStyle(this.content.style,"width",P),o.setStyle(this.content.style,"height",F)}if($&this.CHANGE_H_SCROLL&&(o.translate(this.content,-this.scrollLeft,-I.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller ":"ace_scroller ace_scroll-left ",this.enableKeyboardAccessibility&&(this.scroller.className+=this.keyboardFocusClassName)),$&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(I),this.$showGutter&&this.$gutterLayer.update(I),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(I),this.$markerBack.update(I),this.$markerFront.update(I),this.$cursorLayer.update(I),this.$moveTextAreaToCursor(),this._signal("afterRender",$);return}if($&this.CHANGE_SCROLL){this.$changedLines=null,$&this.CHANGE_TEXT||$&this.CHANGE_LINES?this.$textLayer.update(I):this.$textLayer.scrollLines(I),this.$showGutter&&($&this.CHANGE_GUTTER||$&this.CHANGE_LINES?this.$gutterLayer.update(I):this.$gutterLayer.scrollLines(I)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(I),this.$markerBack.update(I),this.$markerFront.update(I),this.$cursorLayer.update(I),this.$moveTextAreaToCursor(),this._signal("afterRender",$);return}$&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(I),this.$showGutter&&this.$gutterLayer.update(I),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(I)):$&this.CHANGE_LINES?((this.$updateLines()||$&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(I),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(I)):$&this.CHANGE_TEXT||$&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(I),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(I)):$&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(I),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(I)),$&this.CHANGE_CURSOR&&(this.$cursorLayer.update(I),this.$moveTextAreaToCursor()),$&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(I),$&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(I),this._signal("afterRender",$)},A.prototype.$autosize=function(){var $=this.session.getScreenLength()*this.lineHeight,N=this.$maxLines*this.lineHeight,I=Math.min(N,Math.max((this.$minLines||1)*this.lineHeight,$))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(I+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&I>this.$maxPixelHeight&&(I=this.$maxPixelHeight);var L=I<=2*this.lineHeight,P=!L&&$>N;if(I!=this.desiredHeight||this.$size.height!=this.desiredHeight||P!=this.$vScroll){P!=this.$vScroll&&(this.$vScroll=P,this.scrollBarV.setVisible(P));var F=this.container.clientWidth;this.container.style.height=I+"px",this.$updateCachedSize(!0,this.$gutterWidth,F,I),this.desiredHeight=I,this._signal("autosize")}},A.prototype.$computeLayerConfig=function(){var $=this.session,N=this.$size,I=N.height<=2*this.lineHeight,L=this.session.getScreenLength(),P=L*this.lineHeight,F=this.$getLongestLine(),_=!I&&(this.$hScrollBarAlwaysVisible||N.scrollerWidth-F-2*this.$padding<0),M=this.$horizScroll!==_;M&&(this.$horizScroll=_,this.scrollBarH.setVisible(_));var z=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var R=N.scrollerHeight+this.lineHeight,G=!this.$maxLines&&this.$scrollPastEnd?(N.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;P+=G;var q=this.scrollMargin;this.session.setScrollTop(Math.max(-q.top,Math.min(this.scrollTop,P-N.scrollerHeight+q.bottom))),this.session.setScrollLeft(Math.max(-q.left,Math.min(this.scrollLeft,F+2*this.$padding-N.scrollerWidth+q.right)));var ee=!I&&(this.$vScrollBarAlwaysVisible||N.scrollerHeight-P+G<0||this.scrollTop>q.top),Y=z!==ee;Y&&(this.$vScroll=ee,this.scrollBarV.setVisible(ee));var X=this.scrollTop%this.lineHeight,Q=Math.ceil(R/this.lineHeight)-1,te=Math.max(0,Math.round((this.scrollTop-X)/this.lineHeight)),Z=te+Q,de,ke,me=this.lineHeight;te=$.screenToDocumentRow(te,0);var Fe=$.getFoldLine(te);Fe&&(te=Fe.start.row),de=$.documentToScreenRow(te,0),ke=$.getRowLength(te)*me,Z=Math.min($.screenToDocumentRow(Z,0),$.getLength()-1),R=N.scrollerHeight+$.getRowLength(Z)*me+ke,X=this.scrollTop-de*me;var je=0;return(this.layerConfig.width!=F||M)&&(je=this.CHANGE_H_SCROLL),(M||Y)&&(je|=this.$updateCachedSize(!0,this.gutterWidth,N.width,N.height),this._signal("scrollbarVisibilityChanged"),Y&&(F=this.$getLongestLine())),this.layerConfig={width:F,padding:this.$padding,firstRow:te,firstRowScreen:de,lastRow:Z,lineHeight:me,characterWidth:this.characterWidth,minHeight:R,maxHeight:P,offset:X,gutterOffset:me?Math.max(0,Math.ceil((X+N.height-N.scrollerHeight)/me)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(F-this.$padding),je},A.prototype.$updateLines=function(){if(this.$changedLines){var $=this.$changedLines.firstRow,N=this.$changedLines.lastRow;this.$changedLines=null;var I=this.layerConfig;if(!($>I.lastRow+1)&&!(Nthis.$textLayer.MAX_LINE_LENGTH&&($=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round($*this.characterWidth))},A.prototype.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},A.prototype.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},A.prototype.addGutterDecoration=function($,N){this.$gutterLayer.addGutterDecoration($,N)},A.prototype.removeGutterDecoration=function($,N){this.$gutterLayer.removeGutterDecoration($,N)},A.prototype.updateBreakpoints=function($){this._rows=$,this.$loop.schedule(this.CHANGE_GUTTER)},A.prototype.setAnnotations=function($){this.$gutterLayer.setAnnotations($),this.$loop.schedule(this.CHANGE_GUTTER)},A.prototype.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},A.prototype.hideCursor=function(){this.$cursorLayer.hideCursor()},A.prototype.showCursor=function(){this.$cursorLayer.showCursor()},A.prototype.scrollSelectionIntoView=function($,N,I){this.scrollCursorIntoView($,I),this.scrollCursorIntoView(N,I)},A.prototype.scrollCursorIntoView=function($,N,I){if(this.$size.scrollerHeight!==0){var L=this.$cursorLayer.getPixelPosition($),P=L.left,F=L.top,_=I&&I.top||0,M=I&&I.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var z=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;z+_>F?(N&&z+_>F+this.lineHeight&&(F-=N*this.$size.scrollerHeight),F===0&&(F=-this.scrollMargin.top),this.session.setScrollTop(F)):z+this.$size.scrollerHeight-M=1-this.scrollMargin.top||N>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||$<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||$>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},A.prototype.pixelToScreenCoordinates=function($,N){var I;if(this.$hasCssTransforms){I={top:0,left:0};var L=this.$fontMetrics.transformCoordinates([$,N]);$=L[1]-this.gutterWidth-this.margin.left,N=L[0]}else I=this.scroller.getBoundingClientRect();var P=$+this.scrollLeft-I.left-this.$padding,F=P/this.characterWidth,_=Math.floor((N+this.scrollTop-I.top)/this.lineHeight),M=this.$blockCursor?Math.floor(F):Math.round(F);return{row:_,column:M,side:F-M>0?1:-1,offsetX:P}},A.prototype.screenToTextCoordinates=function($,N){var I;if(this.$hasCssTransforms){I={top:0,left:0};var L=this.$fontMetrics.transformCoordinates([$,N]);$=L[1]-this.gutterWidth-this.margin.left,N=L[0]}else I=this.scroller.getBoundingClientRect();var P=$+this.scrollLeft-I.left-this.$padding,F=P/this.characterWidth,_=this.$blockCursor?Math.floor(F):Math.round(F),M=Math.floor((N+this.scrollTop-I.top)/this.lineHeight);return this.session.screenToDocumentPosition(M,Math.max(_,0),P)},A.prototype.textToScreenCoordinates=function($,N){var I=this.scroller.getBoundingClientRect(),L=this.session.documentToScreenPosition($,N),P=this.$padding+(this.session.$bidiHandler.isBidiRow(L.row,$)?this.session.$bidiHandler.getPosLeft(L.column):Math.round(L.column*this.characterWidth)),F=L.row*this.lineHeight;return{pageX:I.left+P-this.scrollLeft,pageY:I.top+F-this.scrollTop}},A.prototype.visualizeFocus=function(){o.addCssClass(this.container,"ace_focus")},A.prototype.visualizeBlur=function(){o.removeCssClass(this.container,"ace_focus")},A.prototype.showComposition=function($){this.$composition=$,$.cssText||($.cssText=this.textarea.style.cssText),$.useTextareaForIME==null&&($.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(o.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):$.markerId=this.session.addMarker($.markerRange,"ace_composition_marker","text")},A.prototype.setCompositionText=function($){var N=this.session.selection.cursor;this.addToken($,"composition_placeholder",N.row,N.column),this.$moveTextAreaToCursor()},A.prototype.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),o.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var $=this.session.selection.cursor;this.removeExtraToken($.row,$.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},A.prototype.setGhostText=function($,N){var I=this.session.selection.cursor,L=N||{row:I.row,column:I.column};this.removeGhostText();var P=$.split(`
+`);if(this.addToken(P[0],"ghost_text",L.row,L.column),this.$ghostText={text:$,position:{row:L.row,column:L.column}},P.length>1){this.$ghostTextWidget={text:P.slice(1).join(`
+`),row:L.row,column:L.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget);var F=this.$cursorLayer.getPixelPosition(L,!0),_=this.container,M=_.getBoundingClientRect().height,z=P.length*this.lineHeight,R=z1||Math.abs($.$size.height-L)>1?$.$resizeTimer.delay():$.$resizeTimer.cancel()}),this.$resizeObserver.observe(this.container)}},A}();T.prototype.CHANGE_CURSOR=1,T.prototype.CHANGE_MARKER=2,T.prototype.CHANGE_GUTTER=4,T.prototype.CHANGE_SCROLL=8,T.prototype.CHANGE_LINES=16,T.prototype.CHANGE_TEXT=32,T.prototype.CHANGE_SIZE=64,T.prototype.CHANGE_MARKER_BACK=128,T.prototype.CHANGE_MARKER_FRONT=256,T.prototype.CHANGE_FULL=512,T.prototype.CHANGE_H_SCROLL=1024,T.prototype.$changes=0,T.prototype.$padding=null,T.prototype.$frozen=!1,T.prototype.STEPS=8,s.implement(T.prototype,E),l.defineOptions(T.prototype,"renderer",{useResizeObserver:{set:function(A){!A&&this.$resizeObserver?(this.$resizeObserver.disconnect(),this.$resizeTimer.cancel(),this.$resizeTimer=this.$resizeObserver=null):A&&!this.$resizeObserver&&this.$addResizeObserver()}},animatedScroll:{initialValue:!1},showInvisibles:{set:function(A){this.$textLayer.setShowInvisibles(A)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(A){typeof A=="number"&&(this.$printMarginColumn=A),this.$showPrintMargin=!!A,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(A){this.$gutter.style.display=A?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},useSvgGutterIcons:{set:function(A){this.$gutterLayer.$useSvgGutterIcons=A},initialValue:!1},showFoldedAnnotations:{set:function(A){this.$gutterLayer.$showFoldedAnnotations=A},initialValue:!1},fadeFoldWidgets:{set:function(A){o.setCssClass(this.$gutter,"ace_fade-fold-widgets",A)},initialValue:!1},showFoldWidgets:{set:function(A){this.$gutterLayer.setShowFoldWidgets(A),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(A){this.$textLayer.setDisplayIndentGuides(A)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(A){this.$textLayer.setHighlightIndentGuides(A)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(A){this.$gutterLayer.setHighlightGutterLine(A),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(A){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(A){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(A){typeof A=="number"&&(A=A+"px"),this.container.style.fontSize=A,this.updateFontSize()},initialValue:12},fontFamily:{set:function(A){this.container.style.fontFamily=A,this.updateFontSize()}},maxLines:{set:function(A){this.updateFull()}},minLines:{set:function(A){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(A){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(A){A=+A||0,this.$scrollPastEnd!=A&&(this.$scrollPastEnd=A,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(A){this.$gutterLayer.$fixedWidth=!!A,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(A){this.$updateCustomScrollbar(A)},initialValue:!1},theme:{set:function(A){this.setTheme(A)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!w.isMobile&&!w.isIE}}),n.VirtualRenderer=T}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(r,n,i){var s=r("../lib/oop"),o=r("../lib/net"),a=r("../lib/event_emitter").EventEmitter,l=r("../config");function u(f){var p="importScripts('"+o.qualifyURL(f)+"');";try{return new Blob([p],{type:"application/javascript"})}catch{var g=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,y=new g;return y.append(p),y.getBlob("application/javascript")}}function c(f){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(l.get("loadWorkerFromBlob")){var p=u(f),g=window.URL||window.webkitURL,y=g.createObjectURL(p);return new Worker(y)}return new Worker(f)}var h=function(f){f.postMessage||(f=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=f,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){s.implement(this,a),this.$createWorkerFromOldConfig=function(f,p,g,y,b){if(r.nameToUrl&&!r.toUrl&&(r.toUrl=r.nameToUrl),l.get("packaged")||!r.toUrl)y=y||l.moduleUrl(p,"worker");else{var v=this.$normalizePath;y=y||v(r.toUrl("ace/worker/worker.js",null,"_"));var E={};f.forEach(function(D){E[D]=v(r.toUrl(D,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=c(y),b&&this.send("importScripts",b),this.$worker.postMessage({init:!0,tlns:E,module:p,classname:g}),this.$worker},this.onMessage=function(f){var p=f.data;switch(p.type){case"event":this._signal(p.name,{data:p.data});break;case"call":var g=this.callbacks[p.id];g&&(g(p.data),delete this.callbacks[p.id]);break;case"error":this.reportError(p.data);break;case"log":window.console&&console.log&&console.log.apply(console,p.data);break}},this.reportError=function(f){window.console&&console.error&&console.error(f)},this.$normalizePath=function(f){return o.qualifyURL(f)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker.onerror=function(f){f.preventDefault()},this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(f,p){this.$worker.postMessage({command:f,args:p})},this.call=function(f,p,g){if(g){var y=this.callbackId++;this.callbacks[y]=g,p.push(y)}this.send(f,p)},this.emit=function(f,p){try{p.data&&p.data.err&&(p.data.err={message:p.data.err.message,stack:p.data.err.stack,code:p.data.err.code}),this.$worker&&this.$worker.postMessage({event:f,data:{data:p.data}})}catch(g){console.error(g.stack)}},this.attachToDocument=function(f){this.$doc&&this.terminate(),this.$doc=f,this.call("setValue",[f.getValue()]),f.on("change",this.changeListener,!0)},this.changeListener=function(f){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),f.action=="insert"?this.deltaQueue.push(f.start,f.lines):this.deltaQueue.push(f.start,f.end)},this.$sendDeltaQueue=function(){var f=this.deltaQueue;f&&(this.deltaQueue=null,f.length>50&&f.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:f}))}}).call(h.prototype);var d=function(f,p,g){var y=null,b=!1,v=Object.create(a),E=[],D=new h({messageBuffer:E,terminate:function(){},postMessage:function(w){E.push(w),y&&(b?setTimeout(C):C())}});D.setEmitSync=function(w){b=w};var C=function(){var w=E.shift();w.command?y[w.command].apply(y,w.args):w.event&&v._signal(w.event,w.data)};return v.postMessage=function(w){D.onMessage({data:w})},v.callback=function(w,T){this.postMessage({type:"call",id:T,data:w})},v.emit=function(w,T){this.postMessage({type:"event",name:w,data:T})},l.loadModule(["worker",p],function(w){for(y=new w[g](v);E.length;)C()}),D};n.UIWorkerClient=d,n.WorkerClient=h,n.createWorker=c}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(r,n,i){var s=r("./range").Range,o=r("./lib/event_emitter").EventEmitter,a=r("./lib/oop"),l=function(){function u(c,h,d,f,p,g){var y=this;this.length=h,this.session=c,this.doc=c.getDocument(),this.mainClass=p,this.othersClass=g,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=f,this.$onCursorChange=function(){setTimeout(function(){y.onCursorChange()})},this.$pos=d;var b=c.getUndoManager().$undoStack||c.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=b.length,this.setup(),c.selection.on("changeCursor",this.$onCursorChange)}return u.prototype.setup=function(){var c=this,h=this.doc,d=this.session;this.selectionBefore=d.selection.toJSON(),d.selection.inMultiSelectMode&&d.selection.toSingleRange(),this.pos=h.createAnchor(this.$pos.row,this.$pos.column);var f=this.pos;f.$insertRight=!0,f.detach(),f.markerId=d.addMarker(new s(f.row,f.column,f.row,f.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(p){var g=h.createAnchor(p.row,p.column);g.$insertRight=!0,g.detach(),c.others.push(g)}),d.setUndoSelect(!1)},u.prototype.showOtherMarkers=function(){if(!this.othersActive){var c=this.session,h=this;this.othersActive=!0,this.others.forEach(function(d){d.markerId=c.addMarker(new s(d.row,d.column,d.row,d.column+h.length),h.othersClass,null,!1)})}},u.prototype.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var c=0;c=this.pos.column&&h.start.column<=this.pos.column+this.length+1,p=h.start.column-this.pos.column;if(this.updateAnchors(c),f&&(this.length+=d),f&&!this.session.$fromUndo){if(c.action==="insert")for(var g=this.others.length-1;g>=0;g--){var y=this.others[g],b={row:y.row,column:y.column+p};this.doc.insertMergedLines(b,c.lines)}else if(c.action==="remove")for(var g=this.others.length-1;g>=0;g--){var y=this.others[g],b={row:y.row,column:y.column+p};this.doc.remove(new s(b.row,b.column,b.row,b.column-d))}}this.$updating=!1,this.updateMarkers()}},u.prototype.updateAnchors=function(c){this.pos.onChange(c);for(var h=this.others.length;h--;)this.others[h].onChange(c);this.updateMarkers()},u.prototype.updateMarkers=function(){if(!this.$updating){var c=this,h=this.session,d=function(p,g){h.removeMarker(p.markerId),p.markerId=h.addMarker(new s(p.row,p.column,p.row,p.column+c.length),g,null,!1)};d(this.pos,this.mainClass);for(var f=this.others.length;f--;)d(this.others[f],this.othersClass)}},u.prototype.onCursorChange=function(c){if(!(this.$updating||!this.session)){var h=this.session.selection.getCursor();h.row===this.pos.row&&h.column>=this.pos.column&&h.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",c)):(this.hideOtherMarkers(),this._emit("cursorLeave",c))}},u.prototype.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},u.prototype.cancel=function(){if(this.$undoStackDepth!==-1){for(var c=this.session.getUndoManager(),h=(c.$undoStack||c.$undostack).length-this.$undoStackDepth,d=0;d1?o.multiSelect.joinSelections():o.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(o){o.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(o){o.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(o){o.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],n.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(o){o.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(o){return o&&o.inMultiSelectMode}}];var s=r("../keyboard/hash_handler").HashHandler;n.keyboardHandler=new s(n.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(r,n,i){var s=r("./range_list").RangeList,o=r("./range").Range,a=r("./selection").Selection,l=r("./mouse/multi_select_handler").onMouseDown,u=r("./lib/event"),c=r("./lib/lang"),h=r("./commands/multi_select_commands");n.commands=h.defaultCommands.concat(h.multiSelectCommands);var d=r("./search").Search,f=new d;function p(D,C,w){return f.$options.wrap=!0,f.$options.needle=C,f.$options.backwards=w==-1,f.find(D)}var g=r("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(g.prototype),(function(){this.ranges=null,this.rangeList=null,this.addRange=function(D,C){if(D){if(!this.inMultiSelectMode&&this.rangeCount===0){var w=this.toOrientedRange();if(this.rangeList.add(w),this.rangeList.add(D),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),C||this.fromOrientedRange(D);this.rangeList.removeAll(),this.rangeList.add(w),this.$onAddRange(w)}D.cursor||(D.cursor=D.end);var T=this.rangeList.add(D);return this.$onAddRange(D),T.length&&this.$onRemoveRange(T),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),C||this.fromOrientedRange(D)}},this.toSingleRange=function(D){D=D||this.ranges[0];var C=this.rangeList.removeAll();C.length&&this.$onRemoveRange(C),D&&this.fromOrientedRange(D)},this.substractPoint=function(D){var C=this.rangeList.substractPoint(D);if(C)return this.$onRemoveRange(C),C[0]},this.mergeOverlappingRanges=function(){var D=this.rangeList.merge();D.length&&this.$onRemoveRange(D)},this.$onAddRange=function(D){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(D),this._signal("addRange",{range:D})},this.$onRemoveRange=function(D){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var C=this.rangeList.ranges.pop();D.push(C),this.rangeCount=0}for(var w=D.length;w--;){var T=this.ranges.indexOf(D[w]);this.ranges.splice(T,1)}this._signal("removeRange",{ranges:D}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),C=C||this.ranges[0],C&&!C.isEqual(this.getRange())&&this.fromOrientedRange(C)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new s,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var D=this.ranges.length?this.ranges:[this.getRange()],C=[],w=0;w1){var D=this.rangeList.ranges,C=D[D.length-1],w=o.fromPoints(D[0].start,C.end);this.toSingleRange(),this.setSelectionRange(w,C.cursor==C.start)}else{var T=this.session.documentToScreenPosition(this.cursor),A=this.session.documentToScreenPosition(this.anchor),$=this.rectangularRangeBlock(T,A);$.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(D,C,w){var T=[],A=D.column0;)G--;if(G>0)for(var q=0;T[q].isEmpty();)q++;for(var ee=G;ee>=q;ee--)T[ee].isEmpty()&&T.splice(ee,1)}return T}}).call(a.prototype);var y=r("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(D){D.cursor||(D.cursor=D.end);var C=this.getSelectionStyle();return D.marker=this.session.addMarker(D,"ace_selection",C),this.session.$selectionMarkers.push(D),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,D},this.removeSelectionMarker=function(D){if(D.marker){this.session.removeMarker(D.marker);var C=this.session.$selectionMarkers.indexOf(D);C!=-1&&this.session.$selectionMarkers.splice(C,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(D){for(var C=this.session.$selectionMarkers,w=D.length;w--;){var T=D[w];if(T.marker){this.session.removeMarker(T.marker);var A=C.indexOf(T);A!=-1&&C.splice(A,1)}}this.session.selectionMarkerCount=C.length},this.$onAddRange=function(D){this.addSelectionMarker(D.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(D){this.removeSelectionMarkers(D.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(D){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(h.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(D){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(h.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(D){var C=D.command,w=D.editor;if(w.multiSelect){if(C.multiSelectAction)C.multiSelectAction=="forEach"?T=w.forEachSelection(C,D.args):C.multiSelectAction=="forEachLine"?T=w.forEachSelection(C,D.args,!0):C.multiSelectAction=="single"?(w.exitMultiSelectMode(),T=C.exec(w,D.args||{})):T=C.multiSelectAction(w,D.args||{});else{var T=C.exec(w,D.args||{});w.multiSelect.addRange(w.multiSelect.toOrientedRange()),w.multiSelect.mergeOverlappingRanges()}return T}},this.forEachSelection=function(D,C,w){if(!this.inVirtualSelectionMode){var T=w&&w.keepOrder,A=w==!0||w&&w.$byLines,$=this.session,N=this.selection,I=N.rangeList,L=(T?N:I).ranges,P;if(!L.length)return D.exec?D.exec(this,C||{}):D(this,C||{});var F=N._eventRegistry;N._eventRegistry={};var _=new a($);this.inVirtualSelectionMode=!0;for(var M=L.length;M--;){if(A)for(;M>0&&L[M].start.row==L[M-1].end.row;)M--;_.fromOrientedRange(L[M]),_.index=M,this.selection=$.selection=_;var z=D.exec?D.exec(this,C||{}):D(this,C||{});!P&&z!==void 0&&(P=z),_.toOrientedRange(L[M])}_.detach(),this.selection=$.selection=N,this.inVirtualSelectionMode=!1,N._eventRegistry=F,N.mergeOverlappingRanges(),N.ranges[0]&&N.fromOrientedRange(N.ranges[0]);var R=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),R&&R.from==R.to&&this.renderer.animateScrolling(R.from),P}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var D="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var C=this.multiSelect.rangeList.ranges,w=[],T=0;T0);N<0&&(N=0),I>=P&&(I=P-1)}var _=this.session.removeFullLines(N,I);_=this.$reAlignText(_,L),this.session.insert({row:N,column:0},_.join(`
+`)+`
+`),L||($.start.column=0,$.end.column=_[_.length-1].length),this.selection.setRange($)}else{A.forEach(function(G){C.substractPoint(G.cursor)});var M=0,z=1/0,R=w.map(function(G){var q=G.cursor,ee=D.getLine(q.row),Y=ee.substr(q.column).search(/\S/g);return Y==-1&&(Y=0),q.column>M&&(M=q.column),YX?D.insert(ee,c.stringRepeat(" ",Y-X)):D.remove(new o(ee.row,ee.column,ee.row,ee.column-Y+X)),G.start.column=G.end.column=M,G.start.row=G.end.row=ee.row,G.cursor=G.end}),C.fromOrientedRange(w[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(D,C){var w=!0,T=!0,A,$,N;return D.map(function(_){var M=_.match(/(\s*)(.*?)(\s*)([=:].*)/);return M?A==null?(A=M[1].length,$=M[2].length,N=M[3].length,M):(A+$+N!=M[1].length+M[2].length+M[3].length&&(T=!1),A!=M[1].length&&(w=!1),A>M[1].length&&(A=M[1].length),$