=0&&z[Le]==y;Le--)A[Le]=g}}}function se(P,A,O){if(!(v=P){for(re=G+1;re=P;)re++;for(X=G,be=re-1;X=A.length||(re=O[z-1])!=h&&re!=b||(X=A[z+1])!=h&&X!=b?p:(f&&(X=b),X==re?X:p);case x:return re=z>0?O[z-1]:k,re==h&&z+10&&O[z-1]==h)return h;if(f)return p;for(Be=z+1,be=A.length;Be=1425&&ve<=2303||ve==64286;if(re=A[Be],he&&(re==u||re==w))return u}return z<1||(re=A[z-1])==k?p:O[z-1];case k:return f=!1,a=!0,g;case d:return i=!0,p;case C:case T:case W:case j:case R:f=!1;case L:return p}}function $(P){var A=P.charCodeAt(0),O=A>>8;return O==0?A>191?c:Q[A]:O==5?/[\u0591-\u05f4]/.test(P)?u:c:O==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(P)?S:/[\u0660-\u0669\u066b-\u066c]/.test(P)?b:A==1642?E:/[\u06f0-\u06f9]/.test(P)?h:w:O==32&&A<=8287?U[A&255]:O==254&&A>=65136?w:p}r.L=c,r.R=u,r.EN=h,r.ON_R=3,r.AN=4,r.R_H=5,r.B=6,r.DOT="·",r.doBidiReorder=function(P,A,O){if(P.length<2)return{};var z=P.split(""),G=new Array(z.length),re=new Array(z.length),X=[];g=O?e:o,Z(z,X,z.length,A);for(var be=0;bew&&A[be]0&&z[be-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(z[be])&&(X[be-1]=X[be]=r.R_H,be++);z[z.length-1]===r.DOT&&(X[z.length-1]=r.B);for(var be=0;be=0&&(t=this.session.$docRowCache[o])}return t},this.getSplitIndex=function(){var t=0,s=this.session.$screenRowCache;if(s.length)for(var o,e=this.session.$getRowCacheIndex(s,this.currentRow);this.currentRow-t>0&&(o=this.session.$getRowCacheIndex(s,this.currentRow-t-1),o===e);)e=o,t++;return t},this.updateRowLine=function(t,s){if(t===void 0&&(t=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=t===this.session.getLength()-1,this.line=this.session.getLine(t),this.session.$useWrapMode){var o=this.session.$wrapData[t];o&&(s===void 0&&(s=this.getSplitIndex()),s>0&&o.length?(this.wrapIndent=o.indent,this.line=s0?t-1:0,this.bidiMap),o=this.bidiMap.bidiLevels,e=0;t===0&&o[s]%2!==0&&s++;for(var c=0;c=b&&ye+h/2;){if(e+=h,c===u.length-1){h=0;break}h=this.charWidths[u[++c]]}return c>0&&u[c-1]%2!==0&&u[c]%2===0?(o0&&u[c-1]%2===0&&u[c]%2!==0?s=1+(o>e?this.bidiMap.logicalFromVisual[c]:this.bidiMap.logicalFromVisual[c-1]):this.isRtlDir&&c===u.length-1&&h===0&&u[c-1]%2===0||!this.isRtlDir&&c===0&&u[c]%2!==0?s=1+this.bidiMap.logicalFromVisual[c]:(c>0&&u[c-1]%2!==0&&h!==0&&c--,s=this.bidiMap.logicalFromVisual[c]),s+this.wrapIndent}}).call(i.prototype),r.BidiHandler=i});ace.define("ace/range",["require","exports","module"],function(l,r,m){var g=function(f,a){return f.row-a.row||f.column-a.column},v=function(f,a,i,t){this.start={row:f,column:a},this.end={row:i,column:t}};(function(){this.isEqual=function(f){return this.start.row===f.start.row&&this.end.row===f.end.row&&this.start.column===f.start.column&&this.end.column===f.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(f,a){return this.compare(f,a)==0},this.compareRange=function(f){var a,i=f.end,t=f.start;return a=this.compare(i.row,i.column),a==1?(a=this.compare(t.row,t.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(t.row,t.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(f){return this.compare(f.row,f.column)},this.containsRange=function(f){return this.comparePoint(f.start)==0&&this.comparePoint(f.end)==0},this.intersects=function(f){var a=this.compareRange(f);return a==-1||a==0||a==1},this.isEnd=function(f,a){return this.end.row==f&&this.end.column==a},this.isStart=function(f,a){return this.start.row==f&&this.start.column==a},this.setStart=function(f,a){typeof f=="object"?(this.start.column=f.column,this.start.row=f.row):(this.start.row=f,this.start.column=a)},this.setEnd=function(f,a){typeof f=="object"?(this.end.column=f.column,this.end.row=f.row):(this.end.row=f,this.end.column=a)},this.inside=function(f,a){return this.compare(f,a)==0?!(this.isEnd(f,a)||this.isStart(f,a)):!1},this.insideStart=function(f,a){return this.compare(f,a)==0?!this.isEnd(f,a):!1},this.insideEnd=function(f,a){return this.compare(f,a)==0?!this.isStart(f,a):!1},this.compare=function(f,a){return!this.isMultiLine()&&f===this.start.row?athis.end.column?1:0:fthis.end.row?1:this.start.row===f?a>=this.start.column?0:-1:this.end.row===f?a<=this.end.column?0:1:0},this.compareStart=function(f,a){return this.start.row==f&&this.start.column==a?-1:this.compare(f,a)},this.compareEnd=function(f,a){return this.end.row==f&&this.end.column==a?1:this.compare(f,a)},this.compareInside=function(f,a){return this.end.row==f&&this.end.column==a?1:this.start.row==f&&this.start.column==a?-1:this.compare(f,a)},this.clipRows=function(f,a){if(this.end.row>a)var i={row:a+1,column:0};else if(this.end.rowa)var t={row:a+1,column:0};else if(this.start.rows.row||t.row==s.row&&t.column>s.column},this.getRange=function(){var t=this.anchor,s=this.lead;return this.isEmpty()?a.fromPoints(s,s):this.isBackwards()?a.fromPoints(s,t):a.fromPoints(t,s)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var t=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(t,this.doc.getLine(t).length)},this.setRange=this.setSelectionRange=function(t,s){s?(this.setSelectionAnchor(t.end.row,t.end.column),this.selectTo(t.start.row,t.start.column)):(this.setSelectionAnchor(t.start.row,t.start.column),this.selectTo(t.end.row,t.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(t){var s=this.lead;this.$isEmpty&&this.setSelectionAnchor(s.row,s.column),t.call(this)},this.selectTo=function(t,s){this.$moveSelection(function(){this.moveCursorTo(t,s)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,s){this.clearSelection(),this.moveCursorTo(t,s)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(t,s){if(typeof s>"u"){var o=t||this.lead;t=o.row,s=o.column}return this.session.getWordRange(t,s)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),s=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(s)},this.getLineRange=function(t,s){var o=typeof t=="number"?t:this.lead.row,e,c=this.session.getFoldLine(o);return c?(o=c.start.row,e=c.end.row):e=o,s===!0?new a(o,0,e,this.session.getLine(e).length):new a(o,0,e+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,s,o){var e=t.column,c=t.column+s;return o<0&&(e=t.column-s,c=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(e,c).split(" ").length-1==s},this.moveCursorLeft=function(){var t=this.lead.getPosition(),s;if(s=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(s.start.row,s.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var o=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,o,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-o):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),s;if(s=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(s.end.row,s.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(s.column=e)}}this.moveCursorTo(s.row,s.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,s=this.doc.getLine(t).length;this.moveCursorTo(t,s)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,s=this.lead.column,o=this.doc.getLine(t),e=o.substring(s);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var c=this.session.getFoldAt(t,s,1);if(c){this.moveCursorTo(c.end.row,c.end.column);return}if(this.session.nonTokenRe.exec(e)&&(s+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,e=o.substring(s)),s>=o.length){this.moveCursorTo(t,o.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(c)&&(s-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,s)},this.$shortWordEndIndex=function(t){var s=0,o,e=/\s/,c=this.session.tokenRe;if(c.lastIndex=0,this.session.tokenRe.exec(t))s=this.session.tokenRe.lastIndex;else{for(;(o=t[s])&&e.test(o);)s++;if(s<1){for(c.lastIndex=0;(o=t[s])&&!c.test(o);)if(c.lastIndex=0,s++,e.test(o))if(s>2){s--;break}else{for(;(o=t[s])&&e.test(o);)s++;if(s>2)break}}}return c.lastIndex=0,s},this.moveCursorShortWordRight=function(){var t=this.lead.row,s=this.lead.column,o=this.doc.getLine(t),e=o.substring(s),c=this.session.getFoldAt(t,s,1);if(c)return this.moveCursorTo(c.end.row,c.end.column);if(s==o.length){var u=this.doc.getLength();do t++,e=this.doc.getLine(t);while(t0&&/^\s*$/.test(e));s=e.length,/\s+$/.test(e)||(e="")}var c=v.stringReverse(e),u=this.$shortWordEndIndex(c);return this.moveCursorTo(t,s-u)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,s){var o=this.session.documentToScreenPosition(this.lead.row,this.lead.column),e;s===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(e=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(e/this.session.$bidiHandler.charWidths[0])):e=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column);var c=this.session.screenToDocumentPosition(o.row+t,o.column,e);t!==0&&s===0&&c.row===this.lead.row&&c.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[c.row]&&(c.row>0||t>0)&&c.row++,this.moveCursorTo(c.row,c.column+s,s===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,s,o){var e=this.session.getFoldAt(t,s,1);e&&(t=e.start.row,s=e.start.column),this.$keepDesiredColumnOnChange=!0;var c=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(c.charAt(s))&&c.charAt(s-1)&&(this.lead.row==t&&this.lead.column==s+1?s=s-1:s=s+1),this.lead.setPosition(t,s),this.$keepDesiredColumnOnChange=!1,o||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,s,o){var e=this.session.screenToDocumentPosition(t,s);this.moveCursorTo(e.row,e.column,o)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var s=this.getRange();return t?(t.start.column=s.start.column,t.start.row=s.start.row,t.end.column=s.end.column,t.end.row=s.end.row):t=s,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var s=this.getCursor();try{t(this);var o=this.getCursor();return a.fromPoints(s,o)}catch{return a.fromPoints(s,s)}finally{this.moveCursorToPosition(s)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(s){var o=s.clone();return o.isBackwards=s.cursor==s.start,o});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList){this.toSingleRange(t[0]);for(var s=t.length;s--;){var o=a.fromPoints(t[s].start,t[s].end);t[s].isBackwards&&(o.cursor=o.start),this.addRange(o,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var s=this.ranges.length;s--;)if(!this.ranges[s].isEqual(t[s]))return!1;return!0}}).call(i.prototype),r.Selection=i});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(l,r,m){var g=l("./config"),v=2e3,f=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var i in this.states){for(var t=this.states[i],s=[],o=0,e=this.matchMappings[i]={defaultToken:"text"},c="g",u=[],h=0;h1?b.onMatch=this.$applyToken:b.onMatch=b.token),k>1&&(/\\\d/.test(b.regex)?p=b.regex.replace(/\\([0-9]+)/g,function(d,w){return"\\"+(parseInt(w,10)+o+1)}):(k=1,p=this.removeCapturingGroups(b.regex)),!b.splitRegex&&typeof b.token!="string"&&u.push(b)),e[o]=h,o+=k,s.push(p),b.onMatch||(b.onMatch=null)}}s.length||(e[0]=0,s.push("$")),u.forEach(function(d){d.splitRegex=this.createSplitterRegexp(d.regex,c)},this),this.regExps[i]=new RegExp("("+s.join(")|(")+")|($)",c)}};(function(){this.$setMaxTokenCount=function(a){v=a|0},this.$applyToken=function(a){var i=this.splitRegex.exec(a).slice(1),t=this.token.apply(this,i);if(typeof t=="string")return[{type:t,value:a}];for(var s=[],o=0,e=t.length;ob){var x=a.substring(b,_-y.length);k.type==d?k.value+=x:(k.type&&h.push(k),k={type:d,value:x})}for(var E=0;Ev){for(p>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:i,line:a});b1&&t[0]!==s&&t.unshift("#tmp",s),{tokens:h,state:t.length?t:s}},this.reportError=g.reportError}).call(f.prototype),r.Tokenizer=f});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(l,r,m){var g=l("../lib/lang"),v=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(i,t){if(!t){for(var s in i)this.$rules[s]=i[s];return}for(var s in i){for(var o=i[s],e=0;e=this.$rowTokens.length;){if(this.$row+=1,f||(f=this.$session.getLength()),this.$row>=f)return this.$row=f-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var f=this.$rowTokens,a=this.$tokenIndex,i=f[a].start;if(i!==void 0)return i;for(i=0;a>0;)a-=1,i+=f[a].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var f=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new g(this.$row,a,this.$row,a+f.value.length)}}).call(v.prototype),r.TokenIterator=v});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(l,r,m){var g=l("../../lib/oop"),v=l("../behaviour").Behaviour,f=l("../../token_iterator").TokenIterator,a=l("../../lib/lang"),i=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],s,o={},e={'"':'"',"'":"'"},c=function(b){var p=-1;if(b.multiSelect&&(p=b.selection.index,o.rangeCount!=b.multiSelect.rangeCount&&(o={rangeCount:b.multiSelect.rangeCount})),o[p])return s=o[p];s=o[p]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},u=function(b,p,k,d){var w=b.end.row-b.start.row;return{text:k+p+d,selection:[0,b.start.column+1,w,b.end.column+(w?0:1)]}},h=function(b){this.add("braces","insertion",function(p,k,d,w,y){var _=d.getCursorPosition(),x=w.doc.getLine(_.row);if(y=="{"){c(d);var E=d.getSelectionRange(),S=w.doc.getTextRange(E);if(S!==""&&S!=="{"&&d.getWrapBehavioursEnabled())return u(E,S,"{","}");if(h.isSaneInsertion(d,w))return/[\]\}\)]/.test(x[_.column])||d.inMultiSelectMode||b&&b.braces?(h.recordAutoInsert(d,w,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(d,w,"{"),{text:"{",selection:[1,1]})}else if(y=="}"){c(d);var C=x.substring(_.column,_.column+1);if(C=="}"){var T=w.$findOpeningBracket("}",{column:_.column+1,row:_.row});if(T!==null&&h.isAutoInsertedClosing(_,x,y))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(y==`
+`,h.setSelectionRange(4,4+Ne.length),m={value:Ne}),ge?u.onCut():u.onCopy(),v.isIOS||p.preventDefault(le)):(m=!0,h.value=Ne,h.select(),setTimeout(function(){m=!1,T(),C(),ge?u.onCut():u.onCopy()}))},te=function(le){se(le,!0)},$=function(le){se(le,!1)},P=function(le){var ge=Z(le);typeof ge=="string"?(ge&&u.onPaste(ge,le),v.isIE&&setTimeout(C),p.preventDefault(le)):(h.value="",d=!0)};p.addCommandKeyListener(h,u.onCommandKey.bind(u)),p.addListener(h,"select",W),p.addListener(h,"input",U),p.addListener(h,"cut",te),p.addListener(h,"copy",$),p.addListener(h,"paste",P);var A=function(le){w||!u.onCompositionStart||u.$readOnly||(w={},w.canUndo=u.session.$undoManager,u.onCompositionStart(),setTimeout(O,0),u.on("mousedown",z),w.canUndo&&!u.selection.isEmpty()&&(u.insert(""),u.session.markUndoGroup(),u.selection.clearSelection()),u.session.markUndoGroup())},O=function(){if(!(!w||!u.onCompositionUpdate||u.$readOnly)){var le=h.value.replace(/\x01/g,"");if(w.lastValue!==le&&(u.onCompositionUpdate(le),w.lastValue&&u.undo(),w.canUndo&&(w.lastValue=le),w.lastValue)){var ge=u.selection.getRange();u.insert(w.lastValue),u.session.markUndoGroup(),w.range=u.selection.getRange(),u.selection.setRange(ge),u.selection.clearSelection()}}},z=function(le){if(!(!u.onCompositionEnd||u.$readOnly)){var ge=w;w=!1;var Ne=setTimeout(function(){Ne=null;var Le=h.value.replace(/\x01/g,"");w||(Le==ge.lastValue?T():!ge.lastValue&&Le&&(T(),Q(Le)))});j=function(De){return Ne&&clearTimeout(Ne),De=De.replace(/\x01/g,""),De==ge.lastValue?"":(ge.lastValue&&Ne&&u.undo(),De)},u.onCompositionEnd(),u.removeListener("mousedown",z),le.type=="compositionend"&&ge.range&&u.selection.setRange(ge.range);var Ue=!!v.isChrome&&v.isChrome>=53||!!v.isWebKit&&v.isWebKit>=603;Ue&&U()}},G=a.delayedCall(O,50);p.addListener(h,"compositionstart",A),v.isGecko?p.addListener(h,"text",function(){G.schedule()}):(p.addListener(h,"keyup",function(){G.schedule()}),p.addListener(h,"keydown",function(){G.schedule()})),p.addListener(h,"compositionend",z),this.getElement=function(){return h},this.setReadOnly=function(le){h.readOnly=le},this.onContextMenu=function(le){L=!0,C(u.selection.isEmpty()),u._emit("nativecontextmenu",{target:u,domEvent:le}),this.moveToMouse(le,!0)},this.moveToMouse=function(le,ge){y||(y=h.style.cssText),h.style.cssText=(ge?"z-index:100000;":"")+"height:"+h.style.height+";"+(v.isIE?"opacity:0.1;":"");var Ne=u.container.getBoundingClientRect(),Ue=f.computedStyle(u.container),Le=Ne.top+(parseInt(Ue.borderTopWidth)||0),De=Ne.left+(parseInt(Ne.borderLeftWidth)||0),Fe=Ne.bottom-Le-h.clientHeight-2,Oe=function(We){h.style.left=We.clientX-De-2+"px",h.style.top=Math.min(We.clientY-Le-2,Fe)+"px"};Oe(le),le.type=="mousedown"&&(u.renderer.$keepTextAreaAtCursor&&(u.renderer.$keepTextAreaAtCursor=null),clearTimeout(re),v.isWin&&p.capture(u.container,Oe,X))},this.onContextMenuClose=X;var re;function X(){clearTimeout(re),re=setTimeout(function(){y&&(h.style.cssText=y,y=""),u.renderer.$keepTextAreaAtCursor==null&&(u.renderer.$keepTextAreaAtCursor=!0,u.renderer.$moveTextAreaToCursor())},0)}var be=function(le){u.textInput.onContextMenu(le),X()};if(p.addListener(h,"mouseup",be),p.addListener(h,"mousedown",function(le){le.preventDefault(),X()}),p.addListener(u.renderer.scroller,"contextmenu",be),p.addListener(h,"contextmenu",be),v.isIOS){var Be=null,ve=!1;c.addEventListener("keydown",function(le){Be&&clearTimeout(Be),ve=!0}),c.addEventListener("keyup",function(le){Be=setTimeout(function(){ve=!1},100)});var he=function(le){if(document.activeElement===h&&!ve){if(k)return setTimeout(function(){k=!1},100);var ge=h.selectionStart,Ne=h.selectionEnd;if(h.setSelectionRange(4,5),ge==Ne)switch(ge){case 0:u.onCommandKey(null,0,i.up);break;case 1:u.onCommandKey(null,0,i.home);break;case 2:u.onCommandKey(null,t.option,i.left);break;case 4:u.onCommandKey(null,0,i.left);break;case 5:u.onCommandKey(null,0,i.right);break;case 7:u.onCommandKey(null,t.option,i.right);break;case 8:u.onCommandKey(null,0,i.end);break;case 9:u.onCommandKey(null,0,i.down);break}else{switch(Ne){case 6:u.onCommandKey(null,t.shift,i.right);break;case 7:u.onCommandKey(null,t.shift|t.option,i.right);break;case 8:u.onCommandKey(null,t.shift,i.end);break;case 9:u.onCommandKey(null,t.shift,i.down);break}switch(ge){case 0:u.onCommandKey(null,t.shift,i.up);break;case 1:u.onCommandKey(null,t.shift,i.home);break;case 2:u.onCommandKey(null,t.shift|t.option,i.left);break;case 3:u.onCommandKey(null,t.shift,i.left);break}}}};document.addEventListener("selectionchange",he),u.on("destroy",function(){document.removeEventListener("selectionchange",he)})}};r.TextInput=e});ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(l,r,g){var p=l("../lib/event"),v=l("../lib/useragent"),f=l("../lib/dom"),a=l("../lib/lang"),i=v.isChrome<18,t=v.isIE,s=l("./textinput_ios").TextInput,o=function(e,c){if(v.isIOS)return s.call(this,e,c);var u=f.createElement("textarea");u.className="ace_text-input",u.setAttribute("wrap","off"),u.setAttribute("autocorrect","off"),u.setAttribute("autocapitalize","off"),u.setAttribute("spellcheck",!1),u.style.opacity="0",e.insertBefore(u,e.firstChild);var h="\u2028\u2028",b=!1,m=!1,k=!1,d="",w=!0;try{var y=document.activeElement===u}catch{}p.addListener(u,"blur",function(X){c.onBlur(X),y=!1}),p.addListener(u,"focus",function(X){y=!0,c.onFocus(X),E()}),this.focus=function(){if(d)return u.focus();var X=u.style.top;u.style.position="fixed",u.style.top="0px",u.focus(),setTimeout(function(){u.style.position="",u.style.top=="0px"&&(u.style.top=X)},0)},this.blur=function(){u.blur()},this.isFocused=function(){return y};var _=a.delayedCall(function(){y&&E(w)}),x=a.delayedCall(function(){k||(u.value=h,y&&E())});function E(X){if(!k){if(k=!0,R)var be=0,Be=X?0:u.value.length-1;else var be=X?2:1,Be=2;try{u.setSelectionRange(be,Be)}catch{}k=!1}}function S(){k||(u.value=h,v.isWebKit&&x.schedule())}v.isWebKit||c.addEventListener("changeSelection",function(){c.selection.isEmpty()!=w&&(w=!w,_.schedule())}),S(),y&&c.onFocus();var C=function(X){return X.selectionStart===0&&X.selectionEnd===X.value.length},T=function(X){b?b=!1:C(u)?(c.selectAll(),E()):R&&E(c.selection.isEmpty())},R=null;this.setInputHandler=function(X){R=X},this.getInputHandler=function(){return R};var W=!1,j=function(X){R&&(X=R(X),R=null),m?(E(),X&&c.onPaste(X),m=!1):X==h.charAt(0)?W?c.execCommand("del",{source:"ace"}):c.execCommand("backspace",{source:"ace"}):(X.substring(0,2)==h?X=X.substr(2):X.charAt(0)==h.charAt(0)?X=X.substr(1):X.charAt(X.length-1)==h.charAt(0)&&(X=X.slice(0,-1)),X.charAt(X.length-1)==h.charAt(0)&&(X=X.slice(0,-1)),X&&c.onTextInput(X)),W&&(W=!1)},L=function(X){if(!k){var be=u.value;j(be),S()}},Q=function(X,be,Be){var ve=X.clipboardData||window.clipboardData;if(!(!ve||i)){var he=t||Be?"Text":"text/plain";try{return be?ve.setData(he,be)!==!1:ve.getData(he)}catch(le){if(!Be)return Q(le,be,!0)}}},U=function(X,be){var Be=c.getCopyText();if(!Be)return p.preventDefault(X);Q(X,Be)?(be?c.onCut():c.onCopy(),p.preventDefault(X)):(b=!0,u.value=Be,u.select(),setTimeout(function(){b=!1,S(),E(),be?c.onCut():c.onCopy()}))},Z=function(X){U(X,!0)},se=function(X){U(X,!1)},te=function(X){var be=Q(X);typeof be=="string"?(be&&c.onPaste(be,X),v.isIE&&setTimeout(E),p.preventDefault(X)):(u.value="",m=!0)};p.addCommandKeyListener(u,c.onCommandKey.bind(c)),p.addListener(u,"select",T),p.addListener(u,"input",L),p.addListener(u,"cut",Z),p.addListener(u,"copy",se),p.addListener(u,"paste",te),(!("oncut"in u)||!("oncopy"in u)||!("onpaste"in u))&&p.addListener(e,"keydown",function(X){if(!(v.isMac&&!X.metaKey||!X.ctrlKey))switch(X.keyCode){case 67:se(X);break;case 86:te(X);break;case 88:Z(X);break}});var $=function(X){k||!c.onCompositionStart||c.$readOnly||(k={},k.canUndo=c.session.$undoManager,c.onCompositionStart(),setTimeout(P,0),c.on("mousedown",A),k.canUndo&&!c.selection.isEmpty()&&(c.insert(""),c.session.markUndoGroup(),c.selection.clearSelection()),c.session.markUndoGroup())},P=function(){if(!(!k||!c.onCompositionUpdate||c.$readOnly)){var X=u.value.replace(/\u2028/g,"");if(k.lastValue!==X&&(c.onCompositionUpdate(X),k.lastValue&&c.undo(),k.canUndo&&(k.lastValue=X),k.lastValue)){var be=c.selection.getRange();c.insert(k.lastValue),c.session.markUndoGroup(),k.range=c.selection.getRange(),c.selection.setRange(be),c.selection.clearSelection()}}},A=function(X){if(!(!c.onCompositionEnd||c.$readOnly)){var be=k;k=!1;var Be=setTimeout(function(){Be=null;var he=u.value.replace(/\u2028/g,"");k||(he==be.lastValue?S():!be.lastValue&&he&&(S(),j(he)))});R=function(le){return Be&&clearTimeout(Be),le=le.replace(/\u2028/g,""),le==be.lastValue?"":(be.lastValue&&Be&&c.undo(),le)},c.onCompositionEnd(),c.removeListener("mousedown",A),X.type=="compositionend"&&be.range&&c.selection.setRange(be.range);var ve=!!v.isChrome&&v.isChrome>=53||!!v.isWebKit&&v.isWebKit>=603;ve&&L()}},O=a.delayedCall(P,50);p.addListener(u,"compositionstart",$),v.isGecko?p.addListener(u,"text",function(){O.schedule()}):(p.addListener(u,"keyup",function(){O.schedule()}),p.addListener(u,"keydown",function(){O.schedule()})),p.addListener(u,"compositionend",A),this.getElement=function(){return u},this.setReadOnly=function(X){u.readOnly=X},this.onContextMenu=function(X){W=!0,E(c.selection.isEmpty()),c._emit("nativecontextmenu",{target:c,domEvent:X}),this.moveToMouse(X,!0)},this.moveToMouse=function(X,be){d||(d=u.style.cssText),u.style.cssText=(be?"z-index:100000;":"")+"height:"+u.style.height+";"+(v.isIE?"opacity:0.1;":"");var Be=c.container.getBoundingClientRect(),ve=f.computedStyle(c.container),he=Be.top+(parseInt(ve.borderTopWidth)||0),le=Be.left+(parseInt(Be.borderLeftWidth)||0),ge=Be.bottom-he-u.clientHeight-2,Ne=function(Ue){u.style.left=Ue.clientX-le-2+"px",u.style.top=Math.min(Ue.clientY-he-2,ge)+"px"};Ne(X),X.type=="mousedown"&&(c.renderer.$keepTextAreaAtCursor&&(c.renderer.$keepTextAreaAtCursor=null),clearTimeout(z),v.isWin&&p.capture(c.container,Ne,G))},this.onContextMenuClose=G;var z;function G(){clearTimeout(z),z=setTimeout(function(){d&&(u.style.cssText=d,d=""),c.renderer.$keepTextAreaAtCursor==null&&(c.renderer.$keepTextAreaAtCursor=!0,c.renderer.$moveTextAreaToCursor())},0)}var re=function(X){c.textInput.onContextMenu(X),G()};p.addListener(u,"mouseup",re),p.addListener(u,"mousedown",function(X){X.preventDefault(),G()}),p.addListener(c.renderer.scroller,"contextmenu",re),p.addListener(u,"contextmenu",re)};r.TextInput=o});ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(l,r,g){l("../lib/dom"),l("../lib/event");var p=l("../lib/useragent"),v=0,f=250;function a(s){s.$clickSelection=null;var o=s.editor;o.setDefaultHandler("mousedown",this.onMouseDown.bind(s)),o.setDefaultHandler("dblclick",this.onDoubleClick.bind(s)),o.setDefaultHandler("tripleclick",this.onTripleClick.bind(s)),o.setDefaultHandler("quadclick",this.onQuadClick.bind(s)),o.setDefaultHandler("mousewheel",this.onMouseWheel.bind(s)),o.setDefaultHandler("touchmove",this.onTouchMove.bind(s));var e=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];e.forEach(function(c){s[c]=this[c]},this),s.selectByLines=this.extendSelectionBy.bind(s,"getLineRange"),s.selectByWords=this.extendSelectionBy.bind(s,"getWordRange")}(function(){this.onMouseDown=function(s){var o=s.inSelection(),e=s.getDocumentPosition();this.mousedownEvent=s;var c=this.editor,u=s.getButton();if(u!==0){var h=c.getSelectionRange(),b=h.isEmpty();c.$blockScrolling++,(b||u==1)&&c.selection.moveToPosition(e),c.$blockScrolling--,u==2&&(c.textInput.onContextMenu(s.domEvent),p.isMozilla||s.preventDefault());return}if(this.mousedownEvent.time=Date.now(),o&&!c.isFocused()&&(c.focus(),this.$focusTimout&&!this.$clickSelection&&!c.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(s);return}return this.captureMouse(s),this.startSelect(e,s.domEvent._clicks>1),s.preventDefault()},this.startSelect=function(s,o){s=s||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var e=this.editor;e.$blockScrolling++,this.mousedownEvent.getShiftKey()?e.selection.selectToPosition(s):o||e.selection.moveToPosition(s),o||this.select(),e.renderer.scroller.setCapture&&e.renderer.scroller.setCapture(),e.setStyle("ace_selecting"),this.setState("select"),e.$blockScrolling--},this.select=function(){var s,o=this.editor,e=o.renderer.screenToTextCoordinates(this.x,this.y);if(o.$blockScrolling++,this.$clickSelection){var c=this.$clickSelection.comparePoint(e);if(c==-1)s=this.$clickSelection.end;else if(c==1)s=this.$clickSelection.start;else{var u=t(this.$clickSelection,e);e=u.cursor,s=u.anchor}o.selection.setSelectionAnchor(s.row,s.column)}o.selection.selectToPosition(e),o.$blockScrolling--,o.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(s){var o,e=this.editor,c=e.renderer.screenToTextCoordinates(this.x,this.y),u=e.selection[s](c.row,c.column);if(e.$blockScrolling++,this.$clickSelection){var h=this.$clickSelection.comparePoint(u.start),b=this.$clickSelection.comparePoint(u.end);if(h==-1&&b<=0)o=this.$clickSelection.end,(u.end.row!=c.row||u.end.column!=c.column)&&(c=u.start);else if(b==1&&h>=0)o=this.$clickSelection.start,(u.start.row!=c.row||u.start.column!=c.column)&&(c=u.end);else if(h==-1&&b==1)c=u.end,o=u.start;else{var m=t(this.$clickSelection,c);c=m.cursor,o=m.anchor}e.selection.setSelectionAnchor(o.row,o.column)}e.selection.selectToPosition(c),e.$blockScrolling--,e.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var s=i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),o=Date.now();(s>v||o-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(s){var o=s.getDocumentPosition(),e=this.editor,c=e.session,u=c.getBracketRange(o);u?(u.isEmpty()&&(u.start.column--,u.end.column++),this.setState("select")):(u=e.selection.getWordRange(o.row,o.column),this.setState("selectByWords")),this.$clickSelection=u,this.select()},this.onTripleClick=function(s){var o=s.getDocumentPosition(),e=this.editor;this.setState("selectByLines");var c=e.getSelectionRange();c.isMultiLine()&&c.contains(o.row,o.column)?(this.$clickSelection=e.selection.getLineRange(c.start.row),this.$clickSelection.end=e.selection.getLineRange(c.end.row).end):this.$clickSelection=e.selection.getLineRange(o.row),this.select()},this.onQuadClick=function(s){var o=this.editor;o.selectAll(),this.$clickSelection=o.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(s){if(!s.getAccelKey()){s.getShiftKey()&&s.wheelY&&!s.wheelX&&(s.wheelX=s.wheelY,s.wheelY=0);var o=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var e=this.$lastScroll,c=s.domEvent.timeStamp,u=c-e.t,h=s.wheelX/u,b=s.wheelY/u;u=1&&o.renderer.isScrollableBy(s.wheelX*s.speed,0)&&(k=!0),m<=1&&o.renderer.isScrollableBy(0,s.wheelY*s.speed)&&(k=!0),k)e.allowed=c;else if(c-e.allowedo.session.documentToScreenRow(E.row,E.column))return k()}if(b!=y)if(b=y.text.join("
"),c.setHtml(b),c.show(),o._signal("showGutterTooltip",c),o.on("mousewheel",k),s.$tooltipFollowsMouse)d(h);else{var S=h.domEvent.target,C=S.getBoundingClientRect(),T=c.getElement().style;T.left=C.right+"px",T.top=C.bottom+"px"}}function k(){u&&(u=clearTimeout(u)),b&&(c.hide(),b=null,o._signal("hideGutterTooltip",c),o.removeEventListener("mousewheel",k))}function d(w){c.setPosition(w.x,w.y)}s.editor.setDefaultHandler("guttermousemove",function(w){var y=w.domEvent.target||w.domEvent.srcElement;if(p.hasCssClass(y,"ace_fold-widget"))return k();b&&s.$tooltipFollowsMouse&&d(w),h=w,!u&&(u=setTimeout(function(){u=null,h&&!s.isMousePressed?m():k()},50))}),f.addListener(o.renderer.$gutter,"mouseout",function(w){h=null,!(!b||u)&&(u=setTimeout(function(){u=null,k()},50))}),o.on("changeSession",k)}function t(s){a.call(this,s)}v.inherits(t,a),(function(){this.setPosition=function(s,o){var e=window.innerWidth||document.documentElement.clientWidth,c=window.innerHeight||document.documentElement.clientHeight,u=this.getWidth(),h=this.getHeight();s+=15,o+=15,s+u>e&&(s-=s+u-e),o+h>c&&(o-=20+h),a.prototype.setPosition.call(this,s,o)}}).call(t.prototype),r.GutterHandler=i});ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(l,r,g){var p=l("../lib/event"),v=l("../lib/useragent"),f=r.MouseEvent=function(a,i){this.domEvent=a,this.editor=i,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){p.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){p.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var a=this.editor,i=a.getSelectionRange();if(i.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=i.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return p.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=v.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(f.prototype)});ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(l,r,g){var p=l("../lib/dom"),v=l("../lib/event"),f=l("../lib/useragent"),a=200,i=200,t=5;function s(e){var c=e.editor,u=p.createElement("img");u.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",f.isOpera&&(u.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var h=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];h.forEach(function(P){e[P]=this[P]},this),c.addEventListener("mousedown",this.onMouseDown.bind(e));var b=c.container,m,k,d,w,y,_,x=0,E,S,C,T,R;this.onDragStart=function(P){if(this.cancelDrag||!b.draggable){var A=this;return setTimeout(function(){A.startSelect(),A.captureMouse(P)},0),P.preventDefault()}y=c.getSelectionRange();var O=P.dataTransfer;O.effectAllowed=c.getReadOnly()?"copy":"copyMove",f.isOpera&&(c.container.appendChild(u),u.scrollTop=0),O.setDragImage&&O.setDragImage(u,0,0),f.isOpera&&c.container.removeChild(u),O.clearData(),O.setData("Text",c.session.getTextRange()),S=!0,this.setState("drag")},this.onDragEnd=function(P){if(b.draggable=!1,S=!1,this.setState(null),!c.getReadOnly()){var A=P.dataTransfer.dropEffect;!E&&A=="move"&&c.session.remove(c.getSelectionRange()),c.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(P){if(!(c.getReadOnly()||!te(P.dataTransfer)))return k=P.clientX,d=P.clientY,m||Q(),x++,P.dataTransfer.dropEffect=E=$(P),v.preventDefault(P)},this.onDragOver=function(P){if(!(c.getReadOnly()||!te(P.dataTransfer)))return k=P.clientX,d=P.clientY,m||(Q(),x++),Z!==null&&(Z=null),P.dataTransfer.dropEffect=E=$(P),v.preventDefault(P)},this.onDragLeave=function(P){if(x--,x<=0&&m)return U(),E=null,v.preventDefault(P)},this.onDrop=function(P){if(_){var A=P.dataTransfer;if(S)switch(E){case"move":y.contains(_.row,_.column)?y={start:_,end:_}:y=c.moveText(y,_);break;case"copy":y=c.moveText(y,_,!0);break}else{var O=A.getData("Text");y={start:_,end:c.session.insert(_,O)},c.focus(),E=null}return U(),v.preventDefault(P)}},v.addListener(b,"dragstart",this.onDragStart.bind(e)),v.addListener(b,"dragend",this.onDragEnd.bind(e)),v.addListener(b,"dragenter",this.onDragEnter.bind(e)),v.addListener(b,"dragover",this.onDragOver.bind(e)),v.addListener(b,"dragleave",this.onDragLeave.bind(e)),v.addListener(b,"drop",this.onDrop.bind(e));function W(P,A){var O=Date.now(),z=!A||P.row!=A.row,G=!A||P.column!=A.column;if(!T||z||G)c.$blockScrolling+=1,c.moveCursorToPosition(P),c.$blockScrolling-=1,T=O,R={x:k,y:d};else{var re=o(R.x,R.y,k,d);re>t?T=null:O-T>=i&&(c.renderer.scrollCursorIntoView(),T=null)}}function j(P,A){var O=Date.now(),z=c.renderer.layerConfig.lineHeight,G=c.renderer.layerConfig.characterWidth,re=c.renderer.scroller.getBoundingClientRect(),X={x:{left:k-re.left,right:re.right-k},y:{top:d-re.top,bottom:re.bottom-d}},be=Math.min(X.x.left,X.x.right),Be=Math.min(X.y.top,X.y.bottom),ve={row:P.row,column:P.column};be/G<=2&&(ve.column+=X.x.left=a&&c.renderer.scrollCursorIntoView(ve):C=O:C=null}function L(){var P=_;_=c.renderer.screenToTextCoordinates(k,d),W(_,P),j(_,P)}function Q(){y=c.selection.toOrientedRange(),m=c.session.addMarker(y,"ace_selection",c.getSelectionStyle()),c.clearSelection(),c.isFocused()&&c.renderer.$cursorLayer.setBlinking(!1),clearInterval(w),L(),w=setInterval(L,20),x=0,v.addListener(document,"mousemove",se)}function U(){clearInterval(w),c.session.removeMarker(m),m=null,c.$blockScrolling+=1,c.selection.fromOrientedRange(y),c.$blockScrolling-=1,c.isFocused()&&!S&&c.renderer.$cursorLayer.setBlinking(!c.getReadOnly()),y=null,_=null,x=0,C=null,T=null,v.removeListener(document,"mousemove",se)}var Z=null;function se(){Z==null&&(Z=setTimeout(function(){Z!=null&&m&&U()},20))}function te(P){var A=P.types;return!A||Array.prototype.some.call(A,function(O){return O=="text/plain"||O=="Text"})}function $(P){var A=["copy","copymove","all","uninitialized"],O=["move","copymove","linkmove","all","uninitialized"],z=f.isMac?P.altKey:P.ctrlKey,G="uninitialized";try{G=P.dataTransfer.effectAllowed.toLowerCase()}catch{}var re="none";return z&&A.indexOf(G)>=0?re="copy":O.indexOf(G)>=0?re="move":A.indexOf(G)>=0&&(re="copy"),re}}(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,c=e.container;c.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var u=f.isWin?"default":"move";e.renderer.setCursorStyle(u),this.setState("dragReady")},this.onMouseDrag=function(e){var c=this.editor.container;if(f.isIE&&this.state=="dragReady"){var u=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);u>3&&c.dragDrop()}if(this.state==="dragWait"){var u=o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);u>0&&(c.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var c=this.editor,u=e.inSelection(),h=e.getButton(),b=e.domEvent.detail||1;if(b===1&&h===0&&u){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var m=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in m&&(m.unselectable="on"),c.getDragDelay()){if(f.isWebKit){this.cancelDrag=!0;var k=c.container;k.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(s.prototype);function o(e,c,u,h){return Math.sqrt(Math.pow(u-e,2)+Math.pow(h-c,2))}r.DragdropHandler=s});ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(l,r,g){var p=l("./dom");r.get=function(v,f){var a=new XMLHttpRequest;a.open("GET",v,!0),a.onreadystatechange=function(){a.readyState===4&&f(a.responseText)},a.send(null)},r.loadScript=function(v,f){var a=p.getDocumentHead(),i=document.createElement("script");i.src=v,a.appendChild(i),i.onload=i.onreadystatechange=function(t,s){(s||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")&&(i=i.onload=i.onreadystatechange=null,s||f())}},r.qualifyURL=function(v){var f=document.createElement("a");return f.href=v,f.href}});ace.define("ace/lib/event_emitter",["require","exports","module"],function(l,r,g){var p={},v=function(){this.propagationStopped=!0},f=function(){this.defaultPrevented=!0};p._emit=p._dispatchEvent=function(a,i){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[a]||[],s=this._defaultHandlers[a];if(!(!t.length&&!s)){(typeof i!="object"||!i)&&(i={}),i.type||(i.type=a),i.stopPropagation||(i.stopPropagation=v),i.preventDefault||(i.preventDefault=f),t=t.slice();for(var o=0;o1&&(h=c[c.length-2]);var m=i[e+"Path"];return m==null?m=i.basePath:u=="/"&&(e=u=""),m&&m.slice(-1)!="/"&&(m+="/"),m+e+u+h+this.get("suffix")},r.setModuleUrl=function(o,e){return i.$moduleUrls[o]=e},r.$loading={},r.loadModule=function(o,e){var c,u;Array.isArray(o)&&(u=o[0],o=o[1]);try{c=l(o)}catch{}if(c&&!r.$loading[o])return e&&e(c);if(r.$loading[o]||(r.$loading[o]=[]),r.$loading[o].push(e),!(r.$loading[o].length>1)){var h=function(){l([o],function(b){r._emit("load.module",{name:o,module:b});var m=r.$loading[o];r.$loading[o]=null,m.forEach(function(k){k&&k(b)})})};if(!r.get("packaged"))return h();v.loadScript(r.moduleUrl(o,u),h)}},t(!0);function t(o){if(!(!a||!a.document)){i.packaged=o||l.packaged||g.packaged||a.define&&(void 0).packaged;for(var e={},c="",u=document.currentScript||document._currentScript,h=u&&u.ownerDocument||document,b=h.getElementsByTagName("script"),m=0;m0)if(ve==16){for(ge=le;ge-1){for(ge=le;ge=0&&z[Le]==y;Le--)A[Le]=p}}}function se(P,A,O){if(!(v=P){for(re=G+1;re=P;)re++;for(X=G,be=re-1;X=A.length||(re=O[z-1])!=h&&re!=b||(X=A[z+1])!=h&&X!=b?m:(f&&(X=b),X==re?X:m);case x:return re=z>0?O[z-1]:k,re==h&&z+10&&O[z-1]==h)return h;if(f)return m;for(Be=z+1,be=A.length;Be=1425&&ve<=2303||ve==64286;if(re=A[Be],he&&(re==u||re==w))return u}return z<1||(re=A[z-1])==k?m:O[z-1];case k:return f=!1,a=!0,p;case d:return i=!0,m;case C:case T:case W:case j:case R:f=!1;case L:return m}}function $(P){var A=P.charCodeAt(0),O=A>>8;return O==0?A>191?c:Q[A]:O==5?/[\u0591-\u05f4]/.test(P)?u:c:O==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(P)?S:/[\u0660-\u0669\u066b-\u066c]/.test(P)?b:A==1642?E:/[\u06f0-\u06f9]/.test(P)?h:w:O==32&&A<=8287?U[A&255]:O==254&&A>=65136?w:m}r.L=c,r.R=u,r.EN=h,r.ON_R=3,r.AN=4,r.R_H=5,r.B=6,r.DOT="·",r.doBidiReorder=function(P,A,O){if(P.length<2)return{};var z=P.split(""),G=new Array(z.length),re=new Array(z.length),X=[];p=O?e:o,Z(z,X,z.length,A);for(var be=0;bew&&A[be]0&&z[be-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(z[be])&&(X[be-1]=X[be]=r.R_H,be++);z[z.length-1]===r.DOT&&(X[z.length-1]=r.B);for(var be=0;be=0&&(t=this.session.$docRowCache[o])}return t},this.getSplitIndex=function(){var t=0,s=this.session.$screenRowCache;if(s.length)for(var o,e=this.session.$getRowCacheIndex(s,this.currentRow);this.currentRow-t>0&&(o=this.session.$getRowCacheIndex(s,this.currentRow-t-1),o===e);)e=o,t++;return t},this.updateRowLine=function(t,s){if(t===void 0&&(t=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=t===this.session.getLength()-1,this.line=this.session.getLine(t),this.session.$useWrapMode){var o=this.session.$wrapData[t];o&&(s===void 0&&(s=this.getSplitIndex()),s>0&&o.length?(this.wrapIndent=o.indent,this.line=s0?t-1:0,this.bidiMap),o=this.bidiMap.bidiLevels,e=0;t===0&&o[s]%2!==0&&s++;for(var c=0;c=b&&ye+h/2;){if(e+=h,c===u.length-1){h=0;break}h=this.charWidths[u[++c]]}return c>0&&u[c-1]%2!==0&&u[c]%2===0?(o0&&u[c-1]%2===0&&u[c]%2!==0?s=1+(o>e?this.bidiMap.logicalFromVisual[c]:this.bidiMap.logicalFromVisual[c-1]):this.isRtlDir&&c===u.length-1&&h===0&&u[c-1]%2===0||!this.isRtlDir&&c===0&&u[c]%2!==0?s=1+this.bidiMap.logicalFromVisual[c]:(c>0&&u[c-1]%2!==0&&h!==0&&c--,s=this.bidiMap.logicalFromVisual[c]),s+this.wrapIndent}}).call(i.prototype),r.BidiHandler=i});ace.define("ace/range",["require","exports","module"],function(l,r,g){var p=function(f,a){return f.row-a.row||f.column-a.column},v=function(f,a,i,t){this.start={row:f,column:a},this.end={row:i,column:t}};(function(){this.isEqual=function(f){return this.start.row===f.start.row&&this.end.row===f.end.row&&this.start.column===f.start.column&&this.end.column===f.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(f,a){return this.compare(f,a)==0},this.compareRange=function(f){var a,i=f.end,t=f.start;return a=this.compare(i.row,i.column),a==1?(a=this.compare(t.row,t.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(t.row,t.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(f){return this.compare(f.row,f.column)},this.containsRange=function(f){return this.comparePoint(f.start)==0&&this.comparePoint(f.end)==0},this.intersects=function(f){var a=this.compareRange(f);return a==-1||a==0||a==1},this.isEnd=function(f,a){return this.end.row==f&&this.end.column==a},this.isStart=function(f,a){return this.start.row==f&&this.start.column==a},this.setStart=function(f,a){typeof f=="object"?(this.start.column=f.column,this.start.row=f.row):(this.start.row=f,this.start.column=a)},this.setEnd=function(f,a){typeof f=="object"?(this.end.column=f.column,this.end.row=f.row):(this.end.row=f,this.end.column=a)},this.inside=function(f,a){return this.compare(f,a)==0?!(this.isEnd(f,a)||this.isStart(f,a)):!1},this.insideStart=function(f,a){return this.compare(f,a)==0?!this.isEnd(f,a):!1},this.insideEnd=function(f,a){return this.compare(f,a)==0?!this.isStart(f,a):!1},this.compare=function(f,a){return!this.isMultiLine()&&f===this.start.row?athis.end.column?1:0:fthis.end.row?1:this.start.row===f?a>=this.start.column?0:-1:this.end.row===f?a<=this.end.column?0:1:0},this.compareStart=function(f,a){return this.start.row==f&&this.start.column==a?-1:this.compare(f,a)},this.compareEnd=function(f,a){return this.end.row==f&&this.end.column==a?1:this.compare(f,a)},this.compareInside=function(f,a){return this.end.row==f&&this.end.column==a?1:this.start.row==f&&this.start.column==a?-1:this.compare(f,a)},this.clipRows=function(f,a){if(this.end.row>a)var i={row:a+1,column:0};else if(this.end.rowa)var t={row:a+1,column:0};else if(this.start.rows.row||t.row==s.row&&t.column>s.column},this.getRange=function(){var t=this.anchor,s=this.lead;return this.isEmpty()?a.fromPoints(s,s):this.isBackwards()?a.fromPoints(s,t):a.fromPoints(t,s)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var t=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(t,this.doc.getLine(t).length)},this.setRange=this.setSelectionRange=function(t,s){s?(this.setSelectionAnchor(t.end.row,t.end.column),this.selectTo(t.start.row,t.start.column)):(this.setSelectionAnchor(t.start.row,t.start.column),this.selectTo(t.end.row,t.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(t){var s=this.lead;this.$isEmpty&&this.setSelectionAnchor(s.row,s.column),t.call(this)},this.selectTo=function(t,s){this.$moveSelection(function(){this.moveCursorTo(t,s)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,s){this.clearSelection(),this.moveCursorTo(t,s)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(t,s){if(typeof s>"u"){var o=t||this.lead;t=o.row,s=o.column}return this.session.getWordRange(t,s)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),s=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(s)},this.getLineRange=function(t,s){var o=typeof t=="number"?t:this.lead.row,e,c=this.session.getFoldLine(o);return c?(o=c.start.row,e=c.end.row):e=o,s===!0?new a(o,0,e,this.session.getLine(e).length):new a(o,0,e+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,s,o){var e=t.column,c=t.column+s;return o<0&&(e=t.column-s,c=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(e,c).split(" ").length-1==s},this.moveCursorLeft=function(){var t=this.lead.getPosition(),s;if(s=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(s.start.row,s.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var o=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,o,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-o):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),s;if(s=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(s.end.row,s.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(s.column=e)}}this.moveCursorTo(s.row,s.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,s=this.doc.getLine(t).length;this.moveCursorTo(t,s)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,s=this.lead.column,o=this.doc.getLine(t),e=o.substring(s);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var c=this.session.getFoldAt(t,s,1);if(c){this.moveCursorTo(c.end.row,c.end.column);return}if(this.session.nonTokenRe.exec(e)&&(s+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,e=o.substring(s)),s>=o.length){this.moveCursorTo(t,o.length),this.moveCursorRight(),t0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(c)&&(s-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,s)},this.$shortWordEndIndex=function(t){var s=0,o,e=/\s/,c=this.session.tokenRe;if(c.lastIndex=0,this.session.tokenRe.exec(t))s=this.session.tokenRe.lastIndex;else{for(;(o=t[s])&&e.test(o);)s++;if(s<1){for(c.lastIndex=0;(o=t[s])&&!c.test(o);)if(c.lastIndex=0,s++,e.test(o))if(s>2){s--;break}else{for(;(o=t[s])&&e.test(o);)s++;if(s>2)break}}}return c.lastIndex=0,s},this.moveCursorShortWordRight=function(){var t=this.lead.row,s=this.lead.column,o=this.doc.getLine(t),e=o.substring(s),c=this.session.getFoldAt(t,s,1);if(c)return this.moveCursorTo(c.end.row,c.end.column);if(s==o.length){var u=this.doc.getLength();do t++,e=this.doc.getLine(t);while(t0&&/^\s*$/.test(e));s=e.length,/\s+$/.test(e)||(e="")}var c=v.stringReverse(e),u=this.$shortWordEndIndex(c);return this.moveCursorTo(t,s-u)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,s){var o=this.session.documentToScreenPosition(this.lead.row,this.lead.column),e;s===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(o.row,this.lead.row)?(e=this.session.$bidiHandler.getPosLeft(o.column),o.column=Math.round(e/this.session.$bidiHandler.charWidths[0])):e=o.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?o.column=this.$desiredColumn:this.$desiredColumn=o.column);var c=this.session.screenToDocumentPosition(o.row+t,o.column,e);t!==0&&s===0&&c.row===this.lead.row&&c.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[c.row]&&(c.row>0||t>0)&&c.row++,this.moveCursorTo(c.row,c.column+s,s===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,s,o){var e=this.session.getFoldAt(t,s,1);e&&(t=e.start.row,s=e.start.column),this.$keepDesiredColumnOnChange=!0;var c=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(c.charAt(s))&&c.charAt(s-1)&&(this.lead.row==t&&this.lead.column==s+1?s=s-1:s=s+1),this.lead.setPosition(t,s),this.$keepDesiredColumnOnChange=!1,o||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,s,o){var e=this.session.screenToDocumentPosition(t,s);this.moveCursorTo(e.row,e.column,o)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var s=this.getRange();return t?(t.start.column=s.start.column,t.start.row=s.start.row,t.end.column=s.end.column,t.end.row=s.end.row):t=s,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var s=this.getCursor();try{t(this);var o=this.getCursor();return a.fromPoints(s,o)}catch{return a.fromPoints(s,s)}finally{this.moveCursorToPosition(s)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(s){var o=s.clone();return o.isBackwards=s.cursor==s.start,o});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList){this.toSingleRange(t[0]);for(var s=t.length;s--;){var o=a.fromPoints(t[s].start,t[s].end);t[s].isBackwards&&(o.cursor=o.start),this.addRange(o,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var s=this.ranges.length;s--;)if(!this.ranges[s].isEqual(t[s]))return!1;return!0}}).call(i.prototype),r.Selection=i});ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(l,r,g){var p=l("./config"),v=2e3,f=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var i in this.states){for(var t=this.states[i],s=[],o=0,e=this.matchMappings[i]={defaultToken:"text"},c="g",u=[],h=0;h1?b.onMatch=this.$applyToken:b.onMatch=b.token),k>1&&(/\\\d/.test(b.regex)?m=b.regex.replace(/\\([0-9]+)/g,function(d,w){return"\\"+(parseInt(w,10)+o+1)}):(k=1,m=this.removeCapturingGroups(b.regex)),!b.splitRegex&&typeof b.token!="string"&&u.push(b)),e[o]=h,o+=k,s.push(m),b.onMatch||(b.onMatch=null)}}s.length||(e[0]=0,s.push("$")),u.forEach(function(d){d.splitRegex=this.createSplitterRegexp(d.regex,c)},this),this.regExps[i]=new RegExp("("+s.join(")|(")+")|($)",c)}};(function(){this.$setMaxTokenCount=function(a){v=a|0},this.$applyToken=function(a){var i=this.splitRegex.exec(a).slice(1),t=this.token.apply(this,i);if(typeof t=="string")return[{type:t,value:a}];for(var s=[],o=0,e=t.length;ob){var x=a.substring(b,_-y.length);k.type==d?k.value+=x:(k.type&&h.push(k),k={type:d,value:x})}for(var E=0;Ev){for(m>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:i,line:a});b1&&t[0]!==s&&t.unshift("#tmp",s),{tokens:h,state:t.length?t:s}},this.reportError=p.reportError}).call(f.prototype),r.Tokenizer=f});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(l,r,g){var p=l("../lib/lang"),v=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(i,t){if(!t){for(var s in i)this.$rules[s]=i[s];return}for(var s in i){for(var o=i[s],e=0;e=this.$rowTokens.length;){if(this.$row+=1,f||(f=this.$session.getLength()),this.$row>=f)return this.$row=f-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var f=this.$rowTokens,a=this.$tokenIndex,i=f[a].start;if(i!==void 0)return i;for(i=0;a>0;)a-=1,i+=f[a].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var f=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new p(this.$row,a,this.$row,a+f.value.length)}}).call(v.prototype),r.TokenIterator=v});ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(l,r,g){var p=l("../../lib/oop"),v=l("../behaviour").Behaviour,f=l("../../token_iterator").TokenIterator,a=l("../../lib/lang"),i=["text","paren.rparen","punctuation.operator"],t=["text","paren.rparen","punctuation.operator","comment"],s,o={},e={'"':'"',"'":"'"},c=function(b){var m=-1;if(b.multiSelect&&(m=b.selection.index,o.rangeCount!=b.multiSelect.rangeCount&&(o={rangeCount:b.multiSelect.rangeCount})),o[m])return s=o[m];s=o[m]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},u=function(b,m,k,d){var w=b.end.row-b.start.row;return{text:k+m+d,selection:[0,b.start.column+1,w,b.end.column+(w?0:1)]}},h=function(b){this.add("braces","insertion",function(m,k,d,w,y){var _=d.getCursorPosition(),x=w.doc.getLine(_.row);if(y=="{"){c(d);var E=d.getSelectionRange(),S=w.doc.getTextRange(E);if(S!==""&&S!=="{"&&d.getWrapBehavioursEnabled())return u(E,S,"{","}");if(h.isSaneInsertion(d,w))return/[\]\}\)]/.test(x[_.column])||d.inMultiSelectMode||b&&b.braces?(h.recordAutoInsert(d,w,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(d,w,"{"),{text:"{",selection:[1,1]})}else if(y=="}"){c(d);var C=x.substring(_.column,_.column+1);if(C=="}"){var T=w.$findOpeningBracket("}",{column:_.column+1,row:_.row});if(T!==null&&h.isAutoInsertedClosing(_,x,y))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(y==`
`||y==`\r
`){c(d);var R="";h.isMaybeInsertedClosing(_,x)&&(R=a.stringRepeat("}",s.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var C=x.substring(_.column,_.column+1);if(C==="}"){var W=w.findMatchingBracket({row:_.row,column:_.column+1},"}");if(!W)return null;var j=this.$getIndent(w.getLine(W.row))}else if(R)var j=this.$getIndent(x);else{h.clearMaybeInsertedClosing();return}var L=j+w.getTabString();return{text:`
`+L+`
-`+j+R,selection:[1,L.length,1,L.length]}}else h.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(p,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&_=="{"){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.end.column,y.end.column+1);if(E=="}")return y.end.column++,y;s.maybeInsertedBrackets--}}),this.add("parens","insertion",function(p,k,d,w,y){if(y=="("){c(d);var _=d.getSelectionRange(),x=w.doc.getTextRange(_);if(x!==""&&d.getWrapBehavioursEnabled())return u(_,x,"(",")");if(h.isSaneInsertion(d,w))return h.recordAutoInsert(d,w,")"),{text:"()",selection:[1,1]}}else if(y==")"){c(d);var E=d.getCursorPosition(),S=w.doc.getLine(E.row),C=S.substring(E.column,E.column+1);if(C==")"){var T=w.$findOpeningBracket(")",{column:E.column+1,row:E.row});if(T!==null&&h.isAutoInsertedClosing(E,S,y))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(p,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&_=="("){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.start.column+1,y.start.column+2);if(E==")")return y.end.column++,y}}),this.add("brackets","insertion",function(p,k,d,w,y){if(y=="["){c(d);var _=d.getSelectionRange(),x=w.doc.getTextRange(_);if(x!==""&&d.getWrapBehavioursEnabled())return u(_,x,"[","]");if(h.isSaneInsertion(d,w))return h.recordAutoInsert(d,w,"]"),{text:"[]",selection:[1,1]}}else if(y=="]"){c(d);var E=d.getCursorPosition(),S=w.doc.getLine(E.row),C=S.substring(E.column,E.column+1);if(C=="]"){var T=w.$findOpeningBracket("]",{column:E.column+1,row:E.row});if(T!==null&&h.isAutoInsertedClosing(E,S,y))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(p,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&_=="["){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.start.column+1,y.start.column+2);if(E=="]")return y.end.column++,y}}),this.add("string_dquotes","insertion",function(p,k,d,w,y){var _=w.$mode.$quotes||e;if(y.length==1&&_[y]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(y)!=-1)return;c(d);var x=y,E=d.getSelectionRange(),S=w.doc.getTextRange(E);if(S!==""&&(S.length!=1||!_[S])&&d.getWrapBehavioursEnabled())return u(E,S,x,x);if(!S){var C=d.getCursorPosition(),T=w.doc.getLine(C.row),R=T.substring(C.column-1,C.column),W=T.substring(C.column,C.column+1),j=w.getTokenAt(C.row,C.column),L=w.getTokenAt(C.row,C.column+1);if(R=="\\"&&j&&/escape/.test(j.type))return null;var Q=j&&/string|escape/.test(j.type),U=!L||/string|escape/.test(L.type),Z;if(W==x)Z=Q!==U,Z&&/string\.end/.test(L.type)&&(Z=!1);else{if(Q&&!U||Q&&U)return null;var se=w.$mode.tokenRe;se.lastIndex=0;var te=se.test(R);se.lastIndex=0;var $=se.test(R);if(te||$||W&&!/[\s;,.})\]\\]/.test(W))return null;Z=!0}return{text:Z?x+x:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(p,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&(_=='"'||_=="'")){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.start.column+1,y.start.column+2);if(E==_)return y.end.column++,y}})};h.isSaneInsertion=function(b,p){var k=b.getCursorPosition(),d=new f(p,k.row,k.column);if(!this.$matchTokenType(d.getCurrentToken()||"text",i)){var w=new f(p,k.row,k.column+1);if(!this.$matchTokenType(w.getCurrentToken()||"text",i))return!1}return d.stepForward(),d.getCurrentTokenRow()!==k.row||this.$matchTokenType(d.getCurrentToken()||"text",t)},h.$matchTokenType=function(b,p){return p.indexOf(b.type||b)>-1},h.recordAutoInsert=function(b,p,k){var d=b.getCursorPosition(),w=p.doc.getLine(d.row);this.isAutoInsertedClosing(d,w,s.autoInsertedLineEnd[0])||(s.autoInsertedBrackets=0),s.autoInsertedRow=d.row,s.autoInsertedLineEnd=k+w.substr(d.column),s.autoInsertedBrackets++},h.recordMaybeInsert=function(b,p,k){var d=b.getCursorPosition(),w=p.doc.getLine(d.row);this.isMaybeInsertedClosing(d,w)||(s.maybeInsertedBrackets=0),s.maybeInsertedRow=d.row,s.maybeInsertedLineStart=w.substr(0,d.column)+k,s.maybeInsertedLineEnd=w.substr(d.column),s.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(b,p,k){return s.autoInsertedBrackets>0&&b.row===s.autoInsertedRow&&k===s.autoInsertedLineEnd[0]&&p.substr(b.column)===s.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(b,p){return s.maybeInsertedBrackets>0&&b.row===s.maybeInsertedRow&&p.substr(b.column)===s.maybeInsertedLineEnd&&p.substr(0,b.column)==s.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){s.autoInsertedLineEnd=s.autoInsertedLineEnd.substr(1),s.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){s&&(s.maybeInsertedBrackets=0,s.maybeInsertedRow=-1)},g.inherits(h,v),r.CstyleBehaviour=h});ace.define("ace/unicode",["require","exports","module"],function(l,r,m){r.packages={},g({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function g(v){var f=/\w{4}/g;for(var a in v)r.packages[a]=v[a].replace(f,"\\u$&")}});ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(l,r,m){var g=l("../tokenizer").Tokenizer,v=l("./text_highlight_rules").TextHighlightRules,f=l("./behaviour/cstyle").CstyleBehaviour,a=l("../unicode"),i=l("../lib/lang"),t=l("../token_iterator").TokenIterator,s=l("../range").Range,o=function(){this.HighlightRules=v};(function(){this.$defaultBehaviour=new f,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new g(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,c,u,h){var b=c.doc,p=!0,k=!0,d=1/0,w=c.getTabSize(),y=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var E=this.lineCommentStart.map(i.escapeRegExp).join("|"),_=this.lineCommentStart[0];else var E=i.escapeRegExp(this.lineCommentStart),_=this.lineCommentStart;E=new RegExp("^(\\s*)(?:"+E+") ?"),y=c.getUseSoftTabs();var T=function(te,$){var P=te.match(E);if(P){var A=P[1].length,O=P[0].length;!j(te,A,O)&&P[0][O-1]==" "&&O--,b.removeInLine($,A,O)}},W=_+" ",C=function(te,$){(!p||/\S/.test(te))&&(j(te,d,d)?b.insertInLine({row:$,column:d},W):b.insertInLine({row:$,column:d},_))},R=function(te,$){return E.test(te)},j=function(te,$,P){for(var A=0;$--&&te.charAt($)==" ";)A++;if(A%w!=0)return!1;for(var A=0;te.charAt(P++)==" ";)A++;return w>2?A%w!=w-1:A%w==0}}else{if(!this.blockComment)return!1;var _=this.blockComment.start,x=this.blockComment.end,E=new RegExp("^(\\s*)(?:"+i.escapeRegExp(_)+")"),S=new RegExp("(?:"+i.escapeRegExp(x)+")\\s*$"),C=function(U,Z){R(U,Z)||(!p||/\S/.test(U))&&(b.insertInLine({row:Z,column:U.length},x),b.insertInLine({row:Z,column:d},_))},T=function(U,Z){var se;(se=U.match(S))&&b.removeInLine(Z,U.length-se[0].length,U.length),(se=U.match(E))&&b.removeInLine(Z,se[1].length,se[0].length)},R=function(U,Z){if(E.test(U))return!0;for(var se=c.getTokens(Z),te=0;teU.length&&(Q=U.length)}),d==1/0&&(d=Q,p=!1,k=!1),y&&d%w!=0&&(d=Math.floor(d/w)*w),L(k?T:C)},this.toggleBlockComment=function(e,c,u,h){var b=this.blockComment;if(b){!b.start&&b[0]&&(b=b[0]);var p=new t(c,h.row,h.column),k=p.getCurrentToken();c.selection;var d=c.selection.toOrientedRange(),w,y;if(k&&/comment/.test(k.type)){for(var _,x;k&&/comment/.test(k.type);){var E=k.value.indexOf(b.start);if(E!=-1){var S=p.getCurrentTokenRow(),C=p.getCurrentTokenColumn()+E;_=new s(S,C,S,C+b.start.length);break}k=p.stepBackward()}for(var p=new t(c,h.row,h.column),k=p.getCurrentToken();k&&/comment/.test(k.type);){var E=k.value.indexOf(b.end);if(E!=-1){var S=p.getCurrentTokenRow(),C=p.getCurrentTokenColumn()+E;x=new s(S,C,S,C+b.end.length);break}k=p.stepForward()}x&&c.remove(x),_&&(c.remove(_),w=_.start.row,y=-b.start.length)}else y=b.start.length,w=u.start.row,c.insert(u.end,b.end),c.insert(u.start,b.start);d.start.row==w&&(d.start.column+=y),d.end.row==w&&(d.end.column+=y),c.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,c,u){return this.$getIndent(c)},this.checkOutdent=function(e,c,u){return!1},this.autoOutdent=function(e,c,u){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var c in e)e[c]&&(this.$embeds.push(c),this.$modes[c]=new e[c]);for(var u=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],c=0;c"u"?this.setPosition(i.row,i.column):this.setPosition(i,t)};(function(){g.implement(this,v),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var s=i(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(s.row,s.column,!0)}};function a(t,s,o){var e=o?t.column<=s.column:t.column=this.document.getLength()?(o.row=Math.max(0,this.document.getLength()-1),o.column=this.document.getLine(o.row).length):t<0?(o.row=0,o.column=0):(o.row=t,o.column=Math.min(this.document.getLine(o.row).length,Math.max(0,s))),s<0&&(o.column=0),o}}).call(f.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(l,r,m){var g=l("./lib/oop"),v=l("./apply_delta").applyDelta,f=l("./lib/event_emitter").EventEmitter,a=l("./range").Range,i=l("./anchor").Anchor,t=function(s){this.$lines=[""],s.length===0?this.$lines=[""]:Array.isArray(s)?this.insertMergedLines({row:0,column:0},s):this.insert({row:0,column:0},s)};(function(){g.implement(this,f),this.setValue=function(s){var o=this.getLength()-1;this.remove(new a(0,0,o,this.getLine(o).length)),this.insert({row:0,column:0},s)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(s,o){return new i(this,s,o)},"aaa".split(/a/).length===0?this.$split=function(s){return s.replace(/\r\n|\r/g,`
+`+j+R,selection:[1,L.length,1,L.length]}}else h.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(m,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&_=="{"){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.end.column,y.end.column+1);if(E=="}")return y.end.column++,y;s.maybeInsertedBrackets--}}),this.add("parens","insertion",function(m,k,d,w,y){if(y=="("){c(d);var _=d.getSelectionRange(),x=w.doc.getTextRange(_);if(x!==""&&d.getWrapBehavioursEnabled())return u(_,x,"(",")");if(h.isSaneInsertion(d,w))return h.recordAutoInsert(d,w,")"),{text:"()",selection:[1,1]}}else if(y==")"){c(d);var E=d.getCursorPosition(),S=w.doc.getLine(E.row),C=S.substring(E.column,E.column+1);if(C==")"){var T=w.$findOpeningBracket(")",{column:E.column+1,row:E.row});if(T!==null&&h.isAutoInsertedClosing(E,S,y))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(m,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&_=="("){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.start.column+1,y.start.column+2);if(E==")")return y.end.column++,y}}),this.add("brackets","insertion",function(m,k,d,w,y){if(y=="["){c(d);var _=d.getSelectionRange(),x=w.doc.getTextRange(_);if(x!==""&&d.getWrapBehavioursEnabled())return u(_,x,"[","]");if(h.isSaneInsertion(d,w))return h.recordAutoInsert(d,w,"]"),{text:"[]",selection:[1,1]}}else if(y=="]"){c(d);var E=d.getCursorPosition(),S=w.doc.getLine(E.row),C=S.substring(E.column,E.column+1);if(C=="]"){var T=w.$findOpeningBracket("]",{column:E.column+1,row:E.row});if(T!==null&&h.isAutoInsertedClosing(E,S,y))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(m,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&_=="["){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.start.column+1,y.start.column+2);if(E=="]")return y.end.column++,y}}),this.add("string_dquotes","insertion",function(m,k,d,w,y){var _=w.$mode.$quotes||e;if(y.length==1&&_[y]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(y)!=-1)return;c(d);var x=y,E=d.getSelectionRange(),S=w.doc.getTextRange(E);if(S!==""&&(S.length!=1||!_[S])&&d.getWrapBehavioursEnabled())return u(E,S,x,x);if(!S){var C=d.getCursorPosition(),T=w.doc.getLine(C.row),R=T.substring(C.column-1,C.column),W=T.substring(C.column,C.column+1),j=w.getTokenAt(C.row,C.column),L=w.getTokenAt(C.row,C.column+1);if(R=="\\"&&j&&/escape/.test(j.type))return null;var Q=j&&/string|escape/.test(j.type),U=!L||/string|escape/.test(L.type),Z;if(W==x)Z=Q!==U,Z&&/string\.end/.test(L.type)&&(Z=!1);else{if(Q&&!U||Q&&U)return null;var se=w.$mode.tokenRe;se.lastIndex=0;var te=se.test(R);se.lastIndex=0;var $=se.test(R);if(te||$||W&&!/[\s;,.})\]\\]/.test(W))return null;Z=!0}return{text:Z?x+x:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(m,k,d,w,y){var _=w.doc.getTextRange(y);if(!y.isMultiLine()&&(_=='"'||_=="'")){c(d);var x=w.doc.getLine(y.start.row),E=x.substring(y.start.column+1,y.start.column+2);if(E==_)return y.end.column++,y}})};h.isSaneInsertion=function(b,m){var k=b.getCursorPosition(),d=new f(m,k.row,k.column);if(!this.$matchTokenType(d.getCurrentToken()||"text",i)){var w=new f(m,k.row,k.column+1);if(!this.$matchTokenType(w.getCurrentToken()||"text",i))return!1}return d.stepForward(),d.getCurrentTokenRow()!==k.row||this.$matchTokenType(d.getCurrentToken()||"text",t)},h.$matchTokenType=function(b,m){return m.indexOf(b.type||b)>-1},h.recordAutoInsert=function(b,m,k){var d=b.getCursorPosition(),w=m.doc.getLine(d.row);this.isAutoInsertedClosing(d,w,s.autoInsertedLineEnd[0])||(s.autoInsertedBrackets=0),s.autoInsertedRow=d.row,s.autoInsertedLineEnd=k+w.substr(d.column),s.autoInsertedBrackets++},h.recordMaybeInsert=function(b,m,k){var d=b.getCursorPosition(),w=m.doc.getLine(d.row);this.isMaybeInsertedClosing(d,w)||(s.maybeInsertedBrackets=0),s.maybeInsertedRow=d.row,s.maybeInsertedLineStart=w.substr(0,d.column)+k,s.maybeInsertedLineEnd=w.substr(d.column),s.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(b,m,k){return s.autoInsertedBrackets>0&&b.row===s.autoInsertedRow&&k===s.autoInsertedLineEnd[0]&&m.substr(b.column)===s.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(b,m){return s.maybeInsertedBrackets>0&&b.row===s.maybeInsertedRow&&m.substr(b.column)===s.maybeInsertedLineEnd&&m.substr(0,b.column)==s.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){s.autoInsertedLineEnd=s.autoInsertedLineEnd.substr(1),s.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){s&&(s.maybeInsertedBrackets=0,s.maybeInsertedRow=-1)},p.inherits(h,v),r.CstyleBehaviour=h});ace.define("ace/unicode",["require","exports","module"],function(l,r,g){r.packages={},p({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function p(v){var f=/\w{4}/g;for(var a in v)r.packages[a]=v[a].replace(f,"\\u$&")}});ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(l,r,g){var p=l("../tokenizer").Tokenizer,v=l("./text_highlight_rules").TextHighlightRules,f=l("./behaviour/cstyle").CstyleBehaviour,a=l("../unicode"),i=l("../lib/lang"),t=l("../token_iterator").TokenIterator,s=l("../range").Range,o=function(){this.HighlightRules=v};(function(){this.$defaultBehaviour=new f,this.tokenRe=new RegExp("^["+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.packages.L+a.packages.Mn+a.packages.Mc+a.packages.Nd+a.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new p(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,c,u,h){var b=c.doc,m=!0,k=!0,d=1/0,w=c.getTabSize(),y=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var E=this.lineCommentStart.map(i.escapeRegExp).join("|"),_=this.lineCommentStart[0];else var E=i.escapeRegExp(this.lineCommentStart),_=this.lineCommentStart;E=new RegExp("^(\\s*)(?:"+E+") ?"),y=c.getUseSoftTabs();var T=function(te,$){var P=te.match(E);if(P){var A=P[1].length,O=P[0].length;!j(te,A,O)&&P[0][O-1]==" "&&O--,b.removeInLine($,A,O)}},W=_+" ",C=function(te,$){(!m||/\S/.test(te))&&(j(te,d,d)?b.insertInLine({row:$,column:d},W):b.insertInLine({row:$,column:d},_))},R=function(te,$){return E.test(te)},j=function(te,$,P){for(var A=0;$--&&te.charAt($)==" ";)A++;if(A%w!=0)return!1;for(var A=0;te.charAt(P++)==" ";)A++;return w>2?A%w!=w-1:A%w==0}}else{if(!this.blockComment)return!1;var _=this.blockComment.start,x=this.blockComment.end,E=new RegExp("^(\\s*)(?:"+i.escapeRegExp(_)+")"),S=new RegExp("(?:"+i.escapeRegExp(x)+")\\s*$"),C=function(U,Z){R(U,Z)||(!m||/\S/.test(U))&&(b.insertInLine({row:Z,column:U.length},x),b.insertInLine({row:Z,column:d},_))},T=function(U,Z){var se;(se=U.match(S))&&b.removeInLine(Z,U.length-se[0].length,U.length),(se=U.match(E))&&b.removeInLine(Z,se[1].length,se[0].length)},R=function(U,Z){if(E.test(U))return!0;for(var se=c.getTokens(Z),te=0;teU.length&&(Q=U.length)}),d==1/0&&(d=Q,m=!1,k=!1),y&&d%w!=0&&(d=Math.floor(d/w)*w),L(k?T:C)},this.toggleBlockComment=function(e,c,u,h){var b=this.blockComment;if(b){!b.start&&b[0]&&(b=b[0]);var m=new t(c,h.row,h.column),k=m.getCurrentToken();c.selection;var d=c.selection.toOrientedRange(),w,y;if(k&&/comment/.test(k.type)){for(var _,x;k&&/comment/.test(k.type);){var E=k.value.indexOf(b.start);if(E!=-1){var S=m.getCurrentTokenRow(),C=m.getCurrentTokenColumn()+E;_=new s(S,C,S,C+b.start.length);break}k=m.stepBackward()}for(var m=new t(c,h.row,h.column),k=m.getCurrentToken();k&&/comment/.test(k.type);){var E=k.value.indexOf(b.end);if(E!=-1){var S=m.getCurrentTokenRow(),C=m.getCurrentTokenColumn()+E;x=new s(S,C,S,C+b.end.length);break}k=m.stepForward()}x&&c.remove(x),_&&(c.remove(_),w=_.start.row,y=-b.start.length)}else y=b.start.length,w=u.start.row,c.insert(u.end,b.end),c.insert(u.start,b.start);d.start.row==w&&(d.start.column+=y),d.end.row==w&&(d.end.column+=y),c.selection.fromOrientedRange(d)}},this.getNextLineIndent=function(e,c,u){return this.$getIndent(c)},this.checkOutdent=function(e,c,u){return!1},this.autoOutdent=function(e,c,u){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var c in e)e[c]&&(this.$embeds.push(c),this.$modes[c]=new e[c]);for(var u=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],c=0;c"u"?this.setPosition(i.row,i.column):this.setPosition(i,t)};(function(){p.implement(this,v),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var s=i(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(s.row,s.column,!0)}};function a(t,s,o){var e=o?t.column<=s.column:t.column=this.document.getLength()?(o.row=Math.max(0,this.document.getLength()-1),o.column=this.document.getLine(o.row).length):t<0?(o.row=0,o.column=0):(o.row=t,o.column=Math.min(this.document.getLine(o.row).length,Math.max(0,s))),s<0&&(o.column=0),o}}).call(f.prototype)});ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(l,r,g){var p=l("./lib/oop"),v=l("./apply_delta").applyDelta,f=l("./lib/event_emitter").EventEmitter,a=l("./range").Range,i=l("./anchor").Anchor,t=function(s){this.$lines=[""],s.length===0?this.$lines=[""]:Array.isArray(s)?this.insertMergedLines({row:0,column:0},s):this.insert({row:0,column:0},s)};(function(){p.implement(this,f),this.setValue=function(s){var o=this.getLength()-1;this.remove(new a(0,0,o,this.getLine(o).length)),this.insert({row:0,column:0},s)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(s,o){return new i(this,s,o)},"aaa".split(/a/).length===0?this.$split=function(s){return s.replace(/\r\n|\r/g,`
`).split(`
`)}:this.$split=function(s){return s.split(/\r\n|\r|\n/)},this.$detectNewLine=function(s){var o=s.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=o?o[1]:`
`,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r
@@ -30,33 +30,33 @@ var Ar=Object.defineProperty;var Er=(l,r,m)=>r in l?Ar(l,r,{enumerable:!0,config
`;default:return this.$autoNewLine||`
`}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(s){this.$newLineMode!==s&&(this.$newLineMode=s,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(s){return s==`\r
`||s=="\r"||s==`
-`},this.getLine=function(s){return this.$lines[s]||""},this.getLines=function(s,o){return this.$lines.slice(s,o+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(s){return this.getLinesForRange(s).join(this.getNewLineCharacter())},this.getLinesForRange=function(s){var o;if(s.start.row===s.end.row)o=[this.getLine(s.start.row).substring(s.start.column,s.end.column)];else{o=this.getLines(s.start.row,s.end.row),o[0]=(o[0]||"").substring(s.start.column);var e=o.length-1;s.end.row-s.start.row==e&&(o[e]=o[e].substring(0,s.end.column))}return o},this.insertLines=function(s,o){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(s,o)},this.removeLines=function(s,o){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(s,o)},this.insertNewLine=function(s){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(s,["",""])},this.insert=function(s,o){return this.getLength()<=1&&this.$detectNewLine(o),this.insertMergedLines(s,this.$split(o))},this.insertInLine=function(s,o){var e=this.clippedPos(s.row,s.column),c=this.pos(s.row,s.column+o.length);return this.applyDelta({start:e,end:c,action:"insert",lines:[o]},!0),this.clonePos(c)},this.clippedPos=function(s,o){var e=this.getLength();s===void 0?s=e:s<0?s=0:s>=e&&(s=e-1,o=void 0);var c=this.getLine(s);return o==null&&(o=c.length),o=Math.min(Math.max(o,0),c.length),{row:s,column:o}},this.clonePos=function(s){return{row:s.row,column:s.column}},this.pos=function(s,o){return{row:s,column:o}},this.$clipPosition=function(s){var o=this.getLength();return s.row>=o?(s.row=Math.max(0,o-1),s.column=this.getLine(o-1).length):(s.row=Math.max(0,s.row),s.column=Math.min(Math.max(s.column,0),this.getLine(s.row).length)),s},this.insertFullLines=function(s,o){s=Math.min(Math.max(s,0),this.getLength());var e=0;s0,c=o=0&&this.applyDelta({start:this.pos(s,this.getLine(s).length),end:this.pos(s+1,0),action:"remove",lines:["",""]})},this.replace=function(s,o){if(s instanceof a||(s=a.fromPoints(s.start,s.end)),o.length===0&&s.isEmpty())return s.start;if(o==this.getTextRange(s))return s.end;this.remove(s);var e;return o?e=this.insert(s.start,o):e=s.start,e},this.applyDeltas=function(s){for(var o=0;o=0;o--)this.revertDelta(s[o])},this.applyDelta=function(s,o){var e=s.action=="insert";(e?s.lines.length<=1&&!s.lines[0]:!a.comparePoints(s.start,s.end))||(e&&s.lines.length>2e4&&this.$splitAndapplyLargeDelta(s,2e4),v(this.$lines,s,o),this._signal("change",s))},this.$splitAndapplyLargeDelta=function(s,o){var e=s.lines,c=e.length,u=s.start.row,h=s.start.column,b=0,p=0;do{b=p,p+=o-1;var k=e.slice(b,p);if(p>c){s.lines=k,s.start.row=u+b,s.start.column=h;break}k.push(""),this.applyDelta({start:this.pos(u+b,h),end:this.pos(u+p,h=0),action:s.action,lines:k},!0)}while(!0)},this.revertDelta=function(s){this.applyDelta({start:this.clonePos(s.start),end:this.clonePos(s.end),action:s.action=="insert"?"remove":"insert",lines:s.lines.slice()})},this.indexToPosition=function(s,o){for(var e=this.$lines||this.getAllLines(),c=this.getNewLineCharacter().length,u=o||0,h=e.length;u20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=o,e==-1&&(e=o),u<=e&&t.fireUpdateEvent(u,e)}}};(function(){g.implement(this,v),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,i){var t={first:a,last:i};this._signal("update",{data:t})},this.start=function(a){this.currentLine=Math.min(a||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)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(a){var i=a.start.row,t=a.end.row-i;if(t===0)this.lines[i]=null;else if(a.action=="remove")this.lines.splice(i,t+1,null),this.states.splice(i,t+1,null);else{var s=Array(t+1);s.unshift(i,1),this.lines.splice.apply(this.lines,s),this.states.splice.apply(this.states,s)}this.currentLine=Math.min(i,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var i=this.doc.getLine(a),t=this.states[a-1],s=this.tokenizer.getLineTokens(i,t,a);return this.states[a]+""!=s.state+""?(this.states[a]=s.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=s.tokens}}).call(f.prototype),r.BackgroundTokenizer=f});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(l,r,m){var g=l("./lib/lang");l("./lib/oop");var v=l("./range").Range,f=function(a,i,t){this.setRegexp(a),this.clazz=i,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,i,t,s){if(this.regExp)for(var o=s.firstRow,e=s.lastRow,c=o;c<=e;c++){var u=this.cache[c];u==null&&(u=g.getMatchOffsets(t.getLine(c),this.regExp),u.length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map(function(b){return new v(c,b.offset,c,b.offset+b.length)}),this.cache[c]=u.length?u:"");for(var h=u.length;h--;)i.drawSingleLineMarker(a,u[h].toScreenRange(t),this.clazz,s)}}}).call(f.prototype),r.SearchHighlight=f});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(l,r,m){var g=l("../range").Range;function v(f,a){this.foldData=f,Array.isArray(a)?this.folds=a:a=this.folds=[a];var i=a[a.length-1];this.range=new g(a[0].start.row,a[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(f){this.start.row+=f,this.end.row+=f,this.folds.forEach(function(a){a.start.row+=f,a.end.row+=f})},this.addFold=function(f){if(f.sameRow){if(f.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(f),this.folds.sort(function(a,i){return-a.range.compareEnd(i.start.row,i.start.column)}),this.range.compareEnd(f.start.row,f.start.column)>0?(this.end.row=f.end.row,this.end.column=f.end.column):this.range.compareStart(f.end.row,f.end.column)<0&&(this.start.row=f.start.row,this.start.column=f.start.column)}else if(f.start.row==this.end.row)this.folds.push(f),this.end.row=f.end.row,this.end.column=f.end.column;else if(f.end.row==this.start.row)this.folds.unshift(f),this.start.row=f.start.row,this.start.column=f.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");f.foldLine=this},this.containsRow=function(f){return f>=this.start.row&&f<=this.end.row},this.walk=function(f,a,i){var t=0,s=this.folds,o,e,c,u=!0;a==null&&(a=this.end.row,i=this.end.column);for(var h=0;h0)){var u=v(a,e.start);return c===0?i&&u!==0?-o-2:o:u>0||u===0&&!i?o:-o-1}}return-o-1},this.add=function(a){var i=!a.isEmpty(),t=this.pointIndex(a.start,i);t<0&&(t=-t-1);var s=this.pointIndex(a.end,i,t);return s<0?s=-s-1:s++,this.ranges.splice(t,s-t,a)},this.addList=function(a){for(var i=[],t=a.length;t--;)i.push.apply(i,this.add(a[t]));return i},this.substractPoint=function(a){var i=this.pointIndex(a);if(i>=0)return this.ranges.splice(i,1)},this.merge=function(){var a=[],i=this.ranges;i=i.sort(function(c,u){return v(c.start,u.start)});for(var t=i[0],s,o=1;o=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var i=this.pointIndex(a);if(i>=0)return this.ranges[i]},this.clipRows=function(a,i){var t=this.ranges;if(t[0].start.row>i||t[t.length-1].start.rows)break;if(p.start.row==s&&p.start.column>=i.column&&(p.start.column==i.column&&this.$insertRight||(p.start.column+=c,p.start.row+=e)),p.end.row==s&&p.end.column>=i.column){if(p.end.column==i.column&&this.$insertRight)continue;p.end.column==i.column&&c>0&&hp.start.column&&p.end.column==u[h+1].start.column&&(p.end.column-=c),p.end.column+=c,p.end.row+=e}}}if(e!=0&&h=t)return c;if(c.end.row>t)return null}return null},this.getNextFoldLine=function(t,s){var o=this.$foldData,e=0;for(s&&(e=o.indexOf(s)),e==-1&&(e=0),e;e=t)return c}return null},this.getFoldedRowCount=function(t,s){for(var o=this.$foldData,e=s-t+1,c=0;c=s){b=t?e-=s-b:e=0);break}else h>=t&&(b>=t?e-=h-b:e-=h-t+1)}return e},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(s,o){return s.start.row-o.start.row}),t},this.addFold=function(t,s){var o=this.$foldData,e=!1,c;t instanceof f?c=t:(c=new f(s,t),c.collapseChildren=s.collapseChildren),this.$clipRangeToDocument(c.range);var u=c.start.row,h=c.start.column,b=c.end.row,p=c.end.column;if(!(u0&&(this.removeFolds(w),w.forEach(function(E){c.addSubFold(E)}));for(var y=0;y0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(s){this.expandFold(s)},this)},this.unfold=function(t,s){var o,e;if(t==null?(o=new g(0,0,this.getLength(),0),s=!0):typeof t=="number"?o=new g(t,0,t,this.getLine(t).length):"row"in t?o=g.fromPoints(t,t):o=t,e=this.getFoldsInRangeList(o),s)this.removeFolds(e);else for(var c=e;c.length;)this.expandFolds(c),c=this.getFoldsInRangeList(o);if(e.length)return e},this.isRowFolded=function(t,s){return!!this.getFoldLine(t,s)},this.getRowFoldEnd=function(t,s){var o=this.getFoldLine(t,s);return o?o.end.row:t},this.getRowFoldStart=function(t,s){var o=this.getFoldLine(t,s);return o?o.start.row:t},this.getFoldDisplayLine=function(t,s,o,e,c){e==null&&(e=t.start.row),c==null&&(c=0),s==null&&(s=t.end.row),o==null&&(o=this.getLine(s).length);var u=this.doc,h="";return t.walk(function(b,p,k,d){if(!(pp)break;while(c&&h.test(c.type));c=e.stepBackward()}else c=e.getCurrentToken();return b.end.row=e.getCurrentTokenRow(),b.end.column=e.getCurrentTokenColumn()+c.value.length-2,b}},this.foldAll=function(t,s,o){o==null&&(o=1e5);var e=this.foldWidgets;if(e){s=s||this.getLength(),t=t||0;for(var c=t;c=t){c=u.end.row;try{var h=this.addFold("...",u);h&&(h.collapseChildren=o)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var s=this.$foldMode;this.$setFolding(null),this.$setFolding(s)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,s){var o=this.foldWidgets;if(!o||s&&o[t])return{};for(var e=t-1,c;e>=0;){var u=o[e];if(u==null&&(u=o[e]=this.getFoldWidget(e)),u=="start"){var h=this.getFoldWidgetRange(e);if(c||(c=h),h&&h.end.row>=t)break}e--}return{range:e!==-1&&h,firstRange:c}},this.onFoldWidgetClick=function(t,s){s=s.domEvent;var o={children:s.shiftKey,all:s.ctrlKey||s.metaKey,siblings:s.altKey},e=this.$toggleFoldWidget(t,o);if(!e){var c=s.target||s.srcElement;c&&/ace_fold-widget/.test(c.className)&&(c.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,s){if(this.getFoldWidget){var o=this.getFoldWidget(t),e=this.getLine(t),c=o==="end"?-1:1,u=this.getFoldAt(t,c===-1?0:e.length,c);if(u)return s.children||s.all?this.removeFold(u):this.expandFold(u),u;var h=this.getFoldWidgetRange(t,!0);if(h&&!h.isMultiLine()&&(u=this.getFoldAt(h.start.row,h.start.column,1),u&&h.isEqual(u.range)))return this.removeFold(u),u;if(s.siblings){var b=this.getParentFoldRangeData(t);if(b.range)var p=b.range.start.row+1,k=b.range.end.row;this.foldAll(p,k,s.all?1e4:0)}else s.children?(k=h?h.end.row:this.getLength(),this.foldAll(t+1,k,s.all?1e4:0)):h&&(s.all&&(h.collapseChildren=1e4),this.addFold("...",h));return h}},this.toggleFoldWidget=function(t){var s=this.selection.getCursor().row;s=this.getRowFoldStart(s);var o=this.$toggleFoldWidget(s,{});if(!o){var e=this.getParentFoldRangeData(s,!0);if(o=e.range||e.firstRange,o){s=o.start.row;var c=this.getFoldAt(s,this.getLine(s).length,1);c?this.removeFold(c):this.addFold("...",o)}}},this.updateFoldWidgets=function(t){var s=t.start.row,o=t.end.row-s;if(o===0)this.foldWidgets[s]=null;else if(t.action=="remove")this.foldWidgets.splice(s,o+1,null);else{var e=Array(o+1);e.unshift(s,1),this.foldWidgets.splice.apply(this.foldWidgets,e)}},this.tokenizerUpdateFoldWidgets=function(t){var s=t.data;s.first!=s.last&&this.foldWidgets.length>s.first&&this.foldWidgets.splice(s.first,this.foldWidgets.length)}}r.Folding=i});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(l,r,m){var g=l("../token_iterator").TokenIterator,v=l("../range").Range;function f(){this.findMatchingBracket=function(a,i){if(a.column==0)return null;var t=i||this.getLine(a.row).charAt(a.column-1);if(t=="")return null;var s=t.match(/([\(\[\{])|([\)\]\}])/);return s?s[1]?this.$findClosingBracket(s[1],a):this.$findOpeningBracket(s[2],a):null},this.getBracketRange=function(a){var i=this.getLine(a.row),t=!0,s,o=i.charAt(a.column-1),e=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(e||(o=i.charAt(a.column),a={row:a.row,column:a.column+1},e=o&&o.match(/([\(\[\{])|([\)\]\}])/),t=!1),!e)return null;if(e[1]){var c=this.$findClosingBracket(e[1],a);if(!c)return null;s=v.fromPoints(a,c),t||(s.end.column++,s.start.column--),s.cursor=s.end}else{var c=this.$findOpeningBracket(e[2],a);if(!c)return null;s=v.fromPoints(c,a),t||(s.start.column++,s.end.column--),s.cursor=s.start}return s},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,i,t){var s=this.$brackets[a],o=1,e=new g(this,i.row,i.column),c=e.getCurrentToken();if(c||(c=e.stepForward()),!!c){t||(t=new RegExp("(\\.?"+c.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var u=i.column-e.getCurrentTokenColumn()-2,h=c.value;;){for(;u>=0;){var b=h.charAt(u);if(b==s){if(o-=1,o==0)return{row:e.getCurrentTokenRow(),column:u+e.getCurrentTokenColumn()}}else b==a&&(o+=1);u-=1}do c=e.stepBackward();while(c&&!t.test(c.type));if(c==null)break;h=c.value,u=h.length-1}return null}},this.$findClosingBracket=function(a,i,t){var s=this.$brackets[a],o=1,e=new g(this,i.row,i.column),c=e.getCurrentToken();if(c||(c=e.stepForward()),!!c){t||(t=new RegExp("(\\.?"+c.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var u=i.column-e.getCurrentTokenColumn();;){for(var h=c.value,b=h.length;uT&&(this.$docRowCache.splice(T,C),this.$screenRowCache.splice(T,C))},this.$getRowCacheIndex=function(S,C){for(var T=0,R=S.length-1;T<=R;){var W=T+R>>1,j=S[W];if(C>j)T=W+1;else if(C=C));j++);return R=T[j],R?(R.index=j,R.start=W-R.value.length,R):null},this.setUndoManager=function(S){if(this.$undoManager=S,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),S){var C=this;this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.$deltasFold.length&&(C.$deltas.push({group:"fold",deltas:C.$deltasFold}),C.$deltasFold=[]),C.$deltasDoc.length&&(C.$deltas.push({group:"doc",deltas:C.$deltasDoc}),C.$deltasDoc=[]),C.$deltas.length>0&&S.execute({action:"aceupdate",args:[C.$deltas,C],merge:C.mergeUndoDeltas}),C.mergeUndoDeltas=!1,C.$deltas=[]},this.$informUndoManager=v.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?v.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(S){this.setOption("useSoftTabs",S)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(S){this.setOption("tabSize",S)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(S){return this.$useSoftTabs&&S.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(S){this.setOption("navigateWithinSoftTabs",S)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(S){this.setOption("overwrite",S)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(S,C){this.$decorations[S]||(this.$decorations[S]=""),this.$decorations[S]+=" "+C,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(S,C){this.$decorations[S]=(this.$decorations[S]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(S){this.$breakpoints=[];for(var C=0;C0&&(R=!!T.charAt(C-1).match(this.tokenRe)),R||(R=!!T.charAt(C).match(this.tokenRe)),R)var W=this.tokenRe;else if(/^\s+$/.test(T.slice(C-1,C+1)))var W=/\s/;else var W=this.nonTokenRe;var j=C;if(j>0){do j--;while(j>=0&&T.charAt(j).match(W));j++}for(var L=C;LS&&(S=C.screenWidth)}),this.lineWidgetWidth=S},this.$computeWidth=function(S){if(this.$modified||S){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),T=this.$rowLengthCache,R=0,W=0,j=this.$foldData[W],L=j?j.start.row:1/0,Q=C.length,U=0;UL){if(U=j.end.row+1,U>=Q)break;j=this.$foldData[W++],L=j?j.start.row:1/0}T[U]==null&&(T[U]=this.$getStringScreenWidth(C[U])[0]),T[U]>R&&(R=T[U])}this.screenWidth=R}},this.getLine=function(S){return this.doc.getLine(S)},this.getLines=function(S,C){return this.doc.getLines(S,C)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(S){return this.doc.getTextRange(S||this.selection.getRange())},this.insert=function(S,C){return this.doc.insert(S,C)},this.remove=function(S){return this.doc.remove(S)},this.removeFullLines=function(S,C){return this.doc.removeFullLines(S,C)},this.undoChanges=function(S,C){if(S.length){this.$fromUndo=!0;for(var T=null,R=S.length-1;R!=-1;R--){var W=S[R];W.group=="doc"?(this.doc.revertDeltas(W.deltas),T=this.$getUndoSelection(W.deltas,!0,T)):W.deltas.forEach(function(j){this.addFolds(j.folds)},this)}return this.$fromUndo=!1,T&&this.$undoSelect&&!C&&this.selection.setSelectionRange(T),T}},this.redoChanges=function(S,C){if(S.length){this.$fromUndo=!0;for(var T=null,R=0;RS.end.column&&(j.start.column+=Q),j.end.row==S.end.row&&j.end.column>S.end.column&&(j.end.column+=Q)),L&&j.start.row>=S.end.row&&(j.start.row+=L,j.end.row+=L)}if(j.end=this.insert(j.start,R),W.length){var U=S.start,Z=j.start,L=Z.row-U.row,Q=Z.column-U.column;this.addFolds(W.map(function($){return $=$.clone(),$.start.row==U.row&&($.start.column+=Q),$.end.row==U.row&&($.end.column+=Q),$.start.row+=L,$.end.row+=L,$}))}return j},this.indentRows=function(S,C,T){T=T.replace(/\t/g,this.getTabString());for(var R=S;R<=C;R++)this.doc.insertInLine({row:R,column:0},T)},this.outdentRows=function(S){for(var C=S.collapseRows(),T=new o(0,0,0,0),R=this.getTabSize(),W=C.start.row;W<=C.end.row;++W){var j=this.getLine(W);T.start.row=W,T.end.row=W;for(var L=0;L0){var R=this.getRowFoldEnd(C+T);if(R>this.doc.getLength()-1)return 0;var W=R-C}else{S=this.$clipRowToDocument(S),C=this.$clipRowToDocument(C);var W=C-S+1}var j=new o(S,0,C,Number.MAX_VALUE),L=this.getFoldsInRange(j).map(function(U){return U=U.clone(),U.start.row+=W,U.end.row+=W,U}),Q=T==0?this.doc.getLines(S,C):this.doc.removeFullLines(S,C);return this.doc.insertFullLines(S+W,Q),L.length&&this.addFolds(L),W},this.moveLinesUp=function(S,C){return this.$moveLines(S,C,-1)},this.moveLinesDown=function(S,C){return this.$moveLines(S,C,1)},this.duplicateLines=function(S,C){return this.$moveLines(S,C,0)},this.$clipRowToDocument=function(S){return Math.max(0,Math.min(S,this.doc.getLength()-1))},this.$clipColumnToRow=function(S,C){return C<0?0:Math.min(this.doc.getLine(S).length,C)},this.$clipPositionToDocument=function(S,C){if(C=Math.max(0,C),S<0)S=0,C=0;else{var T=this.doc.getLength();S>=T?(S=T-1,C=this.doc.getLine(T-1).length):C=Math.min(this.doc.getLine(S).length,C)}return{row:S,column:C}},this.$clipRangeToDocument=function(S){S.start.row<0?(S.start.row=0,S.start.column=0):S.start.column=this.$clipColumnToRow(S.start.row,S.start.column);var C=this.doc.getLength()-1;return S.end.row>C?(S.end.row=C,S.end.column=this.doc.getLine(C).length):S.end.column=this.$clipColumnToRow(S.end.row,S.end.column),S},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(S){if(S!=this.$useWrapMode){if(this.$useWrapMode=S,this.$modified=!0,this.$resetRowCache(0),S){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(S,C){(this.$wrapLimitRange.min!==S||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:S,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(S,C){var T=this.$wrapLimitRange;T.max<0&&(T={min:C,max:C});var R=this.$constrainWrapLimit(S,T.min,T.max);return R!=this.$wrapLimit&&R>1?(this.$wrapLimit=R,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(S,C,T){return C&&(S=Math.max(C,S)),T&&(S=Math.min(T,S)),S},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(S){this.setWrapLimitRange(S,S)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(S){var C=this.$useWrapMode,T=S.action,R=S.start,W=S.end,j=R.row,L=W.row,Q=L-j,U=null;if(this.$updating=!0,Q!=0)if(T==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(j,Q);var Z=this.$foldData;U=this.getFoldsInRange(S),this.removeFolds(U);var se=this.getFoldLine(W.row),te=0;if(se){se.addRemoveChars(W.row,W.column,R.column-W.column),se.shiftRow(-Q);var $=this.getFoldLine(j);$&&$!==se&&($.merge(se),se=$),te=Z.indexOf(se)+1}for(te;te=W.row&&se.shiftRow(-Q)}L=j}else{var P=Array(Q);P.unshift(j,0);var A=C?this.$wrapData:this.$rowLengthCache;A.splice.apply(A,P);var Z=this.$foldData,se=this.getFoldLine(j),te=0;if(se){var O=se.range.compareInside(R.row,R.column);O==0?(se=se.split(R.row,R.column),se&&(se.shiftRow(Q),se.addRemoveChars(L,0,W.column-R.column))):O==-1&&(se.addRemoveChars(j,0,W.column-R.column),se.shiftRow(Q)),te=Z.indexOf(se)+1}for(te;te=j&&se.shiftRow(Q)}}else{Q=Math.abs(S.start.column-S.end.column),T==="remove"&&(U=this.getFoldsInRange(S),this.removeFolds(U),Q=-Q);var se=this.getFoldLine(j);se&&se.addRemoveChars(j,R.column,Q)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(j,L):this.$updateRowLengthCache(j,L),U},this.$updateRowLengthCache=function(S,C,T){this.$rowLengthCache[S]=null,this.$rowLengthCache[C]=null},this.$updateWrapData=function(S,C){var T=this.doc.getAllLines(),R=this.getTabSize(),W=this.$wrapData,j=this.$wrapLimit,L,Q,U=S;for(C=Math.min(C,T.length-1);U<=C;)Q=this.getFoldLine(U,Q),Q?(L=[],Q.walk((function(Z,se,te,$){var P;if(Z!=null){P=this.$getDisplayTokens(Z,L.length),P[0]=k;for(var A=1;AC-$;){var P=j+C-$;if(S[P-1]>=y&&S[P]>=y){te(P);continue}if(S[P]==k||S[P]==d){for(P;P!=j-1&&S[P]!=k;P--);if(P>j){te(P);continue}for(P=j+C,P;P>2)),j-1);P>A&&S[P]A&&S[P]A&&S[P]==w;)P--}else for(;P>A&&S[P]A){te(++P);continue}P=j+C,S[P]==p&&P--,te(P-$)}return R},this.$getDisplayTokens=function(S,C){var T=[],R;C=C||0;for(var W=0;W39&&j<48||j>57&&j<64?T.push(w):j>=4352&&E(j)?T.push(b,p):T.push(b)}return T},this.$getStringScreenWidth=function(S,C,T){if(C==0)return[0,0];C==null&&(C=1/0),T=T||0;var R,W;for(W=0;W=4352&&E(R)?T+=2:T+=1,!(T>C));W++);return[T,W]},this.lineWidgets=null,this.getRowLength=function(S){if(this.lineWidgets)var C=this.lineWidgets[S]&&this.lineWidgets[S].rowCount||0;else C=0;return!this.$useWrapMode||!this.$wrapData[S]?1+C:this.$wrapData[S].length+1+C},this.getRowLineCount=function(S){return!this.$useWrapMode||!this.$wrapData[S]?1:this.$wrapData[S].length+1},this.getRowWrapIndent=function(S){if(this.$useWrapMode){var C=this.screenToDocumentPosition(S,Number.MAX_VALUE),T=this.$wrapData[C.row];return T.length&&T[0]=0)var Q=Z[se],W=this.$docRowCache[se],$=S>Z[te-1];else var $=!te;for(var P=this.getLength()-1,A=this.getNextFoldLine(W),O=A?A.start.row:1/0;Q<=S&&(U=this.getRowLength(W),!(Q+U>S||W>=P));)Q+=U,W++,W>O&&(W=A.end.row+1,A=this.getNextFoldLine(W,A),O=A?A.start.row:1/0),$&&(this.$docRowCache.push(W),this.$screenRowCache.push(Q));if(A&&A.start.row<=W)R=this.getFoldDisplayLine(A),W=A.start.row;else{if(Q+U<=S||W>P)return{row:P,column:this.getLine(P).length};R=this.getLine(W),A=null}var z=0,G=Math.floor(S-Q);if(this.$useWrapMode){var re=this.$wrapData[W];re&&(L=re[G],G>0&&re.length&&(z=re.indent,j=re[G-1]||re[re.length-1],R=R.substring(j)))}return T!==void 0&&this.$bidiHandler.isBidiRow(Q+G,W,G)&&(C=this.$bidiHandler.offsetToCol(T)),j+=this.$getStringScreenWidth(R,C-z)[1],this.$useWrapMode&&j>=L&&(j=L-1),A?A.idxToPosition(j):{row:W,column:j}},this.documentToScreenPosition=function(S,C){if(typeof C>"u")var T=this.$clipPositionToDocument(S.row,S.column);else T=this.$clipPositionToDocument(S,C);S=T.row,C=T.column;var R=0,W=null,j=null;j=this.getFoldAt(S,C,1),j&&(S=j.start.row,C=j.start.column);var L,Q=0,U=this.$docRowCache,Z=this.$getRowCacheIndex(U,S),se=U.length;if(se&&Z>=0)var Q=U[Z],R=this.$screenRowCache[Z],te=S>U[se-1];else var te=!se;for(var $=this.getNextFoldLine(Q),P=$?$.start.row:1/0;Q=P){if(L=$.end.row+1,L>S)break;$=this.getNextFoldLine(L,$),P=$?$.start.row:1/0}else L=Q+1;R+=this.getRowLength(Q),Q=L,te&&(this.$docRowCache.push(Q),this.$screenRowCache.push(R))}var A="";$&&Q>=P?(A=this.getFoldDisplayLine($,S,C),W=$.start.row):(A=this.getLine(S).substring(0,C),W=S);var O=0;if(this.$useWrapMode){var z=this.$wrapData[W];if(z){for(var G=0;A.length>=z[G];)R++,G++;A=A.substring(z[G-1]||0,A.length),O=G>0?z.indent:0}}return{row:R,column:O+this.$getStringScreenWidth(A)[0]}},this.documentToScreenColumn=function(S,C){return this.documentToScreenPosition(S,C).column},this.documentToScreenRow=function(S,C){return this.documentToScreenPosition(S,C).row},this.getScreenLength=function(){var S=0,C=null;if(this.$useWrapMode)for(var W=this.$wrapData.length,j=0,R=0,C=this.$foldData[R++],L=C?C.start.row:1/0;jL&&(j=C.end.row+1,C=this.$foldData[R++],L=C?C.start.row:1/0)}else{S=this.getLength();for(var T=this.$foldData,R=0;RT));j++);return[R,j]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=E;function E(S){return S<4352?!1:S>=4352&&S<=4447||S>=4515&&S<=4519||S>=4602&&S<=4607||S>=9001&&S<=9002||S>=11904&&S<=11929||S>=11931&&S<=12019||S>=12032&&S<=12245||S>=12272&&S<=12283||S>=12288&&S<=12350||S>=12353&&S<=12438||S>=12441&&S<=12543||S>=12549&&S<=12589||S>=12593&&S<=12686||S>=12688&&S<=12730||S>=12736&&S<=12771||S>=12784&&S<=12830||S>=12832&&S<=12871||S>=12880&&S<=13054||S>=13056&&S<=19903||S>=19968&&S<=42124||S>=42128&&S<=42182||S>=43360&&S<=43388||S>=44032&&S<=55203||S>=55216&&S<=55238||S>=55243&&S<=55291||S>=63744&&S<=64255||S>=65040&&S<=65049||S>=65072&&S<=65106||S>=65108&&S<=65126||S>=65128&&S<=65131||S>=65281&&S<=65376||S>=65504&&S<=65510}}).call(h.prototype),l("./edit_session/folding").Folding.call(h.prototype),l("./edit_session/bracket_match").BracketMatch.call(h.prototype),a.defineOptions(h.prototype,"session",{wrap:{set:function(b){if(!b||b=="off"?b=!1:b=="free"?b=!0:b=="printMargin"?b=-1:typeof b=="string"&&(b=parseInt(b,10)||!1),this.$wrap!=b)if(this.$wrap=b,!b)this.setUseWrapMode(!1);else{var p=typeof b=="number"?b:null;this.setWrapLimitRange(p,p),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(b){b=b=="auto"?this.$mode.type!="text":b!="text",b!=this.$wrapAsCode&&(this.$wrapAsCode=b,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(b){this.$useWorker=b,this.$stopWorker(),b&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(b){isNaN(b)||this.$tabSize===b||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=b,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},overwrite:{set:function(b){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(b){this.doc.setNewLineMode(b)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(b){this.setMode(b)},get:function(){return this.$modeId}}}),r.EditSession=h});ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(l,r,m){var g=l("./lib/lang"),v=l("./lib/oop"),f=l("./range").Range,a=function(){this.$options={}};(function(){this.set=function(t){return v.mixin(this.$options,t),this},this.getOptions=function(){return g.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var s=this.$options,o=this.$matchIterator(t,s);if(!o)return!1;var e=null;return o.forEach(function(c,u,h,b){return e=new f(c,u,h,b),u==b&&s.start&&s.start.start&&s.skipCurrent!=!1&&e.isEqual(s.start)?(e=null,!1):!0}),e},this.findAll=function(t){var s=this.$options;if(!s.needle)return[];this.$assembleRegExp(s);var o=s.range,e=o?t.getLines(o.start.row,o.end.row):t.doc.getAllLines(),c=[],u=s.re;if(s.$isMultiLine){var h=u.length,b=e.length-h,p;e:for(var k=u.offset||0;k<=b;k++){for(var d=0;d_||(c.push(p=new f(k,_,k+h-1,x)),h>2&&(k=k+h-2))}}else for(var E=0;ER&&c[d].end.row==o.end.row;)d--;for(c=c.slice(E,d+1),E=0,d=c.length;E=e&&(s=e-1,o=void 0);var c=this.getLine(s);return o==null&&(o=c.length),o=Math.min(Math.max(o,0),c.length),{row:s,column:o}},this.clonePos=function(s){return{row:s.row,column:s.column}},this.pos=function(s,o){return{row:s,column:o}},this.$clipPosition=function(s){var o=this.getLength();return s.row>=o?(s.row=Math.max(0,o-1),s.column=this.getLine(o-1).length):(s.row=Math.max(0,s.row),s.column=Math.min(Math.max(s.column,0),this.getLine(s.row).length)),s},this.insertFullLines=function(s,o){s=Math.min(Math.max(s,0),this.getLength());var e=0;s0,c=o=0&&this.applyDelta({start:this.pos(s,this.getLine(s).length),end:this.pos(s+1,0),action:"remove",lines:["",""]})},this.replace=function(s,o){if(s instanceof a||(s=a.fromPoints(s.start,s.end)),o.length===0&&s.isEmpty())return s.start;if(o==this.getTextRange(s))return s.end;this.remove(s);var e;return o?e=this.insert(s.start,o):e=s.start,e},this.applyDeltas=function(s){for(var o=0;o=0;o--)this.revertDelta(s[o])},this.applyDelta=function(s,o){var e=s.action=="insert";(e?s.lines.length<=1&&!s.lines[0]:!a.comparePoints(s.start,s.end))||(e&&s.lines.length>2e4&&this.$splitAndapplyLargeDelta(s,2e4),v(this.$lines,s,o),this._signal("change",s))},this.$splitAndapplyLargeDelta=function(s,o){var e=s.lines,c=e.length,u=s.start.row,h=s.start.column,b=0,m=0;do{b=m,m+=o-1;var k=e.slice(b,m);if(m>c){s.lines=k,s.start.row=u+b,s.start.column=h;break}k.push(""),this.applyDelta({start:this.pos(u+b,h),end:this.pos(u+m,h=0),action:s.action,lines:k},!0)}while(!0)},this.revertDelta=function(s){this.applyDelta({start:this.clonePos(s.start),end:this.clonePos(s.end),action:s.action=="insert"?"remove":"insert",lines:s.lines.slice()})},this.indexToPosition=function(s,o){for(var e=this.$lines||this.getAllLines(),c=this.getNewLineCharacter().length,u=o||0,h=e.length;u20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=o,e==-1&&(e=o),u<=e&&t.fireUpdateEvent(u,e)}}};(function(){p.implement(this,v),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,i){var t={first:a,last:i};this._signal("update",{data:t})},this.start=function(a){this.currentLine=Math.min(a||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)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(a){var i=a.start.row,t=a.end.row-i;if(t===0)this.lines[i]=null;else if(a.action=="remove")this.lines.splice(i,t+1,null),this.states.splice(i,t+1,null);else{var s=Array(t+1);s.unshift(i,1),this.lines.splice.apply(this.lines,s),this.states.splice.apply(this.states,s)}this.currentLine=Math.min(i,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var i=this.doc.getLine(a),t=this.states[a-1],s=this.tokenizer.getLineTokens(i,t,a);return this.states[a]+""!=s.state+""?(this.states[a]=s.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=s.tokens}}).call(f.prototype),r.BackgroundTokenizer=f});ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(l,r,g){var p=l("./lib/lang");l("./lib/oop");var v=l("./range").Range,f=function(a,i,t){this.setRegexp(a),this.clazz=i,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,i,t,s){if(this.regExp)for(var o=s.firstRow,e=s.lastRow,c=o;c<=e;c++){var u=this.cache[c];u==null&&(u=p.getMatchOffsets(t.getLine(c),this.regExp),u.length>this.MAX_RANGES&&(u=u.slice(0,this.MAX_RANGES)),u=u.map(function(b){return new v(c,b.offset,c,b.offset+b.length)}),this.cache[c]=u.length?u:"");for(var h=u.length;h--;)i.drawSingleLineMarker(a,u[h].toScreenRange(t),this.clazz,s)}}}).call(f.prototype),r.SearchHighlight=f});ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(l,r,g){var p=l("../range").Range;function v(f,a){this.foldData=f,Array.isArray(a)?this.folds=a:a=this.folds=[a];var i=a[a.length-1];this.range=new p(a[0].start.row,a[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(f){this.start.row+=f,this.end.row+=f,this.folds.forEach(function(a){a.start.row+=f,a.end.row+=f})},this.addFold=function(f){if(f.sameRow){if(f.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(f),this.folds.sort(function(a,i){return-a.range.compareEnd(i.start.row,i.start.column)}),this.range.compareEnd(f.start.row,f.start.column)>0?(this.end.row=f.end.row,this.end.column=f.end.column):this.range.compareStart(f.end.row,f.end.column)<0&&(this.start.row=f.start.row,this.start.column=f.start.column)}else if(f.start.row==this.end.row)this.folds.push(f),this.end.row=f.end.row,this.end.column=f.end.column;else if(f.end.row==this.start.row)this.folds.unshift(f),this.start.row=f.start.row,this.start.column=f.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");f.foldLine=this},this.containsRow=function(f){return f>=this.start.row&&f<=this.end.row},this.walk=function(f,a,i){var t=0,s=this.folds,o,e,c,u=!0;a==null&&(a=this.end.row,i=this.end.column);for(var h=0;h0)){var u=v(a,e.start);return c===0?i&&u!==0?-o-2:o:u>0||u===0&&!i?o:-o-1}}return-o-1},this.add=function(a){var i=!a.isEmpty(),t=this.pointIndex(a.start,i);t<0&&(t=-t-1);var s=this.pointIndex(a.end,i,t);return s<0?s=-s-1:s++,this.ranges.splice(t,s-t,a)},this.addList=function(a){for(var i=[],t=a.length;t--;)i.push.apply(i,this.add(a[t]));return i},this.substractPoint=function(a){var i=this.pointIndex(a);if(i>=0)return this.ranges.splice(i,1)},this.merge=function(){var a=[],i=this.ranges;i=i.sort(function(c,u){return v(c.start,u.start)});for(var t=i[0],s,o=1;o=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var i=this.pointIndex(a);if(i>=0)return this.ranges[i]},this.clipRows=function(a,i){var t=this.ranges;if(t[0].start.row>i||t[t.length-1].start.rows)break;if(m.start.row==s&&m.start.column>=i.column&&(m.start.column==i.column&&this.$insertRight||(m.start.column+=c,m.start.row+=e)),m.end.row==s&&m.end.column>=i.column){if(m.end.column==i.column&&this.$insertRight)continue;m.end.column==i.column&&c>0&&hm.start.column&&m.end.column==u[h+1].start.column&&(m.end.column-=c),m.end.column+=c,m.end.row+=e}}}if(e!=0&&h=t)return c;if(c.end.row>t)return null}return null},this.getNextFoldLine=function(t,s){var o=this.$foldData,e=0;for(s&&(e=o.indexOf(s)),e==-1&&(e=0),e;e=t)return c}return null},this.getFoldedRowCount=function(t,s){for(var o=this.$foldData,e=s-t+1,c=0;c=s){b=t?e-=s-b:e=0);break}else h>=t&&(b>=t?e-=h-b:e-=h-t+1)}return e},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(s,o){return s.start.row-o.start.row}),t},this.addFold=function(t,s){var o=this.$foldData,e=!1,c;t instanceof f?c=t:(c=new f(s,t),c.collapseChildren=s.collapseChildren),this.$clipRangeToDocument(c.range);var u=c.start.row,h=c.start.column,b=c.end.row,m=c.end.column;if(!(u0&&(this.removeFolds(w),w.forEach(function(E){c.addSubFold(E)}));for(var y=0;y0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(s){this.expandFold(s)},this)},this.unfold=function(t,s){var o,e;if(t==null?(o=new p(0,0,this.getLength(),0),s=!0):typeof t=="number"?o=new p(t,0,t,this.getLine(t).length):"row"in t?o=p.fromPoints(t,t):o=t,e=this.getFoldsInRangeList(o),s)this.removeFolds(e);else for(var c=e;c.length;)this.expandFolds(c),c=this.getFoldsInRangeList(o);if(e.length)return e},this.isRowFolded=function(t,s){return!!this.getFoldLine(t,s)},this.getRowFoldEnd=function(t,s){var o=this.getFoldLine(t,s);return o?o.end.row:t},this.getRowFoldStart=function(t,s){var o=this.getFoldLine(t,s);return o?o.start.row:t},this.getFoldDisplayLine=function(t,s,o,e,c){e==null&&(e=t.start.row),c==null&&(c=0),s==null&&(s=t.end.row),o==null&&(o=this.getLine(s).length);var u=this.doc,h="";return t.walk(function(b,m,k,d){if(!(mm)break;while(c&&h.test(c.type));c=e.stepBackward()}else c=e.getCurrentToken();return b.end.row=e.getCurrentTokenRow(),b.end.column=e.getCurrentTokenColumn()+c.value.length-2,b}},this.foldAll=function(t,s,o){o==null&&(o=1e5);var e=this.foldWidgets;if(e){s=s||this.getLength(),t=t||0;for(var c=t;c=t){c=u.end.row;try{var h=this.addFold("...",u);h&&(h.collapseChildren=o)}catch{}}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var s=this.$foldMode;this.$setFolding(null),this.$setFolding(s)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,s){var o=this.foldWidgets;if(!o||s&&o[t])return{};for(var e=t-1,c;e>=0;){var u=o[e];if(u==null&&(u=o[e]=this.getFoldWidget(e)),u=="start"){var h=this.getFoldWidgetRange(e);if(c||(c=h),h&&h.end.row>=t)break}e--}return{range:e!==-1&&h,firstRange:c}},this.onFoldWidgetClick=function(t,s){s=s.domEvent;var o={children:s.shiftKey,all:s.ctrlKey||s.metaKey,siblings:s.altKey},e=this.$toggleFoldWidget(t,o);if(!e){var c=s.target||s.srcElement;c&&/ace_fold-widget/.test(c.className)&&(c.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,s){if(this.getFoldWidget){var o=this.getFoldWidget(t),e=this.getLine(t),c=o==="end"?-1:1,u=this.getFoldAt(t,c===-1?0:e.length,c);if(u)return s.children||s.all?this.removeFold(u):this.expandFold(u),u;var h=this.getFoldWidgetRange(t,!0);if(h&&!h.isMultiLine()&&(u=this.getFoldAt(h.start.row,h.start.column,1),u&&h.isEqual(u.range)))return this.removeFold(u),u;if(s.siblings){var b=this.getParentFoldRangeData(t);if(b.range)var m=b.range.start.row+1,k=b.range.end.row;this.foldAll(m,k,s.all?1e4:0)}else s.children?(k=h?h.end.row:this.getLength(),this.foldAll(t+1,k,s.all?1e4:0)):h&&(s.all&&(h.collapseChildren=1e4),this.addFold("...",h));return h}},this.toggleFoldWidget=function(t){var s=this.selection.getCursor().row;s=this.getRowFoldStart(s);var o=this.$toggleFoldWidget(s,{});if(!o){var e=this.getParentFoldRangeData(s,!0);if(o=e.range||e.firstRange,o){s=o.start.row;var c=this.getFoldAt(s,this.getLine(s).length,1);c?this.removeFold(c):this.addFold("...",o)}}},this.updateFoldWidgets=function(t){var s=t.start.row,o=t.end.row-s;if(o===0)this.foldWidgets[s]=null;else if(t.action=="remove")this.foldWidgets.splice(s,o+1,null);else{var e=Array(o+1);e.unshift(s,1),this.foldWidgets.splice.apply(this.foldWidgets,e)}},this.tokenizerUpdateFoldWidgets=function(t){var s=t.data;s.first!=s.last&&this.foldWidgets.length>s.first&&this.foldWidgets.splice(s.first,this.foldWidgets.length)}}r.Folding=i});ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(l,r,g){var p=l("../token_iterator").TokenIterator,v=l("../range").Range;function f(){this.findMatchingBracket=function(a,i){if(a.column==0)return null;var t=i||this.getLine(a.row).charAt(a.column-1);if(t=="")return null;var s=t.match(/([\(\[\{])|([\)\]\}])/);return s?s[1]?this.$findClosingBracket(s[1],a):this.$findOpeningBracket(s[2],a):null},this.getBracketRange=function(a){var i=this.getLine(a.row),t=!0,s,o=i.charAt(a.column-1),e=o&&o.match(/([\(\[\{])|([\)\]\}])/);if(e||(o=i.charAt(a.column),a={row:a.row,column:a.column+1},e=o&&o.match(/([\(\[\{])|([\)\]\}])/),t=!1),!e)return null;if(e[1]){var c=this.$findClosingBracket(e[1],a);if(!c)return null;s=v.fromPoints(a,c),t||(s.end.column++,s.start.column--),s.cursor=s.end}else{var c=this.$findOpeningBracket(e[2],a);if(!c)return null;s=v.fromPoints(c,a),t||(s.start.column++,s.end.column--),s.cursor=s.start}return s},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(a,i,t){var s=this.$brackets[a],o=1,e=new p(this,i.row,i.column),c=e.getCurrentToken();if(c||(c=e.stepForward()),!!c){t||(t=new RegExp("(\\.?"+c.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var u=i.column-e.getCurrentTokenColumn()-2,h=c.value;;){for(;u>=0;){var b=h.charAt(u);if(b==s){if(o-=1,o==0)return{row:e.getCurrentTokenRow(),column:u+e.getCurrentTokenColumn()}}else b==a&&(o+=1);u-=1}do c=e.stepBackward();while(c&&!t.test(c.type));if(c==null)break;h=c.value,u=h.length-1}return null}},this.$findClosingBracket=function(a,i,t){var s=this.$brackets[a],o=1,e=new p(this,i.row,i.column),c=e.getCurrentToken();if(c||(c=e.stepForward()),!!c){t||(t=new RegExp("(\\.?"+c.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var u=i.column-e.getCurrentTokenColumn();;){for(var h=c.value,b=h.length;uT&&(this.$docRowCache.splice(T,C),this.$screenRowCache.splice(T,C))},this.$getRowCacheIndex=function(S,C){for(var T=0,R=S.length-1;T<=R;){var W=T+R>>1,j=S[W];if(C>j)T=W+1;else if(C=C));j++);return R=T[j],R?(R.index=j,R.start=W-R.value.length,R):null},this.setUndoManager=function(S){if(this.$undoManager=S,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),S){var C=this;this.$syncInformUndoManager=function(){C.$informUndoManager.cancel(),C.$deltasFold.length&&(C.$deltas.push({group:"fold",deltas:C.$deltasFold}),C.$deltasFold=[]),C.$deltasDoc.length&&(C.$deltas.push({group:"doc",deltas:C.$deltasDoc}),C.$deltasDoc=[]),C.$deltas.length>0&&S.execute({action:"aceupdate",args:[C.$deltas,C],merge:C.mergeUndoDeltas}),C.mergeUndoDeltas=!1,C.$deltas=[]},this.$informUndoManager=v.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?v.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(S){this.setOption("useSoftTabs",S)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(S){this.setOption("tabSize",S)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(S){return this.$useSoftTabs&&S.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(S){this.setOption("navigateWithinSoftTabs",S)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(S){this.setOption("overwrite",S)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(S,C){this.$decorations[S]||(this.$decorations[S]=""),this.$decorations[S]+=" "+C,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(S,C){this.$decorations[S]=(this.$decorations[S]||"").replace(" "+C,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(S){this.$breakpoints=[];for(var C=0;C0&&(R=!!T.charAt(C-1).match(this.tokenRe)),R||(R=!!T.charAt(C).match(this.tokenRe)),R)var W=this.tokenRe;else if(/^\s+$/.test(T.slice(C-1,C+1)))var W=/\s/;else var W=this.nonTokenRe;var j=C;if(j>0){do j--;while(j>=0&&T.charAt(j).match(W));j++}for(var L=C;LS&&(S=C.screenWidth)}),this.lineWidgetWidth=S},this.$computeWidth=function(S){if(this.$modified||S){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var C=this.doc.getAllLines(),T=this.$rowLengthCache,R=0,W=0,j=this.$foldData[W],L=j?j.start.row:1/0,Q=C.length,U=0;UL){if(U=j.end.row+1,U>=Q)break;j=this.$foldData[W++],L=j?j.start.row:1/0}T[U]==null&&(T[U]=this.$getStringScreenWidth(C[U])[0]),T[U]>R&&(R=T[U])}this.screenWidth=R}},this.getLine=function(S){return this.doc.getLine(S)},this.getLines=function(S,C){return this.doc.getLines(S,C)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(S){return this.doc.getTextRange(S||this.selection.getRange())},this.insert=function(S,C){return this.doc.insert(S,C)},this.remove=function(S){return this.doc.remove(S)},this.removeFullLines=function(S,C){return this.doc.removeFullLines(S,C)},this.undoChanges=function(S,C){if(S.length){this.$fromUndo=!0;for(var T=null,R=S.length-1;R!=-1;R--){var W=S[R];W.group=="doc"?(this.doc.revertDeltas(W.deltas),T=this.$getUndoSelection(W.deltas,!0,T)):W.deltas.forEach(function(j){this.addFolds(j.folds)},this)}return this.$fromUndo=!1,T&&this.$undoSelect&&!C&&this.selection.setSelectionRange(T),T}},this.redoChanges=function(S,C){if(S.length){this.$fromUndo=!0;for(var T=null,R=0;RS.end.column&&(j.start.column+=Q),j.end.row==S.end.row&&j.end.column>S.end.column&&(j.end.column+=Q)),L&&j.start.row>=S.end.row&&(j.start.row+=L,j.end.row+=L)}if(j.end=this.insert(j.start,R),W.length){var U=S.start,Z=j.start,L=Z.row-U.row,Q=Z.column-U.column;this.addFolds(W.map(function($){return $=$.clone(),$.start.row==U.row&&($.start.column+=Q),$.end.row==U.row&&($.end.column+=Q),$.start.row+=L,$.end.row+=L,$}))}return j},this.indentRows=function(S,C,T){T=T.replace(/\t/g,this.getTabString());for(var R=S;R<=C;R++)this.doc.insertInLine({row:R,column:0},T)},this.outdentRows=function(S){for(var C=S.collapseRows(),T=new o(0,0,0,0),R=this.getTabSize(),W=C.start.row;W<=C.end.row;++W){var j=this.getLine(W);T.start.row=W,T.end.row=W;for(var L=0;L0){var R=this.getRowFoldEnd(C+T);if(R>this.doc.getLength()-1)return 0;var W=R-C}else{S=this.$clipRowToDocument(S),C=this.$clipRowToDocument(C);var W=C-S+1}var j=new o(S,0,C,Number.MAX_VALUE),L=this.getFoldsInRange(j).map(function(U){return U=U.clone(),U.start.row+=W,U.end.row+=W,U}),Q=T==0?this.doc.getLines(S,C):this.doc.removeFullLines(S,C);return this.doc.insertFullLines(S+W,Q),L.length&&this.addFolds(L),W},this.moveLinesUp=function(S,C){return this.$moveLines(S,C,-1)},this.moveLinesDown=function(S,C){return this.$moveLines(S,C,1)},this.duplicateLines=function(S,C){return this.$moveLines(S,C,0)},this.$clipRowToDocument=function(S){return Math.max(0,Math.min(S,this.doc.getLength()-1))},this.$clipColumnToRow=function(S,C){return C<0?0:Math.min(this.doc.getLine(S).length,C)},this.$clipPositionToDocument=function(S,C){if(C=Math.max(0,C),S<0)S=0,C=0;else{var T=this.doc.getLength();S>=T?(S=T-1,C=this.doc.getLine(T-1).length):C=Math.min(this.doc.getLine(S).length,C)}return{row:S,column:C}},this.$clipRangeToDocument=function(S){S.start.row<0?(S.start.row=0,S.start.column=0):S.start.column=this.$clipColumnToRow(S.start.row,S.start.column);var C=this.doc.getLength()-1;return S.end.row>C?(S.end.row=C,S.end.column=this.doc.getLine(C).length):S.end.column=this.$clipColumnToRow(S.end.row,S.end.column),S},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(S){if(S!=this.$useWrapMode){if(this.$useWrapMode=S,this.$modified=!0,this.$resetRowCache(0),S){var C=this.getLength();this.$wrapData=Array(C),this.$updateWrapData(0,C-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(S,C){(this.$wrapLimitRange.min!==S||this.$wrapLimitRange.max!==C)&&(this.$wrapLimitRange={min:S,max:C},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(S,C){var T=this.$wrapLimitRange;T.max<0&&(T={min:C,max:C});var R=this.$constrainWrapLimit(S,T.min,T.max);return R!=this.$wrapLimit&&R>1?(this.$wrapLimit=R,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(S,C,T){return C&&(S=Math.max(C,S)),T&&(S=Math.min(T,S)),S},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(S){this.setWrapLimitRange(S,S)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(S){var C=this.$useWrapMode,T=S.action,R=S.start,W=S.end,j=R.row,L=W.row,Q=L-j,U=null;if(this.$updating=!0,Q!=0)if(T==="remove"){this[C?"$wrapData":"$rowLengthCache"].splice(j,Q);var Z=this.$foldData;U=this.getFoldsInRange(S),this.removeFolds(U);var se=this.getFoldLine(W.row),te=0;if(se){se.addRemoveChars(W.row,W.column,R.column-W.column),se.shiftRow(-Q);var $=this.getFoldLine(j);$&&$!==se&&($.merge(se),se=$),te=Z.indexOf(se)+1}for(te;te=W.row&&se.shiftRow(-Q)}L=j}else{var P=Array(Q);P.unshift(j,0);var A=C?this.$wrapData:this.$rowLengthCache;A.splice.apply(A,P);var Z=this.$foldData,se=this.getFoldLine(j),te=0;if(se){var O=se.range.compareInside(R.row,R.column);O==0?(se=se.split(R.row,R.column),se&&(se.shiftRow(Q),se.addRemoveChars(L,0,W.column-R.column))):O==-1&&(se.addRemoveChars(j,0,W.column-R.column),se.shiftRow(Q)),te=Z.indexOf(se)+1}for(te;te=j&&se.shiftRow(Q)}}else{Q=Math.abs(S.start.column-S.end.column),T==="remove"&&(U=this.getFoldsInRange(S),this.removeFolds(U),Q=-Q);var se=this.getFoldLine(j);se&&se.addRemoveChars(j,R.column,Q)}return C&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,C?this.$updateWrapData(j,L):this.$updateRowLengthCache(j,L),U},this.$updateRowLengthCache=function(S,C,T){this.$rowLengthCache[S]=null,this.$rowLengthCache[C]=null},this.$updateWrapData=function(S,C){var T=this.doc.getAllLines(),R=this.getTabSize(),W=this.$wrapData,j=this.$wrapLimit,L,Q,U=S;for(C=Math.min(C,T.length-1);U<=C;)Q=this.getFoldLine(U,Q),Q?(L=[],Q.walk((function(Z,se,te,$){var P;if(Z!=null){P=this.$getDisplayTokens(Z,L.length),P[0]=k;for(var A=1;AC-$;){var P=j+C-$;if(S[P-1]>=y&&S[P]>=y){te(P);continue}if(S[P]==k||S[P]==d){for(P;P!=j-1&&S[P]!=k;P--);if(P>j){te(P);continue}for(P=j+C,P;P>2)),j-1);P>A&&S[P]A&&S[P]A&&S[P]==w;)P--}else for(;P>A&&S[P]A){te(++P);continue}P=j+C,S[P]==m&&P--,te(P-$)}return R},this.$getDisplayTokens=function(S,C){var T=[],R;C=C||0;for(var W=0;W39&&j<48||j>57&&j<64?T.push(w):j>=4352&&E(j)?T.push(b,m):T.push(b)}return T},this.$getStringScreenWidth=function(S,C,T){if(C==0)return[0,0];C==null&&(C=1/0),T=T||0;var R,W;for(W=0;W=4352&&E(R)?T+=2:T+=1,!(T>C));W++);return[T,W]},this.lineWidgets=null,this.getRowLength=function(S){if(this.lineWidgets)var C=this.lineWidgets[S]&&this.lineWidgets[S].rowCount||0;else C=0;return!this.$useWrapMode||!this.$wrapData[S]?1+C:this.$wrapData[S].length+1+C},this.getRowLineCount=function(S){return!this.$useWrapMode||!this.$wrapData[S]?1:this.$wrapData[S].length+1},this.getRowWrapIndent=function(S){if(this.$useWrapMode){var C=this.screenToDocumentPosition(S,Number.MAX_VALUE),T=this.$wrapData[C.row];return T.length&&T[0]