/*
 * Copyright (c) 2010, Ajax.org B.V.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *     * Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright
 *       notice, this list of conditions and the following disclaimer in the
 *       documentation and/or other materials provided with the distribution.
 *     * Neither the name of Ajax.org B.V. nor the
 *       names of its contributors may be used to endorse or promote products
 *       derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
(function(){var h="";var d=(function(){return this;})();if(!h&&typeof requirejs!=="undefined"){var g=d.define;d.define=function(k,i,j){if(typeof j!=="function"){return g.apply(this,arguments);
}return g(k,i,function(m,l,n){if(i[2]=="module"){n.packaged=true;}return j.apply(this,arguments);});};d.define.packaged=true;return;}var c=function(i,k,j){if(typeof i!=="string"){if(c.original){c.original.apply(window,arguments);
}else{console.error("dropping module because define wasn't a string.");console.trace();}return;}if(arguments.length==2){j=k;}if(!c.modules){c.modules={};
}c.modules[i]=j;};var a=function(r,m,q){if(Object.prototype.toString.call(m)==="[object Array]"){var p=[];for(var k=0,j=m.length;k<j;++k){var o=f(r,m[k]);
if(!o&&a.original){return a.original.apply(window,arguments);}p.push(o);}if(q){q.apply(null,p);}}else{if(typeof m==="string"){var n=f(r,m);if(!n&&a.original){return a.original.apply(window,arguments);
}if(q){q();}return n;}else{if(a.original){return a.original.apply(window,arguments);}}}};var e=function(m,i){if(i.indexOf("!")!==-1){var l=i.split("!");
return e(m,l[0])+"!"+e(m,l[1]);}if(i.charAt(0)=="."){var k=m.split("/").slice(0,-1).join("/");i=k+"/"+i;while(i.indexOf(".")!==-1&&j!=i){var j=i;i=i.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"");
}}return i;};var f=function(o,j){j=e(o,j);var l=c.modules[j];if(!l){return null;}if(typeof l==="function"){var i={};var k={id:j,uri:"",exports:i,packaged:true};
var n=function(p,q){return a(j,p,q);};var m=l(n,i,k);i=m||k.exports;c.modules[j]=i;return i;}return l;};function b(k){var j=function(l,m){return a("",l,m);
};var i=d;if(k){if(!d[k]){d[k]={};}i=d[k];}if(!i.define||!i.define.packaged){c.original=i.define;i.define=c;i.define.packaged=true;}if(!i.require||!i.require.packaged){a.original=i.require;
i.require=j;i.require.packaged=true;}}b(h);})();define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/multi_select","ace/worker/worker_client","ace/keyboard/hash_handler","ace/keyboard/state_handler","ace/placeholder","ace/config","ace/theme/textmate"],function(d,f,c){d("./lib/fixoldbrowsers");
var g=d("./lib/dom");var j=d("./lib/event");var h=d("./editor").Editor;var a=d("./edit_session").EditSession;var b=d("./undomanager").UndoManager;var e=d("./virtual_renderer").VirtualRenderer;
var i=d("./multi_select").MultiSelect;d("./worker/worker_client");d("./keyboard/hash_handler");d("./keyboard/state_handler");d("./placeholder");f.config=d("./config");
f.edit=function(n){if(typeof(n)=="string"){var k=n;if(!(n=document.getElementById(n))){console.log("can't match div #"+k);}}if(n.env&&n.env.editor instanceof h){return n.env.editor;
}var o=new a(g.getInnerText(n));o.setUndoManager(new b());n.innerHTML="";var m=new h(new e(n,d("./theme/textmate")));new i(m);m.setSession(o);var l={};
l.document=o;l.editor=m;m.resize();j.addListener(window,"resize",function(){m.resize();});n.env=l;m.env=l;return m;};});
/*!
    Copyright (c) 2009, 280 North Inc. http://280north.com/
    MIT License. http://github.com/280north/narwhal/blob/master/README.md
*/
define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(b,a,c){b("./regexp");
b("./es5-shim");});define("ace/lib/regexp",["require","exports","module"],function(b,a,c){var h={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(){var i=/^/g;
h.test.call(i,"");return !i.lastIndex;}();if(e&&f){return;}RegExp.prototype.exec=function(n){var l=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(var o=1;o<arguments.length-2;o++){if(arguments[o]===undefined){l[o]=undefined;}}});}if(this._xregexp&&this._xregexp.captureNames){for(var m=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--;}}return l;
};if(!e){RegExp.prototype.test=function(j){var i=h.exec.call(this,j);if(i&&this.global&&!i[0].length&&(this.lastIndex>i.index)){this.lastIndex--;}return !!i;
};}function g(i){return(i.global?"g":"")+(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":"");}function d(m,k,l){if(Array.prototype.indexOf){return m.indexOf(k,l);
}for(var j=l||0;j<m.length;j++){if(m[j]===k){return j;}}return -1;}});
/*!
    Copyright (c) 2009, 280 North Inc. http://280north.com/
    MIT License. http://github.com/280north/narwhal/blob/master/README.md
*/
define("ace/lib/es5-shim",["require","exports","module"],function(g,ad,e){if(!Function.prototype.bind){Function.prototype.bind=function i(al){var am=this;
if(typeof am!="function"){throw new TypeError();}var aj=u.call(arguments,1);var ak=function(){if(this instanceof ak){var ap=function(){};ap.prototype=am.prototype;
var ao=new ap;var an=am.apply(ao,aj.concat(u.call(arguments)));if(an!==null&&Object(an)===an){return an;}return ao;}else{return am.apply(al,aj.concat(u.call(arguments)));
}};return ak;};}var c=Function.prototype.call;var K=Array.prototype;var z=Object.prototype;var u=K.slice;var h=c.bind(z.toString);var T=c.bind(z.hasOwnProperty);
var ab;var ah;var aa;var af;var q;if((q=T(z,"__defineGetter__"))){ab=c.bind(z.__defineGetter__);ah=c.bind(z.__defineSetter__);aa=c.bind(z.__lookupGetter__);
af=c.bind(z.__lookupSetter__);}if(!Array.isArray){Array.isArray=function C(aj){return h(aj)=="[object Array]";};}if(!Array.prototype.forEach){Array.prototype.forEach=function d(aj){var ak=L(this),am=arguments[1],al=0,an=ak.length>>>0;
if(h(aj)!="[object Function]"){throw new TypeError();}while(al<an){if(al in ak){aj.call(am,ak[al],al,ak);}al++;}};}if(!Array.prototype.map){Array.prototype.map=function J(ak){var al=L(this),ao=al.length>>>0,aj=Array(ao),an=arguments[1];
if(h(ak)!="[object Function]"){throw new TypeError();}for(var am=0;am<ao;am++){if(am in al){aj[am]=ak.call(an,al[am],am,al);}}return aj;};}if(!Array.prototype.filter){Array.prototype.filter=function Q(ak){var al=L(this),ao=al.length>>>0,aj=[],an=arguments[1];
if(h(ak)!="[object Function]"){throw new TypeError();}for(var am=0;am<ao;am++){if(am in al&&ak.call(an,al[am],am,al)){aj.push(al[am]);}}return aj;};}if(!Array.prototype.every){Array.prototype.every=function O(aj){var ak=L(this),an=ak.length>>>0,am=arguments[1];
if(h(aj)!="[object Function]"){throw new TypeError();}for(var al=0;al<an;al++){if(al in ak&&!aj.call(am,ak[al],al,ak)){return false;}}return true;};}if(!Array.prototype.some){Array.prototype.some=function X(aj){var ak=L(this),an=ak.length>>>0,am=arguments[1];
if(h(aj)!="[object Function]"){throw new TypeError();}for(var al=0;al<an;al++){if(al in ak&&aj.call(am,ak[al],al,ak)){return true;}}return false;};}if(!Array.prototype.reduce){Array.prototype.reduce=function r(ak){var al=L(this),an=al.length>>>0;
if(h(ak)!="[object Function]"){throw new TypeError();}if(!an&&arguments.length==1){throw new TypeError();}var am=0;var aj;if(arguments.length>=2){aj=arguments[1];
}else{do{if(am in al){aj=al[am++];break;}if(++am>=an){throw new TypeError();}}while(true);}for(;am<an;am++){if(am in al){aj=ak.call(void 0,aj,al[am],am,al);
}}return aj;};}if(!Array.prototype.reduceRight){Array.prototype.reduceRight=function B(ak){var al=L(this),an=al.length>>>0;if(h(ak)!="[object Function]"){throw new TypeError();
}if(!an&&arguments.length==1){throw new TypeError();}var aj,am=an-1;if(arguments.length>=2){aj=arguments[1];}else{do{if(am in al){aj=al[am--];break;}if(--am<0){throw new TypeError();
}}while(true);}do{if(am in this){aj=ak.call(void 0,aj,al[am],am,al);}}while(am--);return aj;};}if(!Array.prototype.indexOf){Array.prototype.indexOf=function w(ak){var aj=L(this),am=aj.length>>>0;
if(!am){return -1;}var al=0;if(arguments.length>1){al=U(arguments[1]);}al=al>=0?al:Math.max(0,am+al);for(;al<am;al++){if(al in aj&&aj[al]===ak){return al;
}}return -1;};}if(!Array.prototype.lastIndexOf){Array.prototype.lastIndexOf=function S(ak){var aj=L(this),am=aj.length>>>0;if(!am){return -1;}var al=am-1;
if(arguments.length>1){al=Math.min(al,U(arguments[1]));}al=al>=0?al:am-Math.abs(al);for(;al>=0;al--){if(al in aj&&ak===aj[al]){return al;}}return -1;};
}if(!Object.getPrototypeOf){Object.getPrototypeOf=function ae(aj){return aj.__proto__||(aj.constructor?aj.constructor.prototype:z);};}if(!Object.getOwnPropertyDescriptor){var b="Object.getOwnPropertyDescriptor called on a non-object: ";
Object.getOwnPropertyDescriptor=function A(al,am){if((typeof al!="object"&&typeof al!="function")||al===null){throw new TypeError(b+al);}if(!T(al,am)){return;
}var an,aj,ao;an={enumerable:true,configurable:true};if(q){var ak=al.__proto__;al.__proto__=z;var aj=aa(al,am);var ao=af(al,am);al.__proto__=ak;if(aj||ao){if(aj){an.get=aj;
}if(ao){an.set=ao;}return an;}}an.value=al[am];return an;};}if(!Object.getOwnPropertyNames){Object.getOwnPropertyNames=function R(aj){return Object.keys(aj);
};}if(!Object.create){Object.create=function k(al,am){var ak;if(al===null){ak={__proto__:null};}else{if(typeof al!="object"){throw new TypeError("typeof prototype["+(typeof al)+"] != 'object'");
}var aj=function(){};aj.prototype=al;ak=new aj();ak.__proto__=al;}if(am!==void 0){Object.defineProperties(ak,am);}return ak;};}function E(aj){try{Object.defineProperty(aj,"sentinel",{});
return"sentinel" in aj;}catch(ak){}}if(Object.defineProperty){var j=E({});var G=typeof document=="undefined"||E(document.createElement("div"));if(!j||!G){var D=Object.defineProperty;
}}if(!Object.defineProperty||D){var f="Property description must be an object: ";var V="Object.defineProperty called on non-object: ";var p="getters & setters can not be defined on this javascript engine";
Object.defineProperty=function Y(ak,am,an){if((typeof ak!="object"&&typeof ak!="function")||ak===null){throw new TypeError(V+ak);}if((typeof an!="object"&&typeof an!="function")||an===null){throw new TypeError(f+an);
}if(D){try{return D.call(Object,ak,am,an);}catch(al){}}if(T(an,"value")){if(q&&(aa(ak,am)||af(ak,am))){var aj=ak.__proto__;ak.__proto__=z;delete ak[am];
ak[am]=an.value;ak.__proto__=aj;}else{ak[am]=an.value;}}else{if(!q){throw new TypeError(p);}if(T(an,"get")){ab(ak,am,an.get);}if(T(an,"set")){ah(ak,am,an.set);
}}return ak;};}if(!Object.defineProperties){Object.defineProperties=function M(aj,ak){for(var al in ak){if(T(ak,al)){Object.defineProperty(aj,al,ak[al]);
}}return aj;};}if(!Object.seal){Object.seal=function W(aj){return aj;};}if(!Object.freeze){Object.freeze=function t(aj){return aj;};}try{Object.freeze(function(){});
}catch(m){Object.freeze=(function t(ak){return function aj(al){if(typeof al=="function"){return al;}else{return ak(al);}};})(Object.freeze);}if(!Object.preventExtensions){Object.preventExtensions=function N(aj){return aj;
};}if(!Object.isSealed){Object.isSealed=function ai(aj){return false;};}if(!Object.isFrozen){Object.isFrozen=function Z(aj){return false;};}if(!Object.isExtensible){Object.isExtensible=function s(ak){if(Object(ak)===ak){throw new TypeError();
}var aj="";while(T(ak,aj)){aj+="?";}ak[aj]=true;var al=T(ak,aj);delete ak[aj];return al;};}if(!Object.keys){var o=true,v=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],l=v.length;
for(var x in {toString:null}){o=false;}Object.keys=function I(al){if((typeof al!="object"&&typeof al!="function")||al===null){throw new TypeError("Object.keys called on a non-object");
}var ao=[];for(var ak in al){if(T(al,ak)){ao.push(ak);}}if(o){for(var am=0,an=l;am<an;am++){var aj=v[am];if(T(al,aj)){ao.push(aj);}}}return ao;};}if(!Date.prototype.toISOString||(new Date(-62198755200000).toISOString().indexOf("-000001")===-1)){Date.prototype.toISOString=function n(){var aj,al,am,ak;
if(!isFinite(this)){throw new RangeError;}aj=[this.getUTCMonth()+1,this.getUTCDate(),this.getUTCHours(),this.getUTCMinutes(),this.getUTCSeconds()];ak=this.getUTCFullYear();
ak=(ak<0?"-":(ak>9999?"+":""))+("00000"+Math.abs(ak)).slice(0<=ak&&ak<=9999?-4:-6);al=aj.length;while(al--){am=aj[al];if(am<10){aj[al]="0"+am;}}return ak+"-"+aj.slice(0,2).join("-")+"T"+aj.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z";
};}if(!Date.now){Date.now=function ac(){return new Date().getTime();};}if(!Date.prototype.toJSON){Date.prototype.toJSON=function P(aj){if(typeof this.toISOString!="function"){throw new TypeError();
}return this.toISOString();};}if(Date.parse("+275760-09-13T00:00:00.000Z")!==8640000000000000){Date=(function(al){var aj=function aj(aq,aw,ao,av,au,ax,ap){var ar=arguments.length;
if(this instanceof al){var at=ar==1&&String(aq)===aq?new al(aj.parse(aq)):ar>=7?new al(aq,aw,ao,av,au,ax,ap):ar>=6?new al(aq,aw,ao,av,au,ax):ar>=5?new al(aq,aw,ao,av,au):ar>=4?new al(aq,aw,ao,av):ar>=3?new al(aq,aw,ao):ar>=2?new al(aq,aw):ar>=1?new al(aq):new al();
at.constructor=aj;return at;}return al.apply(this,arguments);};var am=new RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:\\.(\\d{3}))?)?(?:Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$");
for(var ak in al){aj[ak]=al[ak];}aj.now=al.now;aj.UTC=al.UTC;aj.prototype=al.prototype;aj.prototype.constructor=aj;aj.parse=function an(ar){var aq=am.exec(ar);
if(aq){aq.shift();for(var at=1;at<7;at++){aq[at]=+(aq[at]||(at<3?1:0));if(at==1){aq[at]--;}}var ap=+aq.pop(),aw=+aq.pop(),ao=aq.pop();var av=0;if(ao){if(aw>23||ap>59){return NaN;
}av=(aw*60+ap)*60000*(ao=="+"?-1:1);}var au=+aq[0];if(0<=au&&au<=99){aq[0]=au+400;return al.UTC.apply(this,aq)+av-12622780800000;}return al.UTC.apply(this,aq)+av;
}return al.parse.apply(this,arguments);};return aj;})(Date);}var ag="\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";
if(!String.prototype.trim||ag.trim()){ag="["+ag+"]";var F=new RegExp("^"+ag+ag+"*"),y=new RegExp(ag+ag+"*$");String.prototype.trim=function a(){return String(this).replace(F,"").replace(y,"");
};}var U=function(aj){aj=+aj;if(aj!==aj){aj=0;}else{if(aj!==0&&aj!==(1/0)&&aj!==-(1/0)){aj=(aj>0||-1)*Math.floor(Math.abs(aj));}}return aj;};var H="a"[0]!="a",L=function(aj){if(aj==null){throw new TypeError();
}if(H&&typeof aj=="string"&&aj){return aj.split("");}return Object(aj);};});define("ace/lib/dom",["require","exports","module"],function(c,a,d){var b="http://www.w3.org/1999/xhtml";
a.createElement=function(f,g){return document.createElementNS?document.createElementNS(g||b,f):document.createElement(f);};a.setText=function(f,g){if(f.innerText!==undefined){f.innerText=g;
}if(f.textContent!==undefined){f.textContent=g;}};a.hasCssClass=function(h,f){var g=h.className.split(/\s+/g);return g.indexOf(f)!==-1;};a.addCssClass=function(g,f){if(!a.hasCssClass(g,f)){g.className+=" "+f;
}};a.removeCssClass=function(i,g){var h=i.className.split(/\s+/g);while(true){var f=h.indexOf(g);if(f==-1){break;}h.splice(f,1);}i.className=h.join(" ");
};a.toggleCssClass=function(i,g){var h=i.className.split(/\s+/g),j=true;while(true){var f=h.indexOf(g);if(f==-1){break;}j=false;h.splice(f,1);}if(j){h.push(g);
}i.className=h.join(" ");return j;};a.setCssClass=function(h,g,f){if(f){a.addCssClass(h,g);}else{a.removeCssClass(h,g);}};a.hasCssString=function(i,h){var f=0,g;
h=h||document;if(h.createStyleSheet&&(g=h.styleSheets)){while(f<g.length){if(g[f++].owningElement.id===i){return true;}}}else{if((g=h.getElementsByTagName("style"))){while(f<g.length){if(g[f++].id===i){return true;
}}}}return false;};a.importCssString=function e(h,j,i){i=i||document;if(j&&a.hasCssString(j,i)){return null;}var g;if(i.createStyleSheet){g=i.createStyleSheet();
g.cssText=h;if(j){g.owningElement.id=j;}}else{g=i.createElementNS?i.createElementNS(b,"style"):i.createElement("style");g.appendChild(i.createTextNode(h));
if(j){g.id=j;}var f=i.getElementsByTagName("head")[0]||i.documentElement;f.appendChild(g);}};a.importCssStylsheet=function(h,i){if(i.createStyleSheet){i.createStyleSheet(h);
}else{var g=a.createElement("link");g.rel="stylesheet";g.href=h;var f=i.getElementsByTagName("head")[0]||i.documentElement;f.appendChild(g);}};a.getInnerWidth=function(f){return(parseInt(a.computedStyle(f,"paddingLeft"),10)+parseInt(a.computedStyle(f,"paddingRight"),10)+f.clientWidth);
};a.getInnerHeight=function(f){return(parseInt(a.computedStyle(f,"paddingTop"),10)+parseInt(a.computedStyle(f,"paddingBottom"),10)+f.clientHeight);};if(window.pageYOffset!==undefined){a.getPageScrollTop=function(){return window.pageYOffset;
};a.getPageScrollLeft=function(){return window.pageXOffset;};}else{a.getPageScrollTop=function(){return document.body.scrollTop;};a.getPageScrollLeft=function(){return document.body.scrollLeft;
};}if(window.getComputedStyle){a.computedStyle=function(f,g){if(g){return(window.getComputedStyle(f,"")||{})[g]||"";}return window.getComputedStyle(f,"")||{};
};}else{a.computedStyle=function(f,g){if(g){return f.currentStyle[g];}return f.currentStyle;};}a.scrollbarWidth=function(g){var h=a.createElement("p");
h.style.width="100%";h.style.minWidth="0px";h.style.height="200px";var j=a.createElement("div");var k=j.style;k.position="absolute";k.left="-10000px";k.overflow="hidden";
k.width="200px";k.minWidth="0px";k.height="150px";j.appendChild(h);var f=g.body||g.documentElement;f.appendChild(j);var i=h.offsetWidth;k.overflow="scroll";
var l=h.offsetWidth;if(i==l){l=j.clientWidth;}f.removeChild(j);return i-l;};a.setInnerHtml=function(h,f){var g=h.cloneNode(false);g.innerHTML=f;h.parentNode.replaceChild(g,h);
return g;};a.setInnerText=function(g,h){var f=g.ownerDocument;if(f.body&&"textContent" in f.body){g.textContent=h;}else{g.innerText=h;}};a.getInnerText=function(g){var f=g.ownerDocument;
if(f.body&&"textContent" in f.body){return g.textContent;}else{return g.innerText||g.textContent||"";}};a.getParentWindow=function(f){return f.defaultView||f.parentWindow;
};});define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent","ace/lib/dom"],function(c,b,d){var e=c("./keys");var a=c("./useragent");
var h=c("./dom");b.addListener=function(j,i,l){if(j.addEventListener){return j.addEventListener(i,l,false);}if(j.attachEvent){var k=function(){l(window.event);
};l._wrapper=k;j.attachEvent("on"+i,k);}};b.removeListener=function(j,i,k){if(j.removeEventListener){return j.removeEventListener(i,k,false);}if(j.detachEvent){j.detachEvent("on"+i,k._wrapper||k);
}};b.stopEvent=function(i){b.stopPropagation(i);b.preventDefault(i);return false;};b.stopPropagation=function(i){if(i.stopPropagation){i.stopPropagation();
}else{i.cancelBubble=true;}};b.preventDefault=function(i){if(i.preventDefault){i.preventDefault();}else{i.returnValue=false;}};b.getButton=function(i){if(i.type=="dblclick"){return 0;
}if(i.type=="contextmenu"||(i.ctrlKey&&a.isMac)){return 2;}if(i.preventDefault){return i.button;}else{return{1:0,2:2,4:1}[i.button];}};if(document.documentElement.setCapture){b.capture=function(l,k,j){var m=false;
function i(n){k(n);if(!m){m=true;j(n);}b.removeListener(l,"mousemove",k);b.removeListener(l,"mouseup",i);b.removeListener(l,"losecapture",i);l.releaseCapture();
}b.addListener(l,"mousemove",k);b.addListener(l,"mouseup",i);b.addListener(l,"losecapture",i);l.setCapture();};}else{b.capture=function(l,k,j){function i(m){k&&k(m);
j&&j(m);document.removeEventListener("mousemove",k,true);document.removeEventListener("mouseup",i,true);m.stopPropagation();}document.addEventListener("mousemove",k,true);
document.addEventListener("mouseup",i,true);};}b.addMouseWheelListener=function(j,l){var i=8;var k=function(m){if(m.wheelDelta!==undefined){if(m.wheelDeltaX!==undefined){m.wheelX=-m.wheelDeltaX/i;
m.wheelY=-m.wheelDeltaY/i;}else{m.wheelX=0;m.wheelY=-m.wheelDelta/i;}}else{if(m.axis&&m.axis==m.HORIZONTAL_AXIS){m.wheelX=(m.detail||0)*5;m.wheelY=0;}else{m.wheelX=0;
m.wheelY=(m.detail||0)*5;}}l(m);};b.addListener(j,"DOMMouseScroll",k);b.addListener(j,"mousewheel",k);};b.addMultiMouseDownListener=function(l,i,m,p){var q=0;
var o,n,j;var k={2:"dblclick",3:"tripleclick",4:"quadclick"};b.addListener(l,"mousedown",function(s){if(b.getButton(s)!=0){q=0;}else{var r=Math.abs(s.clientX-o)>5||Math.abs(s.clientY-n)>5;
if(!j||r){q=0;}q+=1;if(j){clearTimeout(j);}j=setTimeout(function(){j=null;},i[q-1]||600);}if(q==1){o=s.clientX;n=s.clientY;}m[p]("mousedown",s);if(q>4){q=0;
}else{if(q>1){return m[p](k[q],s);}}});if(a.isOldIE){b.addListener(l,"dblclick",function(r){q=2;if(j){clearTimeout(j);}j=setTimeout(function(){j=null;},i[q-1]||600);
m[p]("mousedown",r);m[p](k[q],r);});}};function g(l,k,j){var i=0;if((a.isOpera&&!("KeyboardEvent" in window))&&a.isMac){i=0|(k.metaKey?1:0)|(k.altKey?2:0)|(k.shiftKey?4:0)|(k.ctrlKey?8:0);
}else{i=0|(k.ctrlKey?1:0)|(k.altKey?2:0)|(k.shiftKey?4:0)|(k.metaKey?8:0);}if(j in e.MODIFIER_KEYS){switch(e.MODIFIER_KEYS[j]){case"Alt":i=2;break;case"Shift":i=4;
break;case"Ctrl":i=1;break;default:i=8;break;}j=0;}if(i&8&&(j==91||j==93)){j=0;}if(!i&&!(j in e.FUNCTION_KEYS)&&!(j in e.PRINTABLE_KEYS)){return false;
}return l(k,i,j);}b.addCommandKeyListener=function(j,m){var i=b.addListener;if(a.isOldGecko||(a.isOpera&&!("KeyboardEvent" in window))){var l=null;i(j,"keydown",function(n){l=n.keyCode;
});i(j,"keypress",function(n){return g(m,n,l);});}else{var k=null;i(j,"keydown",function(n){k=n.keyIdentifier||n.keyCode;return g(m,n,n.keyCode);});}};
if(window.postMessage&&!a.isOldIE){var f=1;b.nextTick=function(l,k){k=k||window;var i="zero-timeout-message-"+f;b.addListener(k,"message",function j(m){if(m.data==i){b.stopPropagation(m);
b.removeListener(k,"message",j);l();}});k.postMessage(i,"*");};}else{b.nextTick=function(j,i){i=i||window;window.setTimeout(j,0);};}});define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(c,a,d){var e=c("./oop");
var b=(function(){var g={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,meta:8,command:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}};
for(var h in g.FUNCTION_KEYS){var f=g.FUNCTION_KEYS[h].toLowerCase();g[f]=parseInt(h,10);}e.mixin(g,g.MODIFIER_KEYS);e.mixin(g,g.PRINTABLE_KEYS);e.mixin(g,g.FUNCTION_KEYS);
g.enter=g["return"];g.escape=g.esc;g.del=g["delete"];g[173]="-";return g;})();e.mixin(a,b);a.keyCodeToString=function(f){return(b[f]||String.fromCharCode(f)).toLowerCase();
};});define("ace/lib/oop",["require","exports","module"],function(b,a,c){a.inherits=(function(){var d=function(){};return function(f,e){d.prototype=e.prototype;
f.super_=e.prototype;f.prototype=new d();f.prototype.constructor=f;};}());a.mixin=function(f,d){for(var e in d){f[e]=d[e];}};a.implement=function(e,d){a.mixin(e,d);
};});define("ace/lib/useragent",["require","exports","module"],function(b,a,d){var e=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase();
var c=navigator.userAgent;a.isWin=(e=="win");a.isMac=(e=="mac");a.isLinux=(e=="linux");a.isIE=navigator.appName=="Microsoft Internet Explorer"&&parseFloat(navigator.userAgent.match(/MSIE ([0-9]+[\.0-9]+)/)[1]);
a.isOldIE=a.isIE&&a.isIE<9;a.isGecko=a.isMozilla=window.controllers&&window.navigator.product==="Gecko";a.isOldGecko=a.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4;
a.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]";a.isWebKit=parseFloat(c.split("WebKit/")[1])||undefined;a.isChrome=parseFloat(c.split(" Chrome/")[1])||undefined;
a.isAIR=c.indexOf("AdobeAIR")>=0;a.isIPad=c.indexOf("iPad")>=0;a.isTouchPad=c.indexOf("TouchPad")>=0;a.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"};a.getOS=function(){if(a.isMac){return a.OS.MAC;
}else{if(a.isLinux){return a.OS.LINUX;}else{return a.OS.WINDOWS;}}};});define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands"],function(g,j,c){g("./lib/fixoldbrowsers");
var o=g("./lib/oop");var b=g("./lib/lang");var d=g("./lib/useragent");var l=g("./keyboard/textinput").TextInput;var i=g("./mouse/mouse_handler").MouseHandler;
var n=g("./mouse/fold_handler").FoldHandler;var h=g("./keyboard/keybinding").KeyBinding;var a=g("./edit_session").EditSession;var f=g("./search").Search;
var e=g("./range").Range;var q=g("./lib/event_emitter").EventEmitter;var p=g("./commands/command_manager").CommandManager;var k=g("./commands/default_commands").commands;
var m=function(s,t){var r=s.getContainerElement();this.container=r;this.renderer=s;this.commands=new p(d.isMac?"mac":"win",k);this.textInput=new l(s.getTextAreaContainer(),this);
this.renderer.textarea=this.textInput.getElement();this.keyBinding=new h(this);this.$mouseHandler=new i(this);new n(this);this.$blockScrolling=0;this.$search=new f().set({wrap:true});
this.setSession(t||new a(""));};(function(){o.implement(this,q);this.setKeyboardHandler=function(r){this.keyBinding.setKeyboardHandler(r);};this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler();
};this.setSession=function(t){if(this.session==t){return;}if(this.session){var s=this.session;this.session.removeEventListener("change",this.$onDocumentChange);
this.session.removeEventListener("changeMode",this.$onChangeMode);this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.session.removeEventListener("changeTabSize",this.$onChangeTabSize);
this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode);this.session.removeEventListener("onChangeFold",this.$onChangeFold);
this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker);
this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation);
this.session.removeEventListener("changeOverwrite",this.$onCursorChange);this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange);this.session.removeEventListener("changeLeftTop",this.$onScrollLeftChange);
var r=this.session.getSelection();r.removeEventListener("changeCursor",this.$onCursorChange);r.removeEventListener("changeSelection",this.$onSelectionChange);
}this.session=t;this.$onDocumentChange=this.onDocumentChange.bind(this);t.addEventListener("change",this.$onDocumentChange);this.renderer.setSession(t);
this.$onChangeMode=this.onChangeMode.bind(this);t.addEventListener("changeMode",this.$onChangeMode);this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this);
t.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer);t.addEventListener("changeTabSize",this.$onChangeTabSize);
this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this);t.addEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.$onChangeWrapMode=this.onChangeWrapMode.bind(this);
t.addEventListener("changeWrapMode",this.$onChangeWrapMode);this.$onChangeFold=this.onChangeFold.bind(this);t.addEventListener("changeFold",this.$onChangeFold);
this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this);this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.$onChangeBackMarker=this.onChangeBackMarker.bind(this);
this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker);this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this);this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint);
this.$onChangeAnnotation=this.onChangeAnnotation.bind(this);this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation);this.$onCursorChange=this.onCursorChange.bind(this);
this.session.addEventListener("changeOverwrite",this.$onCursorChange);this.$onScrollTopChange=this.onScrollTopChange.bind(this);this.session.addEventListener("changeScrollTop",this.$onScrollTopChange);
this.$onScrollLeftChange=this.onScrollLeftChange.bind(this);this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange);this.selection=t.getSelection();
this.selection.addEventListener("changeCursor",this.$onCursorChange);this.$onSelectionChange=this.onSelectionChange.bind(this);this.selection.addEventListener("changeSelection",this.$onSelectionChange);
this.onChangeMode();this.$blockScrolling+=1;this.onCursorChange();this.$blockScrolling-=1;this.onScrollTopChange();this.onScrollLeftChange();this.onSelectionChange();
this.onChangeFrontMarker();this.onChangeBackMarker();this.onChangeBreakpoint();this.onChangeAnnotation();this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit();
this.renderer.updateFull();this._emit("changeSession",{session:t,oldSession:s});};this.getSession=function(){return this.session;};this.setValue=function(r,s){this.session.doc.setValue(r);
if(!s){this.selectAll();}else{if(s==1){this.navigateFileEnd();}else{if(s==-1){this.navigateFileStart();}}}return r;};this.getValue=function(){return this.session.getValue();
};this.getSelection=function(){return this.selection;};this.resize=function(r){this.renderer.onResize(r);};this.setTheme=function(r){this.renderer.setTheme(r);
};this.getTheme=function(){return this.renderer.getTheme();};this.setStyle=function(r){this.renderer.setStyle(r);};this.unsetStyle=function(r){this.renderer.unsetStyle(r);
};this.setFontSize=function(r){this.container.style.fontSize=r;this.renderer.updateFontSize();};this.$highlightBrackets=function(){if(this.session.$bracketHighlight){this.session.removeMarker(this.session.$bracketHighlight);
this.session.$bracketHighlight=null;}if(this.$highlightPending){return;}var r=this;this.$highlightPending=true;setTimeout(function(){r.$highlightPending=false;
var t=r.session.findMatchingBracket(r.getCursorPosition());if(t){var s=new e(t.row,t.column,t.row,t.column+1);r.session.$bracketHighlight=r.session.addMarker(s,"ace_bracket","text");
}},10);};this.focus=function(){var r=this;setTimeout(function(){r.textInput.focus();});this.textInput.focus();};this.isFocused=function(){return this.textInput.isFocused();
};this.blur=function(){this.textInput.blur();};this.onFocus=function(){if(this.$isFocused){return;}this.$isFocused=true;this.renderer.showCursor();this.renderer.visualizeFocus();
this._emit("focus");};this.onBlur=function(){if(!this.$isFocused){return;}this.$isFocused=false;this.renderer.hideCursor();this.renderer.visualizeBlur();
this._emit("blur");};this.$cursorChange=function(){this.renderer.updateCursor();};this.onDocumentChange=function(t){var u=t.data;var r=u.range;var s;if(r.start.row==r.end.row&&u.action!="insertLines"&&u.action!="removeLines"){s=r.end.row;
}else{s=Infinity;}this.renderer.updateLines(r.start.row,s);this._emit("change",t);this.$cursorChange();};this.onTokenizerUpdate=function(s){var r=s.data;
this.renderer.updateLines(r.first,r.last);};this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop());};this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft());
};this.onCursorChange=function(){this.$cursorChange();if(!this.$blockScrolling){this.renderer.scrollCursorIntoView();}this.$highlightBrackets();this.$updateHighlightActiveLine();
this._emit("changeSelection");};this.$updateHighlightActiveLine=function(){var s=this.getSession();if(s.$highlightLineMarker){s.removeMarker(s.$highlightLineMarker);
}s.$highlightLineMarker=null;if(this.$highlightActiveLine){var u=this.getCursorPosition();var t=this.session.getFoldLine(u.row);if((this.getSelectionStyle()!="line"||!this.selection.isMultiLine())){var r;
if(t){r=new e(t.start.row,0,t.end.row+1,0);}else{r=new e(u.row,0,u.row+1,0);}s.$highlightLineMarker=s.addMarker(r,"ace_active_line","background");}}};this.onSelectionChange=function(v){var u=this.session;
if(u.$selectionMarker){u.removeMarker(u.$selectionMarker);}u.$selectionMarker=null;if(!this.selection.isEmpty()){var r=this.selection.getRange();var t=this.getSelectionStyle();
u.$selectionMarker=u.addMarker(r,"ace_selection",t);}else{this.$updateHighlightActiveLine();}var s=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();
this.session.highlight(s);this._emit("changeSelection");};this.$getSelectionHighLightRegexp=function(){var x=this.session;var u=this.getSelectionRange();
if(u.isEmpty()||u.isMultiLine()){return;}var y=u.start.column-1;var w=u.end.column+1;var s=x.getLine(u.start.row);var r=s.length;var v=s.substring(Math.max(y,0),Math.min(w,r));
if((y>=0&&/^[\w\d]/.test(v))||(w<=r&&/[\w\d]$/.test(v))){return;}v=s.substring(u.start.column,u.end.column);if(!/^[\w\d]+$/.test(v)){return;}var t=this.$search.$assembleRegExp({wholeWord:true,caseSensitive:true,needle:v});
return t;};this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers();};this.onChangeBackMarker=function(){this.renderer.updateBackMarkers();
};this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints();};this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations());
};this.onChangeMode=function(){this.renderer.updateText();};this.onChangeWrapLimit=function(){this.renderer.updateFull();};this.onChangeWrapMode=function(){this.renderer.onResize(true);
};this.onChangeFold=function(){this.$updateHighlightActiveLine();this.renderer.updateFull();};this.getCopyText=function(){var r="";if(!this.selection.isEmpty()){r=this.session.getTextRange(this.getSelectionRange());
}this._emit("copy",r);return r;};this.onCopy=function(){this.commands.exec("copy",this);};this.onCut=function(){this.commands.exec("cut",this);};this.onPaste=function(r){if(this.$readOnly){return;
}this._emit("paste",r);this.insert(r);};this.insert=function(C){var s=this.session;var D=s.getMode();var v=this.getCursorPosition();if(this.getBehavioursEnabled()){var A=D.transformAction(s.getState(v.row),"insertion",this,s,C);
if(A){C=A.text;}}C=C.replace("\t",this.session.getTabString());if(!this.selection.isEmpty()){v=this.session.remove(this.getSelectionRange());this.clearSelection();
}else{if(this.session.getOverwrite()){var E=new e.fromPoints(v,v);E.end.column+=C.length;this.session.remove(E);}}this.clearSelection();var w=v.column;
var G=s.getState(v.row);var I=D.checkOutdent(G,s.getLine(v.row),C);var y=s.getLine(v.row);var r=D.getNextLineIndent(G,y.slice(0,v.column),s.getTabString());
var t=s.insert(v,C);if(A&&A.selection){if(A.selection.length==2){this.selection.setSelectionRange(new e(v.row,w+A.selection[0],v.row,w+A.selection[1]));
}else{this.selection.setSelectionRange(new e(v.row+A.selection[0],A.selection[1],v.row+A.selection[2],A.selection[3]));}}var G=s.getState(v.row);if(s.getDocument().isNewLine(C)){this.moveCursorTo(v.row+1,0);
var F=s.getTabSize();var u=Number.MAX_VALUE;for(var x=v.row+1;x<=t.row;++x){var z=0;y=s.getLine(x);for(var H=0;H<y.length;++H){if(y.charAt(H)=="\t"){z+=F;
}else{if(y.charAt(H)==" "){z+=1;}else{break;}}}if(/[^\s]/.test(y)){u=Math.min(z,u);}}for(var x=v.row+1;x<=t.row;++x){var B=u;y=s.getLine(x);for(var H=0;
H<y.length&&B>0;++H){if(y.charAt(H)=="\t"){B-=F;}else{if(y.charAt(H)==" "){B-=1;}}}s.remove(new e(x,0,x,H));}s.indentRows(v.row+1,t.row,r);}if(I){D.autoOutdent(G,s,v.row);
}};this.onTextInput=function(r){this.keyBinding.onTextInput(r);};this.onCommandKey=function(t,r,s){this.keyBinding.onCommandKey(t,r,s);};this.setOverwrite=function(r){this.session.setOverwrite(r);
};this.getOverwrite=function(){return this.session.getOverwrite();};this.toggleOverwrite=function(){this.session.toggleOverwrite();};this.setScrollSpeed=function(r){this.$mouseHandler.setScrollSpeed(r);
};this.getScrollSpeed=function(){return this.$mouseHandler.getScrollSpeed();};this.setDragDelay=function(r){this.$mouseHandler.setDragDelay(r);};this.getDragDelay=function(){return this.$mouseHandler.getDragDelay();
};this.$selectionStyle="line";this.setSelectionStyle=function(r){if(this.$selectionStyle==r){return;}this.$selectionStyle=r;this.onSelectionChange();this._emit("changeSelectionStyle",{data:r});
};this.getSelectionStyle=function(){return this.$selectionStyle;};this.$highlightActiveLine=true;this.setHighlightActiveLine=function(r){if(this.$highlightActiveLine==r){return;
}this.$highlightActiveLine=r;this.$updateHighlightActiveLine();};this.getHighlightActiveLine=function(){return this.$highlightActiveLine;};this.$highlightGutterLine=true;
this.setHighlightGutterLine=function(r){if(this.$highlightGutterLine==r){return;}this.renderer.setHighlightGutterLine(r);this.$highlightGutterLine=r;};
this.getHighlightGutterLine=function(){return this.$highlightGutterLine;};this.$highlightSelectedWord=true;this.setHighlightSelectedWord=function(r){if(this.$highlightSelectedWord==r){return;
}this.$highlightSelectedWord=r;this.$onSelectionChange();};this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord;};this.setAnimatedScroll=function(r){this.renderer.setAnimatedScroll(r);
};this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll();};this.setShowInvisibles=function(r){this.renderer.setShowInvisibles(r);};
this.getShowInvisibles=function(){return this.renderer.getShowInvisibles();};this.setDisplayIndentGuides=function(r){this.renderer.setDisplayIndentGuides(r);
};this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides();};this.setShowPrintMargin=function(r){this.renderer.setShowPrintMargin(r);
};this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin();};this.setPrintMarginColumn=function(r){this.renderer.setPrintMarginColumn(r);
};this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn();};this.$readOnly=false;this.setReadOnly=function(r){this.$readOnly=r;
};this.getReadOnly=function(){return this.$readOnly;};this.$modeBehaviours=true;this.setBehavioursEnabled=function(r){this.$modeBehaviours=r;};this.getBehavioursEnabled=function(){return this.$modeBehaviours;
};this.setShowFoldWidgets=function(r){var s=this.renderer.$gutterLayer;if(s.getShowFoldWidgets()==r){return;}this.renderer.$gutterLayer.setShowFoldWidgets(r);
this.$showFoldWidgets=r;this.renderer.updateFull();};this.getShowFoldWidgets=function(){return this.renderer.$gutterLayer.getShowFoldWidgets();};this.setFadeFoldWidgets=function(r){this.renderer.setFadeFoldWidgets(r);
};this.getFadeFoldWidgets=function(){return this.renderer.getFadeFoldWidgets();};this.remove=function(s){if(this.selection.isEmpty()){if(s=="left"){this.selection.selectLeft();
}else{this.selection.selectRight();}}var r=this.getSelectionRange();if(this.getBehavioursEnabled()){var u=this.session;var t=u.getState(r.start.row);var v=u.getMode().transformAction(t,"deletion",this,u,r);
if(v){r=v;}}this.session.remove(r);this.clearSelection();};this.removeWordRight=function(){if(this.selection.isEmpty()){this.selection.selectWordRight();
}this.session.remove(this.getSelectionRange());this.clearSelection();};this.removeWordLeft=function(){if(this.selection.isEmpty()){this.selection.selectWordLeft();
}this.session.remove(this.getSelectionRange());this.clearSelection();};this.removeToLineStart=function(){if(this.selection.isEmpty()){this.selection.selectLineStart();
}this.session.remove(this.getSelectionRange());this.clearSelection();};this.removeToLineEnd=function(){if(this.selection.isEmpty()){this.selection.selectLineEnd();
}var r=this.getSelectionRange();if(r.start.column==r.end.column&&r.start.row==r.end.row){r.end.column=0;r.end.row++;}this.session.remove(r);this.clearSelection();
};this.splitLine=function(){if(!this.selection.isEmpty()){this.session.remove(this.getSelectionRange());this.clearSelection();}var r=this.getCursorPosition();
this.insert("\n");this.moveCursorToPosition(r);};this.transposeLetters=function(){if(!this.selection.isEmpty()){return;}var v=this.getCursorPosition();
var t=v.column;if(t===0){return;}var r=this.session.getLine(v.row);var u,s;if(t<r.length){u=r.charAt(t)+r.charAt(t-1);s=new e(v.row,t-1,v.row,t+1);}else{u=r.charAt(t-1)+r.charAt(t-2);
s=new e(v.row,t-2,v.row,t);}this.session.replace(s,u);};this.toLowerCase=function(){var s=this.getSelectionRange();if(this.selection.isEmpty()){this.selection.selectWord();
}var r=this.getSelectionRange();var t=this.session.getTextRange(r);this.session.replace(r,t.toLowerCase());this.selection.setSelectionRange(s);};this.toUpperCase=function(){var s=this.getSelectionRange();
if(this.selection.isEmpty()){this.selection.selectWord();}var r=this.getSelectionRange();var t=this.session.getTextRange(r);this.session.replace(r,t.toUpperCase());
this.selection.setSelectionRange(s);};this.indent=function(){var x=this.session;var s=this.getSelectionRange();if(s.start.row<s.end.row||s.start.column<s.end.column){var w=this.$getSelectedRows();
x.indentRows(w.first,w.last,"\t");}else{var y;if(this.session.getUseSoftTabs()){var t=x.getTabSize(),r=this.getCursorPosition(),u=x.documentToScreenColumn(r.row,r.column),v=(t-u%t);
y=b.stringRepeat(" ",v);}else{y="\t";}return this.insert(y);}};this.blockOutdent=function(){var r=this.session.getSelection();this.session.outdentRows(r.getRange());
};this.toggleCommentLines=function(){var s=this.session.getState(this.getCursorPosition().row);var r=this.$getSelectedRows();this.session.getMode().toggleCommentLines(s,this.session,r.first,r.last);
};this.removeLines=function(){var s=this.$getSelectedRows();var r;if(s.first===0||s.last+1<this.session.getLength()){r=new e(s.first,0,s.last+1,0);}else{r=new e(s.first-1,this.session.getLine(s.first-1).length,s.last,this.session.getLine(s.last).length);
}this.session.remove(r);this.clearSelection();};this.duplicateSelection=function(){var v=this.selection;var w=this.session;var s=v.getRange();if(s.isEmpty()){var x=s.start.row;
w.duplicateLines(x,x);}else{var t=v.isBackwards();var r=v.isBackwards()?s.start:s.end;var u=w.insert(r,w.getTextRange(s),false);s.start=r;s.end=u;v.setSelectionRange(s,t);
}};this.moveLinesDown=function(){this.$moveLines(function(s,r){return this.session.moveLinesDown(s,r);});};this.moveLinesUp=function(){this.$moveLines(function(s,r){return this.session.moveLinesUp(s,r);
});};this.moveText=function(r,s){if(this.$readOnly){return null;}return this.session.moveText(r,s);};this.copyLinesUp=function(){this.$moveLines(function(s,r){this.session.duplicateLines(s,r);
return 0;});};this.copyLinesDown=function(){this.$moveLines(function(s,r){return this.session.duplicateLines(s,r);});};this.$moveLines=function(s){var w=this.$getSelectedRows();
var v=this.selection;if(!v.isMultiLine()){var r=v.getRange();var t=v.isBackwards();}var u=s.call(this,w.first,w.last);if(r){r.start.row+=u;r.end.row+=u;
v.setSelectionRange(r,t);}else{v.setSelectionAnchor(w.last+u+1,0);v.$moveSelection(function(){v.moveCursorTo(w.first+u,0);});}};this.$getSelectedRows=function(){var r=this.getSelectionRange().collapseRows();
return{first:r.start.row,last:r.end.row};};this.onCompositionStart=function(r){this.renderer.showComposition(this.getCursorPosition());};this.onCompositionUpdate=function(r){this.renderer.setCompositionText(r);
};this.onCompositionEnd=function(){this.renderer.hideComposition();};this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow();};this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow();
};this.isRowVisible=function(r){return(r>=this.getFirstVisibleRow()&&r<=this.getLastVisibleRow());};this.isRowFullyVisible=function(r){return(r>=this.renderer.getFirstFullyVisibleRow()&&r<=this.renderer.getLastFullyVisibleRow());
};this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1;};this.$moveByPage=function(t,r){var v=this.renderer;
var s=this.renderer.layerConfig;var u=t*Math.floor(s.height/s.lineHeight);this.$blockScrolling++;if(r==true){this.selection.$moveSelection(function(){this.moveCursorBy(u,0);
});}else{if(r==false){this.selection.moveCursorBy(u,0);this.selection.clearSelection();}}this.$blockScrolling--;var w=v.scrollTop;v.scrollBy(0,u*s.lineHeight);
if(r!=null){v.scrollCursorIntoView(null,0.5);}v.animateScrolling(w);};this.selectPageDown=function(){this.$moveByPage(1,true);};this.selectPageUp=function(){this.$moveByPage(-1,true);
};this.gotoPageDown=function(){this.$moveByPage(1,false);};this.gotoPageUp=function(){this.$moveByPage(-1,false);};this.scrollPageDown=function(){this.$moveByPage(1);
};this.scrollPageUp=function(){this.$moveByPage(-1);};this.scrollToRow=function(r){this.renderer.scrollToRow(r);};this.scrollToLine=function(s,r,t,u){this.renderer.scrollToLine(s,r,t,u);
};this.centerSelection=function(){var r=this.getSelectionRange();var s={row:Math.floor(r.start.row+(r.end.row-r.start.row)/2),column:Math.floor(r.start.column+(r.end.column-r.start.column)/2)};
this.renderer.alignCursor(s,0.5);};this.getCursorPosition=function(){return this.selection.getCursor();};this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition());
};this.getSelectionRange=function(){return this.selection.getRange();};this.selectAll=function(){this.$blockScrolling+=1;this.selection.selectAll();this.$blockScrolling-=1;
};this.clearSelection=function(){this.selection.clearSelection();};this.moveCursorTo=function(s,r){this.selection.moveCursorTo(s,r);};this.moveCursorToPosition=function(r){this.selection.moveCursorToPosition(r);
};this.jumpToMatching=function(r){var t=this.getCursorPosition();var s=this.session.getBracketRange(t);if(!s){s=this.find({needle:/[{}()\[\]]/g,preventScroll:true,start:{row:t.row,column:t.column-1}});
if(!s){return;}var u=s.start;if(u.row==t.row&&Math.abs(u.column-t.column)<2){s=this.session.getBracketRange(u);}}u=s&&s.cursor||u;if(u){if(r){if(s&&s.isEqual(this.getSelectionRange())){this.clearSelection();
}else{this.selection.selectTo(u.row,u.column);}}else{this.clearSelection();this.moveCursorTo(u.row,u.column);}}};this.gotoLine=function(r,t,s){this.selection.clearSelection();
this.session.unfold({row:r-1,column:t||0});this.$blockScrolling+=1;this.moveCursorTo(r-1,t||0);this.$blockScrolling-=1;if(!this.isRowFullyVisible(r-1)){this.scrollToLine(r-1,true,s);
}};this.navigateTo=function(s,r){this.clearSelection();this.moveCursorTo(s,r);};this.navigateUp=function(r){this.selection.clearSelection();r=r||1;this.selection.moveCursorBy(-r,0);
};this.navigateDown=function(r){this.selection.clearSelection();r=r||1;this.selection.moveCursorBy(r,0);};this.navigateLeft=function(s){if(!this.selection.isEmpty()){var r=this.getSelectionRange().start;
this.moveCursorToPosition(r);}else{s=s||1;while(s--){this.selection.moveCursorLeft();}}this.clearSelection();};this.navigateRight=function(s){if(!this.selection.isEmpty()){var r=this.getSelectionRange().end;
this.moveCursorToPosition(r);}else{s=s||1;while(s--){this.selection.moveCursorRight();}}this.clearSelection();};this.navigateLineStart=function(){this.selection.moveCursorLineStart();
this.clearSelection();};this.navigateLineEnd=function(){this.selection.moveCursorLineEnd();this.clearSelection();};this.navigateFileEnd=function(){var r=this.renderer.scrollTop;
this.selection.moveCursorFileEnd();this.clearSelection();this.renderer.animateScrolling(r);};this.navigateFileStart=function(){var r=this.renderer.scrollTop;
this.selection.moveCursorFileStart();this.clearSelection();this.renderer.animateScrolling(r);};this.navigateWordRight=function(){this.selection.moveCursorWordRight();
this.clearSelection();};this.navigateWordLeft=function(){this.selection.moveCursorWordLeft();this.clearSelection();};this.replace=function(t,s){if(s){this.$search.set(s);
}var r=this.$search.find(this.session);var u=0;if(!r){return u;}if(this.$tryReplace(r,t)){u=1;}if(r!==null){this.selection.setSelectionRange(r);this.renderer.scrollSelectionIntoView(r.start,r.end);
}return u;};this.replaceAll=function(v,s){if(s){this.$search.set(s);}var r=this.$search.findAll(this.session);var w=0;if(!r.length){return w;}this.$blockScrolling+=1;
var u=this.getSelectionRange();this.clearSelection();this.selection.moveCursorTo(0,0);for(var t=r.length-1;t>=0;--t){if(this.$tryReplace(r[t],v)){w++;}}this.selection.setSelectionRange(u);
this.$blockScrolling-=1;return w;};this.$tryReplace=function(s,t){var r=this.session.getTextRange(s);t=this.$search.replace(r,t);if(t!==null){s.end=this.session.replace(s,t);
return s;}else{return null;}};this.getLastSearchOptions=function(){return this.$search.getOptions();};this.find=function(v,u,s){if(!u){u={};}if(typeof v=="string"||v instanceof RegExp){u.needle=v;
}else{if(typeof v=="object"){o.mixin(u,v);}}var r=this.selection.getRange();if(u.needle==null){v=this.session.getTextRange(r)||this.$search.$options.needle;
if(!v){r=this.session.getWordRange(r.start.row,r.start.column);v=this.session.getTextRange(r);}this.$search.set({needle:v});}this.$search.set(u);if(!u.start){this.$search.set({start:r});
}var t=this.$search.find(this.session);if(u.preventScroll){return t;}if(t){this.revealRange(t,s);return t;}if(u.backwards){r.start=r.end;}else{r.end=r.start;
}this.selection.setRange(r);};this.findNext=function(s,r){this.find({skipCurrent:true,backwards:false},s,r);};this.findPrevious=function(s,r){this.find(s,{skipCurrent:true,backwards:true},r);
};this.revealRange=function(s,r){this.$blockScrolling+=1;this.session.unfold(s);this.selection.setSelectionRange(s);this.$blockScrolling-=1;var t=this.renderer.scrollTop;
this.renderer.scrollSelectionIntoView(s.start,s.end,0.5);if(r!=false){this.renderer.animateScrolling(t);}};this.undo=function(){this.$blockScrolling++;
this.session.getUndoManager().undo();this.$blockScrolling--;this.renderer.scrollCursorIntoView(null,0.5);};this.redo=function(){this.$blockScrolling++;
this.session.getUndoManager().redo();this.$blockScrolling--;this.renderer.scrollCursorIntoView(null,0.5);};this.destroy=function(){this.renderer.destroy();
};}).call(m.prototype);j.Editor=m;});define("ace/lib/lang",["require","exports","module"],function(b,a,c){a.stringReverse=function(f){return f.split("").reverse().join("");
};a.stringRepeat=function(f,g){return new Array(g+1).join(f);};var d=/^\s\s*/;var e=/\s\s*$/;a.stringTrimLeft=function(f){return f.replace(d,"");};a.stringTrimRight=function(f){return f.replace(e,"");
};a.copyObject=function(g){var h={};for(var f in g){h[f]=g[f];}return h;};a.copyArray=function(j){var h=[];for(var g=0,f=j.length;g<f;g++){if(j[g]&&typeof j[g]=="object"){h[g]=this.copyObject(j[g]);
}else{h[g]=j[g];}}return h;};a.deepCopy=function(g){if(typeof g!="object"){return g;}var h=g.constructor();for(var f in g){if(typeof g[f]=="object"){h[f]=this.deepCopy(g[f]);
}else{h[f]=g[f];}}return h;};a.arrayToMap=function(f){var h={};for(var g=0;g<f.length;g++){h[f[g]]=1;}return h;};a.createMap=function(g){var h=Object.create(null);
for(var f in g){h[f]=g[f];}return h;};a.arrayRemove=function(h,g){for(var f=0;f<=h.length;f++){if(g===h[f]){h.splice(f,1);}}};a.escapeRegExp=function(f){return f.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1");
};a.getMatchOffsets=function(g,f){var h=[];g.replace(f,function(i){h.push({offset:arguments[arguments.length-2],length:i.length});});return h;};a.deferredCall=function(g){var i=null;
var h=function(){i=null;g();};var f=function(j){f.cancel();i=setTimeout(h,j||0);return f;};f.schedule=f;f.call=function(){this.cancel();g();return f;};
f.cancel=function(){clearTimeout(i);i=null;return f;};return f;};});define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom"],function(c,b,d){var f=c("../lib/event");
var a=c("../lib/useragent");var g=c("../lib/dom");var e=function(m,t){var q=g.createElement("textarea");if(a.isTouchPad){q.setAttribute("x-palm-disable-auto-cap",true);
}q.setAttribute("wrap","off");q.style.top="-2em";m.insertBefore(q,m.firstChild);var h=a.isIE?"\x01":"\x01";x();var r=false;var u=false;var i=false;var A="";
function y(B){try{if(B){q.value=h;q.selectionStart=0;q.selectionEnd=1;}else{q.select();}}catch(C){}}function x(C){if(!u){var B=C||q.value;if(B){if(B.length>1){if(B.charAt(0)==h){B=B.substr(1);
}else{if(B.charAt(B.length-1)==h){B=B.slice(0,-1);}}}if(B&&B!=h){if(i){t.onPaste(B);}else{t.onTextInput(B);}}}}u=false;i=false;y(true);}var l=function(B){if(!r){x(B.data);
}setTimeout(function(){if(!r){y(true);}},0);};var z=function(B){setTimeout(function(){if(!r){if(q.value!=""){x();}}},0);};var s=function(B){r=true;t.onCompositionStart();
setTimeout(w,0);};var w=function(){if(!r){return;}t.onCompositionUpdate(q.value);};var j=function(B){r=false;t.onCompositionEnd();};var o=function(C){u=true;
var B=t.getCopyText();if(B){q.value=B;}else{C.preventDefault();}y();setTimeout(function(){x();},0);};var k=function(C){u=true;var B=t.getCopyText();if(B){q.value=B;
t.onCut();}else{C.preventDefault();}y();setTimeout(function(){x();},0);};f.addCommandKeyListener(q,t.onCommandKey.bind(t));f.addListener(q,"input",l);if(a.isOldIE){var v={13:1,27:1};
f.addListener(q,"keyup",function(B){if(r&&(!q.value||v[B.keyCode])){setTimeout(j,0);}if((q.value.charCodeAt(0)|0)<129){return;}r?w():s();});f.addListener(q,"propertychange",function(){if(q.value!=h){setTimeout(x,0);
}});}f.addListener(q,"paste",function(B){i=true;if(B.clipboardData&&B.clipboardData.getData){x(B.clipboardData.getData("text/plain"));B.preventDefault();
}else{z();}});if("onbeforecopy" in q&&typeof clipboardData!=="undefined"){f.addListener(q,"beforecopy",function(C){if(A){return;}var B=t.getCopyText();
if(B){clipboardData.setData("Text",B);}else{C.preventDefault();}});f.addListener(m,"keydown",function(C){if(C.ctrlKey&&C.keyCode==88){var B=t.getCopyText();
if(B){clipboardData.setData("Text",B);t.onCut();}f.preventDefault(C);}});f.addListener(q,"cut",k);}else{if(a.isOpera&&!("KeyboardEvent" in window)){f.addListener(m,"keydown",function(C){if((a.isMac&&!C.metaKey)||!C.ctrlKey){return;
}if((C.keyCode==88||C.keyCode==67)){var B=t.getCopyText();if(B){q.value=B;q.select();if(C.keyCode==88){t.onCut();}}}});}else{f.addListener(q,"copy",o);
f.addListener(q,"cut",k);}}f.addListener(q,"compositionstart",s);if(a.isGecko){f.addListener(q,"text",w);}if(a.isWebKit){f.addListener(q,"keyup",w);}f.addListener(q,"compositionend",j);
f.addListener(q,"blur",function(){t.onBlur();});f.addListener(q,"focus",function(){t.onFocus();y();});this.focus=function(){y();q.focus();};this.blur=function(){q.blur();
};function n(){return document.activeElement===q;}this.isFocused=n;this.getElement=function(){return q;};this.onContextMenu=function(B){if(!A){A=q.style.cssText;
}q.style.cssText="position:fixed; z-index:100000;"+(a.isIE?"background:rgba(0, 0, 0, 0.03); opacity:0.1;":"")+"left:"+(B.clientX-2)+"px; top:"+(B.clientY-2)+"px;";
if(t.selection.isEmpty()){q.value="";}else{y(true);}if(B.type!="mousedown"){return;}if(t.renderer.$keepTextAreaAtCursor){t.renderer.$keepTextAreaAtCursor=null;
}if(a.isWin&&(a.isGecko||a.isIE)){f.capture(t.container,function(C){q.style.left=C.clientX-2+"px";q.style.top=C.clientY-2+"px";},p);}};function p(){setTimeout(function(){if(A){q.style.cssText=A;
A="";}x();if(t.renderer.$keepTextAreaAtCursor==null){t.renderer.$keepTextAreaAtCursor=true;t.renderer.$moveTextAreaToCursor();}},0);}this.onContextMenuClose=p;
if(!a.isGecko){f.addListener(q,"contextmenu",function(B){t.textInput.onContextMenu(B);p();});}};b.TextInput=e;});define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop"],function(e,g,c){var a=e("../lib/event");
var d=e("../lib/useragent");var j=e("./default_handlers").DefaultHandlers;var b=e("./default_gutter_handler").GutterHandler;var i=e("./mouse_event").MouseEvent;
var h=e("./dragdrop").DragdropHandler;var f=function(l){this.editor=l;new j(this);new b(this);new h(this);a.addListener(l.container,"mousedown",function(n){l.focus();
return a.preventDefault(n);});var m=l.renderer.getMouseEventTarget();a.addListener(m,"click",this.onMouseEvent.bind(this,"click"));a.addListener(m,"mousemove",this.onMouseMove.bind(this,"mousemove"));
a.addMultiMouseDownListener(m,[300,300,250],this,"onMouseEvent");a.addMouseWheelListener(l.container,this.onMouseWheel.bind(this,"mousewheel"));var k=l.renderer.$gutter;
a.addListener(k,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"));a.addListener(k,"click",this.onMouseEvent.bind(this,"gutterclick"));a.addListener(k,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"));
a.addListener(k,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"));};(function(){this.$scrollSpeed=1;this.setScrollSpeed=function(k){this.$scrollSpeed=k;
};this.getScrollSpeed=function(){return this.$scrollSpeed;};this.onMouseEvent=function(k,l){this.editor._emit(k,new i(l,this.editor));};this.$dragDelay=250;
this.setDragDelay=function(k){this.$dragDelay=k;};this.getDragDelay=function(){return this.$dragDelay;};this.onMouseMove=function(k,m){var l=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;
if(!l||!l.length){return;}this.editor._emit(k,new i(m,this.editor));};this.onMouseWheel=function(k,l){var m=new i(l,this.editor);m.speed=this.$scrollSpeed*2;
m.wheelX=l.wheelX;m.wheelY=l.wheelY;this.editor._emit(k,m);};this.setState=function(k){this.state=k;};this.captureMouse=function(n,p){if(p){this.setState(p);
}this.x=n.x;this.y=n.y;var o=this.editor.renderer;if(o.$keepTextAreaAtCursor){o.$keepTextAreaAtCursor=null;}var l=this;var r=function(s){l.x=s.clientX;
l.y=s.clientY;};var q=function(s){clearInterval(k);l[l.state+"End"]&&l[l.state+"End"](s);l.$clickSelection=null;if(o.$keepTextAreaAtCursor==null){o.$keepTextAreaAtCursor=true;
o.$moveTextAreaToCursor();}};var m=function(){l[l.state]&&l[l.state]();};if(d.isOldIE&&n.domEvent.type=="dblclick"){setTimeout(function(){m();q(n.domEvent);
});return;}a.capture(this.editor.container,r,q);var k=setInterval(m,20);};}).call(f.prototype);g.MouseHandler=f;});define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/useragent"],function(d,f,b){var e=d("../lib/dom");
var c=d("../lib/useragent");var i=5;function h(l){l.$clickSelection=null;var k=l.editor;k.setDefaultHandler("mousedown",this.onMouseDown.bind(l));k.setDefaultHandler("dblclick",this.onDoubleClick.bind(l));
k.setDefaultHandler("tripleclick",this.onTripleClick.bind(l));k.setDefaultHandler("quadclick",this.onQuadClick.bind(l));k.setDefaultHandler("mousewheel",this.onScroll.bind(l));
var j=["select","startSelect","drag","dragEnd","dragWait","dragWaitEnd","startDrag","focusWait"];j.forEach(function(m){l[m]=this[m];},this);l.selectByLines=this.extendSelectionBy.bind(l,"getLineRange");
l.selectByWords=this.extendSelectionBy.bind(l,"getWordRange");l.$focusWaitTimout=250;}(function(){this.onMouseDown=function(n){var l=n.inSelection();var p=n.getDocumentPosition();
this.mousedownEvent=n;var m=this.editor;var k=n.getButton();if(k!==0){var o=m.getSelectionRange();var j=o.isEmpty();if(j){m.moveCursorToPosition(p);m.selection.clearSelection();
}m.textInput.onContextMenu(n.domEvent);return;}if(l&&!m.isFocused()){m.focus();if(this.$focusWaitTimout&&!this.$clickSelection){this.setState("focusWait");
this.captureMouse(n);return n.preventDefault();}}if(!l||this.$clickSelection||n.getShiftKey()){this.startSelect(p);}else{if(l){this.mousedownEvent.time=(new Date()).getTime();
this.setState("dragWait");}}this.captureMouse(n);return n.preventDefault();};this.startSelect=function(j){j=j||this.editor.renderer.screenToTextCoordinates(this.x,this.y);
if(this.mousedownEvent.getShiftKey()){this.editor.selection.selectToPosition(j);}else{if(!this.$clickSelection){this.editor.moveCursorToPosition(j);this.editor.selection.clearSelection();
}}this.setState("select");};this.select=function(){var j,k=this.editor;var n=k.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var l=this.$clickSelection.comparePoint(n);
if(l==-1){j=this.$clickSelection.end;}else{if(l==1){j=this.$clickSelection.start;}else{var m=g(this.$clickSelection,n);n=m.cursor;j=m.anchor;}}k.selection.setSelectionAnchor(j.row,j.column);
}k.selection.selectToPosition(n);k.renderer.scrollCursorIntoView();};this.extendSelectionBy=function(k){var m,n=this.editor;var q=n.renderer.screenToTextCoordinates(this.x,this.y);
var l=n.selection[k](q.row,q.column);if(this.$clickSelection){var j=this.$clickSelection.comparePoint(l.start);var p=this.$clickSelection.comparePoint(l.end);
if(j==-1&&p<=0){m=this.$clickSelection.end;if(l.end.row!=q.row||l.end.column!=q.column){q=l.start;}}else{if(p==1&&j>=0){m=this.$clickSelection.start;if(l.start.row!=q.row||l.start.column!=q.column){q=l.end;
}}else{if(j==-1&&p==1){q=l.end;m=l.start;}else{var o=g(this.$clickSelection,q);q=o.cursor;m=o.anchor;}}}n.selection.setSelectionAnchor(m.row,m.column);
}n.selection.selectToPosition(q);n.renderer.scrollCursorIntoView();};this.startDrag=function(){var k=this.editor;this.setState("drag");this.dragRange=k.getSelectionRange();
var j=k.getSelectionStyle();this.dragSelectionMarker=k.session.addMarker(this.dragRange,"ace_selection",j);k.clearSelection();e.addCssClass(k.container,"ace_dragging");
if(!this.$dragKeybinding){this.$dragKeybinding={handleKeyboard:function(n,m,l,o){if(l=="esc"){return{command:this.command};}},command:{exec:function(m){var l=m.$mouseHandler;
l.dragCursor=null;l.dragEnd();l.startSelect();}}};}k.keyBinding.addKeyboardHandler(this.$dragKeybinding);};this.focusWait=function(){var k=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);
var j=(new Date()).getTime();if(k>i||j-this.mousedownEvent.time>this.$focusWaitTimout){this.startSelect();}};this.dragWait=function(l){var m=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);
var k=(new Date()).getTime();var j=this.editor;if(m>i){this.startSelect(this.mousedownEvent.getDocumentPosition());}else{if(k-this.mousedownEvent.time>j.getDragDelay()){this.startDrag();
}}};this.dragWaitEnd=function(j){this.mousedownEvent.domEvent=j;this.startSelect();};this.drag=function(){var j=this.editor;this.dragCursor=j.renderer.screenToTextCoordinates(this.x,this.y);
j.moveCursorToPosition(this.dragCursor);j.renderer.scrollCursorIntoView();};this.dragEnd=function(o){var m=this.editor;var j=this.dragCursor;var l=this.dragRange;
e.removeCssClass(m.container,"ace_dragging");m.session.removeMarker(this.dragSelectionMarker);m.keyBinding.removeKeyboardHandler(this.$dragKeybinding);
if(!j){return;}m.clearSelection();if(o&&(o.ctrlKey||o.altKey)){var n=m.session;var k=l;k.end=n.insert(j,n.getTextRange(l));k.start=j;}else{if(l.contains(j.row,j.column)){return;
}else{var k=m.moveText(l,j);}}if(!k){return;}m.selection.setSelectionRange(k);};this.onDoubleClick=function(l){var n=l.getDocumentPosition();var k=this.editor;
var m=k.session;var j=m.getBracketRange(n);if(j){if(j.isEmpty()){j.start.column--;j.end.column++;}this.$clickSelection=j;this.setState("select");return;
}this.$clickSelection=k.selection.getWordRange(n.row,n.column);this.setState("selectByWords");};this.onTripleClick=function(k){var l=k.getDocumentPosition();
var j=this.editor;this.setState("selectByLines");this.$clickSelection=j.selection.getLineRange(l.row);};this.onQuadClick=function(k){var j=this.editor;
j.selectAll();this.$clickSelection=j.getSelectionRange();this.setState("null");};this.onScroll=function(m){var l=this.editor;var k=l.renderer.isScrollableBy(m.wheelX*m.speed,m.wheelY*m.speed);
if(k){this.$passScrollEvent=false;}else{if(this.$passScrollEvent){return;}if(!this.$scrollStopTimeout){var j=this;this.$scrollStopTimeout=setTimeout(function(){j.$passScrollEvent=true;
j.$scrollStopTimeout=null;},200);}}l.renderer.scrollBy(m.wheelX*m.speed,m.wheelY*m.speed);return m.preventDefault();};}).call(h.prototype);f.DefaultHandlers=h;
function a(k,j,m,l){return Math.sqrt(Math.pow(m-k,2)+Math.pow(l-j,2));}function g(j,l){if(j.start.row==j.end.row){var k=2*l.column-j.start.column-j.end.column;
}else{var k=2*l.row-j.start.row-j.end.row;}if(k<0){return{cursor:j.start,anchor:j.end};}else{return{cursor:j.end,anchor:j.start};}}});define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/event"],function(c,b,d){var f=c("../lib/dom");
var e=c("../lib/event");function a(m){var j=m.editor;var h=j.renderer.$gutterLayer;m.editor.setDefaultHandler("guttermousedown",function(s){if(!j.isFocused()){return;
}var u=h.getRegion(s);if(u){return;}var t=s.getDocumentPosition().row;var r=j.session.selection;if(s.getShiftKey()){r.selectTo(t,0);}else{m.$clickSelection=j.selection.getLineRange(t);
}m.captureMouse(s,"selectByLines");return s.preventDefault();});var p,g,q,i;function n(){q=f.createElement("div");q.className="ace_gutter_tooltip";q.style.maxWidth="500px";
q.style.display="none";j.container.appendChild(q);}function o(){if(!q){n();}var t=g.getDocumentPosition().row;var r=h.$annotations[t];if(!r){return l();
}var v=j.session.getLength();if(t==v){var s=j.renderer.pixelToScreenCoordinates(0,g.y).row;var u=g.$pos;if(s>j.session.documentToScreenRow(u.row,u.column)){return l();
}}if(i==r){return;}i=r.text.join("\n");q.style.display="block";q.innerHTML=i;j.on("mousewheel",l);k(g);}function l(){if(p){p=clearTimeout(p);}if(i){q.style.display="none";
i=null;j.removeEventListener("mousewheel",l);}}function k(s){var r=j.renderer.$gutter.getBoundingClientRect();q.style.left=s.x-r.left+15+"px";if(s.y+3*j.renderer.lineHeight+15<r.bottom){q.style.bottom="";
q.style.top=s.y-r.top+15+"px";}else{q.style.top="";q.style.bottom=r.bottom-s.y+5+"px";}}m.editor.setDefaultHandler("guttermousemove",function(s){var r=s.domEvent.target||s.domEvent.srcElement;
if(f.hasCssClass(r,"ace_fold-widget")){return l();}if(i){k(s);}g=s;if(p){return;}p=setTimeout(function(){p=null;if(g){o();}else{l();}},50);});e.addListener(j.renderer.$gutter,"mouseout",function(r){g=null;
if(!i||p){return;}p=setTimeout(function(){p=null;l();},50);});}b.GutterHandler=a;});define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(c,b,d){var f=c("../lib/event");
var a=c("../lib/useragent");var e=b.MouseEvent=function(h,g){this.domEvent=h;this.editor=g;this.x=this.clientX=h.clientX;this.y=this.clientY=h.clientY;
this.$pos=null;this.$inSelection=null;this.propagationStopped=false;this.defaultPrevented=false;};(function(){this.stopPropagation=function(){f.stopPropagation(this.domEvent);
this.propagationStopped=true;};this.preventDefault=function(){f.preventDefault(this.domEvent);this.defaultPrevented=true;};this.stop=function(){this.stopPropagation();
this.preventDefault();};this.getDocumentPosition=function(){if(this.$pos){return this.$pos;}this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY);
return this.$pos;};this.inSelection=function(){if(this.$inSelection!==null){return this.$inSelection;}var g=this.editor;if(g.getReadOnly()){this.$inSelection=false;
}else{var i=g.getSelectionRange();if(i.isEmpty()){this.$inSelection=false;}else{var h=this.getDocumentPosition();this.$inSelection=i.contains(h.row,h.column);
}}return this.$inSelection;};this.getButton=function(){return f.getButton(this.domEvent);};this.getShiftKey=function(){return this.domEvent.shiftKey;};
this.getAccelKey=a.isMac?function(){return this.domEvent.metaKey;}:function(){return this.domEvent.ctrlKey;};}).call(e.prototype);});define("ace/mouse/dragdrop",["require","exports","module","ace/lib/event"],function(c,b,d){var e=c("../lib/event");
var a=function(n){var k=n.editor;var g,o,m;var h,j,p;var q,f=0;var l=k.container;e.addListener(l,"dragenter",function(s){f++;if(!g){j=k.getSelectionRange();
p=k.selection.isBackwards();var r=k.getSelectionStyle();g=k.session.addMarker(j,"ace_selection",r);k.clearSelection();clearInterval(h);h=setInterval(i,20);
}return e.preventDefault(s);});e.addListener(l,"dragover",function(r){o=r.clientX;m=r.clientY;return e.preventDefault(r);});var i=function(){q=k.renderer.screenToTextCoordinates(o,m);
k.moveCursorToPosition(q);k.renderer.scrollCursorIntoView();};e.addListener(l,"dragleave",function(r){f--;if(f>0){return;}clearInterval(h);k.session.removeMarker(g);
g=null;k.selection.setSelectionRange(j,p);return e.preventDefault(r);});e.addListener(l,"drop",function(r){f=0;clearInterval(h);k.session.removeMarker(g);
g=null;j.end=k.session.insert(q,r.dataTransfer.getData("Text"));j.start=q;k.focus();k.selection.setSelectionRange(j);return e.preventDefault(r);});};b.DragdropHandler=a;
});define("ace/mouse/fold_handler",["require","exports","module"],function(b,a,c){function d(e){e.on("click",function(i){var f=i.getDocumentPosition();
var h=e.session;var g=h.getFoldAt(f.row,f.column,1);if(g){if(i.getAccelKey()){h.removeFold(g);}else{h.expandFold(g);}i.stop();}});e.on("gutterclick",function(g){var i=e.renderer.$gutterLayer.getRegion(g);
if(i=="foldWidgets"){var h=g.getDocumentPosition().row;var f=e.session;if(f.foldWidgets&&f.foldWidgets[h]){e.session.onFoldWidgetClick(h,g);}g.stop();}});
}a.FoldHandler=d;});define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(c,a,d){var b=c("../lib/keys");
var e=c("../lib/event");var f=function(g){this.$editor=g;this.$data={};this.$handlers=[];this.setDefaultHandler(g.commands);};(function(){this.setDefaultHandler=function(g){this.removeKeyboardHandler(this.$defaultHandler);
this.$defaultHandler=g;this.addKeyboardHandler(g,0);this.$data={editor:this.$editor};};this.setKeyboardHandler=function(g){if(this.$handlers[this.$handlers.length-1]==g){return;
}while(this.$handlers[1]){this.removeKeyboardHandler(this.$handlers[1]);}this.addKeyboardHandler(g,1);};this.addKeyboardHandler=function(h,j){if(!h){return;
}var g=this.$handlers.indexOf(h);if(g!=-1){this.$handlers.splice(g,1);}if(j==undefined){this.$handlers.push(h);}else{this.$handlers.splice(j,0,h);}if(g==-1&&h.attach){h.attach(this.$editor);
}};this.removeKeyboardHandler=function(h){var g=this.$handlers.indexOf(h);if(g==-1){return false;}this.$handlers.splice(g,1);h.detach&&h.detach(this.$editor);
return true;};this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1];};this.$callKeyboardHandlers=function(l,h,n,m){var k;for(var j=this.$handlers.length;
j--;){k=this.$handlers[j].handleKeyboard(this.$data,l,h,n,m);if(k&&k.command){break;}}if(!k||!k.command){return false;}var o=false;var g=this.$editor.commands;
if(k.command!="null"){o=g.exec(k.command,this.$editor,k.args,m);}else{o=k.passEvent!=true;}if(o&&m&&l!=-1){e.stopEvent(m);}return o;};this.onCommandKey=function(j,h,i){var g=b.keyCodeToString(i);
this.$callKeyboardHandlers(h,g,i,j);};this.onTextInput=function(h){var g=this.$callKeyboardHandlers(-1,h);if(!g){this.$editor.commands.exec("insertstring",this.$editor,h);
}};}).call(f.prototype);a.KeyBinding=f;});define("ace/edit_session",["require","exports","module","ace/config","ace/lib/oop","ace/lib/lang","ace/lib/net","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(g,i,c){var e=g("./config");
var l=g("./lib/oop");var b=g("./lib/lang");var m=g("./lib/net");var o=g("./lib/event_emitter").EventEmitter;var n=g("./selection").Selection;var h=g("./mode/text").Mode;
var f=g("./range").Range;var j=g("./document").Document;var d=g("./background_tokenizer").BackgroundTokenizer;var k=g("./search_highlight").SearchHighlight;
var a=function(q,p){this.$modified=true;this.$breakpoints=[];this.$decorations=[];this.$frontMarkers={};this.$backMarkers={};this.$markerId=1;this.$resetRowCache(0);
this.$wrapData=[];this.$foldData=[];this.$rowLengthCache=[];this.$undoSelect=true;this.$foldData.toString=function(){var r="";this.forEach(function(s){r+="\n"+s.toString();
});return r;};if(typeof q=="object"&&q.getLine){this.setDocument(q);}else{this.setDocument(new j(q));}this.selection=new n(this);this.setMode(p);};(function(){l.implement(this,o);
this.setDocument=function(y){if(this.doc){throw new Error("Document is already set");}this.doc=y;y.on("change",this.onChange.bind(this));this.on("changeFold",this.onChangeFold.bind(this));
if(this.bgTokenizer){this.bgTokenizer.setDocument(this.getDocument());this.bgTokenizer.start(0);}};this.getDocument=function(){return this.doc;};this.$resetRowCache=function(z){if(!z){this.$docRowCache=[];
this.$screenRowCache=[];return;}var A=this.$getRowCacheIndex(this.$docRowCache,z)+1;var y=this.$docRowCache.length;this.$docRowCache.splice(A,y);this.$screenRowCache.splice(A,y);
};this.$getRowCacheIndex=function(z,C){var y=0;var B=z.length-1;while(y<=B){var A=(y+B)>>1;var D=z[A];if(C>D){y=A+1;}else{if(C<D){B=A-1;}else{return A;
}}}return y&&y-1;};this.onChangeFold=function(z){var y=z.data;this.$resetRowCache(y.start.row);};this.onChange=function(z){var A=z.data;this.$modified=true;
this.$resetRowCache(A.range.start.row);var y=this.$updateInternalDataOnChange(z);if(!this.$fromUndo&&this.$undoManager&&!A.ignore){this.$deltasDoc.push(A);
if(y&&y.length!=0){this.$deltasFold.push({action:"removeFolds",folds:y});}this.$informUndoManager.schedule();}this.bgTokenizer.$updateOnChange(A);this._emit("change",z);
};this.setValue=function(y){this.doc.setValue(y);this.selection.moveCursorTo(0,0);this.selection.clearSelection();this.$resetRowCache(0);this.$deltas=[];
this.$deltasDoc=[];this.$deltasFold=[];this.getUndoManager().reset();};this.getValue=this.toString=function(){return this.doc.getValue();};this.getSelection=function(){return this.selection;
};this.getState=function(y){return this.bgTokenizer.getState(y);};this.getTokens=function(y){return this.bgTokenizer.getTokens(y);};this.getTokenAt=function(C,A){var B=this.bgTokenizer.getTokens(C);
var z,D=0;if(A==null){y=B.length-1;D=this.getLine(C).length;}else{for(var y=0;y<B.length;y++){D+=B[y].value.length;if(D>=A){break;}}}z=B[y];if(!z){return null;
}z.index=y;z.start=D-z.value.length;return z;};this.highlight=function(z){if(!this.$searchHighlight){var y=new k(null,"ace_selected_word","text");this.$searchHighlight=this.addDynamicMarker(y);
}this.$searchHighlight.setRegexp(z);};this.setUndoManager=function(z){this.$undoManager=z;this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];if(this.$informUndoManager){this.$informUndoManager.cancel();
}if(z){var y=this;this.$syncInformUndoManager=function(){y.$informUndoManager.cancel();if(y.$deltasFold.length){y.$deltas.push({group:"fold",deltas:y.$deltasFold});
y.$deltasFold=[];}if(y.$deltasDoc.length){y.$deltas.push({group:"doc",deltas:y.$deltasDoc});y.$deltasDoc=[];}if(y.$deltas.length>0){z.execute({action:"aceupdate",args:[y.$deltas,y]});
}y.$deltas=[];};this.$informUndoManager=b.deferredCall(this.$syncInformUndoManager);}};this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}};
this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager;},this.getTabString=function(){if(this.getUseSoftTabs()){return b.stringRepeat(" ",this.getTabSize());
}else{return"\t";}};this.$useSoftTabs=true;this.setUseSoftTabs=function(y){if(this.$useSoftTabs===y){return;}this.$useSoftTabs=y;};this.getUseSoftTabs=function(){return this.$useSoftTabs;
};this.$tabSize=4;this.setTabSize=function(y){if(isNaN(y)||this.$tabSize===y){return;}this.$modified=true;this.$rowLengthCache=[];this.$tabSize=y;this._emit("changeTabSize");
};this.getTabSize=function(){return this.$tabSize;};this.isTabStop=function(y){return this.$useSoftTabs&&(y.column%this.$tabSize==0);};this.$overwrite=false;
this.setOverwrite=function(y){if(this.$overwrite==y){return;}this.$overwrite=y;this._emit("changeOverwrite");};this.getOverwrite=function(){return this.$overwrite;
};this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite);};this.addGutterDecoration=function(z,y){if(!this.$decorations[z]){this.$decorations[z]="";
}this.$decorations[z]+=" "+y;this._emit("changeBreakpoint",{});};this.removeGutterDecoration=function(z,y){this.$decorations[z]=(this.$decorations[z]||"").replace(" "+y,"");
this._emit("changeBreakpoint",{});};this.getBreakpoints=function(){return this.$breakpoints;};this.setBreakpoints=function(z){this.$breakpoints=[];for(var y=0;
y<z.length;y++){this.$breakpoints[z[y]]="ace_breakpoint";}this._emit("changeBreakpoint",{});};this.clearBreakpoints=function(){this.$breakpoints=[];this._emit("changeBreakpoint",{});
};this.setBreakpoint=function(z,y){if(y===undefined){y="ace_breakpoint";}if(y){this.$breakpoints[z]=y;}else{delete this.$breakpoints[z];}this._emit("changeBreakpoint",{});
};this.clearBreakpoint=function(y){delete this.$breakpoints[y];this._emit("changeBreakpoint",{});};this.addMarker=function(A,B,C,z){var D=this.$markerId++;
var y={range:A,type:C||"line",renderer:typeof C=="function"?C:null,clazz:B,inFront:!!z,id:D};if(z){this.$frontMarkers[D]=y;this._emit("changeFrontMarker");
}else{this.$backMarkers[D]=y;this._emit("changeBackMarker");}return D;};this.addDynamicMarker=function(y,z){if(!y.update){return;}var A=this.$markerId++;
y.id=A;y.inFront=!!z;if(z){this.$frontMarkers[A]=y;this._emit("changeFrontMarker");}else{this.$backMarkers[A]=y;this._emit("changeBackMarker");}return y;
};this.removeMarker=function(z){var y=this.$frontMarkers[z]||this.$backMarkers[z];if(!y){return;}var A=y.inFront?this.$frontMarkers:this.$backMarkers;if(y){delete (A[z]);
this._emit(y.inFront?"changeFrontMarker":"changeBackMarker");}};this.getMarkers=function(y){return y?this.$frontMarkers:this.$backMarkers;};this.setAnnotations=function(A){this.$annotations={};
for(var z=0;z<A.length;z++){var y=A[z];var B=y.row;if(this.$annotations[B]){this.$annotations[B].push(y);}else{this.$annotations[B]=[y];}}this._emit("changeAnnotation",{});
};this.getAnnotations=function(){return this.$annotations||{};};this.clearAnnotations=function(){this.$annotations={};this._emit("changeAnnotation",{});
};this.$detectNewLine=function(z){var y=z.match(/^.*?(\r?\n)/m);if(y){this.$autoNewLine=y[1];}else{this.$autoNewLine="\n";}};this.getWordRange=function(D,C){var A=this.getLine(D);
var y=false;if(C>0){y=!!A.charAt(C-1).match(this.tokenRe);}if(!y){y=!!A.charAt(C).match(this.tokenRe);}if(y){var B=this.tokenRe;}else{if(/^\s+$/.test(A.slice(C-1,C+1))){var B=/\s/;
}else{var B=this.nonTokenRe;}}var E=C;if(E>0){do{E--;}while(E>=0&&A.charAt(E).match(B));E++;}var z=C;while(z<A.length&&A.charAt(z).match(B)){z++;}return new f(D,E,D,z);
};this.getAWordRange=function(A,z){var B=this.getWordRange(A,z);var y=this.getLine(B.end.row);while(y.charAt(B.end.column).match(/[ \t]/)){B.end.column+=1;
}return B;};this.setNewLineMode=function(y){this.doc.setNewLineMode(y);};this.getNewLineMode=function(){return this.doc.getNewLineMode();};this.$useWorker=true;
this.setUseWorker=function(y){if(this.$useWorker==y){return;}this.$useWorker=y;this.$stopWorker();if(y){this.$startWorker();}};this.getUseWorker=function(){return this.$useWorker;
};this.onReloadTokenizer=function(z){var y=z.data;this.bgTokenizer.start(y.first);this._emit("tokenizerUpdate",z);};this.$modes={};this._loadMode=function(D,E){if(!this.$modes["null"]){this.$modes["null"]=this.$modes["ace/mode/text"]=new h();
}if(this.$modes[D]){return E(this.$modes[D]);}var y=this;var B;try{B=g(D);}catch(C){}if(B&&B.Mode){return z(B);}if(!this.$mode){this.$setModePlaceholder();
}A(D,function(){g([D],z);});function z(F){if(y.$modes[D]){return E(y.$modes[D]);}y.$modes[D]=new F.Mode();y.$modes[D].$id=D;y._emit("loadmode",{name:D,mode:y.$modes[D]});
E(y.$modes[D]);}function A(F,G){if(!e.get("packaged")){return G();}m.loadScript(e.moduleUrl(F,"mode"),G);}};this.$setModePlaceholder=function(){this.$mode=this.$modes["null"];
var z=this.$mode.getTokenizer();if(!this.bgTokenizer){this.bgTokenizer=new d(z);var y=this;this.bgTokenizer.addEventListener("update",function(A){y._emit("tokenizerUpdate",A);
});}else{this.bgTokenizer.setTokenizer(z);}this.bgTokenizer.setDocument(this.getDocument());this.tokenRe=this.$mode.tokenRe;this.nonTokenRe=this.$mode.nonTokenRe;
};this.$mode=null;this.$modeId=null;this.setMode=function(B){B=B||"null";if(typeof B==="string"){if(this.$modeId==B){return;}this.$modeId=B;var y=this;
this._loadMode(B,function(C){if(y.$modeId!==B){return;}y.setMode(C);});return;}if(this.$mode===B){return;}this.$mode=B;this.$modeId=B.$id;this.$stopWorker();
if(this.$useWorker){this.$startWorker();}var A=B.getTokenizer();if(A.addEventListener!==undefined){var z=this.onReloadTokenizer.bind(this);A.addEventListener("update",z);
}if(!this.bgTokenizer){this.bgTokenizer=new d(A);var y=this;this.bgTokenizer.addEventListener("update",function(C){y._emit("tokenizerUpdate",C);});}else{this.bgTokenizer.setTokenizer(A);
}this.bgTokenizer.setDocument(this.getDocument());this.bgTokenizer.start(0);this.tokenRe=B.tokenRe;this.nonTokenRe=B.nonTokenRe;this.$setFolding(B.foldingRules);
this._emit("changeMode");};this.$stopWorker=function(){if(this.$worker){this.$worker.terminate();}this.$worker=null;};this.$startWorker=function(){if(typeof Worker!=="undefined"&&!g.noWorker){try{this.$worker=this.$mode.createWorker(this);
}catch(y){console.log("Could not load worker");console.log(y);this.$worker=null;}}else{this.$worker=null;}};this.getMode=function(){return this.$mode;};
this.$scrollTop=0;this.setScrollTop=function(y){y=Math.round(Math.max(0,y));if(this.$scrollTop===y){return;}this.$scrollTop=y;this._emit("changeScrollTop",y);
};this.getScrollTop=function(){return this.$scrollTop;};this.$scrollLeft=0;this.setScrollLeft=function(y){y=Math.round(Math.max(0,y));if(this.$scrollLeft===y){return;
}this.$scrollLeft=y;this._emit("changeScrollLeft",y);};this.getScrollLeft=function(){return this.$scrollLeft;};this.getScreenWidth=function(){this.$computeWidth();
return this.screenWidth;};this.$computeWidth=function(z){if(this.$modified||z){this.$modified=false;if(this.$useWrapMode){return this.screenWidth=this.$wrapLimit;
}var G=this.doc.getAllLines();var y=this.$rowLengthCache;var A=0;var F=0;var E=this.$foldData[F];var C=E?E.start.row:Infinity;var D=G.length;for(var B=0;
B<D;B++){if(B>C){B=E.end.row+1;if(B>=D){break;}E=this.$foldData[F++];C=E?E.start.row:Infinity;}if(y[B]==null){y[B]=this.$getStringScreenWidth(G[B])[0];
}if(y[B]>A){A=y[B];}}this.screenWidth=A;}};this.getLine=function(y){return this.doc.getLine(y);};this.getLines=function(z,y){return this.doc.getLines(z,y);
};this.getLength=function(){return this.doc.getLength();};this.getTextRange=function(y){return this.doc.getTextRange(y||this.selection.getRange());};this.insert=function(y,z){return this.doc.insert(y,z);
};this.remove=function(y){return this.doc.remove(y);};this.undoChanges=function(B,A){if(!B.length){return;}this.$fromUndo=true;var y=null;for(var z=B.length-1;
z!=-1;z--){var C=B[z];if(C.group=="doc"){this.doc.revertDeltas(C.deltas);y=this.$getUndoSelection(C.deltas,true,y);}else{C.deltas.forEach(function(D){this.addFolds(D.folds);
},this);}}this.$fromUndo=false;y&&this.$undoSelect&&!A&&this.selection.setSelectionRange(y);return y;};this.redoChanges=function(B,A){if(!B.length){return;
}this.$fromUndo=true;var y=null;for(var z=0;z<B.length;z++){var C=B[z];if(C.group=="doc"){this.doc.applyDeltas(C.deltas);y=this.$getUndoSelection(C.deltas,false,y);
}}this.$fromUndo=false;y&&this.$undoSelect&&!A&&this.selection.setSelectionRange(y);return y;};this.setUndoSelect=function(y){this.$undoSelect=y;};this.$getUndoSelection=function(y,z,F){function C(J){var I=J.action=="insertText"||J.action=="insertLines";
return z?!I:I;}var H=y[0];var B,G;var D=false;if(C(H)){B=H.range.clone();D=true;}else{B=f.fromPoints(H.range.start,H.range.start);D=false;}for(var A=1;
A<y.length;A++){H=y[A];if(C(H)){G=H.range.start;if(B.compare(G.row,G.column)==-1){B.setStart(H.range.start);}G=H.range.end;if(B.compare(G.row,G.column)==1){B.setEnd(H.range.end);
}D=true;}else{G=H.range.start;if(B.compare(G.row,G.column)==-1){B=f.fromPoints(H.range.start,H.range.start);}D=false;}}if(F!=null){var E=F.compareRange(B);
if(E==1){B.setStart(F.start);}else{if(E==-1){B.setEnd(F.end);}}}return B;},this.replace=function(y,z){return this.doc.replace(y,z);};this.moveText=function(C,D){var E=this.getTextRange(C);
this.remove(C);var F=D.row;var B=D.column;if(!C.isMultiLine()&&C.start.row==F&&C.end.column<B){B-=E.length;}if(C.isMultiLine()&&C.end.row<F){var G=this.doc.$split(E);
F-=G.length-1;}var z=F+C.end.row-C.start.row;var A=C.isMultiLine()?C.end.column:B+C.end.column-C.start.column;var y=new f(F,B,z,A);this.insert(y.start,E);
return y;};this.indentRows=function(z,y,B){B=B.replace(/\t/g,this.getTabString());for(var A=z;A<=y;A++){this.insert({row:A,column:0},B);}};this.outdentRows=function(A){var E=A.collapseRows();
var z=new f(0,0,0,0);var D=this.getTabSize();for(var C=E.start.row;C<=E.end.row;++C){var y=this.getLine(C);z.start.row=C;z.end.row=C;for(var B=0;B<D;++B){if(y.charAt(B)!=" "){break;
}}if(B<D&&y.charAt(B)=="\t"){z.start.column=B;z.end.column=B+1;}else{z.start.column=0;z.end.column=B;}this.remove(z);}};this.moveLinesUp=function(A,y){if(A<=0){return 0;
}var z=this.doc.removeLines(A,y);this.doc.insertLines(A-1,z);return -1;};this.moveLinesDown=function(A,y){if(y>=this.doc.getLength()-1){return 0;}var z=this.doc.removeLines(A,y);
this.doc.insertLines(A+1,z);return 1;};this.duplicateLines=function(B,A){var B=this.$clipRowToDocument(B);var A=this.$clipRowToDocument(A);var y=this.getLines(B,A);
this.doc.insertLines(B,y);var z=A-B+1;return z;};this.$clipRowToDocument=function(y){return Math.max(0,Math.min(y,this.doc.getLength()-1));};this.$clipColumnToRow=function(z,y){if(y<0){return 0;
}return Math.min(this.doc.getLine(z).length,y);};this.$clipPositionToDocument=function(A,z){z=Math.max(0,z);if(A<0){A=0;z=0;}else{var y=this.doc.getLength();
if(A>=y){A=y-1;z=this.doc.getLine(y-1).length;}else{z=Math.min(this.doc.getLine(A).length,z);}}return{row:A,column:z};};this.$clipRangeToDocument=function(z){if(z.start.row<0){z.start.row=0;
z.start.column=0;}else{z.start.column=this.$clipColumnToRow(z.start.row,z.start.column);}var y=this.doc.getLength()-1;if(z.end.row>y){z.end.row=y;z.end.column=this.doc.getLine(y).length;
}else{z.end.column=this.$clipColumnToRow(z.end.row,z.end.column);}return z;};this.$wrapLimit=80;this.$useWrapMode=false;this.$wrapLimitRange={min:null,max:null};
this.setUseWrapMode=function(A){if(A!=this.$useWrapMode){this.$useWrapMode=A;this.$modified=true;this.$resetRowCache(0);if(A){var y=this.getLength();this.$wrapData=[];
for(var z=0;z<y;z++){this.$wrapData.push([]);}this.$updateWrapData(0,y-1);}this._emit("changeWrapMode");}};this.getUseWrapMode=function(){return this.$useWrapMode;
};this.setWrapLimitRange=function(z,y){if(this.$wrapLimitRange.min!==z||this.$wrapLimitRange.max!==y){this.$wrapLimitRange.min=z;this.$wrapLimitRange.max=y;
this.$modified=true;this._emit("changeWrapMode");}};this.adjustWrapLimit=function(z){var y=this.$constrainWrapLimit(z);if(y!=this.$wrapLimit&&y>0){this.$wrapLimit=y;
this.$modified=true;if(this.$useWrapMode){this.$updateWrapData(0,this.getLength()-1);this.$resetRowCache(0);this._emit("changeWrapLimit");}return true;
}return false;};this.$constrainWrapLimit=function(z){var A=this.$wrapLimitRange.min;if(A){z=Math.max(A,z);}var y=this.$wrapLimitRange.max;if(y){z=Math.min(y,z);
}return Math.max(1,z);};this.getWrapLimit=function(){return this.$wrapLimit;};this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max};
};this.$updateInternalDataOnChange=function(H){var E=this.$useWrapMode;var G;var C=H.data.action;var B=H.data.range.start.row;var N=H.data.range.end.row;
var z=H.data.range.start;var D=H.data.range.end;var y=null;if(C.indexOf("Lines")!=-1){if(C=="insertLines"){N=B+(H.data.lines.length);}else{N=B;}G=H.data.lines?H.data.lines.length:N-B;
}else{G=N-B;}if(G!=0){if(C.indexOf("remove")!=-1){this[E?"$wrapData":"$rowLengthCache"].splice(B,G);var A=this.$foldData;y=this.getFoldsInRange(H.data.range);
this.removeFolds(y);var L=this.getFoldLine(D.row);var M=0;if(L){L.addRemoveChars(D.row,D.column,z.column-D.column);L.shiftRow(-G);var K=this.getFoldLine(B);
if(K&&K!==L){K.merge(L);L=K;}M=A.indexOf(L)+1;}for(M;M<A.length;M++){var L=A[M];if(L.start.row>=D.row){L.shiftRow(-G);}}N=B;}else{var I;if(E){I=[B,0];for(var F=0;
F<G;F++){I.push([]);}this.$wrapData.splice.apply(this.$wrapData,I);}else{I=Array(G);I.unshift(B,0);this.$rowLengthCache.splice.apply(this.$rowLengthCache,I);
}var A=this.$foldData;var L=this.getFoldLine(B);var M=0;if(L){var J=L.range.compareInside(z.row,z.column);if(J==0){L=L.split(z.row,z.column);L.shiftRow(G);
L.addRemoveChars(N,0,D.column-z.column);}else{if(J==-1){L.addRemoveChars(B,0,D.column-z.column);L.shiftRow(G);}}M=A.indexOf(L)+1;}for(M;M<A.length;M++){var L=A[M];
if(L.start.row>=B){L.shiftRow(G);}}}}else{G=Math.abs(H.data.range.start.column-H.data.range.end.column);if(C.indexOf("remove")!=-1){y=this.getFoldsInRange(H.data.range);
this.removeFolds(y);G=-G;}var L=this.getFoldLine(B);if(L){L.addRemoveChars(B,z.column,G);}}if(E&&this.$wrapData.length!=this.doc.getLength()){console.error("doc.getLength() and $wrapData.length have to be the same!");
}if(E){this.$updateWrapData(B,N);}else{this.$updateRowLengthCache(B,N);}return y;};this.$updateRowLengthCache=function(A,z,y){this.$rowLengthCache[A]=null;
this.$rowLengthCache[z]=null;};this.$updateWrapData=function(y,E){var G=this.doc.getAllLines();var A=this.getTabSize();var z=this.$wrapData;var F=this.$wrapLimit;
var B;var C;var D=y;E=Math.min(E,G.length-1);while(D<=E){C=this.getFoldLine(D,C);if(!C){B=this.$getDisplayTokens(b.stringTrimRight(G[D]));z[D]=this.$computeWrapSplits(B,F,A);
D++;}else{B=[];C.walk(function(M,L,K,H){var I;if(M){I=this.$getDisplayTokens(M,B.length);I[0]=v;for(var J=1;J<I.length;J++){I[J]=p;}}else{I=this.$getDisplayTokens(G[L].substring(H,K),B.length);
}B=B.concat(I);}.bind(this),C.end.row,G[C.end.row].length+1);while(B.length!=0&&B[B.length-1]>=t){B.pop();}z[C.start.row]=this.$computeWrapSplits(B,F,A);
D=C.end.row+1;}}};var x=1,w=2,v=3,p=4,s=9,t=10,u=11,q=12;this.$computeWrapSplits=function(C,G){if(C.length==0){return[];}var E=[];var z=C.length;var B=0,y=0;
function F(J){var I=C.slice(B,J);var H=I.length;I.join("").replace(/12/g,function(){H-=1;}).replace(/2/g,function(){H-=1;});y+=H;E.push(y);B=J;}while(z-B>G){var D=B+G;
if(C[D]>=t){while(C[D]>=t){D++;}F(D);continue;}if(C[D]==v||C[D]==p){for(D;D!=B-1;D--){if(C[D]==v){break;}}if(D>B){F(D);continue;}D=B+G;for(D;D<C.length;
D++){if(C[D]!=p){break;}}if(D==C.length){break;}F(D);continue;}var A=Math.max(D-10,B-1);while(D>A&&C[D]<v){D--;}while(D>A&&C[D]==s){D--;}if(D>A){F(++D);
continue;}D=B+G;F(D);}return E;};this.$getDisplayTokens=function(C,B){var y=[];var A;B=B||0;for(var z=0;z<C.length;z++){var E=C.charCodeAt(z);if(E==9){A=this.getScreenTabSize(y.length+B);
y.push(u);for(var D=1;D<A;D++){y.push(q);}}else{if(E==32){y.push(t);}else{if((E>39&&E<48)||(E>57&&E<64)){y.push(s);}else{if(E>=4352&&r(E)){y.push(x,w);
}else{y.push(x);}}}}}return y;};this.$getStringScreenWidth=function(A,C,y){if(C==0){return[0,0];}if(C==null){C=Infinity;}y=y||0;var B,z;for(z=0;z<A.length;
z++){B=A.charCodeAt(z);if(B==9){y+=this.getScreenTabSize(y);}else{if(B>=4352&&r(B)){y+=2;}else{y+=1;}}if(y>C){break;}}return[y,z];};this.getRowLength=function(y){if(!this.$useWrapMode||!this.$wrapData[y]){return 1;
}else{return this.$wrapData[y].length+1;}};this.getScreenLastRowColumn=function(y){var z=this.screenToDocumentPosition(y,Number.MAX_VALUE);return this.documentToScreenColumn(z.row,z.column);
};this.getDocumentLastRowColumn=function(y,A){var z=this.documentToScreenRow(y,A);return this.getScreenLastRowColumn(z);};this.getDocumentLastRowColumnPosition=function(y,A){var z=this.documentToScreenRow(y,A);
return this.screenToDocumentPosition(z,Number.MAX_VALUE/10);};this.getRowSplitData=function(y){if(!this.$useWrapMode){return undefined;}else{return this.$wrapData[y];
}};this.getScreenTabSize=function(y){return this.$tabSize-y%this.$tabSize;};this.screenToDocumentRow=function(z,y){return this.screenToDocumentPosition(z,y).row;
};this.screenToDocumentColumn=function(z,y){return this.screenToDocumentPosition(z,y).column;};this.screenToDocumentPosition=function(G,H){if(G<0){return{row:0,column:0};
}var M;var A=0;var D=0;var B;var L=0;var C=0;var z=this.$screenRowCache;var F=this.$getRowCacheIndex(z,G);if(0<F&&F<z.length){var L=z[F];var A=this.$docRowCache[F];
var y=G>L||(G==L&&F==z.length-1);}else{var y=F!=0||!z.length;}var I=this.getLength()-1;var J=this.getNextFoldLine(A);var E=J?J.start.row:Infinity;while(L<=G){C=this.getRowLength(A);
if(L+C-1>=G||A>=I){break;}else{L+=C;A++;if(A>E){A=J.end.row+1;J=this.getNextFoldLine(A,J);E=J?J.start.row:Infinity;}}if(y){this.$docRowCache.push(A);this.$screenRowCache.push(L);
}}if(J&&J.start.row<=A){M=this.getFoldDisplayLine(J);A=J.start.row;}else{if(L+C<=G||A>I){return{row:I,column:this.getLine(I).length};}else{M=this.getLine(A);
J=null;}}if(this.$useWrapMode){var K=this.$wrapData[A];if(K){B=K[G-L];if(G>L&&K.length){D=K[G-L-1]||K[K.length-1];M=M.substring(D);}}}D+=this.$getStringScreenWidth(M,H)[1];
if(this.$useWrapMode&&D>=B){D=B-1;}if(J){return J.idxToPosition(D);}return{row:A,column:D};};this.documentToScreenPosition=function(B,C){if(typeof C==="undefined"){var K=this.$clipPositionToDocument(B.row,B.column);
}else{K=this.$clipPositionToDocument(B,C);}B=K.row;C=K.column;var G=0;var F=null;var H=null;H=this.getFoldAt(B,C,1);if(H){B=H.start.row;C=H.start.column;
}var I,N=0;var A=this.$docRowCache;var E=this.$getRowCacheIndex(A,B);if(0<E&&E<A.length){var N=A[E];var G=this.$screenRowCache[E];var z=B>N||(B==N&&E==A.length-1);
}else{var z=E!=0||!A.length;}var L=this.getNextFoldLine(N);var D=L?L.start.row:Infinity;while(N<B){if(N>=D){I=L.end.row+1;if(I>B){break;}L=this.getNextFoldLine(I,L);
D=L?L.start.row:Infinity;}else{I=N+1;}G+=this.getRowLength(N);N=I;if(z){this.$docRowCache.push(N);this.$screenRowCache.push(G);}}var y="";if(L&&N>=D){y=this.getFoldDisplayLine(L,B,C);
F=L.start.row;}else{y=this.getLine(B).substring(0,C);F=B;}if(this.$useWrapMode){var M=this.$wrapData[F];var J=0;while(y.length>=M[J]){G++;J++;}y=y.substring(M[J-1]||0,y.length);
}return{row:G,column:this.$getStringScreenWidth(y)[0]};};this.documentToScreenColumn=function(z,y){return this.documentToScreenPosition(z,y).column;};this.documentToScreenRow=function(y,z){return this.documentToScreenPosition(y,z).row;
};this.getScreenLength=function(){var D=0;var z=null;if(!this.$useWrapMode){D=this.getLength();var B=this.$foldData;for(var A=0;A<B.length;A++){z=B[A];
D-=z.end.row-z.start.row;}}else{var C=this.$wrapData.length;var E=0,A=0;var z=this.$foldData[A++];var y=z?z.start.row:Infinity;while(E<C){D+=this.$wrapData[E].length+1;
E++;if(E>y){E=z.end.row+1;z=this.$foldData[A++];y=z?z.start.row:Infinity;}}}return D;};function r(y){if(y<4352){return false;}return y>=4352&&y<=4447||y>=4515&&y<=4519||y>=4602&&y<=4607||y>=9001&&y<=9002||y>=11904&&y<=11929||y>=11931&&y<=12019||y>=12032&&y<=12245||y>=12272&&y<=12283||y>=12288&&y<=12350||y>=12353&&y<=12438||y>=12441&&y<=12543||y>=12549&&y<=12589||y>=12593&&y<=12686||y>=12688&&y<=12730||y>=12736&&y<=12771||y>=12784&&y<=12830||y>=12832&&y<=12871||y>=12880&&y<=13054||y>=13056&&y<=19903||y>=19968&&y<=42124||y>=42128&&y<=42182||y>=43360&&y<=43388||y>=44032&&y<=55203||y>=55216&&y<=55238||y>=55243&&y<=55291||y>=63744&&y<=64255||y>=65040&&y<=65049||y>=65072&&y<=65106||y>=65108&&y<=65126||y>=65128&&y<=65131||y>=65281&&y<=65376||y>=65504&&y<=65510;
}}).call(a.prototype);g("./edit_session/folding").Folding.call(a.prototype);g("./edit_session/bracket_match").BracketMatch.call(a.prototype);i.EditSession=a;
});define("ace/config",["require","exports","module","ace/lib/lang"],function(d,a,e){var g=d("./lib/lang");var f=(function(){return this;})();var c={packaged:false,workerPath:"",modePath:"",themePath:"",suffix:".js",$moduleUrls:{}};
a.get=function(h){if(!c.hasOwnProperty(h)){throw new Error("Unknown config key: "+h);}return c[h];};a.set=function(h,i){if(!c.hasOwnProperty(h)){throw new Error("Unknown config key: "+h);
}c[h]=i;};a.all=function(){return g.copyObject(c);};a.moduleUrl=function(i,h){if(c.$moduleUrls[i]){return c.$moduleUrls[i];}var k=i.split("/");h=h||k[k.length-2]||"";
var j=k[k.length-1].replace(h,"").replace(/(^[\-_])|([\-_]$)/,"");if(!j&&k.length>1){j=k[k.length-2];}return this.get(h+"Path")+"/"+h+"-"+j+this.get("suffix");
};a.setModuleUrl=function(h,i){return c.$moduleUrls[h]=i;};a.init=function(){c.packaged=d.packaged||e.packaged||(f.define&&define.packaged);if(!f.document){return"";
}var k={};var o="";var q=document.getElementsByTagName("script");for(var t=0;t<q.length;t++){var v=q[t];var h=v.src||v.getAttribute("src");if(!h){continue;
}var s=v.attributes;for(var r=0,p=s.length;r<p;r++){var u=s[r];if(u.name.indexOf("data-ace-")===0){k[b(u.name.replace(/^data-ace-/,""))]=u.value;}}var n=h.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);
if(n){o=n[1];}}if(o){k.base=k.base||o;k.packaged=true;}k.workerPath=k.workerPath||k.base;k.modePath=k.modePath||k.base;k.themePath=k.themePath||k.base;
delete k.base;for(var w in k){if(typeof k[w]!=="undefined"){a.set(w,k[w]);}}};function b(h){return h.replace(/-(.)/g,function(i,j){return j.toUpperCase();
});}});define("ace/lib/net",["require","exports","module","ace/lib/useragent"],function(d,c,e){var b=d("./useragent");c.get=function(f,h){var g=c.createXhr();
g.open("GET",f,true);g.onreadystatechange=function(i){if(g.readyState===4){h(g.responseText);}};g.send(null);};var a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];
c.createXhr=function(){var j,f,g;if(typeof XMLHttpRequest!=="undefined"){return new XMLHttpRequest();}else{for(f=0;f<3;f++){g=a[f];try{j=new ActiveXObject(g);
}catch(h){}if(j){a=[g];break;}}}if(!j){throw new Error("createXhr(): XMLHttpRequest not available");}return j;};c.loadScript=function(h,i){var f=document.getElementsByTagName("head")[0];
var g=document.createElement("script");g.src=h;f.appendChild(g);if(b.isOldIE){g.onreadystatechange=function(){this.readyState=="loaded"&&i();};}else{g.onload=i;
}};});define("ace/lib/event_emitter",["require","exports","module"],function(b,a,c){var d={};d._emit=d._dispatchEvent=function(f,k){this._eventRegistry=this._eventRegistry||{};
this._defaultHandlers=this._defaultHandlers||{};var j=this._eventRegistry[f]||[];var g=this._defaultHandlers[f];if(!j.length&&!g){return;}if(typeof k!="object"||!k){k={};
}if(!k.type){k.type=f;}if(!k.stopPropagation){k.stopPropagation=function(){this.propagationStopped=true;};}if(!k.preventDefault){k.preventDefault=function(){this.defaultPrevented=true;
};}for(var h=0;h<j.length;h++){j[h](k);if(k.propagationStopped){break;}}if(g&&!k.defaultPrevented){return g(k);}};d.setDefaultHandler=function(e,f){this._defaultHandlers=this._defaultHandlers||{};
if(this._defaultHandlers[e]){throw new Error("The default handler for '"+e+"' is already set");}this._defaultHandlers[e]=f;};d.on=d.addEventListener=function(e,g){this._eventRegistry=this._eventRegistry||{};
var f=this._eventRegistry[e];if(!f){f=this._eventRegistry[e]=[];}if(f.indexOf(g)==-1){f.push(g);}};d.removeListener=d.removeEventListener=function(e,h){this._eventRegistry=this._eventRegistry||{};
var g=this._eventRegistry[e];if(!g){return;}var f=g.indexOf(h);if(f!==-1){g.splice(f,1);}};d.removeAllListeners=function(e){if(this._eventRegistry){this._eventRegistry[e]=[];
}};a.EventEmitter=d;});define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(b,a,c){var f=b("./lib/oop");
var h=b("./lib/lang");var e=b("./lib/event_emitter").EventEmitter;var g=b("./range").Range;var d=function(j){this.session=j;this.doc=j.getDocument();this.clearSelection();
this.lead=this.selectionLead=this.doc.createAnchor(0,0);this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var i=this;this.lead.on("change",function(k){i._emit("changeCursor");
if(!i.$isEmpty){i._emit("changeSelection");}if(!i.$keepDesiredColumnOnChange&&k.old.column!=k.value.column){i.$desiredColumn=null;}});this.selectionAnchor.on("change",function(){if(!i.$isEmpty){i._emit("changeSelection");
}});};(function(){f.implement(this,e);this.isEmpty=function(){return(this.$isEmpty||(this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column));
};this.isMultiLine=function(){if(this.isEmpty()){return false;}return this.getRange().isMultiLine();};this.getCursor=function(){return this.lead.getPosition();
};this.setSelectionAnchor=function(j,i){this.anchor.setPosition(j,i);if(this.$isEmpty){this.$isEmpty=false;this._emit("changeSelection");}};this.getSelectionAnchor=function(){if(this.$isEmpty){return this.getSelectionLead();
}else{return this.anchor.getPosition();}};this.getSelectionLead=function(){return this.lead.getPosition();};this.shiftSelection=function(k){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+k);
return;}var j=this.getSelectionAnchor();var i=this.getSelectionLead();var l=this.isBackwards();if(!l||j.column!==0){this.setSelectionAnchor(j.row,j.column+k);
}if(l||i.column!==0){this.$moveSelection(function(){this.moveCursorTo(i.row,i.column+k);});}};this.isBackwards=function(){var j=this.anchor;var i=this.lead;
return(j.row>i.row||(j.row==i.row&&j.column>i.column));};this.getRange=function(){var j=this.anchor;var i=this.lead;if(this.isEmpty()){return g.fromPoints(i,i);
}if(this.isBackwards()){return g.fromPoints(i,j);}else{return g.fromPoints(j,i);}};this.clearSelection=function(){if(!this.$isEmpty){this.$isEmpty=true;
this._emit("changeSelection");}};this.selectAll=function(){var i=this.doc.getLength()-1;this.setSelectionAnchor(0,0);this.moveCursorTo(i,this.doc.getLine(i).length);
};this.setRange=this.setSelectionRange=function(i,j){if(j){this.setSelectionAnchor(i.end.row,i.end.column);this.selectTo(i.start.row,i.start.column);}else{this.setSelectionAnchor(i.start.row,i.start.column);
this.selectTo(i.end.row,i.end.column);}this.$desiredColumn=null;};this.$moveSelection=function(i){var j=this.lead;if(this.$isEmpty){this.setSelectionAnchor(j.row,j.column);
}i.call(this);};this.selectTo=function(j,i){this.$moveSelection(function(){this.moveCursorTo(j,i);});};this.selectToPosition=function(i){this.$moveSelection(function(){this.moveCursorToPosition(i);
});};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(k,i){if(typeof i=="undefined"){var j=k||this.lead;
k=j.row;i=j.column;}return this.session.getWordRange(k,i);};this.selectWord=function(){this.setSelectionRange(this.getWordRange());};this.selectAWord=function(){var j=this.getCursor();
var i=this.session.getAWordRange(j.row,j.column);this.setSelectionRange(i);};this.getLineRange=function(m,k){var i=typeof m=="number"?m:this.lead.row;var j;
var l=this.session.getFoldLine(i);if(l){i=l.start.row;j=l.end.row;}else{j=i;}if(k){return new g(i,0,j,this.session.getLine(j).length);}else{return new g(i,0,j+1,0);
}};this.selectLine=function(){this.setSelectionRange(this.getLineRange());};this.moveCursorUp=function(){this.moveCursorBy(-1,0);};this.moveCursorDown=function(){this.moveCursorBy(1,0);
};this.moveCursorLeft=function(){var k=this.lead.getPosition(),i;if(i=this.session.getFoldAt(k.row,k.column,-1)){this.moveCursorTo(i.start.row,i.start.column);
}else{if(k.column==0){if(k.row>0){this.moveCursorTo(k.row-1,this.doc.getLine(k.row-1).length);}}else{var j=this.session.getTabSize();if(this.session.isTabStop(k)&&this.doc.getLine(k.row).slice(k.column-j,k.column).split(" ").length-1==j){this.moveCursorBy(0,-j);
}else{this.moveCursorBy(0,-1);}}}};this.moveCursorRight=function(){var k=this.lead.getPosition(),i;if(i=this.session.getFoldAt(k.row,k.column,1)){this.moveCursorTo(i.end.row,i.end.column);
}else{if(this.lead.column==this.doc.getLine(this.lead.row).length){if(this.lead.row<this.doc.getLength()-1){this.moveCursorTo(this.lead.row+1,0);}}else{var j=this.session.getTabSize();
var k=this.lead;if(this.session.isTabStop(k)&&this.doc.getLine(k.row).slice(k.column,k.column+j).split(" ").length-1==j){this.moveCursorBy(0,j);}else{this.moveCursorBy(0,1);
}}}};this.moveCursorLineStart=function(){var n=this.lead.row;var k=this.lead.column;var j=this.session.documentToScreenRow(n,k);var i=this.session.screenToDocumentPosition(j,0);
var l=this.session.getDisplayLine(n,null,i.row,i.column);var m=l.match(/^\s*/);if(m[0].length==k){this.moveCursorTo(i.row,i.column);}else{this.moveCursorTo(i.row,i.column+m[0].length);
}};this.moveCursorLineEnd=function(){var j=this.lead;var l=this.session.getDocumentLastRowColumnPosition(j.row,j.column);if(this.lead.column==l.column){var i=this.session.getLine(l.row);
if(l.column==i.length){var k=i.search(/\s+$/);if(k>0){l.column=k;}}}this.moveCursorTo(l.row,l.column);};this.moveCursorFileEnd=function(){var j=this.doc.getLength()-1;
var i=this.doc.getLine(j).length;this.moveCursorTo(j,i);};this.moveCursorFileStart=function(){this.moveCursorTo(0,0);};this.moveCursorLongWordRight=function(){var n=this.lead.row;
var l=this.lead.column;var i=this.doc.getLine(n);var m=i.substring(l);var k;this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;var j=this.session.getFoldAt(n,l,1);
if(j){this.moveCursorTo(j.end.row,j.end.column);return;}if(k=this.session.nonTokenRe.exec(m)){l+=this.session.nonTokenRe.lastIndex;this.session.nonTokenRe.lastIndex=0;
m=i.substring(l);}if(l>=i.length){this.moveCursorTo(n,i.length);this.moveCursorRight();if(n<this.doc.getLength()-1){this.moveCursorWordRight();}return;
}if(k=this.session.tokenRe.exec(m)){l+=this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0;}this.moveCursorTo(n,l);};this.moveCursorLongWordLeft=function(){var n=this.lead.row;
var k=this.lead.column;var j;if(j=this.session.getFoldAt(n,k,-1)){this.moveCursorTo(j.start.row,j.start.column);return;}var m=this.session.getFoldStringAt(n,k,-1);
if(m==null){m=this.doc.getLine(n).substring(0,k);}var l=h.stringReverse(m);var i;this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;if(i=this.session.nonTokenRe.exec(l)){k-=this.session.nonTokenRe.lastIndex;
l=l.slice(this.session.nonTokenRe.lastIndex);this.session.nonTokenRe.lastIndex=0;}if(k<=0){this.moveCursorTo(n,0);this.moveCursorLeft();if(n>0){this.moveCursorWordLeft();
}return;}if(i=this.session.tokenRe.exec(l)){k-=this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0;}this.moveCursorTo(n,k);};this.$shortWordEndIndex=function(n){var j,i=0,m;
var l=/\s/;var k=this.session.tokenRe;k.lastIndex=0;if(j=this.session.tokenRe.exec(n)){i=this.session.tokenRe.lastIndex;}else{while((m=n[i])&&l.test(m)){i++;
}if(i<=1){k.lastIndex=0;while((m=n[i])&&!k.test(m)){k.lastIndex=0;i++;if(l.test(m)){if(i>2){i--;break;}else{while((m=n[i])&&l.test(m)){i++;}if(i>2){break;
}}}}}}k.lastIndex=0;return i;};this.moveCursorShortWordRight=function(){var p=this.lead.row;var n=this.lead.column;var j=this.doc.getLine(p);var o=j.substring(n);
var m=this.session.getFoldAt(p,n,1);if(m){return this.moveCursorTo(m.end.row,m.end.column);}if(n==j.length){var i=this.doc.getLength();do{p++;o=this.doc.getLine(p);
}while(p<i&&/^\s*$/.test(o));if(!/^\s+/.test(o)){o="";}n=0;}var k=this.$shortWordEndIndex(o);this.moveCursorTo(p,n+k);};this.moveCursorShortWordLeft=function(){var n=this.lead.row;
var l=this.lead.column;var k;if(k=this.session.getFoldAt(n,l,-1)){return this.moveCursorTo(k.start.row,k.start.column);}var i=this.session.getLine(n).substring(0,l);
if(l==0){do{n--;i=this.doc.getLine(n);}while(n>0&&/^\s*$/.test(i));l=i.length;if(!/\s+$/.test(i)){i="";}}var m=h.stringReverse(i);var j=this.$shortWordEndIndex(m);
return this.moveCursorTo(n,l-j);};this.moveCursorWordRight=function(){if(this.session.$selectLongWords){this.moveCursorLongWordRight();}else{this.moveCursorShortWordRight();
}};this.moveCursorWordLeft=function(){if(this.session.$selectLongWords){this.moveCursorLongWordLeft();}else{this.moveCursorShortWordLeft();}};this.moveCursorBy=function(l,k){var j=this.session.documentToScreenPosition(this.lead.row,this.lead.column);
if(k===0){if(this.$desiredColumn){j.column=this.$desiredColumn;}else{this.$desiredColumn=j.column;}}var i=this.session.screenToDocumentPosition(j.row+l,j.column);
this.moveCursorTo(i.row,i.column+k,k===0);};this.moveCursorToPosition=function(i){this.moveCursorTo(i.row,i.column);};this.moveCursorTo=function(l,k,i){var j=this.session.getFoldAt(l,k,1);
if(j){l=j.start.row;k=j.start.column;}this.$keepDesiredColumnOnChange=true;this.lead.setPosition(l,k);this.$keepDesiredColumnOnChange=false;if(!i){this.$desiredColumn=null;
}};this.moveCursorToScreen=function(k,j,i){var l=this.session.screenToDocumentPosition(k,j);this.moveCursorTo(l.row,l.column,i);};this.detach=function(){this.lead.detach();
this.anchor.detach();this.session=this.doc=null;};this.fromOrientedRange=function(i){this.setSelectionRange(i,i.cursor==i.start);this.$desiredColumn=i.desiredColumn||this.$desiredColumn;
};this.toOrientedRange=function(i){var j=this.getRange();if(i){i.start.column=j.start.column;i.start.row=j.start.row;i.end.column=j.end.column;i.end.row=j.end.row;
}else{i=j;}i.cursor=this.isBackwards()?i.start:i.end;i.desiredColumn=this.$desiredColumn;return i;};}).call(d.prototype);a.Selection=d;});define("ace/range",["require","exports","module"],function(b,a,c){var d=function(f,g,e,h){this.start={row:f,column:g};
this.end={row:e,column:h};};(function(){this.isEqual=function(e){return this.start.row==e.start.row&&this.end.row==e.end.row&&this.start.column==e.start.column&&this.end.column==e.end.column;
};this.toString=function(){return("Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]");};this.contains=function(f,e){return this.compare(f,e)==0;
};this.compareRange=function(f){var g,e=f.end,h=f.start;g=this.compare(e.row,e.column);if(g==1){g=this.compare(h.row,h.column);if(g==1){return 2;}else{if(g==0){return 1;
}else{return 0;}}}else{if(g==-1){return -2;}else{g=this.compare(h.row,h.column);if(g==-1){return -1;}else{if(g==1){return 42;}else{return 0;}}}}};this.comparePoint=function(e){return this.compare(e.row,e.column);
};this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0;};this.intersects=function(e){var f=this.compareRange(e);
return(f==-1||f==0||f==1);};this.isEnd=function(f,e){return this.end.row==f&&this.end.column==e;};this.isStart=function(f,e){return this.start.row==f&&this.start.column==e;
};this.setStart=function(f,e){if(typeof f=="object"){this.start.column=f.column;this.start.row=f.row;}else{this.start.row=f;this.start.column=e;}};this.setEnd=function(f,e){if(typeof f=="object"){this.end.column=f.column;
this.end.row=f.row;}else{this.end.row=f;this.end.column=e;}};this.inside=function(f,e){if(this.compare(f,e)==0){if(this.isEnd(f,e)||this.isStart(f,e)){return false;
}else{return true;}}return false;};this.insideStart=function(f,e){if(this.compare(f,e)==0){if(this.isEnd(f,e)){return false;}else{return true;}}return false;
};this.insideEnd=function(f,e){if(this.compare(f,e)==0){if(this.isStart(f,e)){return false;}else{return true;}}return false;};this.compare=function(f,e){if(!this.isMultiLine()){if(f===this.start.row){return e<this.start.column?-1:(e>this.end.column?1:0);
}}if(f<this.start.row){return -1;}if(f>this.end.row){return 1;}if(this.start.row===f){return e>=this.start.column?0:-1;}if(this.end.row===f){return e<=this.end.column?0:1;
}return 0;};this.compareStart=function(f,e){if(this.start.row==f&&this.start.column==e){return -1;}else{return this.compare(f,e);}};this.compareEnd=function(f,e){if(this.end.row==f&&this.end.column==e){return 1;
}else{return this.compare(f,e);}};this.compareInside=function(f,e){if(this.end.row==f&&this.end.column==e){return 1;}else{if(this.start.row==f&&this.start.column==e){return -1;
}else{return this.compare(f,e);}}};this.clipRows=function(g,f){if(this.end.row>f){var e={row:f+1,column:0};}if(this.start.row>f){var h={row:f+1,column:0};
}if(this.start.row<g){var h={row:g,column:0};}if(this.end.row<g){var e={row:g,column:0};}return d.fromPoints(h||this.start,e||this.end);};this.extend=function(h,f){var g=this.compare(h,f);
if(g==0){return this;}else{if(g==-1){var i={row:h,column:f};}else{var e={row:h,column:f};}}return d.fromPoints(i||this.start,e||this.end);};this.isEmpty=function(){return(this.start.row==this.end.row&&this.start.column==this.end.column);
};this.isMultiLine=function(){return(this.start.row!==this.end.row);};this.clone=function(){return d.fromPoints(this.start,this.end);};this.collapseRows=function(){if(this.end.column==0){return new d(this.start.row,0,Math.max(this.start.row,this.end.row-1),0);
}else{return new d(this.start.row,0,this.end.row,0);}};this.toScreenRange=function(f){var e=f.documentToScreenPosition(this.start);var g=f.documentToScreenPosition(this.end);
return new d(e.row,e.column,g.row,g.column);};}).call(d.prototype);d.fromPoints=function(f,e){return new d(f.row,f.column,e.row,e.column);};a.Range=d;});
define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode"],function(e,c,f){var d=e("../tokenizer").Tokenizer;
var b=e("./text_highlight_rules").TextHighlightRules;var h=e("./behaviour").Behaviour;var a=e("../unicode");var g=function(){this.$tokenizer=new d(new b().getRules());
this.$behaviour=new h();};(function(){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.toggleCommentLines=function(k,l,j,i){};this.getNextLineIndent=function(k,i,j){return"";};this.checkOutdent=function(k,i,j){return false;
};this.autoOutdent=function(i,j,k){};this.$getIndent=function(i){var j=i.match(/^(\s+)/);if(j){return j[1];}return"";};this.createWorker=function(i){return null;
};this.createModeDelegates=function(k){if(!this.$embeds){return;}this.$modes={};for(var l=0;l<this.$embeds.length;l++){if(k[this.$embeds[l]]){this.$modes[this.$embeds[l]]=new k[this.$embeds[l]]();
}}var j=["toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction"];for(var l=0;l<j.length;l++){(function(m){var n=j[l];var i=m[n];
m[j[l]]=function(){return this.$delegator(n,arguments,i);};}(this));}};this.$delegator=function(q,l,k){var o=l[0];for(var n=0;n<this.$embeds.length;n++){if(!this.$modes[this.$embeds[n]]){continue;
}var m=o.split(this.$embeds[n]);if(!m[0]&&m[1]){l[0]=m[1];var p=this.$modes[this.$embeds[n]];return p[q].apply(p,l);}}var j=k.apply(this,l);return k?j:undefined;
};this.transformAction=function(n,m,k,o,p){if(this.$behaviour){var l=this.$behaviour.getBehaviours();for(var j in l){if(l[j][m]){var i=l[j][m].apply(this,arguments);
if(i){return i;}}}}};}).call(g.prototype);c.Mode=g;});define("ace/tokenizer",["require","exports","module"],function(c,a,d){var b=function(n,j){j=j?"g"+j:"g";
this.rules=n;this.regExps={};this.matchMappings={};for(var m in this.rules){var k=this.rules[m];var f=k;var h=[];var o=0;var e=this.matchMappings[m]={};
for(var g=0;g<f.length;g++){if(f[g].regex instanceof RegExp){f[g].regex=f[g].regex.toString().slice(1,-1);}var p=new RegExp("(?:("+f[g].regex+")|(.))").exec("a").length-2;
var l=f[g].regex.replace(/\\([0-9]+)/g,function(i,q){return"\\"+(parseInt(q,10)+o+1);});if(p>1&&f[g].token.length!==p-1){throw new Error("For "+f[g].regex+" the matching groups and length of the token array don't match (rule #"+g+" of state "+m+")");
}e[o]={rule:g,len:p};o+=p;h.push(l);}this.regExps[m]=new RegExp("(?:("+h.join(")|(")+")|(.))",j);}};(function(){this.getLineTokens=function(s,j){var g=j||"start";
var f=this.rules[g];var e=this.matchMappings[g];var r=this.regExps[g];r.lastIndex=0;var l,o=[];var m=0;var h={type:null,value:""};while(l=r.exec(s)){var n="text";
var p=null;var q=[l[0]];for(var k=0;k<l.length-2;k++){if(l[k+1]===undefined){continue;}p=f[e[k].rule];if(e[k].len>1){q=l.slice(k+2,k+1+e[k].len);}if(typeof p.token=="function"){n=p.token.apply(this,q);
}else{n=p.token;}if(p.next){g=p.next;f=this.rules[g];e=this.matchMappings[g];m=r.lastIndex;r=this.regExps[g];if(r===undefined){throw new Error("You indicated a state of "+p.next+" to go to, but it doesn't exist!");
}r.lastIndex=m;}break;}if(q[0]){if(typeof n=="string"){q=[q.join("")];n=[n];}for(var k=0;k<q.length;k++){if(!q[k]){continue;}if((!p||p.merge||n[k]==="text")&&h.type===n[k]){h.value+=q[k];
}else{if(h.type){o.push(h);}h={type:n[k],value:q[k]};}}}if(m==s.length){break;}m=r.lastIndex;}if(h.type){o.push(h);}return{tokens:o,state:g};};}).call(b.prototype);
a.Tokenizer=b;});define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(c,b,d){var e=c("../lib/lang");var a=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{token:"text",regex:".+"}]};
};(function(){this.addRules=function(l,j){for(var g in l){var h=l[g];for(var f=0;f<h.length;f++){var k=h[f];if(k.next){k.next=j+k.next;}}this.$rules[j+g]=h;
}};this.getRules=function(){return this.$rules;};this.embedRules=function(m,j,l,f){var k=new m().getRules();if(f){for(var h=0;h<f.length;h++){f[h]=j+f[h];
}}else{f=[];for(var g in k){f.push(j+g);}}this.addRules(k,j);for(var h=0;h<f.length;h++){Array.prototype.unshift.apply(this.$rules[f[h]],e.deepCopy(l));
}if(!this.$embeds){this.$embeds=[];}this.$embeds.push(j);};this.getEmbeds=function(){return this.$embeds;};this.createKeywordMapper=function(h,j,f,i){var g=Object.create(null);
Object.keys(h).forEach(function(l){var m=h[l].split(i||"|");for(var k=m.length;k--;){g[m[k]]=l;}});h=null;return f?function(k){return g[k.toLowerCase()]||j;
}:function(k){return g[k]||j;};};}).call(a.prototype);b.TextHighlightRules=a;});define("ace/mode/behaviour",["require","exports","module"],function(b,a,c){var d=function(){this.$behaviours={};
};(function(){this.add=function(e,f,g){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={};}this.$behaviours[e][f]=g;
};this.addBehaviours=function(f){for(var e in f){for(var g in f[e]){this.add(e,g,f[e][g]);}}};this.remove=function(e){if(this.$behaviours&&this.$behaviours[e]){delete this.$behaviours[e];
}};this.inherit=function(g,e){if(typeof g==="function"){var f=new g().getBehaviours(e);}else{var f=g.getBehaviours(e);}this.addBehaviours(f);};this.getBehaviours=function(g){if(!g){return this.$behaviours;
}else{var e={};for(var f=0;f<g.length;f++){if(this.$behaviours[g[f]]){e[g[f]]=this.$behaviours[g[f]];}}return e;}};}).call(d.prototype);a.Behaviour=d;});
define("ace/unicode",["require","exports","module"],function(c,b,d){b.packages={};a({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 a(g){var f=/\w{4}/g;for(var e in g){b.packages[e]=g[e].replace(f,"\\u$&");}}});define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(d,c,e){var g=d("./lib/oop");
var f=d("./lib/event_emitter").EventEmitter;var h=d("./range").Range;var a=d("./anchor").Anchor;var b=function(i){this.$lines=[];if(i.length==0){this.$lines=[""];
}else{if(Array.isArray(i)){this.insertLines(0,i);}else{this.insert({row:0,column:0},i);}}};(function(){g.implement(this,f);this.setValue=function(j){var i=this.getLength();
this.remove(new h(0,0,i,this.getLine(i-1).length));this.insert({row:0,column:0},j);};this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter());
};this.createAnchor=function(j,i){return new a(this,j,i);};if("aaa".split(/a/).length==0){this.$split=function(i){return i.replace(/\r\n|\r/g,"\n").split("\n");
};}else{this.$split=function(i){return i.split(/\r\n|\r|\n/);};}this.$detectNewLine=function(j){var i=j.match(/^.*?(\r\n|\r|\n)/m);if(i){this.$autoNewLine=i[1];
}else{this.$autoNewLine="\n";}};this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";case"auto":return this.$autoNewLine;
}};this.$autoNewLine="\n";this.$newLineMode="auto";this.setNewLineMode=function(i){if(this.$newLineMode===i){return;}this.$newLineMode=i;};this.getNewLineMode=function(){return this.$newLineMode;
};this.isNewLine=function(i){return(i=="\r\n"||i=="\r"||i=="\n");};this.getLine=function(i){return this.$lines[i]||"";};this.getLines=function(j,i){return this.$lines.slice(j,i+1);
};this.getAllLines=function(){return this.getLines(0,this.getLength());};this.getLength=function(){return this.$lines.length;};this.getTextRange=function(j){if(j.start.row==j.end.row){return this.$lines[j.start.row].substring(j.start.column,j.end.column);
}else{var i=this.getLines(j.start.row+1,j.end.row-1);i.unshift((this.$lines[j.start.row]||"").substring(j.start.column));i.push((this.$lines[j.end.row]||"").substring(0,j.end.column));
return i.join(this.getNewLineCharacter());}};this.$clipPosition=function(i){var j=this.getLength();if(i.row>=j){i.row=Math.max(0,j-1);i.column=this.getLine(j-1).length;
}return i;};this.insert=function(i,m){if(!m||m.length===0){return i;}i=this.$clipPosition(i);if(this.getLength()<=1){this.$detectNewLine(m);}var k=this.$split(m);
var l=k.splice(0,1)[0];var j=k.length==0?null:k.splice(k.length-1,1)[0];i=this.insertInLine(i,l);if(j!==null){i=this.insertNewLine(i);i=this.insertLines(i.row,k);
i=this.insertInLine(i,j||"");}return i;};this.insertLines=function(m,j){if(j.length==0){return{row:m,column:0};}if(j.length>65535){var i=this.insertLines(m,j.slice(65535));
j=j.slice(0,65535);}var l=[m,0];l.push.apply(l,j);this.$lines.splice.apply(this.$lines,l);var k=new h(m,0,m+j.length,0);var n={action:"insertLines",range:k,lines:j};
this._emit("change",{data:n});return i||k.end;};this.insertNewLine=function(i){i=this.$clipPosition(i);var k=this.$lines[i.row]||"";this.$lines[i.row]=k.substring(0,i.column);
this.$lines.splice(i.row+1,0,k.substring(i.column,k.length));var j={row:i.row+1,column:0};var l={action:"insertText",range:h.fromPoints(i,j),text:this.getNewLineCharacter()};
this._emit("change",{data:l});return j;};this.insertInLine=function(i,l){if(l.length==0){return i;}var k=this.$lines[i.row]||"";this.$lines[i.row]=k.substring(0,i.column)+l+k.substring(i.column);
var j={row:i.row,column:i.column+l.length};var m={action:"insertText",range:h.fromPoints(i,j),text:l};this._emit("change",{data:m});return j;};this.remove=function(j){j.start=this.$clipPosition(j.start);
j.end=this.$clipPosition(j.end);if(j.isEmpty()){return j.start;}var m=j.start.row;var k=j.end.row;if(j.isMultiLine()){var l=j.start.column==0?m:m+1;var i=k-1;
if(j.end.column>0){this.removeInLine(k,0,j.end.column);}if(i>=l){this.removeLines(l,i);}if(l!=m){this.removeInLine(m,j.start.column,this.getLine(m).length);
this.removeNewLine(j.start.row);}}else{this.removeInLine(m,j.start.column,j.end.column);}return j.start;};this.removeInLine=function(m,k,p){if(k==p){return;
}var j=new h(m,k,m,p);var i=this.getLine(m);var l=i.substring(k,p);var o=i.substring(0,k)+i.substring(p,i.length);this.$lines.splice(m,1,o);var n={action:"removeText",range:j,text:l};
this._emit("change",{data:n});return j.start;};this.removeLines=function(l,j){var i=new h(l,0,j+1,0);var k=this.$lines.splice(l,j-l+1);var m={action:"removeLines",range:i,nl:this.getNewLineCharacter(),lines:k};
this._emit("change",{data:m});return k;};this.removeNewLine=function(m){var l=this.getLine(m);var i=this.getLine(m+1);var k=new h(m,l.length,m+1,0);var j=l+i;
this.$lines.splice(m,2,j);var n={action:"removeText",range:k,text:this.getNewLineCharacter()};this._emit("change",{data:n});};this.replace=function(j,k){if(k.length==0&&j.isEmpty()){return j.start;
}if(k==this.getTextRange(j)){return j.end;}this.remove(j);if(k){var i=this.insert(j.start,k);}else{i=j.start;}return i;};this.applyDeltas=function(l){for(var k=0;
k<l.length;k++){var m=l[k];var j=h.fromPoints(m.range.start,m.range.end);if(m.action=="insertLines"){this.insertLines(j.start.row,m.lines);}else{if(m.action=="insertText"){this.insert(j.start,m.text);
}else{if(m.action=="removeLines"){this.removeLines(j.start.row,j.end.row-1);}else{if(m.action=="removeText"){this.remove(j);}}}}}};this.revertDeltas=function(l){for(var k=l.length-1;
k>=0;k--){var m=l[k];var j=h.fromPoints(m.range.start,m.range.end);if(m.action=="insertLines"){this.removeLines(j.start.row,j.end.row-1);}else{if(m.action=="insertText"){this.remove(j);
}else{if(m.action=="removeLines"){this.insertLines(j.start.row,m.lines);}else{if(m.action=="removeText"){this.insert(j.start,m.text);}}}}}};}).call(b.prototype);
c.Document=b;});define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(c,b,d){var f=c("./lib/oop");var e=c("./lib/event_emitter").EventEmitter;
var a=b.Anchor=function(h,i,g){this.document=h;if(typeof g=="undefined"){this.setPosition(i.row,i.column);}else{this.setPosition(i,g);}this.$onChange=this.onChange.bind(this);
h.on("change",this.$onChange);};(function(){f.implement(this,e);this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column);};
this.getDocument=function(){return this.document;};this.onChange=function(i){var k=i.data;var g=k.range;if(g.start.row==g.end.row&&g.start.row!=this.row){return;
}if(g.start.row>this.row){return;}if(g.start.row==this.row&&g.start.column>this.column){return;}var j=this.row;var h=this.column;if(k.action==="insertText"){if(g.start.row===j&&g.start.column<=h){if(g.start.row===g.end.row){h+=g.end.column-g.start.column;
}else{h-=g.start.column;j+=g.end.row-g.start.row;}}else{if(g.start.row!==g.end.row&&g.start.row<j){j+=g.end.row-g.start.row;}}}else{if(k.action==="insertLines"){if(g.start.row<=j){j+=g.end.row-g.start.row;
}}else{if(k.action=="removeText"){if(g.start.row==j&&g.start.column<h){if(g.end.column>=h){h=g.start.column;}else{h=Math.max(0,h-(g.end.column-g.start.column));
}}else{if(g.start.row!==g.end.row&&g.start.row<j){if(g.end.row==j){h=Math.max(0,h-g.end.column)+g.start.column;}j-=(g.end.row-g.start.row);}else{if(g.end.row==j){j-=g.end.row-g.start.row;
h=Math.max(0,h-g.end.column)+g.start.column;}}}}else{if(k.action=="removeLines"){if(g.start.row<=j){if(g.end.row<=j){j-=g.end.row-g.start.row;}else{j=g.start.row;
h=0;}}}}}}this.setPosition(j,h,true);};this.setPosition=function(j,i,g){var k;if(g){k={row:j,column:i};}else{k=this.$clipPositionToDocument(j,i);}if(this.row==k.row&&this.column==k.column){return;
}var h={row:this.row,column:this.column};this.row=k.row;this.column=k.column;this._emit("change",{old:h,value:k});};this.detach=function(){this.document.removeEventListener("change",this.$onChange);
};this.$clipPositionToDocument=function(h,g){var i={};if(h>=this.document.getLength()){i.row=Math.max(0,this.document.getLength()-1);i.column=this.document.getLine(i.row).length;
}else{if(h<0){i.row=0;i.column=0;}else{i.row=h;i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,g));}}if(g<0){i.column=0;}return i;};}).call(a.prototype);
});define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(c,b,e){var g=c("./lib/oop");var f=c("./lib/event_emitter").EventEmitter;
var d=5000;var a=function(j,i){this.running=false;this.lines=[];this.states=[];this.currentLine=0;this.tokenizer=j;var h=this;this.$worker=function(){if(!h.running){return;
}var n=new Date();var o=h.currentLine;var m=h.doc;var l=0;var k=m.getLength();while(h.currentLine<k){h.$tokenizeRow(h.currentLine);while(h.lines[h.currentLine]){h.currentLine++;
}l++;if((l%5==0)&&(new Date()-n)>20){h.fireUpdateEvent(o,h.currentLine-1);h.running=setTimeout(h.$worker,20);return;}}h.running=false;h.fireUpdateEvent(o,k-1);
};};(function(){g.implement(this,f);this.setTokenizer=function(h){this.tokenizer=h;this.lines=[];this.states=[];this.start(0);};this.setDocument=function(h){this.doc=h;
this.lines=[];this.states=[];this.stop();};this.fireUpdateEvent=function(j,h){var i={first:j,last:h};this._emit("update",{data:i});};this.start=function(h){this.currentLine=Math.min(h||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.$updateOnChange=function(l){var j=l.range;var i=j.start.row;var h=j.end.row-i;if(h===0){this.lines[i]=null;}else{if(l.action=="removeText"||l.action=="removeLines"){this.lines.splice(i,h+1,null);
this.states.splice(i,h+1,null);}else{var k=Array(h+1);k.unshift(i,1);this.lines.splice.apply(this.lines,k);this.states.splice.apply(this.states,k);}}this.currentLine=Math.min(i,this.currentLine,this.doc.getLength());
this.stop();this.running=setTimeout(this.$worker,700);};this.stop=function(){if(this.running){clearTimeout(this.running);}this.running=false;};this.getTokens=function(h){return this.lines[h]||this.$tokenizeRow(h);
};this.getState=function(h){if(this.currentLine==h){this.$tokenizeRow(h);}return this.states[h]||"start";};this.$tokenizeRow=function(k){var h=this.doc.getLine(k);
var j=this.states[k-1];if(h.length>d){var l={value:h.substr(d),type:"text"};h=h.slice(0,d);}var i=this.tokenizer.getLineTokens(h,j);if(l){i.tokens.push(l);
i.state="start";}if(this.states[k]!==i.state){this.states[k]=i.state;this.lines[k+1]=null;if(this.currentLine>k+1){this.currentLine=k+1;}}else{if(this.currentLine==k){this.currentLine=k+1;
}}return this.lines[k]=i.tokens;};}).call(a.prototype);b.BackgroundTokenizer=a;});define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(b,a,c){var g=b("./lib/lang");
var e=b("./lib/oop");var f=b("./range").Range;var d=function(i,h,j){this.setRegexp(i);this.clazz=h;this.type=j||"text";};(function(){this.setRegexp=function(h){if(this.regExp+""==h+""){return;
}this.regExp=h;this.cache=[];};this.update=function(p,q,r,l){if(!this.regExp){return;}var k=l.firstRow,m=l.lastRow;for(var o=k;o<=m;o++){var h=this.cache[o];
if(h==null){h=g.getMatchOffsets(r.getLine(o),this.regExp);h=h.map(function(i){return new f(o,i.offset,o,i.offset+i.length);});this.cache[o]=h.length?h:"";
}for(var n=h.length;n--;){q.drawSingleLineMarker(p,h[n].toScreenRange(r),this.clazz,l,null,this.type);}}};}).call(d.prototype);a.SearchHighlight=d;});define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(d,c,e){var g=d("../range").Range;
var h=d("./fold_line").FoldLine;var a=d("./fold").Fold;var f=d("../token_iterator").TokenIterator;function b(){this.getFoldAt=function(p,m,l){var o=this.getFoldLine(p);
if(!o){return null;}var n=o.folds;for(var k=0;k<n.length;k++){var j=n[k];if(j.range.contains(p,m)){if(l==1&&j.range.isEnd(p,m)){continue;}else{if(l==-1&&j.range.isStart(p,m)){continue;
}}return j;}}};this.getFoldsInRange=function(q){q=q.clone();var l=q.start;var n=q.end;var m=this.$foldData;var k=[];l.column+=1;n.column-=1;for(var p=0;
p<m.length;p++){var s=m[p].range.compareRange(q);if(s==2){continue;}else{if(s==-2){break;}}var t=m[p].folds;for(var o=0;o<t.length;o++){var r=t[o];s=r.range.compareRange(q);
if(s==-2){break;}else{if(s==2){continue;}else{if(s==42){break;}}}k.push(r);}}return k;};this.getAllFolds=function(){var o=[];var m=this.$foldData;function n(j){o.push(j);
if(!j.subFolds){return;}for(var p=0;p<j.subFolds.length;p++){n(j.subFolds[p]);}}for(var l=0;l<m.length;l++){for(var k=0;k<m[l].folds.length;k++){n(m[l].folds[k]);
}}return o;};this.getFoldStringAt=function(r,k,j,q){q=q||this.getFoldLine(r);if(!q){return null;}var m={end:{column:0}};var o,n;for(var l=0;l<q.folds.length;
l++){n=q.folds[l];var p=n.range.compareEnd(r,k);if(p==-1){o=this.getLine(n.start.row).substring(m.end.column,n.start.column);break;}else{if(p===0){return null;
}}m=n;}if(!o){o=this.getLine(n.start.row).substring(m.end.column);}if(j==-1){return o.substring(0,k-m.end.column);}else{if(j==1){return o.substring(k-m.end.column);
}else{return o;}}};this.getFoldLine=function(j,k){var m=this.$foldData;var l=0;if(k){l=m.indexOf(k);}if(l==-1){l=0;}for(l;l<m.length;l++){var n=m[l];if(n.start.row<=j&&n.end.row>=j){return n;
}else{if(n.end.row>j){return null;}}}return null;};this.getNextFoldLine=function(j,k){var m=this.$foldData;var l=0;if(k){l=m.indexOf(k);}if(l==-1){l=0;
}for(l;l<m.length;l++){var n=m[l];if(n.end.row>=j){return n;}}return null;};this.getFoldedRowCount=function(p,n){var m=this.$foldData,k=n-p+1;for(var l=0;
l<m.length;l++){var o=m[l],j=o.end.row,q=o.start.row;if(j>=n){if(q<n){if(q>=p){k-=n-q;}else{k=0;}}break;}else{if(j>=p){if(q>=p){k-=j-q;}else{k-=j-p+1;}}}}return k;
};this.$addFoldLine=function(i){this.$foldData.push(i);this.$foldData.sort(function(k,j){return k.start.row-j.start.row;});return i;};this.addFold=function(t,n){var j=this.$foldData;
var r=false;var q;if(t instanceof a){q=t;}else{q=new a(n,t);}this.$clipRangeToDocument(q.range);var w=q.start.row;var k=q.start.column;var l=q.end.row;
var p=q.end.column;if(q.placeholder.length<2){throw"Placeholder has to be at least 2 characters";}if(w==l&&p-k<2){throw"The range has to be at least 2 characters width";
}var o=this.getFoldAt(w,k,1);var v=this.getFoldAt(l,p,-1);if(o&&v==o){return o.addSubFold(q);}if((o&&!o.range.isStart(w,k))||(v&&!v.range.isEnd(l,p))){throw"A fold can't intersect already existing fold"+q.range+o.range;
}var u=this.getFoldsInRange(q.range);if(u.length>0){this.removeFolds(u);q.subFolds=u;}for(var m=0;m<j.length;m++){var s=j[m];if(l==s.start.row){s.addFold(q);
r=true;break;}else{if(w==s.end.row){s.addFold(q);r=true;if(!q.sameRow){var x=j[m+1];if(x&&x.start.row==l){s.merge(x);break;}}break;}else{if(l<=s.start.row){break;
}}}}if(!r){s=this.$addFoldLine(new h(this.$foldData,q));}if(this.$useWrapMode){this.$updateWrapData(s.start.row,s.start.row);}else{this.$updateRowLengthCache(s.start.row,s.start.row);
}this.$modified=true;this._emit("changeFold",{data:q});return q;};this.addFolds=function(i){i.forEach(function(j){this.addFold(j);},this);};this.removeFold=function(l){var o=l.foldLine;
var k=o.start.row;var j=o.end.row;var m=this.$foldData;var n=o.folds;if(n.length==1){m.splice(m.indexOf(o),1);}else{if(o.range.isEnd(l.end.row,l.end.column)){n.pop();
o.end.row=n[n.length-1].end.row;o.end.column=n[n.length-1].end.column;}else{if(o.range.isStart(l.start.row,l.start.column)){n.shift();o.start.row=n[0].start.row;
o.start.column=n[0].start.column;}else{if(l.sameRow){n.splice(n.indexOf(l),1);}else{var i=o.split(l.start.row,l.start.column);n=i.folds;n.shift();i.start.row=n[0].start.row;
i.start.column=n[0].start.column;}}}}if(this.$useWrapMode){this.$updateWrapData(k,j);}else{this.$updateRowLengthCache(k,j);}this.$modified=true;this._emit("changeFold",{data:l});
};this.removeFolds=function(l){var j=[];for(var k=0;k<l.length;k++){j.push(l[k]);}j.forEach(function(i){this.removeFold(i);},this);this.$modified=true;
};this.expandFold=function(i){this.removeFold(i);i.subFolds.forEach(function(j){this.addFold(j);},this);i.subFolds=[];};this.expandFolds=function(i){i.forEach(function(j){this.expandFold(j);
},this);};this.unfold=function(i,k){var j,l;if(i==null){j=new g(0,0,this.getLength(),0);}else{if(typeof i=="number"){j=new g(i,0,i,this.getLine(i).length);
}else{if("row" in i){j=g.fromPoints(i,i);}else{j=i;}}}l=this.getFoldsInRange(j);if(k){this.removeFolds(l);}else{while(l.length){this.expandFolds(l);l=this.getFoldsInRange(j);
}}};this.isRowFolded=function(i,j){return !!this.getFoldLine(i,j);};this.getRowFoldEnd=function(i,j){var k=this.getFoldLine(i,j);return k?k.end.row:i;};
this.getFoldDisplayLine=function(n,j,o,i,l){if(i==null){i=n.start.row;l=0;}if(j==null){j=n.end.row;o=this.getLine(j).length;}var m=this.doc;var k="";n.walk(function(s,r,q,p){if(r<i){return;
}else{if(r==i){if(q<l){return;}p=Math.max(l,p);}}if(s){k+=s;}else{k+=m.getLine(r).substring(p,q);}}.bind(this),j,o);return k;};this.getDisplayLine=function(m,n,j,k){var l=this.getFoldLine(m);
if(!l){var i;i=this.doc.getLine(m);return i.substring(k||0,n||i.length);}else{return this.getFoldDisplayLine(l,m,n,j,k);}};this.$cloneFoldData=function(){var i=[];
i=this.$foldData.map(function(k){var j=k.folds.map(function(l){return l.clone();});return new h(i,j);});return i;};this.toggleFold=function(k){var l=this.selection;
var i=l.getRange();var j;var p;if(i.isEmpty()){var o=i.start;j=this.getFoldAt(o.row,o.column);if(j){this.expandFold(j);return;}else{if(p=this.findMatchingBracket(o)){if(i.comparePoint(p)==1){i.end=p;
}else{i.start=p;i.start.column++;i.end.column--;}}else{if(p=this.findMatchingBracket({row:o.row,column:o.column+1})){if(i.comparePoint(p)==1){i.end=p;}else{i.start=p;
}i.start.column++;}else{i=this.getCommentFoldRange(o.row,o.column)||i;}}}}else{var m=this.getFoldsInRange(i);if(k&&m.length){this.expandFolds(m);return;
}else{if(m.length==1){j=m[0];}}}if(!j){j=this.getFoldAt(i.start.row,i.start.column);}if(j&&j.range.toString()==i.toString()){this.expandFold(j);return;
}var n="...";if(!i.isMultiLine()){n=this.getTextRange(i);if(n.length<4){return;}n=n.trim().substring(0,2)+"..";}this.addFold(n,i);};this.getCommentFoldRange=function(n,m){var l=new f(this,n,m);
var j=l.getCurrentToken();if(j&&/^comment|string/.test(j.type)){var i=new g();var k=new RegExp(j.type.replace(/\..*/,"\\."));do{j=l.stepBackward();}while(j&&k.test(j.type));
l.stepForward();i.start.row=l.getCurrentTokenRow();i.start.column=l.getCurrentTokenColumn()+2;l=new f(this,n,m);do{j=l.stepForward();}while(j&&k.test(j.type));
j=l.stepBackward();i.end.row=l.getCurrentTokenRow();i.end.column=l.getCurrentTokenColumn()+j.value.length;return i;}};this.foldAll=function(k,j){var l=this.foldWidgets;
j=j||this.getLength();for(var n=k||0;n<j;n++){if(l[n]==null){l[n]=this.getFoldWidget(n);}if(l[n]!="start"){continue;}var i=this.getFoldWidgetRange(n);if(i&&i.end.row<j){try{this.addFold("...",i);
}catch(m){}}}};this.$foldStyles={manual:1,markbegin:1,markbeginend:1};this.$foldStyle="markbegin";this.setFoldStyle=function(i){if(!this.$foldStyles[i]){throw new Error("invalid fold style: "+i+"["+Object.keys(this.$foldStyles).join(", ")+"]");
}if(this.$foldStyle==i){return;}this.$foldStyle=i;if(i=="manual"){this.unfold();}var j=this.$foldMode;this.$setFolding(null);this.$setFolding(j);};this.$setFolding=function(i){if(this.$foldMode==i){return;
}this.$foldMode=i;this.removeListener("change",this.$updateFoldWidgets);this._emit("changeAnnotation");if(!i||this.$foldStyle=="manual"){this.foldWidgets=null;
return;}this.foldWidgets=[];this.getFoldWidget=i.getFoldWidget.bind(i,this,this.$foldStyle);this.getFoldWidgetRange=i.getFoldWidgetRange.bind(i,this,this.$foldStyle);
this.$updateFoldWidgets=this.updateFoldWidgets.bind(this);this.on("change",this.$updateFoldWidgets);};this.onFoldWidgetClick=function(p,o){var m=this.getFoldWidget(p);
var i=this.getLine(p);var l=o.shiftKey;var n=l||o.ctrlKey||o.altKey||o.metaKey;var k;if(m=="end"){k=this.getFoldAt(p,0,-1);}else{k=this.getFoldAt(p,i.length,1);
}if(k){if(n){this.removeFold(k);}else{this.expandFold(k);}return;}var j=this.getFoldWidgetRange(p);if(j){if(!j.isMultiLine()){k=this.getFoldAt(j.start.row,j.start.column,1);
if(k&&j.isEqual(k.range)){this.removeFold(k);return;}}if(!l){this.addFold("...",j);}if(n){this.foldAll(j.start.row+1,j.end.row);}}else{if(n){this.foldAll(p+1,this.getLength());
}(o.target||o.srcElement).className+=" invalid";}};this.updateFoldWidgets=function(l){var n=l.data;var j=n.range;var m=j.start.row;var i=j.end.row-m;if(i===0){this.foldWidgets[m]=null;
}else{if(n.action=="removeText"||n.action=="removeLines"){this.foldWidgets.splice(m,i+1,null);}else{var k=Array(i+1);k.unshift(m,1);this.foldWidgets.splice.apply(this.foldWidgets,k);
}}};}c.Folding=b;});define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(b,a,c){var d=b("../range").Range;function e(f,h){this.foldData=f;
if(Array.isArray(h)){this.folds=h;}else{h=this.folds=[h];}var g=h[h.length-1];this.range=new d(h[0].start.row,h[0].start.column,g.end.row,g.end.column);
this.start=this.range.start;this.end=this.range.end;this.folds.forEach(function(i){i.setFoldLine(this);},this);}(function(){this.shiftRow=function(f){this.start.row+=f;
this.end.row+=f;this.folds.forEach(function(g){g.start.row+=f;g.end.row+=f;});};this.addFold=function(f){if(f.sameRow){if(f.start.row<this.startRow||f.endRow>this.endRow){throw"Can't add a fold to this FoldLine as it has no connection";
}this.folds.push(f);this.folds.sort(function(h,g){return -h.range.compareEnd(g.start.row,g.start.column);});if(this.range.compareEnd(f.start.row,f.start.column)>0){this.end.row=f.end.row;
this.end.column=f.end.column;}else{if(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"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(p,g,l){var f=0,o=this.folds,m,j,n,k=true;if(g==null){g=this.end.row;l=this.end.column;}for(var h=0;h<o.length;h++){m=o[h];j=m.range.compareStart(g,l);
if(j==-1){p(null,g,l,f,k);return;}n=p(null,m.start.row,m.start.column,f,k);n=!n&&p(m.placeholder,m.start.row,m.start.column,f);if(n||j==0){return;}k=!m.sameRow;
f=m.end.column;}p(null,g,l,f,k);};this.getNextFoldTo=function(k,h){var f,j;for(var g=0;g<this.folds.length;g++){f=this.folds[g];j=f.range.compareEnd(k,h);
if(j==-1){return{fold:f,kind:"after"};}else{if(j==0){return{fold:f,kind:"inside"};}}}return null;};this.addRemoveChars=function(m,k,f){var h=this.getNextFoldTo(m,k),g,l;
if(h){g=h.fold;if(h.kind=="inside"&&g.start.column!=k&&g.start.row!=m){window.console&&window.console.log(m,k,g);}else{if(g.start.row==m){l=this.folds;
var j=l.indexOf(g);if(j==0){this.start.column+=f;}for(j;j<l.length;j++){g=l[j];g.start.column+=f;if(!g.sameRow){return;}g.end.column+=f;}this.end.column+=f;
}}}};this.split=function(n,l){var h=this.getNextFoldTo(n,l).fold,m=this.folds;var k=this.foldData;if(!h){return null;}var j=m.indexOf(h);var g=m[j-1];this.end.row=g.end.row;
this.end.column=g.end.column;m=m.splice(j,m.length-j);var f=new e(k,m);k.splice(k.indexOf(this)+1,0,f);return f;};this.merge=function(h){var j=h.folds;
for(var g=0;g<j.length;g++){this.addFold(j[g]);}var f=this.foldData;f.splice(f.indexOf(h),1);};this.toString=function(){var f=[this.range.toString()+": ["];
this.folds.forEach(function(g){f.push("  "+g.toString());});f.push("]");return f.join("\n");};this.idxToPosition=function(f){var j=0;var g;for(var h=0;
h<this.folds.length;h++){var g=this.folds[h];f-=g.start.column-j;if(f<0){return{row:g.start.row,column:g.start.column+f};}f-=g.placeholder.length;if(f<0){return g.start;
}j=g.end.column;}return{row:this.end.row,column:this.end.column+f};};}).call(e.prototype);a.FoldLine=e;});define("ace/edit_session/fold",["require","exports","module"],function(c,b,d){var a=b.Fold=function(e,f){this.foldLine=null;
this.placeholder=f;this.range=e;this.start=e.start;this.end=e.end;this.sameRow=e.start.row==e.end.row;this.subFolds=[];};(function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString();
};this.setFoldLine=function(e){this.foldLine=e;this.subFolds.forEach(function(f){f.setFoldLine(e);});};this.clone=function(){var e=this.range.clone();var f=new a(e,this.placeholder);
this.subFolds.forEach(function(g){f.subFolds.push(g.clone());});return f;};this.addSubFold=function(k){if(this.range.isEqual(k)){return this;}if(!this.range.containsRange(k)){throw"A fold can't intersect already existing fold"+k.range+this.range;
}var o=k.range.start.row,e=k.range.start.column;for(var h=0,m=-1;h<this.subFolds.length;h++){m=this.subFolds[h].range.compare(o,e);if(m!=1){break;}}var n=this.subFolds[h];
if(m==0){return n.addSubFold(k);}var o=k.range.end.row,e=k.range.end.column;for(var f=h,m=-1;f<this.subFolds.length;f++){m=this.subFolds[f].range.compare(o,e);
if(m!=1){break;}}var g=this.subFolds[f];if(m==0){throw"A fold can't intersect already existing fold"+k.range+this.range;}var l=this.subFolds.splice(h,f-h,k);
k.setFoldLine(this.foldLine);return k;};}).call(a.prototype);});define("ace/token_iterator",["require","exports","module"],function(b,a,c){var d=function(g,f,h){this.$session=g;
this.$row=f;this.$rowTokens=g.getTokens(f);var e=g.getTokenAt(f,h);this.$tokenIndex=e?e.index:-1;};(function(){this.stepBackward=function(){this.$tokenIndex-=1;
while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0){this.$row=0;return null;}this.$rowTokens=this.$session.getTokens(this.$row);this.$tokenIndex=this.$rowTokens.length-1;
}return this.$rowTokens[this.$tokenIndex];};this.stepForward=function(){var e=this.$session.getLength();this.$tokenIndex+=1;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1;
if(this.$row>=e){this.$row=e-1;return 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;
var e=this.$tokenIndex;var g=f[e].start;if(g!==undefined){return g;}g=0;while(e>0){e-=1;g+=f[e].value.length;}return g;};}).call(d.prototype);a.TokenIterator=d;
});define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(c,b,d){var e=c("../token_iterator").TokenIterator;
var f=c("../range").Range;function a(){this.findMatchingBracket=function(g){if(g.column==0){return null;}var i=this.getLine(g.row).charAt(g.column-1);if(i==""){return null;
}var h=i.match(/([\(\[\{])|([\)\]\}])/);if(!h){return null;}if(h[1]){return this.$findClosingBracket(h[1],g);}else{return this.$findOpeningBracket(h[2],g);
}};this.getBracketRange=function(m){var g=this.getLine(m.row);var k=true,h;var j=g.charAt(m.column-1);var i=j&&j.match(/([\(\[\{])|([\)\]\}])/);if(!i){j=g.charAt(m.column);
m={row:m.row,column:m.column+1};i=j&&j.match(/([\(\[\{])|([\)\]\}])/);k=false;}if(!i){return null;}if(i[1]){var l=this.$findClosingBracket(i[1],m);if(!l){return null;
}h=f.fromPoints(m,l);if(!k){h.end.column++;h.start.column--;}h.cursor=h.end;}else{var l=this.$findOpeningBracket(i[2],m);if(!l){return null;}h=f.fromPoints(l,m);
if(!k){h.start.column++;h.end.column--;}h.cursor=h.start;}return h;};this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"};this.$findOpeningBracket=function(g,m,p){var j=this.$brackets[g];
var k=1;var l=new e(this,m.row,m.column);var h=l.getCurrentToken();if(!h){h=l.stepForward();}if(!h){return;}if(!p){p=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren")+")+");
}var n=m.column-l.getCurrentTokenColumn()-2;var o=h.value;while(true){while(n>=0){var i=o.charAt(n);if(i==j){k-=1;if(k==0){return{row:l.getCurrentTokenRow(),column:n+l.getCurrentTokenColumn()};
}}else{if(i==g){k+=1;}}n-=1;}do{h=l.stepBackward();}while(h&&!p.test(h.type));if(h==null){break;}o=h.value;n=o.length-1;}return null;};this.$findClosingBracket=function(g,m,q){var h=this.$brackets[g];
var k=1;var l=new e(this,m.row,m.column);var i=l.getCurrentToken();if(!i){i=l.stepForward();}if(!i){return;}if(!q){q=new RegExp("(\\.?"+i.type.replace(".","\\.").replace("lparen",".paren")+")+");
}var n=m.column-l.getCurrentTokenColumn();while(true){var o=i.value;var p=o.length;while(n<p){var j=o.charAt(n);if(j==h){k-=1;if(k==0){return{row:l.getCurrentTokenRow(),column:n+l.getCurrentTokenColumn()};
}}else{if(j==g){k+=1;}}n+=1;}do{i=l.stepForward();}while(i&&!q.test(i.type));if(i==null){break;}n=0;}return null;};}b.BracketMatch=a;});define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(c,a,d){var g=c("./lib/lang");
var e=c("./lib/oop");var f=c("./range").Range;var b=function(){this.$options={};};(function(){this.set=function(h){e.mixin(this.$options,h);return this;
};this.getOptions=function(){return g.copyObject(this.$options);};this.setOptions=function(h){this.$options=h;};this.find=function(j){var i=this.$matchIterator(j,this.$options);
if(!i){return false;}var h=null;i.forEach(function(k,n,m){if(!k.start){var l=k.offset+(m||0);h=new f(n,l,n,l+k.length);}else{h=k;}return true;});return h;
};this.findAll=function(k){var q=this.$options;if(!q.needle){return[];}this.$assembleRegExp(q);var v=q.range;var h=v?k.getLines(v.start.row,v.end.row):k.doc.getAllLines();
var o=[];var w=q.re;if(q.$isMultiLine){var B=w.length;var x=h.length-B;for(var s=w.offset||0;s<=x;s++){for(var z=0;z<B;z++){if(h[s+z].search(w[z])==-1){break;
}}var y=h[s];var u=h[s+B-1];var r=y.match(w[0])[0].length;var n=u.match(w[B-1])[0].length;o.push(new f(s,y.length-r,s+B-1,n));}}else{for(var A=0;A<h.length;
A++){var l=g.getMatchOffsets(h[A],w);for(var z=0;z<l.length;z++){var t=l[z];o.push(new f(A,t.offset,A,t.offset+t.length));}}}if(v){var p=v.start.column;
var m=v.start.column;var A=0,z=o.length-1;while(A<z&&o[A].start.column<p&&o[A].start.row==v.start.row){A++;}while(A<z&&o[z].end.column>m&&o[z].end.row==v.end.row){z--;
}return o.slice(A,z+1);}return o;};this.replace=function(h,o){var k=this.$options;var n=this.$assembleRegExp(k);if(k.$isMultiLine){return o;}if(!n){return;
}var j=n.exec(h);if(!j||j[0].length!=h.length){return null;}o=h.replace(n,o);if(k.preserveCase){o=o.split("");for(var l=Math.min(h.length,h.length);l--;
){var m=h[l];if(m&&m.toLowerCase()!=m){o[l]=o[l].toUpperCase();}else{o[l]=o[l].toLowerCase();}}o=o.join("");}return o;};this.$matchIterator=function(n,k){var m=this.$assembleRegExp(k);
if(!m){return false;}var j=this,o,i=k.backwards;if(k.$isMultiLine){var h=m.length;var l=function(p,v,u){var t=p.search(m[0]);if(t==-1){return;}for(var r=1;
r<h;r++){p=n.getLine(v+r);if(p.search(m[r])==-1){return;}}var s=p.match(m[h-1])[0].length;var q=new f(v,t,v+h-1,s);if(m.offset==1){q.start.row--;q.start.column=Number.MAX_VALUE;
}else{if(u){q.start.column+=u;}}if(o(q)){return true;}};}else{if(i){var l=function(p,t,s){var r=g.getMatchOffsets(p,m);for(var q=r.length-1;q>=0;q--){if(o(r[q],t,s)){return true;
}}};}else{var l=function(p,t,s){var r=g.getMatchOffsets(p,m);for(var q=0;q<r.length;q++){if(o(r[q],t,s)){return true;}}};}}return{forEach:function(p){o=p;
j.$lineIterator(n,k).forEach(l);}};};this.$assembleRegExp=function(i){if(i.needle instanceof RegExp){return i.re=i.needle;}var l=i.needle;if(!i.needle){return i.re=false;
}if(!i.regExp){l=g.escapeRegExp(l);}if(i.wholeWord){l="\\b"+l+"\\b";}var h=i.caseSensitive?"g":"gi";i.$isMultiLine=/[\n\r]/.test(l);if(i.$isMultiLine){return i.re=this.$assembleMultilineRegExp(l,h);
}try{var j=new RegExp(l,h);}catch(k){j=false;}return i.re=j;};this.$assembleMultilineRegExp=function(n,h){var m=n.replace(/\r\n|\r|\n/g,"$\n^").split("\n");
var k=[];for(var j=0;j<m.length;j++){try{k.push(new RegExp(m[j],h));}catch(l){return false;}}if(m[0]==""){k.shift();k.offset=1;}else{k.offset=0;}return k;
};this.$lineIterator=function(m,p){var n=p.backwards==true;var i=p.skipCurrent!=false;var k=p.range;var h=p.start;if(!h){h=k?k[n?"end":"start"]:m.selection.getRange();
}if(h.start){h=h[i!=n?"end":"start"];}var j=k?k.start.row:0;var o=k?k.end.row:m.getLength()-1;var l=n?function(s){var r=h.row;var q=m.getLine(r).substring(0,h.column);
if(s(q,r)){return;}for(r--;r>=j;r--){if(s(m.getLine(r),r)){return;}}if(p.wrap==false){return;}for(r=o,j=h.row;r>=j;r--){if(s(m.getLine(r),r)){return;}}}:function(s){var r=h.row;
var q=m.getLine(r).substr(h.column);if(s(q,r,h.column)){return;}for(r=r+1;r<=o;r++){if(s(m.getLine(r),r)){return;}}if(p.wrap==false){return;}for(r=j,o=h.row;
r<=o;r++){if(s(m.getLine(r),r)){return;}}};return{forEach:l};};}).call(b.prototype);a.Search=b;});define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(b,a,c){var f=b("../lib/oop");
var d=b("../keyboard/hash_handler").HashHandler;var e=b("../lib/event_emitter").EventEmitter;var g=function(i,h){this.platform=i;this.commands=this.byName={};
this.commmandKeyBinding={};this.addCommands(h);this.setDefaultHandler("exec",function(j){return j.command.exec(j.editor,j.args||{});});};f.inherits(g,d);
(function(){f.implement(this,e);this.exec=function(k,j,i){if(typeof k==="string"){k=this.commands[k];}if(!k){return false;}if(j&&j.$readOnly&&!k.readOnly){return false;
}var h=this._emit("exec",{editor:j,command:k,args:i});return h===false?false:true;};this.toggleRecording=function(h){if(this.$inReplay){return;}h&&h._emit("changeStatus");
if(this.recording){this.macro.pop();this.removeEventListener("exec",this.$addCommandToMacro);if(!this.macro.length){this.macro=this.oldMacro;}return this.recording=false;
}if(!this.$addCommandToMacro){this.$addCommandToMacro=function(i){this.macro.push([i.command,i.args]);}.bind(this);}this.oldMacro=this.macro;this.macro=[];
this.on("exec",this.$addCommandToMacro);return this.recording=true;};this.replay=function(h){if(this.$inReplay||!this.macro){return;}if(this.recording){return this.toggleRecording(h);
}try{this.$inReplay=true;this.macro.forEach(function(i){if(typeof i=="string"){this.exec(i,h);}else{this.exec(i[0],h,i[1]);}},this);}finally{this.$inReplay=false;
}};this.trimMacro=function(h){return h.map(function(i){if(typeof i[0]!="string"){i[0]=i[0].name;}if(!i[1]){i=i[0];}return i;});};}).call(g.prototype);a.CommandManager=g;
});define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys"],function(c,a,d){var b=c("../lib/keys");function e(g,f){this.platform=f;
this.commands={};this.commmandKeyBinding={};this.addCommands(g);}(function(){this.addCommand=function(g){if(this.commands[g.name]){this.removeCommand(g);
}this.commands[g.name]=g;if(g.bindKey){this._buildKeyHash(g);}};this.removeCommand=function(k){var g=(typeof k==="string"?k:k.name);k=this.commands[g];
delete this.commands[g];var i=this.commmandKeyBinding;for(var j in i){for(var h in i[j]){if(i[j][h]==k){delete i[j][h];}}}};this.bindKey=function(g,i){if(!g){return;
}if(typeof i=="function"){this.addCommand({exec:i,bindKey:g,name:g});return;}var h=this.commmandKeyBinding;g.split("|").forEach(function(j){var l=this.parseKeys(j,i);
var k=l.hashId;(h[k]||(h[k]={}))[l.key]=i;},this);};this.addCommands=function(g){g&&Object.keys(g).forEach(function(h){var i=g[h];if(typeof i==="string"){return this.bindKey(i,h);
}if(typeof i==="function"){i={exec:i};}if(!i.name){i.name=h;}this.addCommand(i);},this);};this.removeCommands=function(g){Object.keys(g).forEach(function(h){this.removeCommand(g[h]);
},this);};this.bindKeys=function(g){Object.keys(g).forEach(function(h){this.bindKey(h,g[h]);},this);};this._buildKeyHash=function(i){var h=i.bindKey;if(!h){return;
}var g=typeof h=="string"?h:h[this.platform];this.bindKey(g,i);};this.parseKeys=function(l){var n=l.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(i){return i;
});var j=n.pop();var m=b[j];if(b.FUNCTION_KEYS[m]){j=b.FUNCTION_KEYS[m].toLowerCase();}else{if(!n.length){return{key:j,hashId:-1};}else{if(n.length==1&&n[0]=="shift"){return{key:j.toUpperCase(),hashId:-1};
}}}var k=0;for(var h=n.length;h--;){var g=b.KEY_MODS[n[h]];if(g==null){throw"invalid modifier "+n[h]+" in "+l;}k|=g;}return{key:j,hashId:k};};this.findKeyCommand=function f(i,g){var h=this.commmandKeyBinding;
return h[i]&&h[i][g];};this.handleKeyboard=function(i,h,g,j){return{command:this.findKeyCommand(h,g)};};}).call(e.prototype);a.HashHandler=e;});define("ace/commands/default_commands",["require","exports","module","ace/lib/lang"],function(b,a,c){var e=b("../lib/lang");
function d(f,g){return{win:f,mac:g};}a.commands=[{name:"selectall",bindKey:d("Ctrl-A","Command-A"),exec:function(f){f.selectAll();},readOnly:true},{name:"centerselection",bindKey:d(null,"Ctrl-L"),exec:function(f){f.centerSelection();
},readOnly:true},{name:"gotoline",bindKey:d("Ctrl-L","Command-L"),exec:function(g){var f=parseInt(prompt("Enter line number:"),10);if(!isNaN(f)){g.gotoLine(f);
}},readOnly:true},{name:"fold",bindKey:d("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(f){f.session.toggleFold(false);},readOnly:true},{name:"unfold",bindKey:d("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(f){f.session.toggleFold(true);
},readOnly:true},{name:"foldall",bindKey:d("Alt-0","Command-Option-0"),exec:function(f){f.session.foldAll();},readOnly:true},{name:"unfoldall",bindKey:d("Alt-Shift-0","Command-Option-Shift-0"),exec:function(f){f.session.unfold();
},readOnly:true},{name:"findnext",bindKey:d("Ctrl-K","Command-G"),exec:function(f){f.findNext();},readOnly:true},{name:"findprevious",bindKey:d("Ctrl-Shift-K","Command-Shift-G"),exec:function(f){f.findPrevious();
},readOnly:true},{name:"find",bindKey:d("Ctrl-F","Command-F"),exec:function(f){var g=prompt("Find:",f.getCopyText());f.find(g);},readOnly:true},{name:"overwrite",bindKey:"Insert",exec:function(f){f.toggleOverwrite();
},readOnly:true},{name:"selecttostart",bindKey:d("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(f){f.getSelection().selectFileStart();},multiSelectAction:"forEach",readOnly:true},{name:"gotostart",bindKey:d("Ctrl-Home","Command-Home|Command-Up"),exec:function(f){f.navigateFileStart();
},multiSelectAction:"forEach",readOnly:true},{name:"selectup",bindKey:d("Shift-Up","Shift-Up"),exec:function(f){f.getSelection().selectUp();},multiSelectAction:"forEach",readOnly:true},{name:"golineup",bindKey:d("Up","Up|Ctrl-P"),exec:function(g,f){g.navigateUp(f.times);
},multiSelectAction:"forEach",readOnly:true},{name:"selecttoend",bindKey:d("Ctrl-Shift-End","Command-Shift-Down"),exec:function(f){f.getSelection().selectFileEnd();
},multiSelectAction:"forEach",readOnly:true},{name:"gotoend",bindKey:d("Ctrl-End","Command-End|Command-Down"),exec:function(f){f.navigateFileEnd();},multiSelectAction:"forEach",readOnly:true},{name:"selectdown",bindKey:d("Shift-Down","Shift-Down"),exec:function(f){f.getSelection().selectDown();
},multiSelectAction:"forEach",readOnly:true},{name:"golinedown",bindKey:d("Down","Down|Ctrl-N"),exec:function(g,f){g.navigateDown(f.times);},multiSelectAction:"forEach",readOnly:true},{name:"selectwordleft",bindKey:d("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(f){f.getSelection().selectWordLeft();
},multiSelectAction:"forEach",readOnly:true},{name:"gotowordleft",bindKey:d("Ctrl-Left","Option-Left"),exec:function(f){f.navigateWordLeft();},multiSelectAction:"forEach",readOnly:true},{name:"selecttolinestart",bindKey:d("Alt-Shift-Left","Command-Shift-Left"),exec:function(f){f.getSelection().selectLineStart();
},multiSelectAction:"forEach",readOnly:true},{name:"gotolinestart",bindKey:d("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(f){f.navigateLineStart();
},multiSelectAction:"forEach",readOnly:true},{name:"selectleft",bindKey:d("Shift-Left","Shift-Left"),exec:function(f){f.getSelection().selectLeft();},multiSelectAction:"forEach",readOnly:true},{name:"gotoleft",bindKey:d("Left","Left|Ctrl-B"),exec:function(g,f){g.navigateLeft(f.times);
},multiSelectAction:"forEach",readOnly:true},{name:"selectwordright",bindKey:d("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(f){f.getSelection().selectWordRight();
},multiSelectAction:"forEach",readOnly:true},{name:"gotowordright",bindKey:d("Ctrl-Right","Option-Right"),exec:function(f){f.navigateWordRight();},multiSelectAction:"forEach",readOnly:true},{name:"selecttolineend",bindKey:d("Alt-Shift-Right","Command-Shift-Right"),exec:function(f){f.getSelection().selectLineEnd();
},multiSelectAction:"forEach",readOnly:true},{name:"gotolineend",bindKey:d("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(f){f.navigateLineEnd();
},multiSelectAction:"forEach",readOnly:true},{name:"selectright",bindKey:d("Shift-Right","Shift-Right"),exec:function(f){f.getSelection().selectRight();
},multiSelectAction:"forEach",readOnly:true},{name:"gotoright",bindKey:d("Right","Right|Ctrl-F"),exec:function(g,f){g.navigateRight(f.times);},multiSelectAction:"forEach",readOnly:true},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(f){f.selectPageDown();
},readOnly:true},{name:"pagedown",bindKey:d(null,"Option-PageDown"),exec:function(f){f.scrollPageDown();},readOnly:true},{name:"gotopagedown",bindKey:d("PageDown","PageDown|Ctrl-V"),exec:function(f){f.gotoPageDown();
},readOnly:true},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(f){f.selectPageUp();},readOnly:true},{name:"pageup",bindKey:d(null,"Option-PageUp"),exec:function(f){f.scrollPageUp();
},readOnly:true},{name:"gotopageup",bindKey:"PageUp",exec:function(f){f.gotoPageUp();},readOnly:true},{name:"scrollup",bindKey:d("Ctrl-Up",null),exec:function(f){f.renderer.scrollBy(0,-2*f.renderer.layerConfig.lineHeight);
},readOnly:true},{name:"scrolldown",bindKey:d("Ctrl-Down",null),exec:function(f){f.renderer.scrollBy(0,2*f.renderer.layerConfig.lineHeight);},readOnly:true},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(f){f.getSelection().selectLineStart();
},multiSelectAction:"forEach",readOnly:true},{name:"selectlineend",bindKey:"Shift-End",exec:function(f){f.getSelection().selectLineEnd();},multiSelectAction:"forEach",readOnly:true},{name:"togglerecording",bindKey:d("Ctrl-Alt-E","Command-Option-E"),exec:function(f){f.commands.toggleRecording(f);
},readOnly:true},{name:"replaymacro",bindKey:d("Ctrl-Shift-E","Command-Shift-E"),exec:function(f){f.commands.replay(f);},readOnly:true},{name:"jumptomatching",bindKey:d("Ctrl-P","Ctrl-Shift-P"),exec:function(f){f.jumpToMatching();
},multiSelectAction:"forEach",readOnly:true},{name:"selecttomatching",bindKey:d("Ctrl-Shift-P",null),exec:function(f){f.jumpToMatching(true);},readOnly:true},{name:"cut",exec:function(g){var f=g.getSelectionRange();
g._emit("cut",f);if(!g.selection.isEmpty()){g.session.remove(f);g.clearSelection();}},multiSelectAction:"forEach"},{name:"removeline",bindKey:d("Ctrl-D","Command-D"),exec:function(f){f.removeLines();
},multiSelectAction:"forEach"},{name:"duplicateSelection",bindKey:d("Ctrl-Shift-D","Command-Shift-D"),exec:function(f){f.duplicateSelection();},multiSelectAction:"forEach"},{name:"togglecomment",bindKey:d("Ctrl-/","Command-/"),exec:function(f){f.toggleCommentLines();
},multiSelectAction:"forEach"},{name:"replace",bindKey:d("Ctrl-R","Command-Option-F"),exec:function(g){var h=prompt("Find:",g.getCopyText());if(!h){return;
}var f=prompt("Replacement:");if(!f){return;}g.replace(f,{needle:h});}},{name:"replaceall",bindKey:d("Ctrl-Shift-R","Command-Shift-Option-F"),exec:function(g){var h=prompt("Find:");
if(!h){return;}var f=prompt("Replacement:");if(!f){return;}g.replaceAll(f,{needle:h});}},{name:"undo",bindKey:d("Ctrl-Z","Command-Z"),exec:function(f){f.undo();
}},{name:"redo",bindKey:d("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(f){f.redo();}},{name:"copylinesup",bindKey:d("Alt-Shift-Up","Command-Option-Up"),exec:function(f){f.copyLinesUp();
}},{name:"movelinesup",bindKey:d("Alt-Up","Option-Up"),exec:function(f){f.moveLinesUp();}},{name:"copylinesdown",bindKey:d("Alt-Shift-Down","Command-Option-Down"),exec:function(f){f.copyLinesDown();
}},{name:"movelinesdown",bindKey:d("Alt-Down","Option-Down"),exec:function(f){f.moveLinesDown();}},{name:"del",bindKey:d("Delete","Delete|Ctrl-D"),exec:function(f){f.remove("right");
},multiSelectAction:"forEach"},{name:"backspace",bindKey:d("Command-Backspace|Option-Backspace|Shift-Backspace|Backspace","Ctrl-Backspace|Command-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(f){f.remove("left");
},multiSelectAction:"forEach"},{name:"removetolinestart",bindKey:d("Alt-Backspace","Command-Backspace"),exec:function(f){f.removeToLineStart();},multiSelectAction:"forEach"},{name:"removetolineend",bindKey:d("Alt-Delete","Ctrl-K"),exec:function(f){f.removeToLineEnd();
},multiSelectAction:"forEach"},{name:"removewordleft",bindKey:d("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(f){f.removeWordLeft();
},multiSelectAction:"forEach"},{name:"removewordright",bindKey:d("Ctrl-Delete","Alt-Delete"),exec:function(f){f.removeWordRight();},multiSelectAction:"forEach"},{name:"outdent",bindKey:d("Shift-Tab","Shift-Tab"),exec:function(f){f.blockOutdent();
},multiSelectAction:"forEach"},{name:"indent",bindKey:d("Tab","Tab"),exec:function(f){f.indent();},multiSelectAction:"forEach"},{name:"insertstring",exec:function(f,g){f.insert(g);
},multiSelectAction:"forEach"},{name:"inserttext",exec:function(g,f){g.insert(e.stringRepeat(f.text||"",f.times||1));},multiSelectAction:"forEach"},{name:"splitline",bindKey:d(null,"Ctrl-O"),exec:function(f){f.splitLine();
},multiSelectAction:"forEach"},{name:"transposeletters",bindKey:d("Ctrl-T","Ctrl-T"),exec:function(f){f.transposeLetters();},multiSelectAction:function(f){f.transposeSelections(1);
}},{name:"touppercase",bindKey:d("Ctrl-U","Ctrl-U"),exec:function(f){f.toUpperCase();},multiSelectAction:"forEach"},{name:"tolowercase",bindKey:d("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(f){f.toLowerCase();
},multiSelectAction:"forEach"}];});define("ace/undomanager",["require","exports","module"],function(b,a,c){var d=function(){this.reset();};(function(){this.execute=function(e){var f=e.args[0];
this.$doc=e.args[1];this.$undoStack.push(f);this.$redoStack=[];};this.undo=function(e){var g=this.$undoStack.pop();var f=null;if(g){f=this.$doc.undoChanges(g,e);
this.$redoStack.push(g);}return f;};this.redo=function(e){var g=this.$redoStack.pop();var f=null;if(g){f=this.$doc.redoChanges(g,e);this.$undoStack.push(g);
}return f;};this.reset=function(){this.$undoStack=[];this.$redoStack=[];};this.hasUndo=function(){return this.$undoStack.length>0;};this.hasRedo=function(){return this.$redoStack.length>0;
};}).call(d.prototype);a.UndoManager=d;});define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/useragent","ace/config","ace/lib/net","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/lib/event_emitter","text!ace/css/editor.css"],function(d,r,a){var n=d("./lib/oop");
var m=d("./lib/dom");var j=d("./lib/event");var i=d("./lib/useragent");var q=d("./config");var k=d("./lib/net");var l=d("./layer/gutter").Gutter;var b=d("./layer/marker").Marker;
var g=d("./layer/text").Text;var o=d("./layer/cursor").Cursor;var e=d("./scrollbar").ScrollBar;var p=d("./renderloop").RenderLoop;var c=d("./lib/event_emitter").EventEmitter;
var h=d("text!./css/editor.css");m.importCssString(h,"ace_editor");var f=function(t,v){var s=this;this.container=t;this.$keepTextAreaAtCursor=!i.isIE;m.addCssClass(t,"ace_editor");
this.setTheme(v);this.$gutter=m.createElement("div");this.$gutter.className="ace_gutter";this.container.appendChild(this.$gutter);this.scroller=m.createElement("div");
this.scroller.className="ace_scroller";this.container.appendChild(this.scroller);this.content=m.createElement("div");this.content.className="ace_content";
this.scroller.appendChild(this.content);this.setHighlightGutterLine(true);this.$gutterLayer=new l(this.$gutter);this.$gutterLayer.on("changeGutterWidth",this.onResize.bind(this,true));
this.$markerBack=new b(this.content);var u=this.$textLayer=new g(this.content);this.canvas=u.element;this.$markerFront=new b(this.content);this.characterWidth=u.getCharacterWidth();
this.lineHeight=u.getLineHeight();this.$cursorLayer=new o(this.content);this.$cursorPadding=8;this.$horizScroll=false;this.$horizScrollAlwaysVisible=false;
this.$animatedScroll=false;this.scrollBar=new e(t);this.scrollBar.addEventListener("scroll",function(w){if(!s.$inScrollAnimation){s.session.setScrollTop(w.data);
}});this.scrollTop=0;this.scrollLeft=0;j.addListener(this.scroller,"scroll",function(){var w=s.scroller.scrollLeft;s.scrollLeft=w;s.session.setScrollLeft(w);
});this.cursorPos={row:0,column:0};this.$textLayer.addEventListener("changeCharacterSize",function(){s.characterWidth=u.getCharacterWidth();s.lineHeight=u.getLineHeight();
s.$updatePrintMargin();s.onResize(true);s.$loop.schedule(s.CHANGE_FULL);});this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0};this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:1,characterWidth:1,minHeight:1,maxHeight:1,offset:0,height:1};
this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView);this.$loop.schedule(this.CHANGE_FULL);this.setPadding(4);this.$updatePrintMargin();
};(function(){this.showGutter=true;this.CHANGE_CURSOR=1;this.CHANGE_MARKER=2;this.CHANGE_GUTTER=4;this.CHANGE_SCROLL=8;this.CHANGE_LINES=16;this.CHANGE_TEXT=32;
this.CHANGE_SIZE=64;this.CHANGE_MARKER_BACK=128;this.CHANGE_MARKER_FRONT=256;this.CHANGE_FULL=512;this.CHANGE_H_SCROLL=1024;n.implement(this,c);this.setSession=function(u){this.session=u;
this.scroller.className="ace_scroller";this.$cursorLayer.setSession(u);this.$markerBack.setSession(u);this.$markerFront.setSession(u);this.$gutterLayer.setSession(u);
this.$textLayer.setSession(u);this.$loop.schedule(this.CHANGE_FULL);};this.updateLines=function(v,u){if(u===undefined){u=Infinity;}if(!this.$changedLines){this.$changedLines={firstRow:v,lastRow:u};
}else{if(this.$changedLines.firstRow>v){this.$changedLines.firstRow=v;}if(this.$changedLines.lastRow<u){this.$changedLines.lastRow=u;}}this.$loop.schedule(this.CHANGE_LINES);
};this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER);this.$textLayer.onChangeTabSize();};this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT);
};this.updateFull=function(u){if(u){this.$renderChanges(this.CHANGE_FULL,true);}else{this.$loop.schedule(this.CHANGE_FULL);}};this.updateFontSize=function(){this.$textLayer.checkForSizeChanges();
};this.onResize=function(z,w,y,u){var x=this.CHANGE_SIZE;var v=this.$size;if(this.resizing>2){return;}else{if(this.resizing>1){this.resizing++;}else{this.resizing=z?1:0;
}}if(!u){u=m.getInnerHeight(this.container);}if(z||v.height!=u){v.height=u;this.scroller.style.height=u+"px";v.scrollerHeight=this.scroller.clientHeight;
this.scrollBar.setHeight(v.scrollerHeight);if(this.session){this.session.setScrollTop(this.getScrollTop());x=x|this.CHANGE_FULL;}}if(!y){y=m.getInnerWidth(this.container);
}if(z||this.resizing>1||v.width!=y){v.width=y;var w=this.showGutter?this.$gutter.offsetWidth:0;this.scroller.style.left=w+"px";v.scrollerWidth=Math.max(0,y-w-this.scrollBar.getWidth());
this.scroller.style.right=this.scrollBar.getWidth()+"px";if(this.session.getUseWrapMode()&&this.adjustWrapLimit()||z){x=x|this.CHANGE_FULL;}}if(z){this.$renderChanges(x,true);
}else{this.$loop.schedule(x);}if(z){delete this.resizing;}};this.adjustWrapLimit=function(){var v=this.$size.scrollerWidth-this.$padding*2;var u=Math.floor(v/this.characterWidth);
return this.session.adjustWrapLimit(u);};this.setAnimatedScroll=function(u){this.$animatedScroll=u;};this.getAnimatedScroll=function(){return this.$animatedScroll;
};this.setShowInvisibles=function(u){if(this.$textLayer.setShowInvisibles(u)){this.$loop.schedule(this.CHANGE_TEXT);}};this.getShowInvisibles=function(){return this.$textLayer.showInvisibles;
};this.getDisplayIndentGuides=function(){return this.$textLayer.displayIndentGuides;};this.setDisplayIndentGuides=function(u){if(this.$textLayer.setDisplayIndentGuides(u)){this.$loop.schedule(this.CHANGE_TEXT);
}};this.$showPrintMargin=true;this.setShowPrintMargin=function(u){this.$showPrintMargin=u;this.$updatePrintMargin();};this.getShowPrintMargin=function(){return this.$showPrintMargin;
};this.$printMarginColumn=80;this.setPrintMarginColumn=function(u){this.$printMarginColumn=u;this.$updatePrintMargin();};this.getPrintMarginColumn=function(){return this.$printMarginColumn;
};this.getShowGutter=function(){return this.showGutter;};this.setShowGutter=function(u){if(this.showGutter===u){return;}this.$gutter.style.display=u?"block":"none";
this.showGutter=u;this.onResize(true);};this.getFadeFoldWidgets=function(){return m.hasCssClass(this.$gutter,"ace_fade-fold-widgets");};this.setFadeFoldWidgets=function(u){if(u){m.addCssClass(this.$gutter,"ace_fade-fold-widgets");
}else{m.removeCssClass(this.$gutter,"ace_fade-fold-widgets");}};this.$highlightGutterLine=false;this.setHighlightGutterLine=function(u){if(this.$highlightGutterLine==u){return;
}this.$highlightGutterLine=u;if(!this.$gutterLineHighlight){this.$gutterLineHighlight=m.createElement("div");this.$gutterLineHighlight.className="ace_gutter_active_line";
this.$gutter.appendChild(this.$gutterLineHighlight);return;}this.$gutterLineHighlight.style.display=u?"":"none";if(this.$cursorLayer.$pixelPos){this.$updateGutterLineHighlight();
}};this.getHighlightGutterLine=function(){return this.$highlightGutterLine;};this.$updateGutterLineHighlight=function(){this.$gutterLineHighlight.style.top=this.$cursorLayer.$pixelPos.top-this.layerConfig.offset+"px";
this.$gutterLineHighlight.style.height=this.layerConfig.lineHeight+"px";};this.$updatePrintMargin=function(){var v;if(!this.$showPrintMargin&&!this.$printMarginEl){return;
}if(!this.$printMarginEl){v=m.createElement("div");v.className="ace_print_margin_layer";this.$printMarginEl=m.createElement("div");this.$printMarginEl.className="ace_print_margin";
v.appendChild(this.$printMarginEl);this.content.insertBefore(v,this.$textLayer.element);}var u=this.$printMarginEl.style;u.left=((this.characterWidth*this.$printMarginColumn)+this.$padding)+"px";
u.visibility=this.$showPrintMargin?"visible":"hidden";};this.getContainerElement=function(){return this.container;};this.getMouseEventTarget=function(){return this.content;
};this.getTextAreaContainer=function(){return this.container;};this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor){return;}var x=this.$cursorLayer.$pixelPos.top;
var u=this.$cursorLayer.$pixelPos.left;x-=this.layerConfig.offset;if(x<0||x>this.layerConfig.height-this.lineHeight){return;}var v=this.characterWidth;
if(this.$composition){v+=this.textarea.scrollWidth;}u-=this.scrollLeft;if(u>this.$size.scrollerWidth-v){u=this.$size.scrollerWidth-v;}if(this.showGutter){u+=this.$gutterLayer.gutterWidth;
}this.textarea.style.height=this.lineHeight+"px";this.textarea.style.width=v+"px";this.textarea.style.left=u+"px";this.textarea.style.top=x-1+"px";};this.getFirstVisibleRow=function(){return this.layerConfig.firstRow;
};this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1);};this.getLastFullyVisibleRow=function(){var u=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);
return this.layerConfig.firstRow-1+u;};this.getLastVisibleRow=function(){return this.layerConfig.lastRow;};this.$padding=null;this.setPadding=function(u){this.$padding=u;
this.$textLayer.setPadding(u);this.$cursorLayer.setPadding(u);this.$markerFront.setPadding(u);this.$markerBack.setPadding(u);this.$loop.schedule(this.CHANGE_FULL);
this.$updatePrintMargin();};this.getHScrollBarAlwaysVisible=function(){return this.$horizScrollAlwaysVisible;};this.setHScrollBarAlwaysVisible=function(u){if(this.$horizScrollAlwaysVisible!=u){this.$horizScrollAlwaysVisible=u;
if(!this.$horizScrollAlwaysVisible||!this.$horizScroll){this.$loop.schedule(this.CHANGE_SCROLL);}}};this.$updateScrollBar=function(){this.scrollBar.setInnerHeight(this.layerConfig.maxHeight);
this.scrollBar.setScrollTop(this.scrollTop);};this.$renderChanges=function(u,v){if(!v&&(!u||!this.session||!this.container.offsetWidth)){return;}if(u&this.CHANGE_FULL||u&this.CHANGE_SIZE||u&this.CHANGE_TEXT||u&this.CHANGE_LINES||u&this.CHANGE_SCROLL){this.$computeLayerConfig();
}if(u&this.CHANGE_H_SCROLL){this.scroller.scrollLeft=this.scrollLeft;var w=this.scroller.scrollLeft;this.scrollLeft=w;this.session.setScrollLeft(w);this.scroller.className=this.scrollLeft==0?"ace_scroller":"ace_scroller horscroll";
}if(u&this.CHANGE_FULL){this.$textLayer.checkForSizeChanges();this.$updateScrollBar();this.$textLayer.update(this.layerConfig);if(this.showGutter){this.$gutterLayer.update(this.layerConfig);
}this.$markerBack.update(this.layerConfig);this.$markerFront.update(this.layerConfig);this.$cursorLayer.update(this.layerConfig);this.$moveTextAreaToCursor();
this.$highlightGutterLine&&this.$updateGutterLineHighlight();return;}if(u&this.CHANGE_SCROLL){this.$updateScrollBar();if(u&this.CHANGE_TEXT||u&this.CHANGE_LINES){this.$textLayer.update(this.layerConfig);
}else{this.$textLayer.scrollLines(this.layerConfig);}if(this.showGutter){this.$gutterLayer.update(this.layerConfig);}this.$markerBack.update(this.layerConfig);
this.$markerFront.update(this.layerConfig);this.$cursorLayer.update(this.layerConfig);this.$moveTextAreaToCursor();this.$highlightGutterLine&&this.$updateGutterLineHighlight();
return;}if(u&this.CHANGE_TEXT){this.$textLayer.update(this.layerConfig);if(this.showGutter){this.$gutterLayer.update(this.layerConfig);}}else{if(u&this.CHANGE_LINES){if(this.$updateLines()||(u&this.CHANGE_GUTTER)&&this.showGutter){this.$gutterLayer.update(this.layerConfig);
}}else{if(u&this.CHANGE_TEXT||u&this.CHANGE_GUTTER){if(this.showGutter){this.$gutterLayer.update(this.layerConfig);}}}}if(u&this.CHANGE_CURSOR){this.$cursorLayer.update(this.layerConfig);
this.$moveTextAreaToCursor();this.$highlightGutterLine&&this.$updateGutterLineHighlight();}if(u&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)){this.$markerFront.update(this.layerConfig);
}if(u&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)){this.$markerBack.update(this.layerConfig);}if(u&this.CHANGE_SIZE){this.$updateScrollBar();}};this.$computeLayerConfig=function(){var y=this.session;
var w=this.scrollTop%this.lineHeight;var E=this.$size.scrollerHeight+this.lineHeight;var z=this.$getLongestLine();var F=this.$horizScrollAlwaysVisible||this.$size.scrollerWidth-z<0;
var u=this.$horizScroll!==F;this.$horizScroll=F;if(u){this.scroller.style.overflowX=F?"scroll":"hidden";if(!F){this.session.setScrollLeft(0);}}var D=this.session.getScreenLength()*this.lineHeight;
this.session.setScrollTop(Math.max(0,Math.min(this.scrollTop,D-this.$size.scrollerHeight)));var G=Math.ceil(E/this.lineHeight)-1;var v=Math.max(0,Math.round((this.scrollTop-w)/this.lineHeight));
var H=v+G;var C,x;var B=this.lineHeight;v=y.screenToDocumentRow(v,0);var A=y.getFoldLine(v);if(A){v=A.start.row;}C=y.documentToScreenRow(v,0);x=y.getRowLength(v)*B;
H=Math.min(y.screenToDocumentRow(H,0),y.getLength()-1);E=this.$size.scrollerHeight+y.getRowLength(H)*B+x;w=this.scrollTop-C*B;this.layerConfig={width:z,padding:this.$padding,firstRow:v,firstRowScreen:C,lastRow:H,lineHeight:B,characterWidth:this.characterWidth,minHeight:E,maxHeight:D,offset:w,height:this.$size.scrollerHeight};
this.$gutterLayer.element.style.marginTop=(-w)+"px";this.content.style.marginTop=(-w)+"px";this.content.style.width=z+2*this.$padding+"px";this.content.style.height=E+"px";
if(u){this.onResize(true);}};this.$updateLines=function(){var w=this.$changedLines.firstRow;var v=this.$changedLines.lastRow;this.$changedLines=null;var u=this.layerConfig;
if(w>u.lastRow+1){return;}if(v<u.firstRow){return;}if(v===Infinity){if(this.showGutter){this.$gutterLayer.update(u);}this.$textLayer.update(u);return;}this.$textLayer.updateLines(u,w,v);
return true;};this.$getLongestLine=function(){var u=this.session.getScreenWidth();if(this.$textLayer.showInvisibles){u+=1;}return Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(u*this.characterWidth));
};this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(true));this.$loop.schedule(this.CHANGE_MARKER_FRONT);};this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers());
this.$loop.schedule(this.CHANGE_MARKER_BACK);};this.addGutterDecoration=function(v,u){this.$gutterLayer.addGutterDecoration(v,u);};this.removeGutterDecoration=function(v,u){this.$gutterLayer.removeGutterDecoration(v,u);
};this.updateBreakpoints=function(u){this.$loop.schedule(this.CHANGE_GUTTER);};this.setAnnotations=function(u){this.$gutterLayer.setAnnotations(u);this.$loop.schedule(this.CHANGE_GUTTER);
};this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR);};this.hideCursor=function(){this.$cursorLayer.hideCursor();};this.showCursor=function(){this.$cursorLayer.showCursor();
};this.scrollSelectionIntoView=function(v,u,w){this.scrollCursorIntoView(v,w);this.scrollCursorIntoView(u,w);};this.scrollCursorIntoView=function(y,x){if(this.$size.scrollerHeight===0){return;
}var z=this.$cursorLayer.getPixelPosition(y);var v=z.left;var u=z.top;if(this.scrollTop>u){if(x){u-=x*this.$size.scrollerHeight;}this.session.setScrollTop(u);
}else{if(this.scrollTop+this.$size.scrollerHeight<u+this.lineHeight){if(x){u+=x*this.$size.scrollerHeight;}this.session.setScrollTop(u+this.lineHeight-this.$size.scrollerHeight);
}}var w=this.scrollLeft;if(w>v){if(v<this.$padding+2*this.layerConfig.characterWidth){v=0;}this.session.setScrollLeft(v);}else{if(w+this.$size.scrollerWidth<v+this.characterWidth){this.session.setScrollLeft(Math.round(v+this.characterWidth-this.$size.scrollerWidth));
}}};this.getScrollTop=function(){return this.session.getScrollTop();};this.getScrollLeft=function(){return this.session.getScrollLeft();};this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight;
};this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1);};this.scrollToRow=function(u){this.session.setScrollTop(u*this.lineHeight);
};this.alignCursor=function(w,y){if(typeof w=="number"){w={row:w,column:0};}var x=this.$cursorLayer.getPixelPosition(w);var u=this.$size.scrollerHeight-this.lineHeight;
var v=x.top-u*(y||0);this.session.setScrollTop(v);return v;};this.STEPS=8;this.$calcSteps=function(z,v){var x=0;var u=this.STEPS;var w=[];var y=function(B,C,A){return A*(Math.pow(B-1,3)+1)+C;
};for(x=0;x<u;++x){w.push(y(x/this.STEPS,z,v-z));}return w;};this.scrollToLine=function(v,u,w,A){var z=this.$cursorLayer.getPixelPosition({row:v,column:0});
var y=z.top;if(u){y-=this.$size.scrollerHeight/2;}var x=this.scrollTop;this.session.setScrollTop(y);if(w!==false){this.animateScrolling(x,A);}};this.animateScrolling=function(x,y){var v=this.scrollTop;
if(this.$animatedScroll&&Math.abs(x-v)<100000){var u=this;var w=u.$calcSteps(x,v);this.$inScrollAnimation=true;clearInterval(this.$timer);u.session.setScrollTop(w.shift());
this.$timer=setInterval(function(){if(w.length){u.session.setScrollTop(w.shift());u.session.$scrollTop=v;}else{if(v!=null){u.session.$scrollTop=-1;u.session.setScrollTop(v);
v=null;}else{u.$timer=clearInterval(u.$timer);u.$inScrollAnimation=false;y&&y();}}},10);}};this.scrollToY=function(u){if(this.scrollTop!==u){this.$loop.schedule(this.CHANGE_SCROLL);
this.scrollTop=u;}};this.scrollToX=function(u){if(u<0){u=0;}if(this.scrollLeft!==u){this.scrollLeft=u;}this.$loop.schedule(this.CHANGE_H_SCROLL);};this.scrollBy=function(v,u){u&&this.session.setScrollTop(this.session.getScrollTop()+u);
v&&this.session.setScrollLeft(this.session.getScrollLeft()+v);};this.isScrollableBy=function(v,u){if(u<0&&this.session.getScrollTop()>0){return true;}if(u>0&&this.session.getScrollTop()+this.$size.scrollerHeight<this.layerConfig.maxHeight){return true;
}};this.pixelToScreenCoordinates=function(u,B){var w=this.scroller.getBoundingClientRect();var A=(u+this.scrollLeft-w.left-this.$padding)/this.characterWidth;
var z=Math.floor((B+this.scrollTop-w.top)/this.lineHeight);var v=Math.round(A);return{row:z,column:v,side:A-v>0?1:-1};};this.screenToTextCoordinates=function(u,A){var w=this.scroller.getBoundingClientRect();
var v=Math.round((u+this.scrollLeft-w.left-this.$padding)/this.characterWidth);var z=Math.floor((A+this.scrollTop-w.top)/this.lineHeight);return this.session.screenToDocumentPosition(z,Math.max(v,0));
};this.textToScreenCoordinates=function(z,w){var v=this.scroller.getBoundingClientRect();var B=this.session.documentToScreenPosition(z,w);var u=this.$padding+Math.round(B.column*this.characterWidth);
var A=B.row*this.lineHeight;return{pageX:v.left+u-this.scrollLeft,pageY:v.top+A-this.scrollTop};};this.visualizeFocus=function(){m.addCssClass(this.container,"ace_focus");
};this.visualizeBlur=function(){m.removeCssClass(this.container,"ace_focus");};this.showComposition=function(u){if(!this.$composition){this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText};
}this.$keepTextAreaAtCursor=true;m.addCssClass(this.textarea,"ace_composition");this.textarea.style.cssText="";this.$moveTextAreaToCursor();};this.setCompositionText=function(u){this.$moveTextAreaToCursor();
};this.hideComposition=function(){if(!this.$composition){return;}m.removeCssClass(this.textarea,"ace_composition");this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor;
this.textarea.style.cssText=this.$composition.cssText;this.$composition=null;};this._loadTheme=function(u,v){if(!q.get("packaged")){return v();}k.loadScript(q.moduleUrl(u,"theme"),v);
};this.setTheme=function(y){var u=this;this.$themeValue=y;if(!y||typeof y=="string"){var v=y||"ace/theme/textmate";var w;try{w=d(v);}catch(x){}if(w){return z(w);
}u._loadTheme(v,function(){d([v],function(A){if(u.$themeValue!==y){return;}z(A);});});}else{z(y);}function z(A){m.importCssString(A.cssText,A.cssClass,u.container.ownerDocument);
if(u.$theme){m.removeCssClass(u.container,u.$theme);}u.$theme=A?A.cssClass:null;if(u.$theme){m.addCssClass(u.container,u.$theme);}if(A&&A.isDark){m.addCssClass(u.container,"ace_dark");
}else{m.removeCssClass(u.container,"ace_dark");}if(u.$size){u.$size.width=0;u.onResize();}}};this.getTheme=function(){return this.$themeValue;};this.setStyle=function t(u){m.addCssClass(this.container,u);
};this.unsetStyle=function s(u){m.removeCssClass(this.container,u);};this.destroy=function(){this.$textLayer.destroy();this.$cursorLayer.destroy();};}).call(f.prototype);
r.VirtualRenderer=f;});define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(b,a,c){var g=b("../lib/dom");
var f=b("../lib/oop");var e=b("../lib/event_emitter").EventEmitter;var d=function(h){this.element=g.createElement("div");this.element.className="ace_layer ace_gutter-layer";
h.appendChild(this.element);this.setShowFoldWidgets(this.$showFoldWidgets);this.gutterWidth=0;this.$annotations=[];};(function(){f.implement(this,e);this.setSession=function(h){this.session=h;
};this.addGutterDecoration=function(i,h){if(window.console){console.warn&&console.warn("deprecated use session.addGutterDecoration");}this.session.addGutterDecoration(i,h);
};this.removeGutterDecoration=function(i,h){if(window.console){console.warn&&console.warn("deprecated use session.removeGutterDecoration");}this.session.removeGutterDecoration(i,h);
};this.setAnnotations=function(o){this.$annotations=[];for(var p in o){if(o.hasOwnProperty(p)){var m=o[p];if(!m){continue;}var n=this.$annotations[p]={text:[]};
for(var k=0;k<m.length;k++){var h=m[k];var j=h.text.replace(/"/g,"&quot;").replace(/'/g,"&#8217;").replace(/</,"&lt;");if(n.text.indexOf(j)===-1){n.text.push(j);
}var l=h.type;if(l=="error"){n.className=" ace_error";}else{if(l=="warning"&&n.className!=" ace_error"){n.className=" ace_warning";}else{if(l=="info"&&(!n.className)){n.className=" ace_info";
}}}}}}};this.update=function(j){var v={className:""};var q=[];var o=j.firstRow;var w=j.lastRow;var s=this.session.getNextFoldLine(o);var p=s?s.start.row:Infinity;
var k=this.$showFoldWidgets&&this.session.foldWidgets;var r=this.session.$breakpoints;var l=this.session.$decorations;var n=0;while(true){if(o>p){o=s.end.row+1;
s=this.session.getNextFoldLine(o,s);p=s?s.start.row:Infinity;}if(o>w){break;}var m=this.$annotations[o]||v;q.push("<div class='ace_gutter-cell ",r[o]||"",l[o]||"",m.className,"' style='height:",this.session.getRowLength(o)*j.lineHeight,"px;'>",n=o+1);
if(k){var t=k[o];if(t==null){t=k[o]=this.session.getFoldWidget(o);}if(t){q.push("<span class='ace_fold-widget ",t,t=="start"&&o==p&&o<s.end.row?" closed":" open","' style='height:",j.lineHeight,"px","'></span>");
}}q.push("</div>");o++;}this.element=g.setInnerHtml(this.element,q.join(""));this.element.style.height=j.minHeight+"px";if(this.session.$useWrapMode){n=this.session.getLength();
}var h=(""+n).length*j.characterWidth;var u=this.$padding||this.$computePadding();h+=u.left+u.right;if(h!==this.gutterWidth){this.gutterWidth=h;this.element.style.width=Math.ceil(this.gutterWidth)+"px";
this._emit("changeGutterWidth",h);}};this.$showFoldWidgets=true;this.setShowFoldWidgets=function(h){if(h){g.addCssClass(this.element,"ace_folding-enabled");
}else{g.removeCssClass(this.element,"ace_folding-enabled");}this.$showFoldWidgets=h;this.$padding=null;};this.getShowFoldWidgets=function(){return this.$showFoldWidgets;
};this.$computePadding=function(){if(!this.element.firstChild){return{left:0,right:0};}var h=g.computedStyle(this.element.firstChild);this.$padding={};
this.$padding.left=parseInt(h.paddingLeft)+1;this.$padding.right=parseInt(h.paddingRight);return this.$padding;};this.getRegion=function(h){var j=this.$padding||this.$computePadding();
var i=this.element.getBoundingClientRect();if(h.x<j.left+i.left){return"markers";}if(this.$showFoldWidgets&&h.x>i.right-j.right){return"foldWidgets";}};
}).call(d.prototype);a.Gutter=d;});define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(c,b,d){var e=c("../range").Range;
var f=c("../lib/dom");var a=function(g){this.element=f.createElement("div");this.element.className="ace_layer ace_marker-layer";g.appendChild(this.element);
};(function(){this.$padding=0;this.setPadding=function(g){this.$padding=g;};this.setSession=function(g){this.session=g;};this.setMarkers=function(g){this.markers=g;
};this.update=function(i){var i=i||this.config;if(!i){return;}this.config=i;var k=[];for(var j in this.markers){var g=this.markers[j];if(!g.range){g.update(k,this,this.session,i);
continue;}var h=g.range.clipRows(i.firstRow,i.lastRow);if(h.isEmpty()){continue;}h=h.toScreenRange(this.session);if(g.renderer){var m=this.$getTop(h.start.row,i);
var l=Math.round(this.$padding+h.start.column*i.characterWidth);g.renderer(k,h,l,m,i);}else{if(h.isMultiLine()){if(g.type=="text"){this.drawTextMarker(k,h,g.clazz,i);
}else{this.drawMultiLineMarker(k,h,g.clazz,i,g.type);}}else{this.drawSingleLineMarker(k,h,g.clazz+" start",i,null,g.type);}}}this.element=f.setInnerHtml(this.element,k.join(""));
};this.$getTop=function(h,g){return(h-g.firstRowScreen)*g.lineHeight;};this.drawTextMarker=function(j,h,i,g){var l=h.start.row;var k=new e(l,h.start.column,l,this.session.getScreenLastRowColumn(l));
this.drawSingleLineMarker(j,k,i+" start",g,1,"text");l=h.end.row;k=new e(l,0,l,h.end.column);this.drawSingleLineMarker(j,k,i,g,0,"text");for(l=h.start.row+1;
l<h.end.row;l++){k.start.row=l;k.end.row=l;k.end.column=this.session.getScreenLastRowColumn(l);this.drawSingleLineMarker(j,k,i,g,1,"text");}};this.drawMultiLineMarker=function(h,k,l,i,m){var o=m==="background"?0:this.$padding;
var p=i.lineHeight;var n=this.$getTop(k.start.row,i);var j=Math.round(o+k.start.column*i.characterWidth);h.push("<div class='",l," start' style='","height:",p,"px;","right:0;","top:",n,"px;","left:",j,"px;'></div>");
n=this.$getTop(k.end.row,i);var g=Math.round(k.end.column*i.characterWidth);h.push("<div class='",l,"' style='","height:",p,"px;","width:",g,"px;","top:",n,"px;","left:",o,"px;'></div>");
p=(k.end.row-k.start.row-1)*i.lineHeight;if(p<0){return;}n=this.$getTop(k.start.row+1,i);h.push("<div class='",l,"' style='","height:",p,"px;","right:0;","top:",n,"px;","left:",o,"px;'></div>");
};this.drawSingleLineMarker=function(h,j,l,p,k,m){var o=m==="background"?0:this.$padding;var q=p.lineHeight;if(m==="background"){var g=p.width;}else{g=Math.round((j.end.column+(k||0)-j.start.column)*p.characterWidth);
}var n=this.$getTop(j.start.row,p);var i=Math.round(o+j.start.column*p.characterWidth);h.push("<div class='",l,"' style='","height:",q,"px;","width:",g,"px;","top:",n,"px;","left:",i,"px;'></div>");
};}).call(a.prototype);b.Marker=a;});define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,g,b){var h=e("../lib/oop");
var f=e("../lib/dom");var a=e("../lib/lang");var c=e("../lib/useragent");var i=e("../lib/event_emitter").EventEmitter;var d=function(j){this.element=f.createElement("div");
this.element.className="ace_layer ace_text-layer";j.appendChild(this.element);this.$characterSize=this.$measureSizes()||{width:0,height:0};this.$pollSizeChanges();
};(function(){h.implement(this,i);this.EOF_CHAR="\xB6";this.EOL_CHAR="\xAC";this.TAB_CHAR="\u2192";this.SPACE_CHAR="\xB7";this.$padding=0;this.setPadding=function(j){this.$padding=j;
this.element.style.padding="0 "+j+"px";};this.getLineHeight=function(){return this.$characterSize.height||1;};this.getCharacterWidth=function(){return this.$characterSize.width||1;
};this.checkForSizeChanges=function(){var j=this.$measureSizes();if(j&&(this.$characterSize.width!==j.width||this.$characterSize.height!==j.height)){this.$characterSize=j;
this._emit("changeCharacterSize",{data:j});}};this.$pollSizeChanges=function(){var j=this;this.$pollSizeChangesTimer=setInterval(function(){j.checkForSizeChanges();
},500);};this.$fontStyles={fontFamily:1,fontSize:1,fontWeight:1,fontStyle:1,lineHeight:1};this.$measureSizes=c.isIE||c.isOldGecko?function(){var q=1000;
if(!this.$measureNode){var o=this.$measureNode=f.createElement("div");var m=o.style;m.width=m.height="auto";m.left=m.top=(-q*40)+"px";m.visibility="hidden";
m.position="fixed";m.overflow="visible";m.whiteSpace="nowrap";o.innerHTML=a.stringRepeat("Xy",q);if(this.element.ownerDocument.body){this.element.ownerDocument.body.appendChild(o);
}else{var j=this.element.parentNode;while(!f.hasCssClass(j,"ace_editor")){j=j.parentNode;}j.appendChild(o);}}if(!this.element.offsetWidth){return null;
}var m=this.$measureNode.style;var k=f.computedStyle(this.element);for(var p in this.$fontStyles){m[p]=k[p];}var l={height:this.$measureNode.offsetHeight,width:this.$measureNode.offsetWidth/(q*2)};
if(l.width==0||l.height==0){return null;}return l;}:function(){if(!this.$measureNode){var n=this.$measureNode=f.createElement("div");var l=n.style;l.width=l.height="auto";
l.left=l.top=-100+"px";l.visibility="hidden";l.position="fixed";l.overflow="visible";l.whiteSpace="nowrap";n.innerHTML="X";var j=this.element.parentNode;
while(j&&!f.hasCssClass(j,"ace_editor")){j=j.parentNode;}if(!j){return this.$measureNode=null;}j.appendChild(n);}var m=this.$measureNode.getBoundingClientRect();
var k={height:m.height,width:m.width};if(k.width==0||k.height==0){return null;}return k;};this.setSession=function(j){this.session=j;this.$computeTabString();
};this.showInvisibles=false;this.setShowInvisibles=function(j){if(this.showInvisibles==j){return false;}this.showInvisibles=j;this.$computeTabString();
return true;};this.displayIndentGuides=true;this.setDisplayIndentGuides=function(j){if(this.displayIndentGuides==j){return false;}this.displayIndentGuides=j;
this.$computeTabString();return true;};this.$tabStrings=[];this.onChangeTabSize=this.$computeTabString=function(){var o=this.session.getTabSize();this.tabSize=o;
var j=this.$tabStrings=[0];for(var k=1;k<o+1;k++){if(this.showInvisibles){j.push("<span class='ace_invisible'>"+this.TAB_CHAR+Array(k).join("&#160;")+"</span>");
}else{j.push(new Array(k+1).join("&#160;"));}}if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var l="ace_indent-guide";var n=Array(this.tabSize+1).join("&#160;");
var m=n;if(this.showInvisibles){l+=" ace_invisible";m=this.TAB_CHAR+n.substr(6);}this.$tabStrings[" "]="<span class='"+l+"'>"+n+"</span>";this.$tabStrings["\t"]="<span class='"+l+"'>"+m+"</span>";
}};this.updateLines=function(k,m,u){if(this.config.lastRow!=k.lastRow||this.config.firstRow!=k.firstRow){this.scrollLines(k);}this.config=k;var p=Math.max(m,k.firstRow);
var r=Math.min(u,k.lastRow);var s=this.element.childNodes;var j=0;for(var t=k.firstRow;t<p;t++){var q=this.session.getFoldLine(t);if(q){if(q.containsRow(p)){p=q.start.row;
break;}else{t=q.end.row;}}j++;}var t=p;var q=this.session.getNextFoldLine(t);var n=q?q.start.row:Infinity;while(true){if(t>n){t=q.end.row+1;q=this.session.getNextFoldLine(t,q);
n=q?q.start.row:Infinity;}if(t>r){break;}var l=s[j++];if(l){var o=[];this.$renderLine(o,t,!this.$useLineGroups(),t==n?q:false);f.setInnerHtml(l,o.join(""));
}t++;}};this.scrollLines=function(l){var j=this.config;this.config=l;if(!j||j.lastRow<l.firstRow){return this.update(l);}if(l.lastRow<j.firstRow){return this.update(l);
}var m=this.element;if(j.firstRow<l.firstRow){for(var n=this.session.getFoldedRowCount(j.firstRow,l.firstRow-1);n>0;n--){m.removeChild(m.firstChild);}}if(j.lastRow>l.lastRow){for(var n=this.session.getFoldedRowCount(l.lastRow+1,j.lastRow);
n>0;n--){m.removeChild(m.lastChild);}}if(l.firstRow<j.firstRow){var k=this.$renderLinesFragment(l,l.firstRow,j.firstRow-1);if(m.firstChild){m.insertBefore(k,m.firstChild);
}else{m.appendChild(k);}}if(l.lastRow>j.lastRow){var k=this.$renderLinesFragment(l,j.lastRow+1,l.lastRow);m.appendChild(k);}};this.$renderLinesFragment=function(k,l,s){var o=this.element.ownerDocument.createDocumentFragment();
var r=l;var p=this.session.getNextFoldLine(r);var m=p?p.start.row:Infinity;while(true){if(r>m){r=p.end.row+1;p=this.session.getNextFoldLine(r,p);m=p?p.start.row:Infinity;
}if(r>s){break;}var j=f.createElement("div");var n=[];this.$renderLine(n,r,false,r==m?p:false);j.innerHTML=n.join("");if(this.$useLineGroups()){j.className="ace_line_group";
o.appendChild(j);}else{var q=j.childNodes;while(q.length){o.appendChild(q[0]);}}r++;}return o;};this.update=function(k){this.config=k;var l=[];var p=k.firstRow,m=k.lastRow;
var o=p;var n=this.session.getNextFoldLine(o);var j=n?n.start.row:Infinity;while(true){if(o>j){o=n.end.row+1;n=this.session.getNextFoldLine(o,n);j=n?n.start.row:Infinity;
}if(o>m){break;}if(this.$useLineGroups()){l.push("<div class='ace_line_group'>");}this.$renderLine(l,o,false,o==j?n:false);if(this.$useLineGroups()){l.push("</div>");
}o++;}this.element=f.setInnerHtml(this.element,l.join(""));};this.$textToken={text:true,rparen:true,lparen:true};this.$renderToken=function(l,p,o,r){var s=this;
var j=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g;
var q=function(A,v,u,w,t){if(v){return new Array(A.length+1).join("&#160;");}else{if(A=="&"){return"&#38;";}else{if(A=="<"){return"&#60;";}else{if(A=="\t"){var y=s.session.getScreenTabSize(p+w);
p+=y-1;return s.$tabStrings[y];}else{if(A=="\u3000"){var z=s.showInvisibles?"ace_cjk ace_invisible":"ace_cjk";var x=s.showInvisibles?s.SPACE_CHAR:"";p+=1;
return"<span class='"+z+"' style='width:"+(s.config.characterWidth*2)+"px'>"+x+"</span>";}else{if(u){return"<span class='ace_invisible ace_invalid'>"+s.SPACE_CHAR+"</span>";
}else{p+=1;return"<span class='ace_cjk' style='width:"+(s.config.characterWidth*2)+"px'>"+A+"</span>";}}}}}}};var m=r.replace(j,q);if(!this.$textToken[o.type]){var n="ace_"+o.type.replace(/\./g," ace_");
var k="";if(o.type=="fold"){k=" style='width:"+(o.value.length*this.config.characterWidth)+"px;' ";}l.push("<span class='",n,"'",k,">",m,"</span>");}else{l.push(m);
}return p+r.length;};this.renderIndentGuide=function(k,j){var l=j.search(this.$indentGuideRe);if(l<=0){return j;}if(j[0]==" "){l-=l%this.tabSize;k.push(Array(l/this.tabSize+1).join(this.$tabStrings[" "]));
return j.substr(l);}else{if(j[0]=="\t"){k.push(Array(l+1).join(this.$tabStrings["\t"]));return j.substr(l);}}return j;};this.$renderWrappedLine=function(j,p,t,k){var q=0;
var r=0;var l=t[0];var o=0;for(var n=0;n<p.length;n++){var m=p[n];var s=m.value;if(n==0&&this.displayIndentGuides){q=s.length;s=this.renderIndentGuide(j,s);
if(!s){continue;}q-=s.length;}if(q+s.length<l){o=this.$renderToken(j,o,m,s);q+=s.length;}else{while(q+s.length>=l){o=this.$renderToken(j,o,m,s.substring(0,l-q));
s=s.substring(l-q);q=l;if(!k){j.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>");}r++;o=0;l=t[r]||Number.MAX_VALUE;}if(s.length!=0){q+=s.length;
o=this.$renderToken(j,o,m,s);}}}};this.$renderSimpleLine=function(n,o){var l=0;var k=o[0];var m=k.value;if(this.displayIndentGuides){m=this.renderIndentGuide(n,m);
}if(m){l=this.$renderToken(n,l,k,m);}for(var j=1;j<o.length;j++){k=o[j];m=k.value;l=this.$renderToken(n,l,k,m);}};this.$renderLine=function(k,o,j,n){if(!n&&n!=false){n=this.session.getFoldLine(o);
}if(n){var m=this.$getFoldLineTokens(o,n);}else{var m=this.session.getTokens(o);}if(!j){k.push("<div class='ace_line' style='height:",this.config.lineHeight,"px'>");
}if(m.length){var l=this.session.getRowSplitData(o);if(l&&l.length){this.$renderWrappedLine(k,m,l,j);}else{this.$renderSimpleLine(k,m);}}if(this.showInvisibles){if(n){o=n.end.row;
}k.push("<span class='ace_invisible'>",o==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>");}if(!j){k.push("</div>");}};this.$getFoldLineTokens=function(n,m){var l=this.session;
var j=[];function o(s,u,t){var p=0,q=0;while((q+s[p].value.length)<u){q+=s[p].value.length;p++;if(p==s.length){return;}}if(q!=u){var r=s[p].value.substring(u-q);
if(r.length>(t-u)){r=r.substring(0,t-u);}j.push({type:s[p].type,value:r});q=u+r.length;p+=1;}while(q<t&&p<s.length){var r=s[p].value;if(r.length+q>t){j.push({type:s[p].type,value:r.substring(0,t-q)});
}else{j.push(s[p]);}q+=r.length;p+=1;}}var k=l.getTokens(n);m.walk(function(t,s,r,q,p){if(t){j.push({type:"fold",value:t});}else{if(p){k=l.getTokens(s);
}if(k.length){o(k,q,r);}}},m.end.row,this.session.getLine(m.end.row).length);return j;};this.$useLineGroups=function(){return this.session.getUseWrapMode();
};this.destroy=function(){clearInterval(this.$pollSizeChangesTimer);if(this.$measureNode){this.$measureNode.parentNode.removeChild(this.$measureNode);}delete this.$measureNode;
};}).call(d.prototype);g.Text=d;});define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(b,a,c){var e=b("../lib/dom");var d=function(f){this.element=e.createElement("div");
this.element.className="ace_layer ace_cursor-layer";f.appendChild(this.element);this.isVisible=false;this.isBlinking=true;this.cursors=[];this.cursor=this.addCursor();
};(function(){this.$padding=0;this.setPadding=function(f){this.$padding=f;};this.setSession=function(f){this.session=f;};this.setBlinking=function(f){this.isBlinking=f;
if(f){this.restartTimer();}};this.addCursor=function(){var g=e.createElement("div");var f="ace_cursor";if(!this.isVisible){f+=" ace_hidden";}if(this.overwrite){f+=" ace_overwrite";
}g.className=f;this.element.appendChild(g);this.cursors.push(g);return g;};this.removeCursor=function(){if(this.cursors.length>1){var f=this.cursors.pop();
f.parentNode.removeChild(f);return f;}};this.hideCursor=function(){this.isVisible=false;for(var f=this.cursors.length;f--;){e.addCssClass(this.cursors[f],"ace_hidden");
}clearInterval(this.blinkId);};this.showCursor=function(){this.isVisible=true;for(var f=this.cursors.length;f--;){e.removeCssClass(this.cursors[f],"ace_hidden");
}this.element.style.visibility="";this.restartTimer();};this.restartTimer=function(){clearInterval(this.blinkId);if(!this.isBlinking){return;}if(!this.isVisible){return;
}var f=this.cursors.length==1?this.cursor:this.element;this.blinkId=setInterval(function(){f.style.visibility="hidden";setTimeout(function(){f.style.visibility="";
},400);},1000);};this.getPixelPosition=function(f,g){if(!this.config||!this.session){return{left:0,top:0};}if(!f){f=this.session.selection.getCursor();
}var j=this.session.documentToScreenPosition(f);var h=Math.round(this.$padding+j.column*this.config.characterWidth);var i=(j.row-(g?this.config.firstRowScreen:0))*this.config.lineHeight;
return{left:h,top:i};};this.update=function(g){this.config=g;if(this.session.selectionMarkerCount>0){var k=this.session.$selectionMarkers;var h=0,m,n=0;
for(var h=k.length;h--;){m=k[h];var l=this.getPixelPosition(m.cursor,true);if((l.top>g.height+g.offset||l.top<-g.offset)&&h>1){continue;}var j=(this.cursors[n++]||this.addCursor()).style;
j.left=l.left+"px";j.top=l.top+"px";j.width=g.characterWidth+"px";j.height=g.lineHeight+"px";}if(n>1){while(this.cursors.length>n){this.removeCursor();
}}}else{var l=this.getPixelPosition(null,true);var j=this.cursor.style;j.left=l.left+"px";j.top=l.top+"px";j.width=g.characterWidth+"px";j.height=g.lineHeight+"px";
while(this.cursors.length>1){this.removeCursor();}}var f=this.session.getOverwrite();if(f!=this.overwrite){this.$setOverite(f);}this.$pixelPos=l;this.restartTimer();
};this.$setOverite=function(f){this.overwrite=f;for(var g=this.cursors.length;g--;){if(f){e.addCssClass(this.cursors[g],"ace_overwrite");}else{e.removeCssClass(this.cursors[g],"ace_overwrite");
}}};this.destroy=function(){clearInterval(this.blinkId);};}).call(d.prototype);a.Cursor=d;});define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(b,a,c){var g=b("./lib/oop");
var h=b("./lib/dom");var f=b("./lib/event");var e=b("./lib/event_emitter").EventEmitter;var d=function(i){this.element=h.createElement("div");this.element.className="ace_sb";
this.inner=h.createElement("div");this.element.appendChild(this.inner);i.appendChild(this.element);this.width=h.scrollbarWidth(i.ownerDocument);this.element.style.width=(this.width||15)+5+"px";
f.addListener(this.element,"scroll",this.onScroll.bind(this));};(function(){g.implement(this,e);this.onScroll=function(){this._emit("scroll",{data:this.element.scrollTop});
};this.getWidth=function(){return this.width;};this.setHeight=function(i){this.element.style.height=i+"px";};this.setInnerHeight=function(i){this.inner.style.height=i+"px";
};this.setScrollTop=function(i){this.element.scrollTop=i;};}).call(d.prototype);a.ScrollBar=d;});define("ace/renderloop",["require","exports","module","ace/lib/event"],function(b,a,c){var d=b("./lib/event");
var e=function(g,f){this.onRender=g;this.pending=false;this.changes=0;this.window=f||window;};(function(){this.schedule=function(g){this.changes=this.changes|g;
if(!this.pending){this.pending=true;var f=this;d.nextTick(function(){f.pending=false;var h;while(h=f.changes){f.changes=0;f.onRender(h);}},this.window);
}};}).call(e.prototype);a.RenderLoop=e;});define("text!ace/css/editor.css",[],".ace_editor {\n    position: absolute;\n    overflow: hidden;\n    font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Droid Sans Mono', 'Consolas', monospace;\n    font-size: 12px;\n}\n\n.ace_scroller {\n    position: absolute;\n    overflow: hidden;\n}\n\n.ace_content {\n    position: absolute;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    cursor: text;\n}\n\n.ace_gutter {\n    position: absolute;\n    overflow : hidden;\n    height: 100%;\n    width: auto;\n    cursor: default;\n    z-index: 4;\n}\n\n.ace_gutter_active_line {\n    position: absolute;\n    left: 0;\n    right: 0;\n}\n\n.ace_scroller.horscroll {\n    box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\n}\n\n.ace_gutter-cell {\n    padding-left: 19px;\n    padding-right: 6px;\n    background-repeat: no-repeat;\n}\n\n.ace_gutter-cell.ace_error {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTQ4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTU4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBMjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBMzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkgXxbAAAAJbSURBVHjapFNNaBNBFH4zs5vdZLP5sQmNpT82QY209heh1ioWisaDRcSKF0WKJ0GQnrzrxasHsR6EnlrwD0TagxJabaVEpFYxLWlLSS822tr87m66ccfd2GKyVhA6MMybgfe97/vmPUQphd0sZjto9XIn9OOsvlu2nkqRzVU+6vvlzPf8W6bk8dxQ0NPbxAALgCgg2JkaQuhzQau/El0zbmUA7U0Es8v2CiYmKQJHGO1QICCLoqilMhkmurDAyapKgqItezi/USRdJqEYY4D5jCy03ht2yMkkvL91jTTX10qzyyu2hruPRN7jgbH+EOsXcMLgYiThEgAMhABW85oqy1DXdRIdvP1AHJ2acQXvDIrVHcdQNrEKNYSVMSZGMjEzIIAwDXIo+6G/FxcGnzkC3T2oMhLjre49sBB+RRcHLqdafK6sYdE/GGBwU1VpFNj0aN8pJbe+BkZyevUrvLl6Xmm0W9IuTc0DxrDNAJd5oEvI/KRsNC3bQyNjPO9yQ1YHcfj2QvfQc/5TUhJTBc2iM0U7AWDQtc1nJHvD/cfO2s7jaGkiTEfa/Ep8coLu7zmNmh8+dc5lZDuUeFAGUNA/OY6JVaypQ0vjr7XYjUvJM37vt+j1vuTK5DgVfVUoTjVe+y3/LxMxY2GgU+CSLy4cpfsYorRXuXIOi0Vt40h67uZFTdIo6nLaZcwUJWAzwNS0tBnqqKzQDnjdG/iPyZxo46HaKUpbvYkj8qYRTZsBhge+JHhZyh0x9b95JqjVJkT084kZIPwu/mPWqPgfQ5jXh2+92Ay7HedfAgwA6KDWafb4w3cAAAAASUVORK5CYII=\");\n    background-repeat: no-repeat;\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_warning {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUM2OEZDQTg4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUM2OEZDQTk4RTU0MTFFMUEzM0VFRTM2RUY1M0RBMjYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQzY4RkNBNjhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQzY4RkNBNzhFNTQxMUUxQTMzRUVFMzZFRjUzREEyNiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pgd7PfIAAAGmSURBVHjaYvr//z8DJZiJgUIANoCRkREb9gLiSVAaQx4OQM7AAkwd7XU2/v++/rOttdYGEB9dASEvOMydGKfH8Gv/p4XTkvRBfLxeQAP+1cUhXopyvzhP7P/IoSj7g7Mw09cNKO6J1QQ0L4gICPIv/veg/8W+JdFvQNLHVsW9/nmn9zk7B+cCkDwhL7gt6knSZnx9/LuCEOcvkIAMP+cvto9nfqyZmmUAksfnBUtbM60gX/3/kgyv3/xSFOL5DZT+L8vP+Yfh5cvfPvp/xUHyQHXGyAYwgpwBjZYFT3Y1OEl/OfCH4ffv3wzc4iwMvNIsDJ+f/mH4+vIPAxsb631WW0Yln6ZpQLXdMK/DXGDflh+sIv37EivD5x//Gb7+YWT4y86sl7BCCkSD+Z++/1dkvsFRl+HnD1Rvje4F8whjMXmGj58YGf5zsDMwcnAwfPvKcml62DsQDeaDxN+/Y0qwlpEHqrdB94IRNIDUgfgfKJChGK4OikEW3gTiXUB950ASLFAF54AC94A0G9QAfOnmF9DCDzABFqS08IHYDIScdijOjQABBgC+/9awBH96jwAAAABJRU5ErkJggg==\");\n    background-position: 2px center;\n}\n\n.ace_gutter-cell.ace_info {\n    background-image: url(\"data:image/gif;base64,R0lGODlhEAAQAMQAAAAAAEFBQVJSUl5eXmRkZGtra39/f4WFhYmJiZGRkaampry8vMPDw8zMzNXV1dzc3OTk5Orq6vDw8P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABQALAAAAAAQABAAAAUuICWOZGmeaBml5XGwFCQSBGyXRSAwtqQIiRuiwIM5BoYVbEFIyGCQoeJGrVptIQA7\");\n    background-position: 2px center;\n}\n.ace_dark .ace_gutter-cell.ace_info {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRTk5MTVGREIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRTk5MTVGRUIxNDkxMUUxOTc5Q0FFREQyMTNGMjBFQyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZFOTkxNUZCQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkZFOTkxNUZDQjE0OTExRTE5NzlDQUVERDIxM0YyMEVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+SIDkjAAAAJ1JREFUeNpi/P//PwMlgImBQkB7A6qrq/+DMC55FkIGKCoq4pVnpFkgTp069f/+/fv/r1u37r+tre1/kg0A+ptn9uzZYLaRkRHpLvjw4cNXWVlZhufPnzOcO3eOdAO0tbVPAjHDmzdvGA4fPsxIsgGSkpJmv379Ynj37h2DjIyMCMkG3LhxQ/T27dsMampqDHZ2dq/pH41DxwCAAAMAFdc68dUsFZgAAAAASUVORK5CYII=\");\n}\n\n.ace_editor .ace_sb {\n    position: absolute;\n    overflow-x: hidden;\n    overflow-y: scroll;\n    right: 0;\n}\n\n.ace_editor .ace_sb div {\n    position: absolute;\n    width: 1px;\n    left: 0;\n}\n\n.ace_editor .ace_print_margin_layer {\n    z-index: 0;\n    position: absolute;\n    overflow: hidden;\n    margin: 0;\n    left: 0;\n    height: 100%;\n    width: 100%;\n}\n\n.ace_editor .ace_print_margin {\n    position: absolute;\n    height: 100%;\n}\n\n.ace_editor > textarea {\n    position: absolute;\n    z-index: 0;\n    width: 0.5em;\n    height: 1em;\n    opacity: 0;\n    background: transparent;\n    appearance: none;\n    -moz-appearance: none;\n    border: none;\n    resize: none;\n    outline: none;\n    overflow: hidden;\n}\n\n.ace_editor > textarea.ace_composition {\n    background: #fff;\n    color: #000;\n    z-index: 1000;\n    opacity: 1;\n    border: solid lightgray 1px;\n    margin: -1px\n}\n\n.ace_layer {\n    z-index: 1;\n    position: absolute;\n    overflow: hidden;\n    white-space: nowrap;\n    height: 100%;\n    width: 100%;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    /* setting pointer-events: auto; on node under the mouse, which changes\n        during scroll, will break mouse wheel scrolling in Safari */\n    pointer-events: none;\n}\n\n.ace_gutter .ace_layer {\n    position: relative;\n    width: auto;\n    text-align: right;\n    pointer-events: auto;\n}\n\n.ace_text-layer {\n    color: black;\n    font: inherit !important;\n}\n\n.ace_cjk {\n    display: inline-block;\n    text-align: center;\n}\n\n.ace_cursor-layer {\n    z-index: 4;\n}\n\n.ace_cursor {\n    z-index: 4;\n    position: absolute;\n}\n\n.ace_cursor.ace_hidden {\n    opacity: 0.2;\n}\n\n.ace_editor.multiselect .ace_cursor {\n    border-left-width: 1px;\n}\n\n.ace_line {\n    white-space: nowrap;\n}\n\n.ace_marker-layer .ace_step {\n    position: absolute;\n    z-index: 3;\n}\n\n.ace_marker-layer .ace_selection {\n    position: absolute;\n    z-index: 5;\n}\n\n.ace_marker-layer .ace_bracket {\n    position: absolute;\n    z-index: 6;\n}\n\n.ace_marker-layer .ace_active_line {\n    position: absolute;\n    z-index: 2;\n}\n\n.ace_marker-layer .ace_selected_word {\n    position: absolute;\n    z-index: 4;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n}\n\n.ace_line .ace_fold {\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n\n    display: inline-block;\n    height: 11px;\n    margin-top: -2px;\n    vertical-align: middle;\n\n    background-image:\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%3AIDAT8%11c%FC%FF%FF%7F%18%03%1A%60%01%F2%3F%A0%891%80%04%FF%11-%F8%17%9BJ%E2%05%B1ZD%81v%26t%E7%80%F8%A3%82h%A12%1A%20%A3%01%02%0F%01%BA%25%06%00%19%C0%0D%AEF%D5%3ES%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n    color: transparent;\n\n    border: 1px solid black;\n    -moz-border-radius: 2px;\n    -webkit-border-radius: 2px;\n    border-radius: 2px;\n\n    cursor: pointer;\n    pointer-events: auto;\n}\n\n.ace_dark .ace_fold {\n}\n\n.ace_fold:hover{\n    background-image:\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%11%00%00%00%09%08%06%00%00%00%D4%E8%C7%0C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%00%B5IDAT(%15%A5%91%3D%0E%02!%10%85ac%E1%05%D6%CE%D6%C6%CE%D2%E8%ED%CD%DE%C0%C6%D6N.%E0V%F8%3D%9Ca%891XH%C2%BE%D9y%3F%90!%E6%9C%C3%BFk%E5%011%C6-%F5%C8N%04%DF%BD%FF%89%DFt%83DN%60%3E%F3%AB%A0%DE%1A%5Dg%BE%10Q%97%1B%40%9C%A8o%10%8F%5E%828%B4%1B%60%87%F6%02%26%85%1Ch%1E%C1%2B%5Bk%FF%86%EE%B7j%09%9A%DA%9B%ACe%A3%F9%EC%DA!9%B4%D5%A6%81%86%86%98%CC%3C%5B%40%FA%81%B3%E9%CB%23%94%C16Azo%05%D4%E1%C1%95a%3B%8A'%A0%E8%CC%17%22%85%1D%BA%00%A2%FA%DC%0A%94%D1%D1%8D%8B%3A%84%17B%C7%60%1A%25Z%FC%8D%00%00%00%00IEND%AEB%60%82\"),\n        url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%007%08%06%00%00%00%C4%DD%80C%00%00%03%1EiCCPICC%20Profile%00%00x%01%85T%DFk%D3P%14%FE%DAe%9D%B0%E1%8B%3Ag%11%09%3Eh%91ndStC%9C%B6kW%BA%CDZ%EA6%B7!H%9B%A6m%5C%9A%C6%24%ED~%B0%07%D9%8Bo%3A%C5w%F1%07%3E%F9%07%0C%D9%83o%7B%92%0D%C6%14a%F8%AC%88%22L%F6%22%B3%9E%9B4M'S%03%B9%F7%BB%DF%F9%EE9'%E7%E4%5E%A0%F9qZ%D3%14%2F%0F%14USO%C5%C2%FC%C4%E4%14%DF%F2%01%5E%1CC%2B%FChM%8B%86%16J%26G%40%0F%D3%B2y%EF%B3%F3%0E%1E%C6lt%EEo%DF%AB%FEc%D5%9A%95%0C%11%F0%1C%20%BE%945%C4%22%E1Y%A0i%5C%D4t%13%E0%D6%89%EF%9D15%C2%CDLsX%A7%04%09%1Fg8oc%81%E1%8C%8D%23%96f45%40%9A%09%C2%07%C5B%3AK%B8%408%98i%E0%F3%0D%D8%CE%81%14%E4'%26%A9%92.%8B%3C%ABER%2F%E5dE%B2%0C%F6%F0%1Fs%83%F2_%B0%A8%94%E9%9B%AD%E7%10%8Dm%9A%19N%D1%7C%8A%DE%1F9%7Dp%8C%E6%00%D5%C1%3F_%18%BDA%B8%9DpX6%E3%A35~B%CD%24%AE%11%26%BD%E7%EEti%98%EDe%9A%97Y)%12%25%1C%24%BCbT%AE3li%E6%0B%03%89%9A%E6%D3%ED%F4P%92%B0%9F4%BF43Y%F3%E3%EDP%95%04%EB1%C5%F5%F6KF%F4%BA%BD%D7%DB%91%93%07%E35%3E%A7)%D6%7F%40%FE%BD%F7%F5r%8A%E5y%92%F0%EB%B4%1E%8D%D5%F4%5B%92%3AV%DB%DB%E4%CD%A6%23%C3%C4wQ%3F%03HB%82%8E%1Cd(%E0%91B%0Ca%9Ac%C4%AA%F8L%16%19%22J%A4%D2itTy%B28%D6%3B(%93%96%ED%1CGx%C9_%0E%B8%5E%16%F5%5B%B2%B8%F6%E0%FB%9E%DD%25%D7%8E%BC%15%85%C5%B7%A3%D8Q%ED%B5%81%E9%BA%B2%13%9A%1B%7Fua%A5%A3n%E17%B9%E5%9B%1Bm%AB%0B%08Q%FE%8A%E5%B1H%5Ee%CAO%82Q%D7u6%E6%90S%97%FCu%0B%CF2%94%EE%25v%12X%0C%BA%AC%F0%5E%F8*l%0AO%85%17%C2%97%BF%D4%C8%CE%DE%AD%11%CB%80q%2C%3E%AB%9ES%CD%C6%EC%25%D2L%D2%EBd%B8%BF%8A%F5B%C6%18%F9%901CZ%9D%BE%24M%9C%8A9%F2%DAP%0B'%06w%82%EB%E6%E2%5C%2F%D7%07%9E%BB%CC%5D%E1%FA%B9%08%AD.r%23%8E%C2%17%F5E%7C!%F0%BE3%BE%3E_%B7o%88a%A7%DB%BE%D3d%EB%A31Z%EB%BB%D3%91%BA%A2%B1z%94%8F%DB'%F6%3D%8E%AA%13%19%B2%B1%BE%B1~V%08%2B%B4%A2cjJ%B3tO%00%03%25mN%97%F3%05%93%EF%11%84%0B%7C%88%AE-%89%8F%ABbW%90O%2B%0Ao%99%0C%5E%97%0CI%AFH%D9.%B0%3B%8F%ED%03%B6S%D6%5D%E6i_s9%F3*p%E9%1B%FD%C3%EB.7U%06%5E%19%C0%D1s.%17%A03u%E4%09%B0%7C%5E%2C%EB%15%DB%1F%3C%9E%B7%80%91%3B%DBc%AD%3Dma%BA%8B%3EV%AB%DBt.%5B%1E%01%BB%0F%AB%D5%9F%CF%AA%D5%DD%E7%E4%7F%0Bx%A3%FC%06%A9%23%0A%D6%C2%A1_2%00%00%00%09pHYs%00%00%0B%13%00%00%0B%13%01%00%9A%9C%18%00%00%003IDAT8%11c%FC%FF%FF%7F%3E%03%1A%60%01%F2%3F%A3%891%80%04%FFQ%26%F8w%C0%B43%A1%DB%0C%E2%8F%0A%A2%85%CAh%80%8C%06%08%3C%04%E8%96%18%00%A3S%0D%CD%CF%D8%C1%9D%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat, repeat-x;\n    background-position: center center, top left;\n}\n\n.ace_dragging .ace_content {\n    cursor: move;\n}\n\n.ace_gutter_tooltip {\n    background-color: #FFFFD5;\n    border: 1px solid gray;\n    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.4);\n    color: black;\n    display: inline-block;\n    padding: 4px;\n    position: absolute;\n    z-index: 300;\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    cursor: default;\n}\n\n.ace_folding-enabled > .ace_gutter-cell {\n    padding-right: 13px;\n}\n\n.ace_fold-widget {\n    box-sizing: border-box;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n\n    margin: 0 -12px 0 1px;\n    display: inline-block;\n    width: 11px;\n    vertical-align: top;\n\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAe%8A%B1%0D%000%0C%C2%F2%2CK%96%BC%D0%8F9%81%88H%E9%D0%0E%96%C0%10%92%3E%02%80%5E%82%E4%A9*-%EEsw%C8%CC%11%EE%96w%D8%DC%E9*Eh%0C%151(%00%00%00%00IEND%AEB%60%82\");\n    background-repeat: no-repeat;\n    background-position: center;\n\n    border-radius: 3px;\n    \n    border: 1px solid transparent;\n}\n\n.ace_fold-widget.end {\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%05%00%00%00%05%08%06%00%00%00%8Do%26%E5%00%00%004IDATx%DAm%C7%C1%09%000%08C%D1%8C%ECE%C8E(%8E%EC%02)%1EZJ%F1%C1'%04%07I%E1%E5%EE%CAL%F5%A2%99%99%22%E2%D6%1FU%B5%FE0%D9x%A7%26Wz5%0E%D5%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget.closed {\n    background-image: url(\"data:image/png,%89PNG%0D%0A%1A%0A%00%00%00%0DIHDR%00%00%00%03%00%00%00%06%08%06%00%00%00%06%E5%24%0C%00%00%009IDATx%DA5%CA%C1%09%000%08%03%C0%AC*(%3E%04%C1%0D%BA%B1%23%A4Uh%E0%20%81%C0%CC%F8%82%81%AA%A2%AArGfr%88%08%11%11%1C%DD%7D%E0%EE%5B%F6%F6%CB%B8%05Q%2F%E9tai%D9%00%00%00%00IEND%AEB%60%82\");\n}\n\n.ace_fold-widget:hover {\n    border: 1px solid rgba(0, 0, 0, 0.3);\n    background-color: rgba(255, 255, 255, 0.2);\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\n}\n\n.ace_fold-widget:active {\n    border: 1px solid rgba(0, 0, 0, 0.4);\n    background-color: rgba(0, 0, 0, 0.05);\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\n}\n/**\n * Dark version for fold widgets\n */\n.ace_dark .ace_fold-widget {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");\n}\n.ace_dark .ace_fold-widget.end {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");\n}\n.ace_dark .ace_fold-widget.closed {\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");\n}\n.ace_dark .ace_fold-widget:hover {\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    background-color: rgba(255, 255, 255, 0.1);\n}\n.ace_dark .ace_fold-widget:active {\n    -moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    -webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n    box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\n}\n    \n    \n    \n.ace_fold-widget.invalid {\n    background-color: #FFB4B4;\n    border-color: #DE5555;\n}\n\n.ace_fade-fold-widgets .ace_fold-widget {\n       -moz-transition: opacity 0.4s ease 0.05s;\n    -webkit-transition: opacity 0.4s ease 0.05s;\n         -o-transition: opacity 0.4s ease 0.05s;\n        -ms-transition: opacity 0.4s ease 0.05s;\n            transition: opacity 0.4s ease 0.05s;\n    opacity: 0;\n}\n\n.ace_fade-fold-widgets:hover .ace_fold-widget {\n       -moz-transition: opacity 0.05s ease 0.05s;\n    -webkit-transition: opacity 0.05s ease 0.05s;\n         -o-transition: opacity 0.05s ease 0.05s;\n        -ms-transition: opacity 0.05s ease 0.05s;\n            transition: opacity 0.05s ease 0.05s;\n    opacity:1;\n}\n");
define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor"],function(g,q,b){var n=g("./range_list").RangeList;
var o=g("./range").Range;var c=g("./selection").Selection;var e=g("./mouse/multi_select_handler").onMouseDown;var m=g("./lib/event");var r=g("./lib/lang");
var d=g("./commands/multi_select_commands");q.commands=d.defaultCommands.concat(d.multiSelectCommands);var f=g("./search").Search;var h=new f();function j(u,t,s){h.$options.wrap=true;
h.$options.needle=t;h.$options.backwards=s==-1;return h.find(u);}var a=g("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers;
};}).call(a.prototype);(function(){this.ranges=null;this.rangeList=null;this.addRange=function(t,s){if(!t){return;}if(!this.inMultiSelectMode&&this.rangeCount==0){var v=this.toOrientedRange();
if(t.intersects(v)){return s||this.fromOrientedRange(t);}this.rangeList.add(v);this.$onAddRange(v);}if(!t.cursor){t.cursor=t.end;}var u=this.rangeList.add(t);
this.$onAddRange(t);if(u.length){this.$onRemoveRange(u);}if(this.rangeCount>1&&!this.inMultiSelectMode){this._emit("multiSelect");this.inMultiSelectMode=true;
this.session.$undoSelect=false;this.rangeList.attach(this.session);}return s||this.fromOrientedRange(t);};this.toSingleRange=function(s){s=s||this.ranges[0];
var t=this.rangeList.removeAll();if(t.length){this.$onRemoveRange(t);}s&&this.fromOrientedRange(s);};this.substractPoint=function(t){var s=this.rangeList.substractPoint(t);
if(s){this.$onRemoveRange(s);return s[0];}};this.mergeOverlappingRanges=function(){var s=this.rangeList.merge();if(s.length){this.$onRemoveRange(s);}else{if(this.ranges[0]){this.fromOrientedRange(this.ranges[0]);
}}};this.$onAddRange=function(s){this.rangeCount=this.rangeList.ranges.length;this.ranges.unshift(s);this._emit("addRange",{range:s});};this.$onRemoveRange=function(u){this.rangeCount=this.rangeList.ranges.length;
if(this.rangeCount==1&&this.inMultiSelectMode){var v=this.rangeList.ranges.pop();u.push(v);this.rangeCount=0;}for(var t=u.length;t--;){var s=this.ranges.indexOf(u[t]);
this.ranges.splice(s,1);}this._emit("removeRange",{ranges:u});if(this.rangeCount==0&&this.inMultiSelectMode){this.inMultiSelectMode=false;this._emit("singleSelect");
this.session.$undoSelect=true;this.rangeList.detach(this.session);}v=v||this.ranges[0];if(v&&!v.isEqual(this.getRange())){this.fromOrientedRange(v);}};
this.$initRangeList=function(){if(this.rangeList){return;}this.rangeList=new n();this.ranges=[];this.rangeCount=0;};this.getAllRanges=function(){return this.rangeList.ranges.concat();
};this.splitIntoLines=function(){if(this.rangeCount>1){var t=this.rangeList.ranges;var z=t[t.length-1];var A=o.fromPoints(t[0].start,z.end);this.toSingleRange();
this.setSelectionRange(A,z.cursor==z.start);}else{var A=this.getRange();var B=this.isBackwards();var C=A.start.row;var x=A.end.row;if(C==x){if(B){var u=A.end,w=A.start;
}else{var u=A.start,w=A.end;}this.addRange(o.fromPoints(w,w));this.addRange(o.fromPoints(u,u));return;}var v=[];var s=this.getLineRange(C,true);s.start.column=A.start.column;
v.push(s);for(var y=C+1;y<x;y++){v.push(this.getLineRange(y,true));}s=this.getLineRange(x,true);s.end.column=A.end.column;v.push(s);v.forEach(this.addRange,this);
}};this.toggleBlockSelection=function(){if(this.rangeCount>1){var s=this.rangeList.ranges;var w=s[s.length-1];var t=o.fromPoints(s[0].start,w.end);this.toSingleRange();
this.setSelectionRange(t,w.cursor==w.start);}else{var v=this.session.documentToScreenPosition(this.selectionLead);var u=this.session.documentToScreenPosition(this.selectionAnchor);
var x=this.rectangularRangeBlock(v,u);x.forEach(this.addRange,this);}};this.rectangularRangeBlock=function(t,z,E){var u=[];var w=t.column<z.column;if(w){var v=t.column;
var D=z.column;}else{var v=z.column;var D=t.column;}var F=t.row<z.row;if(F){var G=t.row;var y=z.row;}else{var G=z.row;var y=t.row;}if(v<0){v=0;}if(G<0){G=0;
}if(G==y){E=true;}for(var H=G;H<=y;H++){var B=o.fromPoints(this.session.screenToDocumentPosition(H,v),this.session.screenToDocumentPosition(H,D));if(B.isEmpty()){if(C&&p(B.end,C)){break;
}var C=B.end;}B.cursor=w?B.start:B.end;u.push(B);}if(F){u.reverse();}if(!E){var x=u.length-1;while(u[x].isEmpty()&&x>0){x--;}if(x>0){var s=0;while(u[s].isEmpty()){s++;
}}for(var A=x;A>=s;A--){if(u[A].isEmpty()){u.splice(A,1);}}}return u;};}).call(c.prototype);var l=g("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor();
this.renderer.updateBackMarkers();};this.addSelectionMarker=function(t){if(!t.cursor){t.cursor=t.end;}var s=this.getSelectionStyle();t.marker=this.session.addMarker(t,"ace_selection",s);
this.session.$selectionMarkers.push(t);this.session.selectionMarkerCount=this.session.$selectionMarkers.length;return t;};this.removeSelectionMarker=function(s){if(!s.marker){return;
}this.session.removeMarker(s.marker);var t=this.session.$selectionMarkers.indexOf(s);if(t!=-1){this.session.$selectionMarkers.splice(t,1);}this.session.selectionMarkerCount=this.session.$selectionMarkers.length;
};this.removeSelectionMarkers=function(s){var u=this.session.$selectionMarkers;for(var w=s.length;w--;){var t=s[w];if(!t.marker){continue;}this.session.removeMarker(t.marker);
var v=u.indexOf(t);if(v!=-1){u.splice(v,1);}}this.session.selectionMarkerCount=u.length;};this.$onAddRange=function(s){this.addSelectionMarker(s.range);
this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.$onRemoveRange=function(s){this.removeSelectionMarkers(s.ranges);this.renderer.updateCursor();
this.renderer.updateBackMarkers();};this.$onMultiSelect=function(s){if(this.inMultiSelectMode){return;}this.inMultiSelectMode=true;this.setStyle("multiselect");
this.keyBinding.addKeyboardHandler(d.keyboardHandler);this.commands.on("exec",this.$onMultiSelectExec);this.renderer.updateCursor();this.renderer.updateBackMarkers();
};this.$onSingleSelect=function(s){if(this.session.multiSelect.inVirtualMode){return;}this.inMultiSelectMode=false;this.unsetStyle("multiselect");this.keyBinding.removeKeyboardHandler(d.keyboardHandler);
this.commands.removeEventListener("exec",this.$onMultiSelectExec);this.renderer.updateCursor();this.renderer.updateBackMarkers();};this.$onMultiSelectExec=function(t){var u=t.command;
var s=t.editor;if(!s.multiSelect){return;}if(!u.multiSelectAction){u.exec(s,t.args||{});s.multiSelect.addRange(s.multiSelect.toOrientedRange());s.multiSelect.mergeOverlappingRanges();
}else{if(u.multiSelectAction=="forEach"){s.forEachSelection(u,t.args);}else{if(u.multiSelectAction=="single"){s.exitMultiSelectMode();u.exec(s,t.args||{});
}else{u.multiSelectAction(s,t.args||{});}}}t.preventDefault();};this.forEachSelection=function(x,t){if(this.inVirtualSelectionMode){return;}var y=this.session;
var w=this.selection;var s=w.rangeList;var v=w._eventRegistry;w._eventRegistry={};var z=new c(y);this.inVirtualSelectionMode=true;for(var u=s.ranges.length;
u--;){z.fromOrientedRange(s.ranges[u]);this.selection=y.selection=z;x.exec(this,t||{});z.toOrientedRange(s.ranges[u]);}z.detach();this.selection=y.selection=w;
this.inVirtualSelectionMode=false;w._eventRegistry=v;w.mergeOverlappingRanges();this.onCursorChange();this.onSelectionChange();};this.exitMultiSelectMode=function(){if(this.inVirtualSelectionMode){return;
}this.multiSelect.toSingleRange();};this.getCopyText=function(){var u="";if(this.inMultiSelectMode){var s=this.multiSelect.rangeList.ranges;u=[];for(var t=0;
t<s.length;t++){u.push(this.session.getTextRange(s[t]));}u=u.join(this.session.getDocument().getNewLineCharacter());}else{if(!this.selection.isEmpty()){u=this.session.getTextRange(this.getSelectionRange());
}}return u;};this.onPaste=function(w){if(this.$readOnly){return;}this._emit("paste",w);if(!this.inMultiSelectMode){return this.insert(w);}var t=w.split(/\r\n|\r|\n/);
var s=this.selection.rangeList.ranges;if(t.length>s.length||(t.length<=2||!t[1])){return this.commands.exec("insertstring",this,w);}for(var v=s.length;
v--;){var u=s[v];if(!u.isEmpty()){this.session.remove(u);}this.session.insert(u.start,t[v]);}};this.findAll=function(x,u,t){u=u||{};u.needle=x||u.needle;
this.$search.set(u);var s=this.$search.findAll(this.session);if(!s.length){return 0;}this.$blockScrolling+=1;var w=this.multiSelect;if(!t){w.toSingleRange(s[0]);
}for(var v=s.length;v--;){w.addRange(s[v],true);}this.$blockScrolling-=1;return s.length;};this.selectMoreLines=function(t,A){var w=this.selection.toOrientedRange();
var B=w.cursor==w.end;var z=this.session.documentToScreenPosition(w.cursor);if(this.selection.$desiredColumn){z.column=this.selection.$desiredColumn;}var x=this.session.screenToDocumentPosition(z.row+t,z.column);
if(!w.isEmpty()){var u=this.session.documentToScreenPosition(B?w.end:w.start);var v=this.session.screenToDocumentPosition(u.row+t,u.column);}else{var v=x;
}if(B){var y=o.fromPoints(x,v);y.cursor=y.start;}else{var y=o.fromPoints(v,x);y.cursor=y.end;}y.desiredColumn=z.column;if(!this.selection.inMultiSelectMode){this.selection.addRange(w);
}else{if(A){var s=w.cursor;}}this.selection.addRange(y);if(s){this.selection.substractPoint(s);}};this.transposeSelections=function(t){var y=this.session;
var x=y.multiSelect;var w=x.ranges;for(var v=w.length;v--;){var s=w[v];if(s.isEmpty()){var u=y.getWordRange(s.start.row,s.start.column);s.start.row=u.start.row;
s.start.column=u.start.column;s.end.row=u.end.row;s.end.column=u.end.column;}}x.mergeOverlappingRanges();var z=[];for(var v=w.length;v--;){var s=w[v];z.unshift(y.getTextRange(s));
}if(t<0){z.unshift(z.pop());}else{z.push(z.shift());}for(var v=w.length;v--;){var s=w[v];var u=s.clone();y.replace(s,z[v]);s.start.row=u.start.row;s.start.column=u.start.column;
}};this.selectMore=function(u,v){var y=this.session;var w=y.multiSelect;var s=w.toOrientedRange();if(s.isEmpty()){var s=y.getWordRange(s.start.row,s.start.column);
s.cursor=s.end;this.multiSelect.addRange(s);}var x=y.getTextRange(s);var t=j(y,x,u);if(t){t.cursor=u==-1?t.start:t.end;this.multiSelect.addRange(t);}if(v){this.multiSelect.substractPoint(s.cursor);
}};this.alignCursors=function(){var z=this.session;var u=z.multiSelect;var t=u.ranges;if(!t.length){var w=this.selection.getRange();var y=w.start.row,x=w.end.row;
var D=this.session.doc.removeLines(y,x);D=this.$reAlignText(D);this.session.doc.insertLines(y,D);w.start.column=0;w.end.column=D[D.length-1].length;this.selection.setRange(w);
}else{var C=-1;var v=t.filter(function(E){if(E.cursor.row==C){return true;}C=E.cursor.row;});u.$onRemoveRange(v);var A=0;var B=Infinity;var s=t.map(function(G){var H=G.cursor;
var E=z.getLine(H.row);var F=E.substr(H.column).search(/\S/g);if(F==-1){F=0;}if(H.column>A){A=H.column;}if(F<B){B=F;}return F;});t.forEach(function(G,F){var H=G.cursor;
var E=A-H.column;var I=s[F]-B;if(E>I){z.insert(H,r.stringRepeat(" ",E-I));}else{z.remove(new o(H.row,H.column,H.row,H.column-E+I));}G.start.column=G.end.column=A;
G.start.row=G.end.row=H.row;G.cursor=G.end;});u.fromOrientedRange(t[0]);this.renderer.updateCursor();this.renderer.updateBackMarkers();}};this.$reAlignText=function(B){var s=true,v=true;
var x,y,A;return B.map(function(D){var C=D.match(/(\s*)(.*?)(\s*)([=:].*)/);if(!C){return[D];}if(x==null){x=C[1].length;y=C[2].length;A=C[3].length;return C;
}if(x+y+A!=C[1].length+C[2].length+C[3].length){v=false;}if(x!=C[1].length){s=false;}if(x>C[1].length){x=C[1].length;}if(y<C[2].length){y=C[2].length;}if(A>C[3].length){A=C[3].length;
}return C;}).map(s?v?z:u:w);function t(D,C){return Array(D+1).join(C);}function u(C){return !C[2]?C[0]:t(x," ")+C[2]+t(y-C[2].length+A," ")+C[4].replace(/^([=:])\s+/,"$1 ");
}function z(C){return !C[2]?C[0]:t(x+y-C[2].length," ")+C[2]+t(A," ")+C[4].replace(/^([=:])\s+/,"$1 ");}function w(C){return !C[2]?C[0]:t(x," ")+C[2]+t(A," ")+C[4].replace(/^([=:])\s+/,"$1 ");
}};}).call(l.prototype);function p(t,s){return t.row==s.row&&t.column==s.column;}q.onSessionChange=function(u){var t=u.session;if(!t.multiSelect){t.$selectionMarkers=[];
t.selection.$initRangeList();t.multiSelect=t.selection;}this.multiSelect=t.multiSelect;var s=u.oldSession;if(s){if(s.multiSelect&&s.multiSelect.editor==this){s.multiSelect.editor=null;
}t.multiSelect.removeEventListener("addRange",this.$onAddRange);t.multiSelect.removeEventListener("removeRange",this.$onRemoveRange);t.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect);
t.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect);}t.multiSelect.on("addRange",this.$onAddRange);t.multiSelect.on("removeRange",this.$onRemoveRange);
t.multiSelect.on("multiSelect",this.$onMultiSelect);t.multiSelect.on("singleSelect",this.$onSingleSelect);if(this.inMultiSelectMode!=t.selection.inMultiSelectMode){if(t.selection.inMultiSelectMode){this.$onMultiSelect();
}else{this.$onSingleSelect();}}};function k(s){s.$onAddRange=s.$onAddRange.bind(s);s.$onRemoveRange=s.$onRemoveRange.bind(s);s.$onMultiSelect=s.$onMultiSelect.bind(s);
s.$onSingleSelect=s.$onSingleSelect.bind(s);q.onSessionChange.call(s,s);s.on("changeSession",q.onSessionChange.bind(s));s.on("mousedown",e);s.commands.addCommands(d.defaultCommands);
i(s);}function i(u){var t=u.textInput.getElement();var w=false;var s=u.renderer.content;m.addListener(t,"keydown",function(x){if(x.keyCode==18&&!(x.ctrlKey||x.shiftKey||x.metaKey)){if(!w){s.style.cursor="crosshair";
w=true;}}else{if(w){s.style.cursor="";}}});m.addListener(t,"keyup",v);m.addListener(t,"blur",v);function v(){if(w){s.style.cursor="";w=false;}}}q.MultiSelect=k;
});define("ace/range_list",["require","exports","module"],function(c,b,d){var a=function(){this.ranges=[];};(function(){this.comparePoints=function(f,e){return f.row-e.row||f.column-e.column;
};this.pointIndex=function(k,j){var h=this.ranges;for(var f=j||0;f<h.length;f++){var e=h[f];var g=this.comparePoints(k,e.end);if(g>0){continue;}if(g==0){return f;
}g=this.comparePoints(k,e.start);if(g>=0){return f;}return -f-1;}return -f-1;};this.add=function(e){var g=this.pointIndex(e.start);if(g<0){g=-g-1;}var f=this.pointIndex(e.end,g);
if(f<0){f=-f-1;}else{f++;}return this.ranges.splice(g,f-g,e);};this.addList=function(f){var g=[];for(var e=f.length;e--;){g.push.call(g,this.add(f[e]));
}return g;};this.substractPoint=function(f){var e=this.pointIndex(f);if(e>=0){return this.ranges.splice(e,1);}};this.merge=function(){var k=[];var j=this.ranges;
var g=j[0],e;for(var f=1;f<j.length;f++){e=g;g=j[f];var h=this.comparePoints(e.end,g.start);if(h<0){continue;}if(h==0&&!(e.isEmpty()||g.isEmpty())){continue;
}if(this.comparePoints(e.end,g.end)<0){e.end.row=g.end.row;e.end.column=g.end.column;}j.splice(f,1);k.push(g);g=e;f--;}return k;};this.contains=function(f,e){return this.pointIndex({row:f,column:e})>=0;
};this.containsPoint=function(e){return this.pointIndex(e)>=0;};this.rangeAtPoint=function(f){var e=this.pointIndex(f);if(e>=0){return this.ranges[e];}};
this.clipRows=function(g,f){var k=this.ranges;if(k[0].start.row>f||k[k.length-1].start.row<g){return[];}var l=this.pointIndex({row:g,column:0});if(l<0){l=-l-1;
}var j=this.pointIndex({row:f,column:0},l);if(j<0){j=-j-1;}var e=[];for(var h=l;h<j;h++){e.push(k[h]);}return e;};this.removeAll=function(){return this.ranges.splice(0,this.ranges.length);
};this.attach=function(e){if(this.session){this.detach();}this.session=e;this.onChange=this.$onChange.bind(this);this.session.on("change",this.onChange);
};this.detach=function(){if(!this.session){return;}this.session.removeListener("change",this.onChange);this.session=null;};this.$onChange=function(q){var k=q.data.range;
if(q.data.action[0]=="i"){var h=k.start;var l=k.end;}else{var l=k.start;var h=k.end;}var t=h.row;var m=l.row;var s=m-t;var p=-h.column+l.column;var g=this.ranges;
for(var o=0,j=g.length;o<j;o++){var f=g[o];if(f.end.row<t){continue;}if(f.start.row>t){break;}if(f.start.row==t&&f.start.column>=h.column){f.start.column+=p;
f.start.row+=s;}if(f.end.row==t&&f.end.column>=h.column){f.end.column+=p;f.end.row+=s;}}if(s!=0&&o<j){for(;o<j;o++){var f=g[o];f.start.row+=s;f.end.row+=s;
}}};}).call(a.prototype);b.RangeList=a;});define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event"],function(c,a,d){var e=c("../lib/event");
function b(h,g){return h.row==g.row&&h.column==g.column;}function f(A){var B=A.domEvent;var D=B.altKey;var w=B.shiftKey;var r=A.getAccelKey();var g=A.getButton();
if(A.editor.inMultiSelectMode&&g==2){A.editor.textInput.onContextMenu(A.domEvent);return;}if(!r&&!D){if(g==0&&A.editor.inMultiSelectMode){A.editor.exitMultiSelectMode();
}return;}var l=A.editor;var E=l.selection;var C=l.inMultiSelectMode;var o=A.getDocumentPosition();var m=E.getCursor();var x=A.inSelection()||(E.isEmpty()&&b(o,m));
var q=A.x,p=A.y;var n=function(F){q=F.clientX;p=F.clientY;};var j=function(){var G=l.renderer.pixelToScreenCoordinates(q,p);var F=h.screenToDocumentPosition(G.row,G.column);
if(b(u,G)&&b(F,E.selectionLead)){return;}u=G;l.selection.moveCursorToPosition(F);l.selection.clearSelection();l.renderer.scrollCursorIntoView();l.removeSelectionMarkers(z);
z=E.rectangularRangeBlock(u,k);z.forEach(l.addSelectionMarker,l);l.updateSelectionMarkers();};var h=l.session;var k=l.renderer.pixelToScreenCoordinates(q,p);
var u=k;if(r&&!w&&!D&&g==0){if(!C&&x){return;}if(!C){var v=E.toOrientedRange();l.addSelectionMarker(v);}var t=E.rangeList.rangeAtPoint(o);e.capture(l.container,function(){},function(){var F=E.toOrientedRange();
if(t&&F.isEmpty()&&b(t.cursor,F.cursor)){E.substractPoint(F.cursor);}else{if(v){l.removeSelectionMarker(v);E.addRange(v);}E.addRange(F);}});}else{if(!w&&D&&g==0){A.stop();
if(C&&!r){E.toSingleRange();}else{if(!C&&r){E.addRange();}}E.moveCursorToPosition(o);E.clearSelection();var z=[];var i=function(G){clearInterval(s);l.removeSelectionMarkers(z);
for(var F=0;F<z.length;F++){E.addRange(z[F]);}};var y=j;e.capture(l.container,n,i);var s=setInterval(function(){y();},20);return A.preventDefault();}}}a.onMouseDown=f;
});define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(b,a,c){a.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1);
},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},readonly:true},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1);},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},readonly:true},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,true);
},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},readonly:true},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,true);
},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},readonly:true},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1);},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},readonly:true},{name:"selectMoreAfter",exec:function(e){e.selectMore(1);
},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},readonly:true},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,true);},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},readonly:true},{name:"selectNextAfter",exec:function(e){e.selectMore(1,true);
},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},readonly:true},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines();
},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readonly:true},{name:"alignCursors",exec:function(e){e.alignCursors();},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"}}];
a.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode();},readonly:true,isAvailable:function(e){return e&&e.inMultiSelectMode;
}}];var d=b("../keyboard/hash_handler").HashHandler;a.keyboardHandler=new d(a.multiSelectCommands);});define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/config"],function(c,a,d){var f=c("../lib/oop");
var e=c("../lib/event_emitter").EventEmitter;var b=c("../config");var g=function(h,n,j){this.changeListener=this.changeListener.bind(this);if(b.get("packaged")){this.$worker=new Worker(b.moduleUrl(n,"worker"));
}else{var o;if(typeof c.supports!=="undefined"&&c.supports.indexOf("ucjs2-pinf-0")>=0){o=c.nameToUrl("ace/worker/worker_sourcemint");}else{if(c.nameToUrl&&!c.toUrl){c.toUrl=c.nameToUrl;
}o=this.$normalizePath(c.toUrl("ace/worker/worker",null,"_"));}this.$worker=new Worker(o);var p={};for(var k=0;k<h.length;k++){var m=h[k];var q=this.$normalizePath(c.toUrl(m,null,"_").replace(/.js(\?.*)?$/,""));
p[m]=q;}}this.$worker.postMessage({init:true,tlns:p,module:n,classname:j});this.callbackId=1;this.callbacks={};var l=this;this.$worker.onerror=function(i){window.console&&console.log&&console.log(i);
throw i;};this.$worker.onmessage=function(i){var r=i.data;switch(r.type){case"log":window.console&&console.log&&console.log(r.data);break;case"event":l._emit(r.name,{data:r.data});
break;case"call":var s=l.callbacks[r.id];if(s){s(r.data);delete l.callbacks[r.id];}break;}};};(function(){f.implement(this,e);this.$normalizePath=function(h){if(!location.host){return h;
}h=h.replace(/^[a-z]+:\/\/[^\/]+/,"");h=location.protocol+"//"+location.host+(h.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+h.replace(/^[\/]+/,"");
return h;};this.terminate=function(){this._emit("terminate",{});this.$worker.terminate();this.$worker=null;this.$doc.removeEventListener("change",this.changeListener);
this.$doc=null;};this.send=function(i,h){this.$worker.postMessage({command:i,args:h});};this.call=function(i,h,k){if(k){var j=this.callbackId++;this.callbacks[j]=k;
h.push(j);}this.send(i,h);};this.emit=function(i,j){try{this.$worker.postMessage({event:i,data:{data:j.data}});}catch(h){}};this.attachToDocument=function(h){if(this.$doc){this.terminate();
}this.$doc=h;this.call("setValue",[h.getValue()]);h.on("change",this.changeListener);};this.changeListener=function(h){h.range={start:h.data.range.start,end:h.data.range.end};
this.emit("change",h);};}).call(g.prototype);a.WorkerClient=g;});define("ace/keyboard/state_handler",["require","exports","module"],function(c,b,d){var a=false;
function e(f){this.keymapping=this.$buildKeymappingRegex(f);}e.prototype={$buildKeymappingRegex:function(g){for(var f in g){this.$buildBindingsRegex(g[f]);
}return g;},$buildBindingsRegex:function(f){f.forEach(function(g){if(g.key){g.key=new RegExp("^"+g.key+"$");}else{if(Array.isArray(g.regex)){if(!("key" in g)){g.key=new RegExp("^"+g.regex[1]+"$");
}g.regex=new RegExp(g.regex.join("")+"$");}else{if(g.regex){g.regex=new RegExp(g.regex+"$");}}}});},$composeBuffer:function(l,k,h,m){if(l.state==null||l.buffer==null){l.state="start";
l.buffer="";}var f=[];if(k&1){f.push("ctrl");}if(k&8){f.push("command");}if(k&2){f.push("option");}if(k&4){f.push("shift");}if(h){f.push(h);}var g=f.join("-");
var j=l.buffer+g;if(k!=2){l.buffer=j;}var i={bufferToUse:j,symbolicName:g};if(m){i.keyIdentifier=m.keyIdentifier;}return i;},$find:function(k,g,h,j,i,l){var f={};
this.keymapping[k.state].some(function(p){var m;if(p.key&&!p.key.test(h)){return false;}if(p.regex&&!(m=p.regex.exec(g))){return false;}if(p.match&&!p.match(g,j,i,h,l)){return false;
}if(p.disallowMatches){for(var n=0;n<p.disallowMatches.length;n++){if(!!m[p.disallowMatches[n]]){return false;}}}if(p.exec){f.command=p.exec;if(p.params){var o;
f.args={};p.params.forEach(function(q){if(q.match!=null&&m!=null){o=m[q.match]||q.defaultValue;}else{o=q.defaultValue;}if(q.type==="number"){o=parseInt(o);
}f.args[q.name]=o;});}k.buffer="";}if(p.then){k.state=p.then;k.buffer="";}if(f.command==null){f.command="null";}if(a){console.log("KeyboardStateMapper#find",p);
}return true;});if(f.command){return f;}else{k.buffer="";return false;}},handleKeyboard:function(j,h,l,n,k){if(h==-1){h=0;}if(h!=0&&(l==""||l==String.fromCharCode(0))){return null;
}var f=this.$composeBuffer(j,h,l,k);var i=f.bufferToUse;var g=f.symbolicName;var m=f.keyIdentifier;f=this.$find(j,i,g,h,l,m);if(a){console.log("KeyboardStateMapper#match",i,g,f);
}return f;}};b.matchCharacterOnly=function(f,i,h,g){if(i==0){return true;}else{if((i==4)&&h.length==1){return true;}else{return false;}}};b.StateHandler=e;
});define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(b,a,c){var f=b("./range").Range;var e=b("./lib/event_emitter").EventEmitter;
var d=b("./lib/oop");var g=function(n,m,o,l,i,k){var h=this;this.length=m;this.session=n;this.doc=n.getDocument();this.mainClass=i;this.othersClass=k;this.$onUpdate=this.onUpdate.bind(this);
this.doc.on("change",this.$onUpdate);this.$others=l;this.$onCursorChange=function(){setTimeout(function(){h.onCursorChange();});};this.$pos=o;var j=n.getUndoManager().$undoStack||n.getUndoManager().$undostack||{length:-1};
this.$undoStackDepth=j.length;this.setup();n.selection.on("changeCursor",this.$onCursorChange);};(function(){d.implement(this,e);this.setup=function(){var h=this;
var j=this.doc;var i=this.session;var k=this.$pos;this.pos=j.createAnchor(k.row,k.column);this.markerId=i.addMarker(new f(k.row,k.column,k.row,k.column+this.length),this.mainClass,null,false);
this.pos.on("change",function(l){i.removeMarker(h.markerId);h.markerId=i.addMarker(new f(l.value.row,l.value.column,l.value.row,l.value.column+h.length),h.mainClass,null,false);
});this.others=[];this.$others.forEach(function(l){var m=j.createAnchor(l.row,l.column);h.others.push(m);});i.setUndoSelect(false);};this.showOtherMarkers=function(){if(this.othersActive){return;
}var i=this.session;var h=this;this.othersActive=true;this.others.forEach(function(j){j.markerId=i.addMarker(new f(j.row,j.column,j.row,j.column+h.length),h.othersClass,null,false);
j.on("change",function(k){i.removeMarker(j.markerId);j.markerId=i.addMarker(new f(k.value.row,k.value.column,k.value.row,k.value.column+h.length),h.othersClass,null,false);
});});};this.hideOtherMarkers=function(){if(!this.othersActive){return;}this.othersActive=false;for(var h=0;h<this.others.length;h++){this.session.removeMarker(this.others[h].markerId);
}};this.onUpdate=function(o){var p=o.data;var h=p.range;if(h.start.row!==h.end.row){return;}if(h.start.row!==this.pos.row){return;}if(this.$updating){return;
}this.$updating=true;var k=p.action==="insertText"?h.end.column-h.start.column:h.start.column-h.end.column;if(h.start.column>=this.pos.column&&h.start.column<=this.pos.column+this.length+1){var n=h.start.column-this.pos.column;
this.length+=k;if(!this.session.$fromUndo){if(p.action==="insertText"){for(var m=this.others.length-1;m>=0;m--){var j=this.others[m];var l={row:j.row,column:j.column+n};
if(j.row===h.start.row&&h.start.column<j.column){l.column+=k;}this.doc.insert(l,p.text);}}else{if(p.action==="removeText"){for(var m=this.others.length-1;
m>=0;m--){var j=this.others[m];var l={row:j.row,column:j.column+n};if(j.row===h.start.row&&h.start.column<j.column){l.column+=k;}this.doc.remove(new f(l.row,l.column,l.row,l.column-k));
}}}if(h.start.column===this.pos.column&&p.action==="insertText"){setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-k);for(var s=0;
s<this.others.length;s++){var q=this.others[s];var r={row:q.row,column:q.column-k};if(q.row===h.start.row&&h.start.column<q.column){r.column+=k;}q.setPosition(r.row,r.column);
}}.bind(this),0);}else{if(h.start.column===this.pos.column&&p.action==="removeText"){setTimeout(function(){for(var r=0;r<this.others.length;r++){var q=this.others[r];
if(q.row===h.start.row&&h.start.column<q.column){q.setPosition(q.row,q.column-k);}}}.bind(this),0);}}}this.pos._emit("change",{value:this.pos});for(var m=0;
m<this.others.length;m++){this.others[m]._emit("change",{value:this.others[m]});}}this.$updating=false;};this.onCursorChange=function(h){if(this.$updating){return;
}var i=this.session.selection.getCursor();if(i.row===this.pos.row&&i.column>=this.pos.column&&i.column<=this.pos.column+this.length){this.showOtherMarkers();
this._emit("cursorEnter",h);}else{this.hideOtherMarkers();this._emit("cursorLeave",h);}};this.detach=function(){this.session.removeMarker(this.markerId);
this.hideOtherMarkers();this.doc.removeEventListener("change",this.$onUpdate);this.session.selection.removeEventListener("changeCursor",this.$onCursorChange);
this.pos.detach();for(var h=0;h<this.others.length;h++){this.others[h].detach();}this.session.setUndoSelect(true);};this.cancel=function(){if(this.$undoStackDepth===-1){throw Error("Canceling placeholders only supported with undo manager attached to session.");
}var k=this.session.getUndoManager();var h=(k.$undoStack||k.$undostack).length-this.$undoStackDepth;for(var j=0;j<h;j++){k.undo(true);}};}).call(g.prototype);
a.PlaceHolder=g;});define("ace/theme/textmate",["require","exports","module","text!ace/theme/textmate.css","ace/lib/dom"],function(b,a,c){a.isDark=false;
a.cssClass="ace-tm";a.cssText=b("text!./textmate.css");var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass);});define("text!ace/theme/textmate.css",[],'.ace-tm .ace_editor {\n  border: 2px solid rgb(159, 159, 159);\n}\n\n.ace-tm .ace_editor.ace_focus {\n  border: 2px solid #327fbd;\n}\n\n.ace-tm .ace_gutter {\n  background: #f0f0f0;\n  color: #333;\n}\n\n.ace-tm .ace_print_margin {\n  width: 1px;\n  background: #e8e8e8;\n}\n\n.ace-tm .ace_fold {\n    background-color: #6B72E6;\n}\n\n.ace-tm .ace_scroller {\n  background-color: #FFFFFF;\n}\n\n.ace-tm .ace_cursor {\n  border-left: 2px solid black;\n}\n\n.ace-tm .ace_cursor.ace_overwrite {\n  border-left: 0px;\n  border-bottom: 1px solid black;\n}\n        \n.ace-tm .ace_line .ace_invisible {\n  color: rgb(191, 191, 191);\n}\n\n.ace-tm .ace_line .ace_storage,\n.ace-tm .ace_line .ace_keyword {\n  color: blue;\n}\n\n.ace-tm .ace_line .ace_constant {\n  color: rgb(197, 6, 11);\n}\n\n.ace-tm .ace_line .ace_constant.ace_buildin {\n  color: rgb(88, 72, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_language {\n  color: rgb(88, 92, 246);\n}\n\n.ace-tm .ace_line .ace_constant.ace_library {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_invalid {\n  background-color: rgba(255, 0, 0, 0.1);\n  color: red;\n}\n\n.ace-tm .ace_line .ace_support.ace_function {\n  color: rgb(60, 76, 114);\n}\n\n.ace-tm .ace_line .ace_support.ace_constant {\n  color: rgb(6, 150, 14);\n}\n\n.ace-tm .ace_line .ace_support.ace_type,\n.ace-tm .ace_line .ace_support.ace_class {\n  color: rgb(109, 121, 222);\n}\n\n.ace-tm .ace_line .ace_keyword.ace_operator {\n  color: rgb(104, 118, 135);\n}\n\n.ace-tm .ace_line .ace_string {\n  color: rgb(3, 106, 7);\n}\n\n.ace-tm .ace_line .ace_comment {\n  color: rgb(76, 136, 107);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc {\n  color: rgb(0, 102, 255);\n}\n\n.ace-tm .ace_line .ace_comment.ace_doc.ace_tag {\n  color: rgb(128, 159, 191);\n}\n\n.ace-tm .ace_line .ace_constant.ace_numeric {\n  color: rgb(0, 0, 205);\n}\n\n.ace-tm .ace_line .ace_variable {\n  color: rgb(49, 132, 149);\n}\n\n.ace-tm .ace_line .ace_xml_pe {\n  color: rgb(104, 104, 91);\n}\n\n.ace-tm .ace_entity.ace_name.ace_function {\n  color: #0000A2;\n}\n\n.ace-tm .ace_markup.ace_underline {\n    text-decoration:underline;\n}\n\n.ace-tm .ace_markup.ace_heading {\n  color: rgb(12, 7, 255);\n}\n\n.ace-tm .ace_markup.ace_list {\n  color:rgb(185, 6, 144);\n}\n\n.ace-tm .ace_meta.ace_tag {\n  color:rgb(0, 22, 142);\n}\n\n.ace-tm .ace_string.ace_regex {\n  color: rgb(255, 0, 0)\n}\n\n.ace-tm .ace_marker-layer .ace_selection {\n  background: rgb(181, 213, 255);\n}\n.ace-tm.multiselect .ace_selection.start {\n  box-shadow: 0 0 3px 0px white;\n  border-radius: 2px;\n}\n.ace-tm .ace_marker-layer .ace_step {\n  background: rgb(252, 255, 0);\n}\n\n.ace-tm .ace_marker-layer .ace_stack {\n  background: rgb(164, 229, 101);\n}\n\n.ace-tm .ace_marker-layer .ace_bracket {\n  margin: -1px 0 0 -1px;\n  border: 1px solid rgb(192, 192, 192);\n}\n\n.ace-tm .ace_marker-layer .ace_active_line {\n  background: rgba(0, 0, 0, 0.07);\n}\n\n.ace-tm .ace_gutter_active_line {\n    background-color : #dcdcdc;\n}\n\n.ace-tm .ace_marker-layer .ace_selected_word {\n  background: rgb(250, 250, 255);\n  border: 1px solid rgb(200, 200, 250);\n}\n\n.ace-tm .ace_indent-guide {\n  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;\n}\n');
(function(){window.require(["ace/ace"],function(b){b&&b.config.init();if(!window.ace){window.ace={};}for(var c in b){if(b.hasOwnProperty(c)){ace[c]=b[c];
}}});})();