(function(){varh="ace";vard=(function(){returnthis})();if(!d&&typeofwindow!="undefined"){d=window}if(!h&&typeofrequirejs!=="undefined"){return}varg=function(i,k,j){if(typeofi!=="string"){if(g.original){g.original.apply(this,arguments)}else{console.error("dropping module because define wasn't a string.");console.trace()}return}if(arguments.length==2){j=k}if(!g.modules[i]){g.payloads[i]=j;g.modules[i]=null}};g.modules={};g.payloads={};vara=function(r,m,q){if(typeofm==="string"){varo=f(r,m);if(o!=undefined){q&&q();returno}}else{if(Object.prototype.toString.call(m)==="[object Array]"){varp=[];for(vark=0,j=m.length;k<j;++k){varn=f(r,m[k]);if(n==undefined&&c.original){return}p.push(n)}returnq&&q.apply(null,p)||true}}};varc=function(j,k){vari=a("",j,k);if(i==undefined&&c.original){returnc.original.apply(this,arguments)}returni};vare=function(m,i){if(i.indexOf("!")!==-1){varl=i.split("!");returne(m,l[0])+"!"+e(m,l[1])}if(i.charAt(0)=="."){vark=m.split("/").slice(0,-1).join("/");i=k+"/"+i;while(i.indexOf(".")!==-1&&j!=i){varj=i;i=i.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}returni};varf=function(o,j){j=e(o,j);varl=g.modules[j];if(!l){l=g.payloads[j];if(typeofl==="function"){vari={};vark={id:j,uri:"",exports:i,packaged:true};varn=function(p,q){returna(j,p,q)};varm=l(n,i,k);i=m||k.exports;g.modules[j]=i;deleteg.payloads[j]}l=g.modules[j]=i||l}returnl};functionb(j){vari=d;if(j){if(!d[j]){d[j]={}}i=d[j]}if(!i.define||!i.define.packaged){g.original=i.define;i.define=g;i.define.packaged=true}if(!i.require||!i.require.packaged){c.original=i.require;i.require=c;i.require.packaged=true}}b(h)})();ace.define("ace/lib/regexp",["require","exports","module"],function(b,a,c){varh={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},f=h.exec.call(/()??/,"")[1]===undefined,e=function(){vari=/^/g;h.test.call(i,"");return!i.lastIndex}();if(e&&f){return}RegExp.prototype.exec=function(n){varl=h.exec.apply(this,arguments),k,j;if(typeof(n)=="string"&&l){if(!f&&l.length>1&&d(l,"")>-1){j=RegExp(this.source,h.replace.call(g(this),"g",""));h.replace.call(n.slice(l.index),j,function(){for(varo=1;o<arguments.length-2;o++){if(arguments[o]===undefined){l[o]=undefined}}})}if(this._xregexp&&this._xregexp.captureNames){for(varm=1;m<l.length;m++){k=this._xregexp.captureNames[m-1];if(k){l[k]=l[m]}}}if(!e&&this.global&&!l[0].length&&(this.lastIndex>l.index)){this.lastIndex--}}returnl};if(!e){RegExp.prototype.test=function(j){vari=h.exec.call(this,j);if(i&&this.global&&!i[0].length&&(this.lastIndex>i.index)){this.lastIndex--}return!!i}}functiong(i){return(i.global?"g":"")+(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":"")}functiond(m,k,l){if(Array.prototype.indexOf){returnm.indexOf(k,l)}for(varj=l||0;j<m.length;j++){if(m[j]===k){returnj}}return-1}});ace.define("ace/lib/es5-shim",["require","exports","module"],function(g,ag,e){functionad(){}if(!Function.prototype.bind){Function.prototype.bind=functionh(ap){varaq=this;if(typeofaq!="function"){thrownewTypeError("Function.prototype.bind called on incompatible "+aq)}varan=t.call(arguments,1);varao=function(){if(thisinstanceofao){varar=aq.apply(this,an.concat(t.call(arguments)));if(Object(ar)===ar){returnar}returnthis}else{returnaq.apply(ap,an.concat(t.call(arguments)))}};if(aq.prototype){ad.prototype=aq.prototype;ao.prototype=newad();ad.prototype=null}returnao}}varc=Function.prototype.call;varK=Array.prototype;varA=Object.prototype;vart=K.slice;varL=c.bind(A.toString);varT=c.bind(A.hasOwnProperty);varae;varal;varac;varaj;varp;if((p=T(A,"__defineGetter__"))){ae=c.bind(A.__defineGetter__);al=c.bind(A.__defineSetter__);ac=c.bind(A.__lookupGetter__);aj=c.bind(A.__lookupSetter__)}if([1,2].splice(0).length!=2){if(function(){functionao(ar){varaq=newArray(ar+2);aq[0]=aq[1]=0;returnaq}varap=[],an;ap.splice.apply(ap,ao(20));ap.splice.apply(ap,ao(26));an=ap.length;ap.splice(5,0,"XXX");an+1==ap.length;if(an+1==ap.lengt
}}if(j.charAt(0)!="^"){j="^"+j}if(j.charAt(j.length-1)!="$"){j+="$"}returnnewRegExp(j,(h||"").replace("g",""))};this.getLineTokens=function(q,g){if(g&&typeofg!="string"){vark=g.slice(0);g=k[0];if(g==="#tmp"){k.shift();g=k.shift()}}else{vark=[]}vary=g||"start";varj=this.states[y];if(!j){y="start";j=this.states[y]}varp=this.matchMappings[y];vart=this.regExps[y];t.lastIndex=0;varo,r=[];varw=0;vars=0;varn={type:null,value:""};while(o=t.exec(q)){varh=p.defaultToken;varl=null;varu=o[0];varm=t.lastIndex;if(m-u.length>w){varx=q.substring(w,m-u.length);if(n.type==h){n.value+=x}else{if(n.type){r.push(n)}n={type:h,value:x}}}for(varv=0;v<o.length-2;v++){if(o[v+1]===undefined){continue}l=j[p[v]];if(l.onMatch){h=l.onMatch(u,y,k,q)}else{h=l.token}if(l.next){if(typeofl.next=="string"){y=l.next}else{y=l.next(y,k)}j=this.states[y];if(!j){this.reportError("state doesn't exist",y);y="start";j=this.states[y]}p=this.matchMappings[y];w=m;t=this.regExps[y];t.lastIndex=m}if(l.consumeLineEnd){w=m}break}if(u){if(typeofh==="string"){if((!l||l.merge!==false)&&n.type===h){n.value+=u}else{if(n.type){r.push(n)}n={type:h,value:u}}}else{if(h){if(n.type){r.push(n)}n={type:null,value:""};for(varv=0;v<h.length;v++){r.push(h[v])}}}}if(w==q.length){break}w=m;if(s++>f){if(s>2*q.length){this.reportError("infinite loop with in ace tokenizer",{startState:g,line:q})}while(w<q.length){if(n.type){r.push(n)}n={value:q.substring(w,w+=2000),type:"overflow"}}y="start";k=[];break}}if(n.type){r.push(n)}if(k.length>1){if(k[0]!==y){k.unshift("#tmp",y)}}return{tokens:r,state:k.length?k:y}};this.reportError=c.reportError}).call(b.prototype);a.Tokenizer=b});ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(c,b,d){vare=c("../lib/lang");vara=function(){this.$rules={"start":[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(n,l){if(!l){for(varjinn){this.$rules[j]=n[j]}return}for(varjinn){vark=n[j];for(varh=0;h<k.length;h++){varm=k[h];if(m.next||m.onMatch){if(typeofm.next=="string"){if(m.next.indexOf(l)!==0){m.next=l+m.next}}if(m.nextState&&m.nextState.indexOf(l)!==0){m.nextState=l+m.nextState}}}this.$rules[l+j]=k}};this.getRules=function(){returnthis.$rules};this.embedRules=function(l,n,o,q,j){varh=typeofl=="function"?newl().getRules():l;if(q){for(varm=0;m<q.length;m++){q[m]=n+q[m]}}else{q=[];for(varpinh){q.push(n+p)}}this.addRules(h,n);if(o){vark=Array.prototype[j?"push":"unshift"];for(varm=0;m<q.length;m++){k.apply(this.$rules[q[m]],e.deepCopy(o))}}if(!this.$embeds){this.$embeds=[]}this.$embeds.push(n)};this.getEmbeds=function(){returnthis.$embeds};varf=function(i,h){if(i!="start"||h.length){h.unshift(this.nextState,i)}returnthis.nextState};varg=function(i,h){h.shift();returnh.shift()||"start"};this.normalizeRules=function(){varj=0;vari=this.$rules;functionh(t){varm=i[t];m.processed=true;for(varn=0;n<m.length;n++){vars=m[n];varp=null;if(Array.isArray(s)){p=s;s={}}if(!s.regex&&s.start){s.regex=s.start;if(!s.next){s.next=[]}s.next.push({defaultToken:s.token},{token:s.token+".end",regex:s.end||s.start,next:"pop"});s.token=s.token+".start";s.push=true}varo=s.next||s.push;if(o&&Array.isArray(o)){varu=s.stateName;if(!u){u=s.token;if(typeofu!="string"){u=u[0]||""}if(i[u]){u+=j++}}i[u]=o;s.next=u;h(u)}else{if(o=="pop"){s.next=g}}if(s.push){s.nextState=s.next||s.push;s.next=f;deletes.push}if(s.rules){for(varlins.rules){if(i[l]){if(i[l].push){i[l].push.apply(i[l],s.rules[l])}}else{i[l]=s.rules[l]}}}vark=typeofs=="string"?s:s.include;if(k){if(Array.isArray(k)){p=k.map(function(r){returni[r]})}else{p=i[k]}}if(p){varq=[n,1].concat(p);if(s.noEscape){q=q.filter(function(r){return!r.next})}m.splice.apply(m,q);n--}if(s.keywordMap){s.token=this.createKeywordMapper(s.keywordMap,s.defaultToken||"text",s.caseInsensitive);deletes.defaultToken}}}Object.keys(i).forEach(h,this)};this.createKeywordMapper=function(j,l,h,k){vari=Object.create(null);Object.keys(j).forEach(function(o){varm=j[o];if(h){m=m.toLowerCase()}varp=m.split(k||"|");for(var
};this.getLength=function(){returnthis.$lines.length};this.getTextRange=function(j){returnthis.getLinesForRange(j).join(this.getNewLineCharacter())};this.getLinesForRange=function(m){vark;if(m.start.row===m.end.row){k=[this.getLine(m.start.row).substring(m.start.column,m.end.column)]}else{k=this.getLines(m.start.row,m.end.row);k[0]=(k[0]||"").substring(m.start.column);varj=k.length-1;if(m.end.row-m.start.row==j){k[j]=k[j].substring(0,m.end.column)}}returnk};this.insertLines=function(k,j){console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead.");returnthis.insertFullLines(k,j)};this.removeLines=function(k,j){console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead.");returnthis.removeFullLines(k,j)};this.insertNewLine=function(j){console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.");returnthis.insertMergedLines(j,["",""])};this.insert=function(j,k){if(this.getLength()<=1){this.$detectNewLine(k)}returnthis.insertMergedLines(j,this.$split(k))};this.insertInLine=function(j,l){varm=this.clippedPos(j.row,j.column);vark=this.pos(j.row,j.column+l.length);this.applyDelta({start:m,end:k,action:"insert",lines:[l]},true);returnthis.clonePos(k)};this.clippedPos=function(m,k){varl=this.getLength();if(m===undefined){m=l}else{if(m<0){m=0}else{if(m>=l){m=l-1;k=undefined}}}varj=this.getLine(m);if(k==undefined){k=j.length}k=Math.min(Math.max(k,0),j.length);return{row:m,column:k}};this.clonePos=function(j){return{row:j.row,column:j.column}};this.pos=function(k,j){return{row:k,column:j}};this.$clipPosition=function(j){vark=this.getLength();if(j.row>=k){j.row=Math.max(0,k-1);j.column=this.getLine(k-1).length}else{j.row=Math.max(0,j.row);j.column=Math.min(Math.max(j.column,0),this.getLine(j.row).length)}returnj};this.insertFullLines=function(l,j){l=Math.min(Math.max(l,0),this.getLength());vark=0;if(l<this.getLength()){j=j.concat([""]);k=0}else{j=[""].concat(j);l--;k=this.$lines[l].length}this.insertMergedLines({row:l,column:k},j)};this.insertMergedLines=function(j,l){varm=this.clippedPos(j.row,j.column);vark={row:m.row+l.length-1,column:(l.length==1?m.column:0)+l[l.length-1].length};this.applyDelta({start:m,end:k,action:"insert",lines:l});returnthis.clonePos(k)};this.remove=function(k){varl=this.clippedPos(k.start.row,k.start.column);varj=this.clippedPos(k.end.row,k.end.column);this.applyDelta({start:l,end:j,action:"remove",lines:this.getLinesForRange({start:l,end:j})});returnthis.clonePos(l)};this.removeInLine=function(l,k,n){varm=this.clippedPos(l,k);varj=this.clippedPos(l,n);this.applyDelta({start:m,end:j,action:"remove",lines:this.getLinesForRange({start:m,end:j})},true);returnthis.clonePos(m)};this.removeFullLines=function(l,s){l=Math.min(Math.max(0,l),this.getLength()-1);s=Math.min(Math.max(0,s),this.getLength()-1);varp=s==this.getLength()-1&&l>0;vark=s<this.getLength()-1;varr=(p?l-1:l);varj=(p?this.getLine(r).length:0);varm=(k?s+1:s);varq=(k?0:this.getLine(m).length);varo=newb(r,j,m,q);varn=this.$lines.slice(l,s+1);this.applyDelta({start:o.start,end:o.end,action:"remove",lines:this.getLinesForRange(o)});returnn};this.removeNewLine=function(j){if(j<this.getLength()-1&&j>=0){this.applyDelta({start:this.pos(j,this.getLine(j).length),end:this.pos(j+1,0),action:"remove",lines:["",""]})}};this.replace=function(k,l){if(!(kinstanceofb)){k=b.fromPoints(k.start,k.end)}if(l.length===0&&k.isEmpty()){returnk.start}if(l==this.getTextRange(k)){returnk.end}this.remove(k);varj;if(l){j=this.insert(k.start,l)}else{j=k.start}returnj};this.applyDeltas=function(k){for(varj=0;j<k.length;j++){this.applyDelta(k[j])}};this.revertDeltas=function(k){for(varj=k.length-1;j>=0;j--){this.revertDelta(k[j])}};this.applyDelta=function(l,j){vark=l.action=="insert";if(k?l.lines.length<=1&&!l.lines[0]:!b.comparePoints(l.start,l.end)){return}if(k&&l.lines.length>20000){this.$splitAndapplyLargeDelta(l,20000)}h(this.$lines,l,j);this._signal("change",l)};this.$splitAndapplyLargeDelta=function(q,j)