| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336 |
- var Ne=Object.defineProperty;var Re=Object.getOwnPropertySymbols;var Ve=Object.prototype.hasOwnProperty,Ue=Object.prototype.propertyIsEnumerable;var Te=(z,Q,x)=>Q in z?Ne(z,Q,{enumerable:!0,configurable:!0,writable:!0,value:x}):z[Q]=x,_e=(z,Q)=>{for(var x in Q||(Q={}))Ve.call(Q,x)&&Te(z,x,Q[x]);if(Re)for(var x of Re(Q))Ue.call(Q,x)&&Te(z,x,Q[x]);return z};var pe=(z,Q,x)=>new Promise((k,W)=>{var E=a=>{try{m(x.next(a))}catch(c){W(c)}},A=a=>{try{m(x.throw(a))}catch(c){W(c)}},m=a=>a.done?k(a.value):Promise.resolve(a.value).then(E,A);m((x=x.apply(z,Q)).next())});import{c7 as Ce,a as We,cD as ze,fS as Ge,fT as Ke,fU as Ye,r as he,p as Xe,O as Qe,a8 as je,o as ve,e as Je,f as ge,Q as be,x as de,i as ue,h as ne,b4 as Ze,w as $e,eu as Se,v as Me,I as Le,B as qe,y as Ae,af as Fe,ag as et,G as tt}from"./index.ae52ebae.js";import{S as it}from"./index.14e14872.js";import{C as Oe}from"./index.385c717c.js";import{T as Ie}from"./index.37bf36ad.js";/* empty css */import{T as xe}from"./TabPane.500cac61.js";import"./index.bd2c390b.js";import"./index.5e5e8ba1.js";import"./Col.605699c9.js";import"./useFlexGapSupport.3240d255.js";import"./useRefs.fe3bdf15.js";import"./PlusOutlined.1e7c430b.js";function nt(){return Ce.post({url:"/bus/hospital/look/script"})}function rt(z){return Ce.post({url:"/bus/hospital/debug",params:z})}function st(z){return Ce.post({url:"/bus/hospital/draft/script",params:z})}function ot(z){return Ce.post({url:"/bus/hospital/publish/script",params:z})}function at(z,Q){return Ce.post({url:"/bus/hospital/strategy/"+z,params:Q})}var He={exports:{}};(function(z,Q){(function(){var x="ace",k=function(){return this}();!k&&typeof window!="undefined"&&(k=window);var W=function(t,e,i){if(typeof t!="string"){W.original?W.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(i=e),W.modules[t]||(W.payloads[t]=i,W.modules[t]=null)};W.modules={},W.payloads={};var E=function(t,e,i){if(typeof e=="string"){var n=a(t,e);if(n!=null)return i&&i(),n}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var r=[],o=0,d=e.length;o<d;++o){var p=a(t,e[o]);if(p==null&&A.original)return;r.push(p)}return i&&i.apply(null,r)||!0}},A=function(t,e){var i=E("",t,e);return i==null&&A.original?A.original.apply(this,arguments):i},m=function(t,e){if(e.indexOf("!")!==-1){var i=e.split("!");return m(t,i[0])+"!"+m(t,i[1])}if(e.charAt(0)=="."){var n=t.split("/").slice(0,-1).join("/");for(e=n+"/"+e;e.indexOf(".")!==-1&&r!=e;){var r=e;e=e.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return e},a=function(t,e){e=m(t,e);var i=W.modules[e];if(!i){if(i=W.payloads[e],typeof i=="function"){var n={},r={id:e,uri:"",exports:n,packaged:!0},o=function(p,v){return E(e,p,v)},d=i(o,n,r);n=d||r.exports,W.modules[e]=n,delete W.payloads[e]}i=W.modules[e]=n||i}return i};function c(t){var e=k;t&&(k[t]||(k[t]={}),e=k[t]),(!e.define||!e.define.packaged)&&(W.original=e.define,e.define=W,e.define.packaged=!0),(!e.require||!e.require.packaged)&&(A.original=e.require,e.require=A,e.require.packaged=!0)}c(x)})(),ace.define("ace/lib/es6-shim",["require","exports","module"],function(x,k,W){function E(A,m,a){Object.defineProperty(A,m,{value:a,enumerable:!1,writable:!0,configurable:!0})}String.prototype.startsWith||E(String.prototype,"startsWith",function(A,m){return m=m||0,this.lastIndexOf(A,m)===m}),String.prototype.endsWith||E(String.prototype,"endsWith",function(A,m){var a=this;(m===void 0||m>a.length)&&(m=a.length),m-=A.length;var c=a.indexOf(A,m);return c!==-1&&c===m}),String.prototype.repeat||E(String.prototype,"repeat",function(A){for(var m="",a=this;A>0;)A&1&&(m+=a),(A>>=1)&&(a+=a);return m}),String.prototype.includes||E(String.prototype,"includes",function(A,m){return this.indexOf(A,m)!=-1}),Object.assign||(Object.assign=function(A){if(A==null)throw new TypeError("Cannot convert undefined or null to object");for(var m=Object(A),a=1;a<arguments.length;a++){var c=arguments[a];c!=null&&Object.keys(c).forEach(function(t){m[t]=c[t]})}return m}),Object.values||(Object.values=function(A){return Object.keys(A).map(function(m){return A[m]})}),Array.prototype.find||E(Array.prototype,"find",function(A){for(var m=this.length,a=arguments[1],c=0;c<m;c++){var t=this[c];if(A.call(a,t,c,this))return t}}),Array.prototype.findIndex||E(Array.prototype,"findIndex",function(A){for(var m=this.length,a=arguments[1],c=0;c<m;c++){var t=this[c];if(A.call(a,t,c,this))return c}}),Array.prototype.includes||E(Array.prototype,"includes",function(A,m){return this.indexOf(A,m)!=-1}),Array.prototype.fill||E(Array.prototype,"fill",function(A){for(var m=this,a=m.length>>>0,c=arguments[1],t=c>>0,e=t<0?Math.max(a+t,0):Math.min(t,a),i=arguments[2],n=i===void 0?a:i>>0,r=n<0?Math.max(a+n,0):Math.min(n,a);e<r;)m[e]=A,e++;return m}),Array.of||E(Array,"of",function(){return Array.prototype.slice.call(arguments)})}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/es6-shim"],function(x,k,W){x("./es6-shim")}),ace.define("ace/lib/lang",["require","exports","module"],function(x,k,W){k.last=function(m){return m[m.length-1]},k.stringReverse=function(m){return m.split("").reverse().join("")},k.stringRepeat=function(m,a){for(var c="";a>0;)a&1&&(c+=m),(a>>=1)&&(m+=m);return c};var E=/^\s\s*/,A=/\s\s*$/;k.stringTrimLeft=function(m){return m.replace(E,"")},k.stringTrimRight=function(m){return m.replace(A,"")},k.copyObject=function(m){var a={};for(var c in m)a[c]=m[c];return a},k.copyArray=function(m){for(var a=[],c=0,t=m.length;c<t;c++)m[c]&&typeof m[c]=="object"?a[c]=this.copyObject(m[c]):a[c]=m[c];return a},k.deepCopy=function m(a){if(typeof a!="object"||!a)return a;var c;if(Array.isArray(a)){c=[];for(var t=0;t<a.length;t++)c[t]=m(a[t]);return c}if(Object.prototype.toString.call(a)!=="[object Object]")return a;c={};for(var t in a)c[t]=m(a[t]);return c},k.arrayToMap=function(m){for(var a={},c=0;c<m.length;c++)a[m[c]]=1;return a},k.createMap=function(m){var a=Object.create(null);for(var c in m)a[c]=m[c];return a},k.arrayRemove=function(m,a){for(var c=0;c<=m.length;c++)a===m[c]&&m.splice(c,1)},k.escapeRegExp=function(m){return m.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},k.escapeHTML=function(m){return(""+m).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},k.getMatchOffsets=function(m,a){var c=[];return m.replace(a,function(t){c.push({offset:arguments[arguments.length-2],length:t.length})}),c},k.deferredCall=function(m){var a=null,c=function(){a=null,m()},t=function(e){return t.cancel(),a=setTimeout(c,e||0),t};return t.schedule=t,t.call=function(){return this.cancel(),m(),t},t.cancel=function(){return clearTimeout(a),a=null,t},t.isPending=function(){return a},t},k.delayedCall=function(m,a){var c=null,t=function(){c=null,m()},e=function(i){c==null&&(c=setTimeout(t,i||a))};return e.delay=function(i){c&&clearTimeout(c),c=setTimeout(t,i||a)},e.schedule=e,e.call=function(){this.cancel(),m()},e.cancel=function(){c&&clearTimeout(c),c=null},e.isPending=function(){return c},e}}),ace.define("ace/lib/oop",["require","exports","module"],function(x,k,W){k.inherits=function(E,A){E.super_=A,E.prototype=Object.create(A.prototype,{constructor:{value:E,enumerable:!1,writable:!0,configurable:!0}})},k.mixin=function(E,A){for(var m in A)E[m]=A[m];return E},k.implement=function(E,A){k.mixin(E,A)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(x,k,W){k.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},k.getOS=function(){return k.isMac?k.OS.MAC:k.isLinux?k.OS.LINUX:k.OS.WINDOWS};var E=typeof navigator=="object"?navigator:{},A=(/mac|win|linux/i.exec(E.platform)||["other"])[0].toLowerCase(),m=E.userAgent||"",a=E.appName||"";k.isWin=A=="win",k.isMac=A=="mac",k.isLinux=A=="linux",k.isIE=a=="Microsoft Internet Explorer"||a.indexOf("MSAppHost")>=0?parseFloat((m.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((m.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),k.isOldIE=k.isIE&&k.isIE<9,k.isGecko=k.isMozilla=m.match(/ Gecko\/\d+/),k.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",k.isWebKit=parseFloat(m.split("WebKit/")[1])||void 0,k.isChrome=parseFloat(m.split(" Chrome/")[1])||void 0,k.isEdge=parseFloat(m.split(" Edge/")[1])||void 0,k.isAIR=m.indexOf("AdobeAIR")>=0,k.isAndroid=m.indexOf("Android")>=0,k.isChromeOS=m.indexOf(" CrOS ")>=0,k.isIOS=/iPad|iPhone|iPod/.test(m)&&!window.MSStream,k.isIOS&&(k.isMac=!0),k.isMobile=k.isIOS||k.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(x,k,W){var E=x("./useragent"),A="http://www.w3.org/1999/xhtml";k.buildDom=function i(n,r,o){if(typeof n=="string"&&n){var d=document.createTextNode(n);return r&&r.appendChild(d),d}if(!Array.isArray(n))return n&&n.appendChild&&r&&r.appendChild(n),n;if(typeof n[0]!="string"||!n[0]){for(var p=[],v=0;v<n.length;v++){var y=i(n[v],r,o);y&&p.push(y)}return p}var w=document.createElement(n[0]),l=n[1],g=1;l&&typeof l=="object"&&!Array.isArray(l)&&(g=2);for(var v=g;v<n.length;v++)i(n[v],w,o);return g==2&&Object.keys(l).forEach(function(b){var f=l[b];b==="class"?w.className=Array.isArray(f)?f.join(" "):f:typeof f=="function"||b=="value"||b[0]=="$"?w[b]=f:b==="ref"?o&&(o[f]=w):b==="style"?typeof f=="string"&&(w.style.cssText=f):f!=null&&w.setAttribute(b,f)}),r&&r.appendChild(w),w},k.getDocumentHead=function(i){return i||(i=document),i.head||i.getElementsByTagName("head")[0]||i.documentElement},k.createElement=function(i,n){return document.createElementNS?document.createElementNS(n||A,i):document.createElement(i)},k.removeChildren=function(i){i.innerHTML=""},k.createTextNode=function(i,n){var r=n?n.ownerDocument:document;return r.createTextNode(i)},k.createFragment=function(i){var n=i?i.ownerDocument:document;return n.createDocumentFragment()},k.hasCssClass=function(i,n){var r=(i.className+"").split(/\s+/g);return r.indexOf(n)!==-1},k.addCssClass=function(i,n){k.hasCssClass(i,n)||(i.className+=" "+n)},k.removeCssClass=function(i,n){for(var r=i.className.split(/\s+/g);;){var o=r.indexOf(n);if(o==-1)break;r.splice(o,1)}i.className=r.join(" ")},k.toggleCssClass=function(i,n){for(var r=i.className.split(/\s+/g),o=!0;;){var d=r.indexOf(n);if(d==-1)break;o=!1,r.splice(d,1)}return o&&r.push(n),i.className=r.join(" "),o},k.setCssClass=function(i,n,r){r?k.addCssClass(i,n):k.removeCssClass(i,n)},k.hasCssString=function(i,n){var r=0,o;if(n=n||document,o=n.querySelectorAll("style")){for(;r<o.length;)if(o[r++].id===i)return!0}},k.removeElementById=function(i,n){n=n||document,n.getElementById(i)&&n.getElementById(i).remove()};var m,a=[];k.useStrictCSP=function(i){m=i,i==!1?c():a||(a=[])};function c(){var i=a;a=null,i&&i.forEach(function(n){t(n[0],n[1])})}function t(i,n,r){if(typeof document!="undefined"){if(a){if(r)c();else if(r===!1)return a.push([i,n])}if(!m){var o=r;!r||!r.getRootNode?o=document:(o=r.getRootNode(),(!o||o==r)&&(o=document));var d=o.ownerDocument||o;if(n&&k.hasCssString(n,o))return null;n&&(i+=`
- /*# sourceURL=ace/css/`+n+" */");var p=k.createElement("style");p.appendChild(d.createTextNode(i)),n&&(p.id=n),o==d&&(o=k.getDocumentHead(d)),o.insertBefore(p,o.firstChild)}}}if(k.importCssString=t,k.importCssStylsheet=function(i,n){k.buildDom(["link",{rel:"stylesheet",href:i}],k.getDocumentHead(n))},k.scrollbarWidth=function(i){var n=k.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=k.createElement("ace_outer"),o=r.style;o.position="absolute",o.left="-10000px",o.overflow="hidden",o.width="200px",o.minWidth="0px",o.height="150px",o.display="block",r.appendChild(n);var d=i&&i.documentElement||document&&document.documentElement;if(!d)return 0;d.appendChild(r);var p=n.offsetWidth;o.overflow="scroll";var v=n.offsetWidth;return p===v&&(v=r.clientWidth),d.removeChild(r),p-v},k.computedStyle=function(i,n){return window.getComputedStyle(i,"")||{}},k.setStyle=function(i,n,r){i[n]!==r&&(i[n]=r)},k.HAS_CSS_ANIMATION=!1,k.HAS_CSS_TRANSFORMS=!1,k.HI_DPI=E.isWin?typeof window!="undefined"&&window.devicePixelRatio>=1.5:!0,E.isChromeOS&&(k.HI_DPI=!1),typeof document!="undefined"){var e=document.createElement("div");k.HI_DPI&&e.style.transform!==void 0&&(k.HAS_CSS_TRANSFORMS=!0),!E.isEdge&&typeof e.style.animationName!="undefined"&&(k.HAS_CSS_ANIMATION=!0),e=null}k.HAS_CSS_TRANSFORMS?k.translate=function(i,n,r){i.style.transform="translate("+Math.round(n)+"px, "+Math.round(r)+"px)"}:k.translate=function(i,n,r){i.style.top=Math.round(r)+"px",i.style.left=Math.round(n)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(x,k,W){/*
- * based on code from:
- *
- * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
- * Available via the MIT or new BSD license.
- * see: http://github.com/jrburke/requirejs for details
- */var E=x("./dom");k.get=function(A,m){var a=new XMLHttpRequest;a.open("GET",A,!0),a.onreadystatechange=function(){a.readyState===4&&m(a.responseText)},a.send(null)},k.loadScript=function(A,m){var a=E.getDocumentHead(),c=document.createElement("script");c.src=A,a.appendChild(c),c.onload=c.onreadystatechange=function(t,e){(e||!c.readyState||c.readyState=="loaded"||c.readyState=="complete")&&(c=c.onload=c.onreadystatechange=null,e||m())}},k.qualifyURL=function(A){var m=document.createElement("a");return m.href=A,m.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(x,k,W){var E={},A=function(){this.propagationStopped=!0},m=function(){this.defaultPrevented=!0};E._emit=E._dispatchEvent=function(a,c){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[a]||[],e=this._defaultHandlers[a];if(!(!t.length&&!e)){(typeof c!="object"||!c)&&(c={}),c.type||(c.type=a),c.stopPropagation||(c.stopPropagation=A),c.preventDefault||(c.preventDefault=m),t=t.slice();for(var i=0;i<t.length&&(t[i](c,this),!c.propagationStopped);i++);if(e&&!c.defaultPrevented)return e(c,this)}},E._signal=function(a,c){var t=(this._eventRegistry||{})[a];if(!!t){t=t.slice();for(var e=0;e<t.length;e++)t[e](c,this)}},E.once=function(a,c){var t=this;if(this.on(a,function e(){t.off(a,e),c.apply(null,arguments)}),!c)return new Promise(function(e){c=e})},E.setDefaultHandler=function(a,c){var t=this._defaultHandlers;if(t||(t=this._defaultHandlers={_disabled_:{}}),t[a]){var e=t[a],i=t._disabled_[a];i||(t._disabled_[a]=i=[]),i.push(e);var n=i.indexOf(c);n!=-1&&i.splice(n,1)}t[a]=c},E.removeDefaultHandler=function(a,c){var t=this._defaultHandlers;if(!!t){var e=t._disabled_[a];if(t[a]==c)e&&this.setDefaultHandler(a,e.pop());else if(e){var i=e.indexOf(c);i!=-1&&e.splice(i,1)}}},E.on=E.addEventListener=function(a,c,t){this._eventRegistry=this._eventRegistry||{};var e=this._eventRegistry[a];return e||(e=this._eventRegistry[a]=[]),e.indexOf(c)==-1&&e[t?"unshift":"push"](c),c},E.off=E.removeListener=E.removeEventListener=function(a,c){this._eventRegistry=this._eventRegistry||{};var t=this._eventRegistry[a];if(!!t){var e=t.indexOf(c);e!==-1&&t.splice(e,1)}},E.removeAllListeners=function(a){a||(this._eventRegistry=this._defaultHandlers=void 0),this._eventRegistry&&(this._eventRegistry[a]=void 0),this._defaultHandlers&&(this._defaultHandlers[a]=void 0)},k.EventEmitter=E}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(x,k,W){var E=x("./oop"),A=x("./event_emitter").EventEmitter,m={setOptions:function(e){Object.keys(e).forEach(function(i){this.setOption(i,e[i])},this)},getOptions:function(e){var i={};if(e)Array.isArray(e)||(i=e,e=Object.keys(i));else{var n=this.$options;e=Object.keys(n).filter(function(r){return!n[r].hidden})}return e.forEach(function(r){i[r]=this.getOption(r)},this),i},setOption:function(e,i){if(this["$"+e]!==i){var n=this.$options[e];if(!n)return a('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,i);n.handlesSet||(this["$"+e]=i),n&&n.set&&n.set.call(this,i)}},getOption:function(e){var i=this.$options[e];return i?i.forwardTo?this[i.forwardTo]&&this[i.forwardTo].getOption(e):i&&i.get?i.get.call(this):this["$"+e]:a('misspelled option "'+e+'"')}};function a(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function c(e,i){var n=new Error(e);n.data=i,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var t=function(){this.$defaultOptions={}};(function(){E.implement(this,A),this.defineOptions=function(e,i,n){return e.$options||(this.$defaultOptions[i]=e.$options={}),Object.keys(n).forEach(function(r){var o=n[r];typeof o=="string"&&(o={forwardTo:o}),o.name||(o.name=r),e.$options[o.name]=o,"initialValue"in o&&(e["$"+o.name]=o.initialValue)}),E.implement(e,m),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(i){var n=e.$options[i];"value"in n&&e.setOption(i,n.value)})},this.setDefaultValue=function(e,i,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][i])break;if(!this.$defaultOptions[e][i])return!1}var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[i]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,i,n):r[i].value=n)},this.setDefaultValues=function(e,i){Object.keys(i).forEach(function(n){this.setDefaultValue(e,n,i[n])},this)},this.warn=a,this.reportError=c}).call(t.prototype),k.AppConfig=t}),ace.define("ace/theme/textmate.css",["require","exports","module"],function(x,k,W){W.exports=`.ace-tm .ace_gutter {
- background: #f0f0f0;
- color: #333;
- }
- .ace-tm .ace_print-margin {
- width: 1px;
- background: #e8e8e8;
- }
- .ace-tm .ace_fold {
- background-color: #6B72E6;
- }
- .ace-tm {
- background-color: #FFFFFF;
- color: black;
- }
- .ace-tm .ace_cursor {
- color: black;
- }
-
- .ace-tm .ace_invisible {
- color: rgb(191, 191, 191);
- }
- .ace-tm .ace_storage,
- .ace-tm .ace_keyword {
- color: blue;
- }
- .ace-tm .ace_constant {
- color: rgb(197, 6, 11);
- }
- .ace-tm .ace_constant.ace_buildin {
- color: rgb(88, 72, 246);
- }
- .ace-tm .ace_constant.ace_language {
- color: rgb(88, 92, 246);
- }
- .ace-tm .ace_constant.ace_library {
- color: rgb(6, 150, 14);
- }
- .ace-tm .ace_invalid {
- background-color: rgba(255, 0, 0, 0.1);
- color: red;
- }
- .ace-tm .ace_support.ace_function {
- color: rgb(60, 76, 114);
- }
- .ace-tm .ace_support.ace_constant {
- color: rgb(6, 150, 14);
- }
- .ace-tm .ace_support.ace_type,
- .ace-tm .ace_support.ace_class {
- color: rgb(109, 121, 222);
- }
- .ace-tm .ace_keyword.ace_operator {
- color: rgb(104, 118, 135);
- }
- .ace-tm .ace_string {
- color: rgb(3, 106, 7);
- }
- .ace-tm .ace_comment {
- color: rgb(76, 136, 107);
- }
- .ace-tm .ace_comment.ace_doc {
- color: rgb(0, 102, 255);
- }
- .ace-tm .ace_comment.ace_doc.ace_tag {
- color: rgb(128, 159, 191);
- }
- .ace-tm .ace_constant.ace_numeric {
- color: rgb(0, 0, 205);
- }
- .ace-tm .ace_variable {
- color: rgb(49, 132, 149);
- }
- .ace-tm .ace_xml-pe {
- color: rgb(104, 104, 91);
- }
- .ace-tm .ace_entity.ace_name.ace_function {
- color: #0000A2;
- }
- .ace-tm .ace_heading {
- color: rgb(12, 7, 255);
- }
- .ace-tm .ace_list {
- color:rgb(185, 6, 144);
- }
- .ace-tm .ace_meta.ace_tag {
- color:rgb(0, 22, 142);
- }
- .ace-tm .ace_string.ace_regex {
- color: rgb(255, 0, 0)
- }
- .ace-tm .ace_marker-layer .ace_selection {
- background: rgb(181, 213, 255);
- }
- .ace-tm.ace_multiselect .ace_selection.ace_start {
- box-shadow: 0 0 3px 0px white;
- }
- .ace-tm .ace_marker-layer .ace_step {
- background: rgb(252, 255, 0);
- }
- .ace-tm .ace_marker-layer .ace_stack {
- background: rgb(164, 229, 101);
- }
- .ace-tm .ace_marker-layer .ace_bracket {
- margin: -1px 0 0 -1px;
- border: 1px solid rgb(192, 192, 192);
- }
- .ace-tm .ace_marker-layer .ace_active-line {
- background: rgba(0, 0, 0, 0.07);
- }
- .ace-tm .ace_gutter-active-line {
- background-color : #dcdcdc;
- }
- .ace-tm .ace_marker-layer .ace_selected-word {
- background: rgb(250, 250, 255);
- border: 1px solid rgb(200, 200, 250);
- }
- .ace-tm .ace_indent-guide {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;
- }
- .ace-tm .ace_indent-guide-active {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;
- }
- `}),ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate.css","ace/lib/dom"],function(x,k,W){k.isDark=!1,k.cssClass="ace-tm",k.cssText=x("./textmate.css"),k.$id="ace/theme/textmate";var E=x("../lib/dom");E.importCssString(k.cssText,k.cssClass,!1)}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/dom","ace/lib/app_config","ace/theme/textmate"],function(x,k,W){var E=x("./lib/lang");x("./lib/oop");var A=x("./lib/net"),m=x("./lib/dom"),a=x("./lib/app_config").AppConfig;W.exports=k=new a;var c={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};k.get=function(i){if(!c.hasOwnProperty(i))throw new Error("Unknown config key: "+i);return c[i]},k.set=function(i,n){if(c.hasOwnProperty(i))c[i]=n;else if(this.setDefaultValue("",i,n)==!1)throw new Error("Unknown config key: "+i);i=="useStrictCSP"&&m.useStrictCSP(n)},k.all=function(){return E.copyObject(c)},k.$modes={},k.moduleUrl=function(i,n){if(c.$moduleUrls[i])return c.$moduleUrls[i];var r=i.split("/");n=n||r[r.length-2]||"";var o=n=="snippets"?"/":"-",d=r[r.length-1];if(n=="worker"&&o=="-"){var p=new RegExp("^"+n+"[\\-_]|[\\-_]"+n+"$","g");d=d.replace(p,"")}(!d||d==n)&&r.length>1&&(d=r[r.length-2]);var v=c[n+"Path"];return v==null?v=c.basePath:o=="/"&&(n=o=""),v&&v.slice(-1)!="/"&&(v+="/"),v+n+o+d+this.get("suffix")},k.setModuleUrl=function(i,n){return c.$moduleUrls[i]=n};var t=function(i,n){return i=="ace/theme/textmate"?n(null,x("./theme/textmate")):console.error("loader is not configured")};k.setLoader=function(i){t=i},k.$loading={},k.loadModule=function(i,n){var r,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{r=x(i)}catch(p){}if(r&&!k.$loading[i])return n&&n(r);if(k.$loading[i]||(k.$loading[i]=[]),k.$loading[i].push(n),!(k.$loading[i].length>1)){var d=function(){t(i,function(p,v){k._emit("load.module",{name:i,module:v});var y=k.$loading[i];k.$loading[i]=null,y.forEach(function(w){w&&w(v)})})};if(!k.get("packaged"))return d();A.loadScript(k.moduleUrl(i,o),d),e()}};var e=function(){!c.basePath&&!c.workerPath&&!c.modePath&&!c.themePath&&!Object.keys(c.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),e=function(){})};k.version="1.13.2"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(x,k,W){x("./lib/fixoldbrowsers");var E=x("./config");E.setLoader(function(c,t){x([c],function(e){t(null,e)})});var A=function(){return this||typeof window!="undefined"&&window}();W.exports=function(c){E.init=m,c.require=x},m(!0);function m(c){if(!(!A||!A.document)){E.set("packaged",c||x.packaged||W.packaged||A.define&&(void 0).packaged);for(var t={},e="",i=document.currentScript||document._currentScript,n=i&&i.ownerDocument||document,r=n.getElementsByTagName("script"),o=0;o<r.length;o++){var d=r[o],p=d.src||d.getAttribute("src");if(!!p){for(var v=d.attributes,y=0,w=v.length;y<w;y++){var l=v[y];l.name.indexOf("data-ace-")===0&&(t[a(l.name.replace(/^data-ace-/,""))]=l.value)}var g=p.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);g&&(e=g[1])}}e&&(t.base=t.base||e,t.packaged=!0),t.basePath=t.base,t.workerPath=t.workerPath||t.base,t.modePath=t.modePath||t.base,t.themePath=t.themePath||t.base,delete t.base;for(var b in t)typeof t[b]!="undefined"&&E.set(b,t[b])}}function a(c){return c.replace(/-(.)/g,function(t,e){return e.toUpperCase()})}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(x,k,W){/*! @license
- ==========================================================================
- SproutCore -- JavaScript Application Framework
- copyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors.
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
- to deal in the Software without restriction, including without limitation
- the rights to use, copy, modify, merge, publish, distribute, sublicense,
- and/or sell copies of the Software, and to permit persons to whom the
- Software is furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- DEALINGS IN THE SOFTWARE.
- SproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc.
- For more information about SproutCore, visit http://www.sproutcore.com
- ==========================================================================
- @license */var E=x("./oop"),A=function(){var m={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8,control:1},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","-13":"NumpadEnter",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:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}};m.PRINTABLE_KEYS[173]="-";var a,c;for(c in m.FUNCTION_KEYS)a=m.FUNCTION_KEYS[c].toLowerCase(),m[a]=parseInt(c,10);for(c in m.PRINTABLE_KEYS)a=m.PRINTABLE_KEYS[c].toLowerCase(),m[a]=parseInt(c,10);return E.mixin(m,m.MODIFIER_KEYS),E.mixin(m,m.PRINTABLE_KEYS),E.mixin(m,m.FUNCTION_KEYS),m.enter=m.return,m.escape=m.esc,m.del=m.delete,function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)m.KEY_MODS[e]=t.filter(function(i){return e&m.KEY_MODS[i]}).join("-")+"-"}(),m.KEY_MODS[0]="",m.KEY_MODS[-1]="input-",m}();E.mixin(k,A),k.keyCodeToString=function(m){var a=A[m];return typeof a!="string"&&(a=String.fromCharCode(m)),a.toLowerCase()}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(x,k,W){var E=x("./keys"),A=x("./useragent"),m=null,a=0,c;function t(){c=!1;try{document.createComment("").addEventListener("test",function(){},{get passive(){c={passive:!1}}})}catch(y){}}function e(){return c==null&&t(),c}function i(y,w,l){this.elem=y,this.type=w,this.callback=l}i.prototype.destroy=function(){r(this.elem,this.type,this.callback),this.elem=this.type=this.callback=void 0};var n=k.addListener=function(y,w,l,g){y.addEventListener(w,l,e()),g&&g.$toDestroy.push(new i(y,w,l))},r=k.removeListener=function(y,w,l){y.removeEventListener(w,l,e())};k.stopEvent=function(y){return k.stopPropagation(y),k.preventDefault(y),!1},k.stopPropagation=function(y){y.stopPropagation&&y.stopPropagation()},k.preventDefault=function(y){y.preventDefault&&y.preventDefault()},k.getButton=function(y){return y.type=="dblclick"?0:y.type=="contextmenu"||A.isMac&&y.ctrlKey&&!y.altKey&&!y.shiftKey?2:y.button},k.capture=function(y,w,l){var g=y&&y.ownerDocument||document;function b(f){w&&w(f),l&&l(f),r(g,"mousemove",w),r(g,"mouseup",b),r(g,"dragstart",b)}return n(g,"mousemove",w),n(g,"mouseup",b),n(g,"dragstart",b),b},k.addMouseWheelListener=function(y,w,l){n(y,"wheel",function(g){var b=.15,f=g.deltaX||0,h=g.deltaY||0;switch(g.deltaMode){case g.DOM_DELTA_PIXEL:g.wheelX=f*b,g.wheelY=h*b;break;case g.DOM_DELTA_LINE:var s=15;g.wheelX=f*s,g.wheelY=h*s;break;case g.DOM_DELTA_PAGE:var u=150;g.wheelX=f*u,g.wheelY=h*u;break}w(g)},l)},k.addMultiMouseDownListener=function(y,w,l,g,b){var f=0,h,s,u,$={2:"dblclick",3:"tripleclick",4:"quadclick"};function C(S){if(k.getButton(S)!==0?f=0:S.detail>1?(f++,f>4&&(f=1)):f=1,A.isIE){var L=Math.abs(S.clientX-h)>5||Math.abs(S.clientY-s)>5;(!u||L)&&(f=1),u&&clearTimeout(u),u=setTimeout(function(){u=null},w[f-1]||600),f==1&&(h=S.clientX,s=S.clientY)}if(S._clicks=f,l[g]("mousedown",S),f>4)f=0;else if(f>1)return l[g]($[f],S)}Array.isArray(y)||(y=[y]),y.forEach(function(S){n(S,"mousedown",C,b)})};var o=function(y){return 0|(y.ctrlKey?1:0)|(y.altKey?2:0)|(y.shiftKey?4:0)|(y.metaKey?8:0)};k.getModifierString=function(y){return E.KEY_MODS[o(y)]};function d(y,w,l){var g=o(w);if(!A.isMac&&m){if(w.getModifierState&&(w.getModifierState("OS")||w.getModifierState("Win"))&&(g|=8),m.altGr)if((3&g)!=3)m.altGr=0;else return;if(l===18||l===17){var b="location"in w?w.location:w.keyLocation;if(l===17&&b===1)m[l]==1&&(a=w.timeStamp);else if(l===18&&g===3&&b===2){var f=w.timeStamp-a;f<50&&(m.altGr=!0)}}}if(l in E.MODIFIER_KEYS&&(l=-1),!g&&l===13){var b="location"in w?w.location:w.keyLocation;if(b===3&&(y(w,g,-l),w.defaultPrevented))return}if(A.isChromeOS&&g&8){if(y(w,g,l),w.defaultPrevented)return;g&=-9}return!g&&!(l in E.FUNCTION_KEYS)&&!(l in E.PRINTABLE_KEYS)?!1:y(w,g,l)}k.addCommandKeyListener=function(y,w,l){if(A.isOldGecko||A.isOpera&&!("KeyboardEvent"in window)){var g=null;n(y,"keydown",function(f){g=f.keyCode},l),n(y,"keypress",function(f){return d(w,f,g)},l)}else{var b=null;n(y,"keydown",function(f){m[f.keyCode]=(m[f.keyCode]||0)+1;var h=d(w,f,f.keyCode);return b=f.defaultPrevented,h},l),n(y,"keypress",function(f){b&&(f.ctrlKey||f.altKey||f.shiftKey||f.metaKey)&&(k.stopEvent(f),b=null)},l),n(y,"keyup",function(f){m[f.keyCode]=null},l),m||(p(),n(window,"focus",p))}};function p(){m=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!A.isOldIE){var v=1;k.nextTick=function(y,w){w=w||window;var l="zero-timeout-message-"+v++,g=function(b){b.data==l&&(k.stopPropagation(b),r(w,"message",g),y())};n(w,"message",g),w.postMessage(l,"*")}}k.$idleBlocked=!1,k.onIdle=function(y,w){return setTimeout(function l(){k.$idleBlocked?setTimeout(l,100):y()},w)},k.$idleBlockId=null,k.blockIdle=function(y){k.$idleBlockId&&clearTimeout(k.$idleBlockId),k.$idleBlocked=!0,k.$idleBlockId=setTimeout(function(){k.$idleBlocked=!1},y||100)},k.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),k.nextFrame?k.nextFrame=k.nextFrame.bind(window):k.nextFrame=function(y){setTimeout(y,17)}}),ace.define("ace/range",["require","exports","module"],function(x,k,W){var E=function(m,a){return m.row-a.row||m.column-a.column},A=function(m,a,c,t){this.start={row:m,column:a},this.end={row:c,column:t}};(function(){this.isEqual=function(m){return this.start.row===m.start.row&&this.end.row===m.end.row&&this.start.column===m.start.column&&this.end.column===m.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(m,a){return this.compare(m,a)==0},this.compareRange=function(m){var a,c=m.end,t=m.start;return a=this.compare(c.row,c.column),a==1?(a=this.compare(t.row,t.column),a==1?2:a==0?1:0):a==-1?-2:(a=this.compare(t.row,t.column),a==-1?-1:a==1?42:0)},this.comparePoint=function(m){return this.compare(m.row,m.column)},this.containsRange=function(m){return this.comparePoint(m.start)==0&&this.comparePoint(m.end)==0},this.intersects=function(m){var a=this.compareRange(m);return a==-1||a==0||a==1},this.isEnd=function(m,a){return this.end.row==m&&this.end.column==a},this.isStart=function(m,a){return this.start.row==m&&this.start.column==a},this.setStart=function(m,a){typeof m=="object"?(this.start.column=m.column,this.start.row=m.row):(this.start.row=m,this.start.column=a)},this.setEnd=function(m,a){typeof m=="object"?(this.end.column=m.column,this.end.row=m.row):(this.end.row=m,this.end.column=a)},this.inside=function(m,a){return this.compare(m,a)==0?!(this.isEnd(m,a)||this.isStart(m,a)):!1},this.insideStart=function(m,a){return this.compare(m,a)==0?!this.isEnd(m,a):!1},this.insideEnd=function(m,a){return this.compare(m,a)==0?!this.isStart(m,a):!1},this.compare=function(m,a){return!this.isMultiLine()&&m===this.start.row?a<this.start.column?-1:a>this.end.column?1:0:m<this.start.row?-1:m>this.end.row?1:this.start.row===m?a>=this.start.column?0:-1:this.end.row===m?a<=this.end.column?0:1:0},this.compareStart=function(m,a){return this.start.row==m&&this.start.column==a?-1:this.compare(m,a)},this.compareEnd=function(m,a){return this.end.row==m&&this.end.column==a?1:this.compare(m,a)},this.compareInside=function(m,a){return this.end.row==m&&this.end.column==a?1:this.start.row==m&&this.start.column==a?-1:this.compare(m,a)},this.clipRows=function(m,a){if(this.end.row>a)var c={row:a+1,column:0};else if(this.end.row<m)var c={row:m,column:0};if(this.start.row>a)var t={row:a+1,column:0};else if(this.start.row<m)var t={row:m,column:0};return A.fromPoints(t||this.start,c||this.end)},this.extend=function(m,a){var c=this.compare(m,a);if(c==0)return this;if(c==-1)var t={row:m,column:a};else var e={row:m,column:a};return A.fromPoints(t||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 A.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new A(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new A(this.start.row,0,this.end.row,0)},this.toScreenRange=function(m){var a=m.documentToScreenPosition(this.start),c=m.documentToScreenPosition(this.end);return new A(a.row,a.column,c.row,c.column)},this.moveBy=function(m,a){this.start.row+=m,this.start.column+=a,this.end.row+=m,this.end.column+=a}}).call(A.prototype),A.fromPoints=function(m,a){return new A(m.row,m.column,a.row,a.column)},A.comparePoints=E,A.comparePoints=function(m,a){return m.row-a.row||m.column-a.column},k.Range=A}),ace.define("ace/clipboard",["require","exports","module"],function(x,k,W){var E;W.exports={lineMode:!1,pasteCancelled:function(){return E&&E>Date.now()-50?!0:E=!1},cancel:function(){E=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(x,k,W){var E=x("../lib/event"),A=x("../lib/useragent"),m=x("../lib/dom"),a=x("../lib/lang"),c=x("../clipboard"),t=A.isChrome<18,e=A.isIE,i=A.isChrome>63,n=400,r=x("../lib/keys"),o=r.KEY_MODS,d=A.isIOS,p=d?/\s/:/\n/,v=A.isMobile,y=function(w,l){var g=m.createElement("textarea");g.className="ace_text-input",g.setAttribute("wrap","off"),g.setAttribute("autocorrect","off"),g.setAttribute("autocapitalize","off"),g.setAttribute("spellcheck",!1),g.style.opacity="0",w.insertBefore(g,w.firstChild);var b=!1,f=!1,h=!1,s=!1,u="";v||(g.style.fontSize="1px");var $=!1,C=!1,S="",L=0,R=0,T=0;try{var _=document.activeElement===g}catch(H){}E.addListener(g,"blur",function(H){C||(l.onBlur(H),_=!1)},l),E.addListener(g,"focus",function(H){if(!C){if(_=!0,A.isEdge)try{if(!document.hasFocus())return}catch(Y){}l.onFocus(H),A.isEdge?setTimeout(M):M()}},l),this.$focusScroll=!1,this.focus=function(){if(u||i||this.$focusScroll=="browser")return g.focus({preventScroll:!0});var H=g.style.top;g.style.position="fixed",g.style.top="0px";try{var Y=g.getBoundingClientRect().top!=0}catch(te){return}var j=[];if(Y)for(var J=g.parentElement;J&&J.nodeType==1;)j.push(J),J.setAttribute("ace_nocontext",!0),!J.parentElement&&J.getRootNode?J=J.getRootNode().host:J=J.parentElement;g.focus({preventScroll:!0}),Y&&j.forEach(function(te){te.removeAttribute("ace_nocontext")}),setTimeout(function(){g.style.position="",g.style.top=="0px"&&(g.style.top=H)},0)},this.blur=function(){g.blur()},this.isFocused=function(){return _},l.on("beforeEndOperation",function(){var H=l.curOp,Y=H&&H.command&&H.command.name;if(Y!="insertstring"){var j=Y&&(H.docChanged||H.selectionChanged);h&&j&&(S=g.value="",le()),M()}});var M=d?function(H){if(!(!_||b&&!H||s)){H||(H="");var Y=`
- ab`+H+`cde fg
- `;Y!=g.value&&(g.value=S=Y);var j=4,J=4+(H.length||(l.selection.isEmpty()?0:1));(L!=j||R!=J)&&g.setSelectionRange(j,J),L=j,R=J}}:function(){if(!(h||s)&&!(!_&&!F)){h=!0;var H=0,Y=0,j="";if(l.session){var J=l.selection,te=J.getRange(),se=J.cursor.row;if(H=te.start.column,Y=te.end.column,j=l.session.getLine(se),te.start.row!=se){var ae=l.session.getLine(se-1);H=te.start.row<se-1?0:H,Y+=ae.length+1,j=ae+`
- `+j}else if(te.end.row!=se){var oe=l.session.getLine(se+1);Y=te.end.row>se+1?oe.length:Y,Y+=j.length+1,j=j+`
- `+oe}else v&&se>0&&(j=`
- `+j,Y+=1,H+=1);j.length>n&&(H<n&&Y<n?j=j.slice(0,n):(j=`
- `,H==Y?H=Y=0:(H=0,Y=1)))}var ie=j+`
- `;if(ie!=S&&(g.value=S=ie,L=R=ie.length),F&&(L=g.selectionStart,R=g.selectionEnd),R!=Y||L!=H||g.selectionEnd!=R)try{g.setSelectionRange(H,Y),L=H,R=Y}catch(q){}h=!1}};this.resetSelection=M,_&&l.onFocus();var O=function(H){return H.selectionStart===0&&H.selectionEnd>=S.length&&H.value===S&&S&&H.selectionEnd!==R},D=function(H){h||(b?b=!1:O(g)?(l.selectAll(),M()):v&&g.selectionStart!=L&&M())},B=null;this.setInputHandler=function(H){B=H},this.getInputHandler=function(){return B};var F=!1,I=function(H,Y){if(F&&(F=!1),f)return M(),H&&l.onPaste(H),f=!1,"";for(var j=g.selectionStart,J=g.selectionEnd,te=L,se=S.length-R,ae=H,oe=H.length-j,ie=H.length-J,q=0;te>0&&S[q]==H[q];)q++,te--;for(ae=ae.slice(q),q=1;se>0&&S.length-q>L-1&&S[S.length-q]==H[H.length-q];)q++,se--;oe-=q-1,ie-=q-1;var fe=ae.length-q+1;if(fe<0&&(te=-fe,fe=0),ae=ae.slice(0,fe),!Y&&!ae&&!oe&&!te&&!se&&!ie)return"";s=!0;var ye=!1;return A.isAndroid&&ae==". "&&(ae=" ",ye=!0),ae&&!te&&!se&&!oe&&!ie||$?l.onTextInput(ae):l.onTextInput(ae,{extendLeft:te,extendRight:se,restoreStart:oe,restoreEnd:ie}),s=!1,S=H,L=j,R=J,T=ie,ye?`
- `:ae},P=function(H){if(h)return Z();if(H&&H.inputType){if(H.inputType=="historyUndo")return l.execCommand("undo");if(H.inputType=="historyRedo")return l.execCommand("redo")}var Y=g.value,j=I(Y,!0);(Y.length>n+100||p.test(j)||v&&L<1&&L==R)&&M()},N=function(H,Y,j){var J=H.clipboardData||window.clipboardData;if(!(!J||t)){var te=e||j?"Text":"text/plain";try{return Y?J.setData(te,Y)!==!1:J.getData(te)}catch(se){if(!j)return N(se,Y,!0)}}},U=function(H,Y){var j=l.getCopyText();if(!j)return E.preventDefault(H);N(H,j)?(d&&(M(j),b=j,setTimeout(function(){b=!1},10)),Y?l.onCut():l.onCopy(),E.preventDefault(H)):(b=!0,g.value=j,g.select(),setTimeout(function(){b=!1,M(),Y?l.onCut():l.onCopy()}))},V=function(H){U(H,!0)},K=function(H){U(H,!1)},G=function(H){var Y=N(H);c.pasteCancelled()||(typeof Y=="string"?(Y&&l.onPaste(Y,H),A.isIE&&setTimeout(M),E.preventDefault(H)):(g.value="",f=!0))};E.addCommandKeyListener(g,l.onCommandKey.bind(l),l),E.addListener(g,"select",D,l),E.addListener(g,"input",P,l),E.addListener(g,"cut",V,l),E.addListener(g,"copy",K,l),E.addListener(g,"paste",G,l),(!("oncut"in g)||!("oncopy"in g)||!("onpaste"in g))&&E.addListener(w,"keydown",function(H){if(!(A.isMac&&!H.metaKey||!H.ctrlKey))switch(H.keyCode){case 67:K(H);break;case 86:G(H);break;case 88:V(H);break}},l);var X=function(H){if(!(h||!l.onCompositionStart||l.$readOnly)&&(h={},!$)){H.data&&(h.useTextareaForIME=!1),setTimeout(Z,0),l._signal("compositionStart"),l.on("mousedown",re);var Y=l.getSelectionRange();Y.end.row=Y.start.row,Y.end.column=Y.start.column,h.markerRange=Y,h.selectionStart=L,l.onCompositionStart(h),h.useTextareaForIME?(S=g.value="",L=0,R=0):(g.msGetInputContext&&(h.context=g.msGetInputContext()),g.getInputContext&&(h.context=g.getInputContext()))}},Z=function(){if(!(!h||!l.onCompositionUpdate||l.$readOnly)){if($)return re();if(h.useTextareaForIME)l.onCompositionUpdate(g.value);else{var H=g.value;I(H),h.markerRange&&(h.context&&(h.markerRange.start.column=h.selectionStart=h.context.compositionStartOffset),h.markerRange.end.column=h.markerRange.start.column+R-h.selectionStart+T)}}},le=function(H){!l.onCompositionEnd||l.$readOnly||(h=!1,l.onCompositionEnd(),l.off("mousedown",re),H&&P())};function re(){C=!0,g.blur(),g.focus(),C=!1}var ee=a.delayedCall(Z,50).schedule.bind(null,null);function ce(H){H.keyCode==27&&g.value.length<g.selectionStart&&(h||(S=g.value),L=R=-1,M()),ee()}E.addListener(g,"compositionstart",X,l),E.addListener(g,"compositionupdate",Z,l),E.addListener(g,"keyup",ce,l),E.addListener(g,"keydown",ee,l),E.addListener(g,"compositionend",le,l),this.getElement=function(){return g},this.setCommandMode=function(H){$=H,g.readOnly=!1},this.setReadOnly=function(H){$||(g.readOnly=H)},this.setCopyWithEmptySelection=function(H){},this.onContextMenu=function(H){F=!0,M(),l._emit("nativecontextmenu",{target:l,domEvent:H}),this.moveToMouse(H,!0)},this.moveToMouse=function(H,Y){u||(u=g.style.cssText),g.style.cssText=(Y?"z-index:100000;":"")+(A.isIE?"opacity:0.1;":"")+"text-indent: -"+(L+R)*l.renderer.characterWidth*.5+"px;";var j=l.container.getBoundingClientRect(),J=m.computedStyle(l.container),te=j.top+(parseInt(J.borderTopWidth)||0),se=j.left+(parseInt(j.borderLeftWidth)||0),ae=j.bottom-te-g.clientHeight-2,oe=function(ie){m.translate(g,ie.clientX-se-2,Math.min(ie.clientY-te-2,ae))};oe(H),H.type=="mousedown"&&(l.renderer.$isMousePressed=!0,clearTimeout(we),A.isWin&&E.capture(l.container,oe,me))},this.onContextMenuClose=me;var we;function me(){clearTimeout(we),we=setTimeout(function(){u&&(g.style.cssText=u,u=""),l.renderer.$isMousePressed=!1,l.renderer.$keepTextAreaAtCursor&&l.renderer.$moveTextAreaToCursor()},0)}var ke=function(H){l.textInput.onContextMenu(H),me()};E.addListener(g,"mouseup",ke,l),E.addListener(g,"mousedown",function(H){H.preventDefault(),me()},l),E.addListener(l.renderer.scroller,"contextmenu",ke,l),E.addListener(g,"contextmenu",ke,l),d&&Pe(w,l,g);function Pe(H,Y,j){var J=null,te=!1;j.addEventListener("keydown",function(ae){J&&clearTimeout(J),te=!0},!0),j.addEventListener("keyup",function(ae){J=setTimeout(function(){te=!1},100)},!0);var se=function(ae){if(document.activeElement===j&&!(te||h||Y.$mouseHandler.isMousePressed)&&!b){var oe=j.selectionStart,ie=j.selectionEnd,q=null,fe=0;if(oe==0?q=r.up:oe==1?q=r.home:ie>R&&S[ie]==`
- `?q=r.end:oe<L&&S[oe-1]==" "?(q=r.left,fe=o.option):oe<L||oe==L&&R!=L&&oe==ie?q=r.left:ie>R&&S.slice(0,ie).split(`
- `).length>2?q=r.down:ie>R&&S[ie-1]==" "?(q=r.right,fe=o.option):(ie>R||ie==R&&R!=L&&oe==ie)&&(q=r.right),oe!==ie&&(fe|=o.shift),q){var ye=Y.onCommandKey({},fe,q);if(!ye&&Y.commands){q=r.keyCodeToString(q);var Ee=Y.commands.findKeyCommand(fe,q);Ee&&Y.execCommand(Ee)}L=oe,R=ie,M("")}}};document.addEventListener("selectionchange",se),Y.on("destroy",function(){document.removeEventListener("selectionchange",se)})}this.destroy=function(){g.parentElement&&g.parentElement.removeChild(g)}};k.TextInput=y,k.$setUserAgentForTests=function(w,l){v=w,d=l}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(x,k,W){var E=x("../lib/useragent"),A=0,m=550;function a(e){e.$clickSelection=null;var i=e.editor;i.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),i.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),i.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),i.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),i.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(r){e[r]=this[r]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}(function(){this.onMouseDown=function(e){var i=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,o=e.getButton();if(o!==0){var d=r.getSelectionRange(),p=d.isEmpty();(p||o==1)&&r.selection.moveToPosition(n),o==2&&(r.textInput.onContextMenu(e.domEvent),E.isMozilla||e.preventDefault());return}if(this.mousedownEvent.time=Date.now(),i&&!r.isFocused()&&(r.focus(),this.$focusTimeout&&!this.$clickSelection&&!r.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(e);return}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,i){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;!this.mousedownEvent||(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):i||n.selection.moveToPosition(e),i||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"))},this.select=function(){var e,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var o=t(this.$clickSelection,n);n=o.cursor,e=o.anchor}i.selection.setSelectionAnchor(e.row,e.column)}i.selection.selectToPosition(n),i.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var i,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),o=n.selection[e](r.row,r.column);if(this.$clickSelection){var d=this.$clickSelection.comparePoint(o.start),p=this.$clickSelection.comparePoint(o.end);if(d==-1&&p<=0)i=this.$clickSelection.end,(o.end.row!=r.row||o.end.column!=r.column)&&(r=o.start);else if(p==1&&d>=0)i=this.$clickSelection.start,(o.start.row!=r.row||o.start.column!=r.column)&&(r=o.end);else if(d==-1&&p==1)r=o.end,i=o.start;else{var v=t(this.$clickSelection,r);r=v.cursor,i=v.anchor}n.selection.setSelectionAnchor(i.row,i.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=c(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),i=Date.now();(e>A||i-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var i=e.getDocumentPosition(),n=this.editor,r=n.session,o=r.getBracketRange(i);o?(o.isEmpty()&&(o.start.column--,o.end.column++),this.setState("select")):(o=n.selection.getWordRange(i.row,i.column),this.setState("selectByWords")),this.$clickSelection=o,this.select()},this.onTripleClick=function(e){var i=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(i.row,i.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(i.row),this.select()},this.onQuadClick=function(e){var i=this.editor;i.selectAll(),this.$clickSelection=i.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var i=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,o=r-n.t,d=o?e.wheelX/o:n.vx,p=o?e.wheelY/o:n.vy;o<m&&(d=(d+n.vx)/2,p=(p+n.vy)/2);var v=Math.abs(d/p),y=!1;if(v>=1&&i.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(y=!0),v<=1&&i.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(y=!0),y)n.allowed=r;else if(r-n.allowed<m){var w=Math.abs(d)<=1.5*Math.abs(n.vx)&&Math.abs(p)<=1.5*Math.abs(n.vy);w?(y=!0,n.allowed=r):n.allowed=0}if(n.t=r,n.vx=d,n.vy=p,y)return i.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}}).call(a.prototype),k.DefaultHandlers=a;function c(e,i,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-i,2))}function t(e,i){if(e.start.row==e.end.row)var n=2*i.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=i.column-4;else var n=2*i.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(x,k,W){x("./lib/oop");var E=x("./lib/dom"),A="ace_tooltip";function m(a){this.isOpen=!1,this.$element=null,this.$parentNode=a}(function(){this.$init=function(){return this.$element=E.createElement("div"),this.$element.className=A,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(a){this.getElement().textContent=a},this.setHtml=function(a){this.getElement().innerHTML=a},this.setPosition=function(a,c){this.getElement().style.left=a+"px",this.getElement().style.top=c+"px"},this.setClassName=function(a){E.addCssClass(this.getElement(),a)},this.show=function(a,c,t){a!=null&&this.setText(a),c!=null&&t!=null&&this.setPosition(c,t),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=A,this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(m.prototype),k.Tooltip=m}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(x,k,W){var E=x("../lib/dom"),A=x("../lib/oop"),m=x("../lib/event"),a=x("../tooltip").Tooltip;function c(e){var i=e.editor,n=i.renderer.$gutterLayer,r=new t(i.container);e.editor.setDefaultHandler("guttermousedown",function(l){if(!(!i.isFocused()||l.getButton()!=0)){var g=n.getRegion(l);if(g!="foldWidgets"){var b=l.getDocumentPosition().row,f=i.session.selection;if(l.getShiftKey())f.selectTo(b,0);else{if(l.domEvent.detail==2)return i.selectAll(),l.preventDefault();e.$clickSelection=i.selection.getLineRange(b)}return e.setState("selectByLines"),e.captureMouse(l),l.preventDefault()}}});var o,d,p;function v(){var l=d.getDocumentPosition().row,g=n.$annotations[l];if(!g)return y();var b=i.session.getLength();if(l==b){var f=i.renderer.pixelToScreenCoordinates(0,d.y).row,h=d.$pos;if(f>i.session.documentToScreenRow(h.row,h.column))return y()}if(p!=g){p=g.text.join("<br/>"),r.setHtml(p);var s=g.className;if(s&&r.setClassName(s.trim()),r.show(),i._signal("showGutterTooltip",r),i.on("mousewheel",y),e.$tooltipFollowsMouse)w(d);else{var u=d.domEvent.target,$=u.getBoundingClientRect(),C=r.getElement().style;C.left=$.right+"px",C.top=$.bottom+"px"}}}function y(){o&&(o=clearTimeout(o)),p&&(r.hide(),p=null,i._signal("hideGutterTooltip",r),i.off("mousewheel",y))}function w(l){r.setPosition(l.x,l.y)}e.editor.setDefaultHandler("guttermousemove",function(l){var g=l.domEvent.target||l.domEvent.srcElement;if(E.hasCssClass(g,"ace_fold-widget"))return y();p&&e.$tooltipFollowsMouse&&w(l),d=l,!o&&(o=setTimeout(function(){o=null,d&&!e.isMousePressed?v():y()},50))}),m.addListener(i.renderer.$gutter,"mouseout",function(l){d=null,!(!p||o)&&(o=setTimeout(function(){o=null,y()},50))},i),i.on("changeSession",y)}function t(e){a.call(this,e)}A.inherits(t,a),function(){this.setPosition=function(e,i){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),d=this.getHeight();e+=15,i+=15,e+o>n&&(e-=e+o-n),i+d>r&&(i-=20+d),a.prototype.setPosition.call(this,e,i)}}.call(t.prototype),k.GutterHandler=c}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(x,k,W){var E=x("../lib/event"),A=x("../lib/useragent"),m=k.MouseEvent=function(a,c){this.domEvent=a,this.editor=c,this.x=this.clientX=a.clientX,this.y=this.clientY=a.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){E.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){E.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var a=this.editor,c=a.getSelectionRange();if(c.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=c.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return E.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(m.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(x,k,W){var E=x("../lib/dom"),A=x("../lib/event"),m=x("../lib/useragent"),a=200,c=200,t=5;function e(n){var r=n.editor,o=E.createElement("div");o.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",o.textContent="\xA0";var d=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];d.forEach(function(F){n[F]=this[F]},this),r.on("mousedown",this.onMouseDown.bind(n));var p=r.container,v,y,w,l,g,b,f=0,h,s,u,$,C;this.onDragStart=function(F){if(this.cancelDrag||!p.draggable){var I=this;return setTimeout(function(){I.startSelect(),I.captureMouse(F)},0),F.preventDefault()}g=r.getSelectionRange();var P=F.dataTransfer;P.effectAllowed=r.getReadOnly()?"copy":"copyMove",r.container.appendChild(o),P.setDragImage&&P.setDragImage(o,0,0),setTimeout(function(){r.container.removeChild(o)}),P.clearData(),P.setData("Text",r.session.getTextRange()),s=!0,this.setState("drag")},this.onDragEnd=function(F){if(p.draggable=!1,s=!1,this.setState(null),!r.getReadOnly()){var I=F.dataTransfer.dropEffect;!h&&I=="move"&&r.session.remove(r.getSelectionRange()),r.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(F){if(!(r.getReadOnly()||!D(F.dataTransfer)))return y=F.clientX,w=F.clientY,v||T(),f++,F.dataTransfer.dropEffect=h=B(F),A.preventDefault(F)},this.onDragOver=function(F){if(!(r.getReadOnly()||!D(F.dataTransfer)))return y=F.clientX,w=F.clientY,v||(T(),f++),M!==null&&(M=null),F.dataTransfer.dropEffect=h=B(F),A.preventDefault(F)},this.onDragLeave=function(F){if(f--,f<=0&&v)return _(),h=null,A.preventDefault(F)},this.onDrop=function(F){if(!!b){var I=F.dataTransfer;if(s)switch(h){case"move":g.contains(b.row,b.column)?g={start:b,end:b}:g=r.moveText(g,b);break;case"copy":g=r.moveText(g,b,!0);break}else{var P=I.getData("Text");g={start:b,end:r.session.insert(b,P)},r.focus(),h=null}return _(),A.preventDefault(F)}},A.addListener(p,"dragstart",this.onDragStart.bind(n),r),A.addListener(p,"dragend",this.onDragEnd.bind(n),r),A.addListener(p,"dragenter",this.onDragEnter.bind(n),r),A.addListener(p,"dragover",this.onDragOver.bind(n),r),A.addListener(p,"dragleave",this.onDragLeave.bind(n),r),A.addListener(p,"drop",this.onDrop.bind(n),r);function S(F,I){var P=Date.now(),N=!I||F.row!=I.row,U=!I||F.column!=I.column;if(!$||N||U)r.moveCursorToPosition(F),$=P,C={x:y,y:w};else{var V=i(C.x,C.y,y,w);V>t?$=null:P-$>=c&&(r.renderer.scrollCursorIntoView(),$=null)}}function L(F,I){var P=Date.now(),N=r.renderer.layerConfig.lineHeight,U=r.renderer.layerConfig.characterWidth,V=r.renderer.scroller.getBoundingClientRect(),K={x:{left:y-V.left,right:V.right-y},y:{top:w-V.top,bottom:V.bottom-w}},G=Math.min(K.x.left,K.x.right),X=Math.min(K.y.top,K.y.bottom),Z={row:F.row,column:F.column};G/U<=2&&(Z.column+=K.x.left<K.x.right?-3:2),X/N<=1&&(Z.row+=K.y.top<K.y.bottom?-1:1);var le=F.row!=Z.row,re=F.column!=Z.column,ee=!I||F.row!=I.row;le||re&&!ee?u?P-u>=a&&r.renderer.scrollCursorIntoView(Z):u=P:u=null}function R(){var F=b;b=r.renderer.screenToTextCoordinates(y,w),S(b,F),L(b,F)}function T(){g=r.selection.toOrientedRange(),v=r.session.addMarker(g,"ace_selection",r.getSelectionStyle()),r.clearSelection(),r.isFocused()&&r.renderer.$cursorLayer.setBlinking(!1),clearInterval(l),R(),l=setInterval(R,20),f=0,A.addListener(document,"mousemove",O)}function _(){clearInterval(l),r.session.removeMarker(v),v=null,r.selection.fromOrientedRange(g),r.isFocused()&&!s&&r.$resetCursorStyle(),g=null,b=null,f=0,u=null,$=null,A.removeListener(document,"mousemove",O)}var M=null;function O(){M==null&&(M=setTimeout(function(){M!=null&&v&&_()},20))}function D(F){var I=F.types;return!I||Array.prototype.some.call(I,function(P){return P=="text/plain"||P=="Text"})}function B(F){var I=["copy","copymove","all","uninitialized"],P=["move","copymove","linkmove","all","uninitialized"],N=m.isMac?F.altKey:F.ctrlKey,U="uninitialized";try{U=F.dataTransfer.effectAllowed.toLowerCase()}catch(K){}var V="none";return N&&I.indexOf(U)>=0?V="copy":P.indexOf(U)>=0?V="move":I.indexOf(U)>=0&&(V="copy"),V}}(function(){this.dragWait=function(){var n=Date.now()-this.mousedownEvent.time;n>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var n=this.editor.container;n.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(n){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var n=this.editor,r=n.container;r.draggable=!0,n.renderer.$cursorLayer.setBlinking(!1),n.setStyle("ace_dragging");var o=m.isWin?"default":"move";n.renderer.setCursorStyle(o),this.setState("dragReady")},this.onMouseDrag=function(n){var r=this.editor.container;if(m.isIE&&this.state=="dragReady"){var o=i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>3&&r.dragDrop()}if(this.state==="dragWait"){var o=i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);o>0&&(r.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(n){if(!!this.$dragEnabled){this.mousedownEvent=n;var r=this.editor,o=n.inSelection(),d=n.getButton(),p=n.domEvent.detail||1;if(p===1&&d===0&&o){if(n.editor.inMultiSelectMode&&(n.getAccelKey()||n.getShiftKey()))return;this.mousedownEvent.time=Date.now();var v=n.domEvent.target||n.domEvent.srcElement;if("unselectable"in v&&(v.unselectable="on"),r.getDragDelay()){if(m.isWebKit){this.cancelDrag=!0;var y=r.container;y.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(n,this.onMouseDrag.bind(this)),n.defaultPrevented=!0}}}}).call(e.prototype);function i(n,r,o,d){return Math.sqrt(Math.pow(o-n,2)+Math.pow(d-r,2))}k.DragdropHandler=e}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(x,k,W){var E=x("./mouse_event").MouseEvent,A=x("../lib/event"),m=x("../lib/dom");k.addTouchListeners=function(a,c){var t="scroll",e,i,n,r,o,d,p=0,v,y=0,w=0,l=0,g,b;function f(){var S=window.navigator&&window.navigator.clipboard,L=!1,R=function(){var _=c.getCopyText(),M=c.session.getUndoManager().hasUndo();b.replaceChild(m.buildDom(L?["span",!_&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],_&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],_&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],S&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],M&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPallete"},"Palette"]]:["span"]),b.firstChild)},T=function(_){var M=_.target.getAttribute("action");if(M=="more"||!L)return L=!L,R();M=="paste"?S.readText().then(function(O){c.execCommand(M,O)}):M&&((M=="cut"||M=="copy")&&(S?S.writeText(c.getCopyText()):document.execCommand("copy")),c.execCommand(M)),b.firstChild.style.display="none",L=!1,M!="openCommandPallete"&&c.focus()};b=m.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(_){t="menu",_.stopPropagation(),_.preventDefault(),c.textInput.focus()},ontouchend:function(_){_.stopPropagation(),_.preventDefault(),T(_)},onclick:T},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],c.container)}function h(){b||f();var S=c.selection.cursor,L=c.renderer.textToScreenCoordinates(S.row,S.column),R=c.renderer.textToScreenCoordinates(0,0).pageX,T=c.renderer.scrollLeft,_=c.container.getBoundingClientRect();b.style.top=L.pageY-_.top-3+"px",L.pageX-_.left<_.width-70?(b.style.left="",b.style.right="10px"):(b.style.right="",b.style.left=R+T-_.left+"px"),b.style.display="",b.firstChild.style.display="none",c.on("input",s)}function s(S){b&&(b.style.display="none"),c.off("input",s)}function u(){o=null,clearTimeout(o);var S=c.selection.getRange(),L=S.contains(v.row,v.column);(S.isEmpty()||!L)&&(c.selection.moveToPosition(v),c.selection.selectWord()),t="wait",h()}function $(){o=null,clearTimeout(o),c.selection.moveToPosition(v);var S=y>=2?c.selection.getLineRange(v.row):c.session.getBracketRange(v);S&&!S.isEmpty()?c.selection.setRange(S):c.selection.selectWord(),t="wait"}A.addListener(a,"contextmenu",function(S){if(!!g){var L=c.textInput.getElement();L.focus()}},c),A.addListener(a,"touchstart",function(S){var L=S.touches;if(o||L.length>1){clearTimeout(o),o=null,n=-1,t="zoom";return}g=c.$mouseHandler.isMousePressed=!0;var R=c.renderer.layerConfig.lineHeight,T=c.renderer.layerConfig.lineHeight,_=S.timeStamp;r=_;var M=L[0],O=M.clientX,D=M.clientY;Math.abs(e-O)+Math.abs(i-D)>R&&(n=-1),e=S.clientX=O,i=S.clientY=D,w=l=0;var B=new E(S,c);if(v=B.getDocumentPosition(),_-n<500&&L.length==1&&!p)y++,S.preventDefault(),S.button=0,$();else{y=0;var F=c.selection.cursor,I=c.selection.isEmpty()?F:c.selection.anchor,P=c.renderer.$cursorLayer.getPixelPosition(F,!0),N=c.renderer.$cursorLayer.getPixelPosition(I,!0),U=c.renderer.scroller.getBoundingClientRect(),V=c.renderer.layerConfig.offset,K=c.renderer.scrollLeft,G=function(le,re){return le=le/T,re=re/R-.75,le*le+re*re};if(S.clientX<U.left){t="zoom";return}var X=G(S.clientX-U.left-P.left+K,S.clientY-U.top-P.top+V),Z=G(S.clientX-U.left-N.left+K,S.clientY-U.top-N.top+V);X<3.5&&Z<3.5&&(t=X>Z?"cursor":"anchor"),Z<3.5?t="anchor":X<3.5?t="cursor":t="scroll",o=setTimeout(u,450)}n=_},c),A.addListener(a,"touchend",function(S){g=c.$mouseHandler.isMousePressed=!1,d&&clearInterval(d),t=="zoom"?(t="",p=0):o?(c.selection.moveToPosition(v),p=0,h()):t=="scroll"?(C(),s()):h(),clearTimeout(o),o=null},c),A.addListener(a,"touchmove",function(S){o&&(clearTimeout(o),o=null);var L=S.touches;if(!(L.length>1||t=="zoom")){var R=L[0],T=e-R.clientX,_=i-R.clientY;if(t=="wait")if(T*T+_*_>4)t="cursor";else return S.preventDefault();e=R.clientX,i=R.clientY,S.clientX=R.clientX,S.clientY=R.clientY;var M=S.timeStamp,O=M-r;if(r=M,t=="scroll"){var D=new E(S,c);D.speed=1,D.wheelX=T,D.wheelY=_,10*Math.abs(T)<Math.abs(_)&&(T=0),10*Math.abs(_)<Math.abs(T)&&(_=0),O!=0&&(w=T/O,l=_/O),c._emit("mousewheel",D),D.propagationStopped||(w=l=0)}else{var B=new E(S,c),F=B.getDocumentPosition();t=="cursor"?c.selection.moveCursorToPosition(F):t=="anchor"&&c.selection.setSelectionAnchor(F.row,F.column),c.renderer.scrollCursorIntoView(F),S.preventDefault()}}},c);function C(){p+=60,d=setInterval(function(){p--<=0&&(clearInterval(d),d=null),Math.abs(w)<.01&&(w=0),Math.abs(l)<.01&&(l=0),p<20&&(w=.9*w),p<20&&(l=.9*l);var S=c.session.getScrollTop();c.renderer.scrollBy(10*w,10*l),S==c.session.getScrollTop()&&(p=0)},10)}}}),ace.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_handler","ace/mouse/touch_handler","ace/config"],function(x,k,W){var E=x("../lib/event"),A=x("../lib/useragent"),m=x("./default_handlers").DefaultHandlers,a=x("./default_gutter_handler").GutterHandler,c=x("./mouse_event").MouseEvent,t=x("./dragdrop_handler").DragdropHandler,e=x("./touch_handler").addTouchListeners,i=x("../config"),n=function(r){var o=this;this.editor=r,new m(this),new a(this),new t(this);var d=function(y){var w=!document.hasFocus||!document.hasFocus()||!r.isFocused()&&document.activeElement==(r.textInput&&r.textInput.getElement());w&&window.focus(),r.focus(),setTimeout(function(){r.isFocused()||r.focus()})},p=r.renderer.getMouseEventTarget();E.addListener(p,"click",this.onMouseEvent.bind(this,"click"),r),E.addListener(p,"mousemove",this.onMouseMove.bind(this,"mousemove"),r),E.addMultiMouseDownListener([p,r.renderer.scrollBarV&&r.renderer.scrollBarV.inner,r.renderer.scrollBarH&&r.renderer.scrollBarH.inner,r.textInput&&r.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent",r),E.addMouseWheelListener(r.container,this.onMouseWheel.bind(this,"mousewheel"),r),e(r.container,r);var v=r.renderer.$gutter;E.addListener(v,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"),r),E.addListener(v,"click",this.onMouseEvent.bind(this,"gutterclick"),r),E.addListener(v,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"),r),E.addListener(v,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"),r),E.addListener(p,"mousedown",d,r),E.addListener(v,"mousedown",d,r),A.isIE&&r.renderer.scrollBarV&&(E.addListener(r.renderer.scrollBarV.element,"mousedown",d,r),E.addListener(r.renderer.scrollBarH.element,"mousedown",d,r)),r.on("mousemove",function(y){if(!(o.state||o.$dragDelay||!o.$dragEnabled)){var w=r.renderer.screenToTextCoordinates(y.x,y.y),l=r.session.selection.getRange(),g=r.renderer;!l.isEmpty()&&l.insideStart(w.row,w.column)?g.setCursorStyle("default"):g.setCursorStyle("")}},r)};(function(){this.onMouseEvent=function(r,o){!this.editor.session||this.editor._emit(r,new c(o,this.editor))},this.onMouseMove=function(r,o){var d=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!d||!d.length||this.editor._emit(r,new c(o,this.editor))},this.onMouseWheel=function(r,o){var d=new c(o,this.editor);d.speed=this.$scrollSpeed*2,d.wheelX=o.wheelX,d.wheelY=o.wheelY,this.editor._emit(r,d)},this.setState=function(r){this.state=r},this.captureMouse=function(r,o){this.x=r.x,this.y=r.y,this.isMousePressed=!0;var d=this.editor,p=this.editor.renderer;p.$isMousePressed=!0;var v=this,y=function(f){if(!!f){if(A.isWebKit&&!f.which&&v.releaseMouse)return v.releaseMouse();v.x=f.clientX,v.y=f.clientY,o&&o(f),v.mouseEvent=new c(f,v.editor),v.$mouseMoved=!0}},w=function(f){d.off("beforeEndOperation",g),clearInterval(b),d.session&&l(),v[v.state+"End"]&&v[v.state+"End"](f),v.state="",v.isMousePressed=p.$isMousePressed=!1,p.$keepTextAreaAtCursor&&p.$moveTextAreaToCursor(),v.$onCaptureMouseMove=v.releaseMouse=null,f&&v.onMouseEvent("mouseup",f),d.endOperation()},l=function(){v[v.state]&&v[v.state](),v.$mouseMoved=!1};if(A.isOldIE&&r.domEvent.type=="dblclick")return setTimeout(function(){w(r)});var g=function(f){!v.releaseMouse||d.curOp.command.name&&d.curOp.selectionChanged&&(v[v.state+"End"]&&v[v.state+"End"](),v.state="",v.releaseMouse())};d.on("beforeEndOperation",g),d.startOperation({command:{name:"mouse"}}),v.$onCaptureMouseMove=y,v.releaseMouse=E.capture(this.editor.container,y,w);var b=setInterval(l,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var r=function(o){o&&o.domEvent&&o.domEvent.type!="contextmenu"||(this.editor.off("nativecontextmenu",r),o&&o.domEvent&&E.stopEvent(o.domEvent))}.bind(this);setTimeout(r,10),this.editor.on("nativecontextmenu",r)},this.destroy=function(){this.releaseMouse&&this.releaseMouse()}}).call(n.prototype),i.defineOptions(n.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:A.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),k.MouseHandler=n}),ace.define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(x,k,W){var E=x("../lib/dom");function A(m){m.on("click",function(a){var c=a.getDocumentPosition(),t=m.session,e=t.getFoldAt(c.row,c.column,1);e&&(a.getAccelKey()?t.removeFold(e):t.expandFold(e),a.stop());var i=a.domEvent&&a.domEvent.target;i&&E.hasCssClass(i,"ace_inline_button")&&E.hasCssClass(i,"ace_toggle_wrap")&&(t.setOption("wrap",!t.getUseWrapMode()),m.renderer.scrollCursorIntoView())}),m.on("gutterclick",function(a){var c=m.renderer.$gutterLayer.getRegion(a);if(c=="foldWidgets"){var t=a.getDocumentPosition().row,e=m.session;e.foldWidgets&&e.foldWidgets[t]&&m.session.onFoldWidgetClick(t,a),m.isFocused()||m.focus(),a.stop()}}),m.on("gutterdblclick",function(a){var c=m.renderer.$gutterLayer.getRegion(a);if(c=="foldWidgets"){var t=a.getDocumentPosition().row,e=m.session,i=e.getParentFoldRangeData(t,!0),n=i.range||i.firstRange;if(n){t=n.start.row;var r=e.getFoldAt(t,e.getLine(t).length,1);r?e.removeFold(r):(e.addFold("...",n),m.renderer.scrollCursorIntoView({row:n.start.row,column:0}))}a.stop()}})}k.FoldHandler=A}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(x,k,W){var E=x("../lib/keys"),A=x("../lib/event"),m=function(a){this.$editor=a,this.$data={editor:a},this.$handlers=[],this.setDefaultHandler(a.commands)};(function(){this.setDefaultHandler=function(a){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=a,this.addKeyboardHandler(a,0)},this.setKeyboardHandler=function(a){var c=this.$handlers;if(c[c.length-1]!=a){for(;c[c.length-1]&&c[c.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(c[c.length-1]);this.addKeyboardHandler(a,1)}},this.addKeyboardHandler=function(a,c){if(!!a){typeof a=="function"&&!a.handleKeyboard&&(a.handleKeyboard=a);var t=this.$handlers.indexOf(a);t!=-1&&this.$handlers.splice(t,1),c==null?this.$handlers.push(a):this.$handlers.splice(c,0,a),t==-1&&a.attach&&a.attach(this.$editor)}},this.removeKeyboardHandler=function(a){var c=this.$handlers.indexOf(a);return c==-1?!1:(this.$handlers.splice(c,1),a.detach&&a.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var a=this.$data,c=a.editor;return this.$handlers.map(function(t){return t.getStatusText&&t.getStatusText(c,a)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(a,c,t,e){for(var i,n=!1,r=this.$editor.commands,o=this.$handlers.length;o--&&(i=this.$handlers[o].handleKeyboard(this.$data,a,c,t,e),!(!(!i||!i.command)&&(i.command=="null"?n=!0:n=r.exec(i.command,this.$editor,i.args,e),n&&e&&a!=-1&&i.passEvent!=!0&&i.command.passEvent!=!0&&A.stopEvent(e),n))););return!n&&a==-1&&(i={command:"insertstring"},n=r.exec("insertstring",this.$editor,c)),n&&this.$editor._signal&&this.$editor._signal("keyboardActivity",i),n},this.onCommandKey=function(a,c,t){var e=E.keyCodeToString(t);return this.$callKeyboardHandlers(c,e,t,a)},this.onTextInput=function(a){return this.$callKeyboardHandlers(-1,a)}}).call(m.prototype),k.KeyBinding=m}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(x,k,W){var E=0,A=0,m=!1,a=!1,c=!1,t=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],e=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],i=0,n=1,r=0,o=1,d=2,p=3,v=4,y=5,w=6,l=7,g=8,b=9,f=10,h=11,s=12,u=13,$=14,C=15,S=16,L=17,R=18,T=[R,R,R,R,R,R,R,R,R,w,y,w,g,y,R,R,R,R,R,R,R,R,R,R,R,R,R,R,y,y,y,w,g,v,v,h,h,h,v,v,v,v,v,f,b,f,b,b,d,d,d,d,d,d,d,d,d,d,b,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,R,R,R,R,R,R,y,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,b,v,h,h,h,h,v,v,v,v,r,v,v,R,v,v,h,h,d,d,v,r,v,v,v,d,r,v,v,v,v,v],_=[g,g,g,g,g,g,g,g,g,g,g,R,R,R,r,o,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,g,y,u,$,C,S,L,b,h,h,h,h,h,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,b,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,g];function M(F,I,P,N){var U=E?e:t,V=null,K=null,G=null,X=0,Z=null,le=null,re=-1,ee=null,ce=null,we=[];if(!N)for(ee=0,N=[];ee<P;ee++)N[ee]=B(F[ee]);for(A=E,m=!1,a=!1,c=!1,ce=0;ce<P;ce++){if(V=X,we[ce]=K=D(F,N,we,ce),X=U[V][K],Z=X&240,X&=15,I[ce]=G=U[X][5],Z>0)if(Z==16){for(ee=re;ee<ce;ee++)I[ee]=1;re=-1}else re=-1;if(le=U[X][6],le)re==-1&&(re=ce);else if(re>-1){for(ee=re;ee<ce;ee++)I[ee]=G;re=-1}N[ce]==y&&(I[ce]=0),A|=G}if(c){for(ee=0;ee<P;ee++)if(N[ee]==w){I[ee]=E;for(var me=ee-1;me>=0&&N[me]==g;me--)I[me]=E}}}function O(F,I,P){if(!(A<F)){if(F==1&&E==n&&!a){P.reverse();return}for(var N=P.length,U=0,V,K,G,X;U<N;){if(I[U]>=F){for(V=U+1;V<N&&I[V]>=F;)V++;for(K=U,G=V-1;K<G;K++,G--)X=P[K],P[K]=P[G],P[G]=X;U=V}U++}}}function D(F,I,P,N){var U=I[N],V,K,G,X;switch(U){case r:case o:m=!1;case v:case p:return U;case d:return m?p:d;case l:return m=!0,o;case g:return v;case b:return N<1||N+1>=I.length||(V=P[N-1])!=d&&V!=p||(K=I[N+1])!=d&&K!=p?v:(m&&(K=p),K==V?K:v);case f:return V=N>0?P[N-1]:y,V==d&&N+1<I.length&&I[N+1]==d?d:v;case h:if(N>0&&P[N-1]==d)return d;if(m)return v;for(X=N+1,G=I.length;X<G&&I[X]==h;)X++;return X<G&&I[X]==d?d:v;case s:for(G=I.length,X=N+1;X<G&&I[X]==s;)X++;if(X<G){var Z=F[N],le=Z>=1425&&Z<=2303||Z==64286;if(V=I[X],le&&(V==o||V==l))return o}return N<1||(V=I[N-1])==y?v:P[N-1];case y:return m=!1,a=!0,E;case w:return c=!0,v;case u:case $:case S:case L:case C:m=!1;case R:return v}}function B(F){var I=F.charCodeAt(0),P=I>>8;return P==0?I>191?r:T[I]:P==5?/[\u0591-\u05f4]/.test(F)?o:r:P==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(F)?s:/[\u0660-\u0669\u066b-\u066c]/.test(F)?p:I==1642?h:/[\u06f0-\u06f9]/.test(F)?d:l:P==32&&I<=8287?_[I&255]:P==254&&I>=65136?l:v}k.L=r,k.R=o,k.EN=d,k.ON_R=3,k.AN=4,k.R_H=5,k.B=6,k.RLE=7,k.DOT="\xB7",k.doBidiReorder=function(F,I,P){if(F.length<2)return{};var N=F.split(""),U=new Array(N.length),V=new Array(N.length),K=[];E=P?n:i,M(N,K,N.length,I);for(var G=0;G<U.length;U[G]=G,G++);O(2,K,U),O(1,K,U);for(var G=0;G<U.length-1;G++)I[G]===p?K[G]=k.AN:K[G]===o&&(I[G]>l&&I[G]<u||I[G]===v||I[G]===R)?K[G]=k.ON_R:G>0&&N[G-1]==="\u0644"&&/\u0622|\u0623|\u0625|\u0627/.test(N[G])&&(K[G-1]=K[G]=k.R_H,G++);N[N.length-1]===k.DOT&&(K[N.length-1]=k.B),N[0]==="\u202B"&&(K[0]=k.RLE);for(var G=0;G<U.length;G++)V[G]=K[U[G]];return{logicalFromVisual:U,bidiLevels:V}},k.hasBidiCharacters=function(F,I){for(var P=!1,N=0;N<F.length;N++)I[N]=B(F.charAt(N)),!P&&(I[N]==o||I[N]==l||I[N]==p)&&(P=!0);return P},k.getVisualFromLogicalIdx=function(F,I){for(var P=0;P<I.logicalFromVisual.length;P++)if(I.logicalFromVisual[P]==F)return P;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(x,k,W){var E=x("./lib/bidiutil"),A=x("./lib/lang"),m=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,a=function(c){this.session=c,this.bidiMap={},this.currentRow=null,this.bidiUtil=E,this.charWidths=[],this.EOL="\xAC",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="\xB6",this.RLE="\u202B",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=m.test(c.getValue())};(function(){this.isBidiRow=function(c,t,e){return this.seenBidi?(c!==this.currentRow&&(this.currentRow=c,this.updateRowLine(t,e),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(c){this.seenBidi?this.currentRow=null:c.action=="insert"&&m.test(c.lines.join(`
- `))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var c=0,t=this.session.$screenRowCache;if(t.length){var e=this.session.$getRowCacheIndex(t,this.currentRow);e>=0&&(c=this.session.$docRowCache[e])}return c},this.getSplitIndex=function(){var c=0,t=this.session.$screenRowCache;if(t.length)for(var e,i=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-c>0&&(e=this.session.$getRowCacheIndex(t,this.currentRow-c-1),e===i);)i=e,c++;else c=this.currentRow;return c},this.updateRowLine=function(c,t){c===void 0&&(c=this.getDocumentRow());var e=c===this.session.getLength()-1,i=e?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(c),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var n=this.session.$wrapData[c];n&&(t===void 0&&(t=this.getSplitIndex()),t>0&&n.length?(this.wrapIndent=n.indent,this.wrapOffset=this.wrapIndent*this.charWidths[E.L],this.line=t<n.length?this.line.substring(n[t-1],n[t]):this.line.substring(n[n.length-1])):this.line=this.line.substring(0,n[t]),t==n.length&&(this.line+=this.showInvisibles?i:E.DOT))}else this.line+=this.showInvisibles?i:E.DOT;var r=this.session,o=0,d;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(p,v){return p===" "||r.isFullWidth(p.charCodeAt(0))?(d=p===" "?r.getScreenTabSize(v+o):2,o+=d-1,A.stringRepeat(E.DOT,d)):p}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==E.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},this.updateBidiMap=function(){var c=[];E.hasBidiCharacters(this.line,c)||this.isRtlDir?this.bidiMap=E.doBidiReorder(this.line,c,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(c){if(this.characterWidth!==c.$characterSize.width){this.fontMetrics=c;var t=this.characterWidth=c.$characterSize.width,e=c.$measureCharWidth("\u05D4");this.charWidths[E.L]=this.charWidths[E.EN]=this.charWidths[E.ON_R]=t,this.charWidths[E.R]=this.charWidths[E.AN]=e,this.charWidths[E.R_H]=e*.45,this.charWidths[E.B]=this.charWidths[E.RLE]=0,this.currentRow=null}},this.setShowInvisibles=function(c){this.showInvisibles=c,this.currentRow=null},this.setEolChar=function(c){this.EOL=c},this.setContentWidth=function(c){this.contentWidth=c},this.isRtlLine=function(c){return this.$isRtl?!0:c!=null?this.session.getLine(c).charAt(0)==this.RLE:this.isRtlDir},this.setRtlDirection=function(c,t){for(var e=c.getCursorPosition(),i=c.selection.getSelectionAnchor().row;i<=e.row;i++)!t&&c.session.getLine(i).charAt(0)===c.session.$bidiHandler.RLE?c.session.doc.removeInLine(i,0,1):t&&c.session.getLine(i).charAt(0)!==c.session.$bidiHandler.RLE&&c.session.doc.insert({column:0,row:i},c.session.$bidiHandler.RLE)},this.getPosLeft=function(c){c-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,e=c>t?this.session.getOverwrite()?c:c-1:t,i=E.getVisualFromLogicalIdx(e,this.bidiMap),n=this.bidiMap.bidiLevels,r=0;!this.session.getOverwrite()&&c<=t&&n[i]%2!==0&&i++;for(var o=0;o<i;o++)r+=this.charWidths[n[o]];return!this.session.getOverwrite()&&c>t&&n[i]%2===0&&(r+=this.charWidths[n[i]]),this.wrapIndent&&(r+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(r+=this.rtlLineOffset),r},this.getSelections=function(c,t){var e=this.bidiMap,i=e.bidiLevels,n,r=[],o=0,d=Math.min(c,t)-this.wrapIndent,p=Math.max(c,t)-this.wrapIndent,v=!1,y=!1,w=0;this.wrapIndent&&(o+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var l,g=0;g<i.length;g++)l=e.logicalFromVisual[g],n=i[g],v=l>=d&&l<p,v&&!y?w=o:!v&&y&&r.push({left:w,width:o-w}),o+=this.charWidths[n],y=v;if(v&&g===i.length&&r.push({left:w,width:o-w}),this.isRtlDir)for(var b=0;b<r.length;b++)r[b].left+=this.rtlLineOffset;return r},this.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,e=Math.max(e,0),i=0,n=0,r=this.bidiMap.bidiLevels,o=this.charWidths[r[n]];for(this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);e>i+o/2;){if(i+=o,n===r.length-1){o=0;break}o=this.charWidths[r[++n]]}return n>0&&r[n-1]%2!==0&&r[n]%2===0?(e<i&&n--,t=this.bidiMap.logicalFromVisual[n]):n>0&&r[n-1]%2===0&&r[n]%2!==0?t=1+(e>i?this.bidiMap.logicalFromVisual[n]:this.bidiMap.logicalFromVisual[n-1]):this.isRtlDir&&n===r.length-1&&o===0&&r[n-1]%2===0||!this.isRtlDir&&n===0&&r[n]%2!==0?t=1+this.bidiMap.logicalFromVisual[n]:(n>0&&r[n-1]%2!==0&&o!==0&&n--,t=this.bidiMap.logicalFromVisual[n]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(a.prototype),k.BidiHandler=a}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(x,k,W){var E=x("./lib/oop"),A=x("./lib/lang"),m=x("./lib/event_emitter").EventEmitter,a=x("./range").Range,c=function(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var e=this;this.cursor.on("change",function(i){e.$cursorChanged=!0,e.$silent||e._emit("changeCursor"),!e.$isEmpty&&!e.$silent&&e._emit("changeSelection"),!e.$keepDesiredColumnOnChange&&i.old.column!=i.value.column&&(e.$desiredColumn=null)}),this.anchor.on("change",function(){e.$anchorChanged=!0,!e.$isEmpty&&!e.$silent&&e._emit("changeSelection")})};(function(){E.implement(this,m),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(t,e){this.$isEmpty=!1,this.anchor.setPosition(t,e)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var t=this.anchor,e=this.lead;return t.row>e.row||t.row==e.row&&t.column>e.column},this.getRange=function(){var t=this.anchor,e=this.lead;return this.$isEmpty?a.fromPoints(e,e):this.isBackwards()?a.fromPoints(e,t):a.fromPoints(t,e)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(t,e){var i=e?t.end:t.start,n=e?t.start:t.end;this.$setSelection(i.row,i.column,n.row,n.column)},this.$setSelection=function(t,e,i,n){if(!this.$silent){var r=this.$isEmpty,o=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(t,e),this.cursor.setPosition(i,n),this.$isEmpty=!a.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||r!=this.$isEmpty||o)&&this._emit("changeSelection")}},this.$moveSelection=function(t){var e=this.lead;this.$isEmpty&&this.setSelectionAnchor(e.row,e.column),t.call(this)},this.selectTo=function(t,e){this.$moveSelection(function(){this.moveCursorTo(t,e)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,e){this.clearSelection(),this.moveCursorTo(t,e)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(t,e){if(typeof e=="undefined"){var i=t||this.lead;t=i.row,e=i.column}return this.session.getWordRange(t,e)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),e=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(e)},this.getLineRange=function(t,e){var i=typeof t=="number"?t:this.lead.row,n,r=this.session.getFoldLine(i);return r?(i=r.start.row,n=r.end.row):n=i,e===!0?new a(i,0,n,this.session.getLine(n).length):new a(i,0,n+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,e,i){var n=t.column,r=t.column+e;return i<0&&(n=t.column-e,r=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(n,r).split(" ").length-1==e},this.moveCursorLeft=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var i=this.session.getTabSize(),t=this.lead;this.wouldMoveIntoSoftTab(t,i,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,i):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var t=this.lead.row,e=this.lead.column,i=this.session.documentToScreenRow(t,e),n=this.session.screenToDocumentPosition(i,0),r=this.session.getDisplayLine(t,null,n.row,n.column),o=r.match(/^\s*/);o[0].length!=e&&!this.session.$useEmacsStyleLineStart&&(n.column+=o[0].length),this.moveCursorToPosition(n)},this.moveCursorLineEnd=function(){var t=this.lead,e=this.session.getDocumentLastRowColumnPosition(t.row,t.column);if(this.lead.column==e.column){var i=this.session.getLine(e.row);if(e.column==i.length){var n=i.search(/\s+$/);n>0&&(e.column=n)}}this.moveCursorTo(e.row,e.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,e=this.doc.getLine(t).length;this.moveCursorTo(t,e)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,e=this.lead.column,i=this.doc.getLine(t),n=i.substring(e);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(t,e,1);if(r){this.moveCursorTo(r.end.row,r.end.column);return}if(this.session.nonTokenRe.exec(n)&&(e+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(e)),e>=i.length){this.moveCursorTo(t,i.length),this.moveCursorRight(),t<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(n)&&(e+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.moveCursorLongWordLeft=function(){var t=this.lead.row,e=this.lead.column,i;if(i=this.session.getFoldAt(t,e,-1)){this.moveCursorTo(i.start.row,i.start.column);return}var n=this.session.getFoldStringAt(t,e,-1);n==null&&(n=this.doc.getLine(t).substring(0,e));var r=A.stringReverse(n);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(r)&&(e-=this.session.nonTokenRe.lastIndex,r=r.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),e<=0){this.moveCursorTo(t,0),this.moveCursorLeft(),t>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(r)&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e=0,i,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(t))e=this.session.tokenRe.lastIndex;else{for(;(i=t[e])&&n.test(i);)e++;if(e<1){for(r.lastIndex=0;(i=t[e])&&!r.test(i);)if(r.lastIndex=0,e++,n.test(i))if(e>2){e--;break}else{for(;(i=t[e])&&n.test(i);)e++;if(e>2)break}}}return r.lastIndex=0,e},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,i=this.doc.getLine(t),n=i.substring(e),r=this.session.getFoldAt(t,e,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(e==i.length){var o=this.doc.getLength();do t++,n=this.doc.getLine(t);while(t<o&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),e=0}var d=this.$shortWordEndIndex(n);this.moveCursorTo(t,e+d)},this.moveCursorShortWordLeft=function(){var t=this.lead.row,e=this.lead.column,i;if(i=this.session.getFoldAt(t,e,-1))return this.moveCursorTo(i.start.row,i.start.column);var n=this.session.getLine(t).substring(0,e);if(e===0){do t--,n=this.doc.getLine(t);while(t>0&&/^\s*$/.test(n));e=n.length,/\s+$/.test(n)||(n="")}var r=A.stringReverse(n),o=this.$shortWordEndIndex(r);return this.moveCursorTo(t,e-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,e){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column),n;if(e===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(i.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(i.column),i.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=i.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column),t!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var r=this.session.lineWidgets[this.lead.row];t<0?t-=r.rowsAbove||0:t>0&&(t+=r.rowCount-(r.rowsAbove||0))}var o=this.session.screenToDocumentPosition(i.row+t,i.column,n);t!==0&&e===0&&o.row===this.lead.row&&(o.column,this.lead.column),this.moveCursorTo(o.row,o.column+e,e===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,e,i){var n=this.session.getFoldAt(t,e,1);n&&(t=n.start.row,e=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(r.charAt(e))&&r.charAt(e-1)&&(this.lead.row==t&&this.lead.column==e+1?e=e-1:e=e+1),this.lead.setPosition(t,e),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,e,i){var n=this.session.screenToDocumentPosition(t,e);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var e=this.getRange();return t?(t.start.column=e.start.column,t.start.row=e.start.row,t.end.column=e.end.column,t.end.row=e.end.row):t=e,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var e=this.getCursor();try{t(this);var i=this.getCursor();return a.fromPoints(e,i)}catch(n){return a.fromPoints(e,e)}finally{this.moveCursorToPosition(e)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(e){var i=e.clone();return i.isBackwards=e.cursor==e.start,i});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList&&t.length>1){this.toSingleRange(t[0]);for(var e=t.length;e--;){var i=a.fromPoints(t[e].start,t[e].end);t[e].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var e=this.ranges.length;e--;)if(!this.ranges[e].isEqual(t[e]))return!1;return!0}}).call(c.prototype),k.Selection=c}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(x,k,W){var E=x("./config"),A=2e3,m=function(a){this.states=a,this.regExps={},this.matchMappings={};for(var c in this.states){for(var t=this.states[c],e=[],i=0,n=this.matchMappings[c]={defaultToken:"text"},r="g",o=[],d=0;d<t.length;d++){var p=t[d];if(p.defaultToken&&(n.defaultToken=p.defaultToken),p.caseInsensitive&&r.indexOf("i")===-1&&(r+="i"),p.unicode&&r.indexOf("u")===-1&&(r+="u"),p.regex!=null){p.regex instanceof RegExp&&(p.regex=p.regex.toString().slice(1,-1));var v=p.regex,y=new RegExp("(?:("+v+")|(.))").exec("a").length-2;Array.isArray(p.token)?p.token.length==1||y==1?p.token=p.token[0]:y-1!=p.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:p,groupCount:y-1}),p.token=p.token[0]):(p.tokenArray=p.token,p.token=null,p.onMatch=this.$arrayTokens):typeof p.token=="function"&&!p.onMatch&&(y>1?p.onMatch=this.$applyToken:p.onMatch=p.token),y>1&&(/\\\d/.test(p.regex)?v=p.regex.replace(/\\([0-9]+)/g,function(w,l){return"\\"+(parseInt(l,10)+i+1)}):(y=1,v=this.removeCapturingGroups(p.regex)),!p.splitRegex&&typeof p.token!="string"&&o.push(p)),n[i]=d,i+=y,e.push(v),p.onMatch||(p.onMatch=null)}}e.length||(n[0]=0,e.push("$")),o.forEach(function(w){w.splitRegex=this.createSplitterRegexp(w.regex,r)},this),this.regExps[c]=new RegExp("("+e.join(")|(")+")|($)",r)}};(function(){this.$setMaxTokenCount=function(a){A=a|0},this.$applyToken=function(a){var c=this.splitRegex.exec(a).slice(1),t=this.token.apply(this,c);if(typeof t=="string")return[{type:t,value:a}];for(var e=[],i=0,n=t.length;i<n;i++)c[i]&&(e[e.length]={type:t[i],value:c[i]});return e},this.$arrayTokens=function(a){if(!a)return[];var c=this.splitRegex.exec(a);if(!c)return"text";for(var t=[],e=this.tokenArray,i=0,n=e.length;i<n;i++)c[i+1]&&(t[t.length]={type:e[i],value:c[i+1]});return t},this.removeCapturingGroups=function(a){var c=a.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!<]|(\()/g,function(t,e){return e?"(?:":t});return c},this.createSplitterRegexp=function(a,c){if(a.indexOf("(?=")!=-1){var t=0,e=!1,i={};a.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(n,r,o,d,p,v){return e?e=p!="]":p?e=!0:d?(t==i.stack&&(i.end=v+1,i.stack=-1),t--):o&&(t++,o.length!=1&&(i.stack=t,i.start=v)),n}),i.end!=null&&/^\)*$/.test(a.substr(i.end))&&(a=a.substring(0,i.start)+a.substr(i.end))}return a.charAt(0)!="^"&&(a="^"+a),a.charAt(a.length-1)!="$"&&(a+="$"),new RegExp(a,(c||"").replace("g",""))},this.getLineTokens=function(a,c){if(c&&typeof c!="string"){var t=c.slice(0);c=t[0],c==="#tmp"&&(t.shift(),c=t.shift())}else var t=[];var e=c||"start",i=this.states[e];i||(e="start",i=this.states[e]);var n=this.matchMappings[e],r=this.regExps[e];r.lastIndex=0;for(var o,d=[],p=0,v=0,y={type:null,value:""};o=r.exec(a);){var w=n.defaultToken,l=null,g=o[0],b=r.lastIndex;if(b-g.length>p){var f=a.substring(p,b-g.length);y.type==w?y.value+=f:(y.type&&d.push(y),y={type:w,value:f})}for(var h=0;h<o.length-2;h++)if(o[h+1]!==void 0){l=i[n[h]],l.onMatch?w=l.onMatch(g,e,t,a):w=l.token,l.next&&(typeof l.next=="string"?e=l.next:e=l.next(e,t),i=this.states[e],i||(this.reportError("state doesn't exist",e),e="start",i=this.states[e]),n=this.matchMappings[e],p=b,r=this.regExps[e],r.lastIndex=b),l.consumeLineEnd&&(p=b);break}if(g){if(typeof w=="string")(!l||l.merge!==!1)&&y.type===w?y.value+=g:(y.type&&d.push(y),y={type:w,value:g});else if(w){y.type&&d.push(y),y={type:null,value:""};for(var h=0;h<w.length;h++)d.push(w[h])}}if(p==a.length)break;if(p=b,v++>A){for(v>2*a.length&&this.reportError("infinite loop with in ace tokenizer",{startState:c,line:a});p<a.length;)y.type&&d.push(y),y={value:a.substring(p,p+=500),type:"overflow"};e="start",t=[];break}}return y.type&&d.push(y),t.length>1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:d,state:t.length?t:e}},this.reportError=E.reportError}).call(m.prototype),k.Tokenizer=m}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(x,k,W){var E=x("../lib/lang"),A=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(c,t){if(!t){for(var e in c)this.$rules[e]=c[e];return}for(var e in c){for(var i=c[e],n=0;n<i.length;n++){var r=i[n];(r.next||r.onMatch)&&(typeof r.next=="string"&&r.next.indexOf(t)!==0&&(r.next=t+r.next),r.nextState&&r.nextState.indexOf(t)!==0&&(r.nextState=t+r.nextState))}this.$rules[t+e]=i}},this.getRules=function(){return this.$rules},this.embedRules=function(c,t,e,i,n){var r=typeof c=="function"?new c().getRules():c;if(i)for(var o=0;o<i.length;o++)i[o]=t+i[o];else{i=[];for(var d in r)i.push(t+d)}if(this.addRules(r,t),e)for(var p=Array.prototype[n?"push":"unshift"],o=0;o<i.length;o++)p.apply(this.$rules[i[o]],E.deepCopy(e));this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var m=function(c,t){return(c!="start"||t.length)&&t.unshift(this.nextState,c),this.nextState},a=function(c,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var c=0,t=this.$rules;function e(i){var n=t[i];n.processed=!0;for(var r=0;r<n.length;r++){var o=n[r],d=null;Array.isArray(o)&&(d=o,o={}),!o.regex&&o.start&&(o.regex=o.start,o.next||(o.next=[]),o.next.push({defaultToken:o.token},{token:o.token+".end",regex:o.end||o.start,next:"pop"}),o.token=o.token+".start",o.push=!0);var p=o.next||o.push;if(p&&Array.isArray(p)){var v=o.stateName;v||(v=o.token,typeof v!="string"&&(v=v[0]||""),t[v]&&(v+=c++)),t[v]=p,o.next=v,e(v)}else p=="pop"&&(o.next=a);if(o.push&&(o.nextState=o.next||o.push,o.next=m,delete o.push),o.rules)for(var y in o.rules)t[y]?t[y].push&&t[y].push.apply(t[y],o.rules[y]):t[y]=o.rules[y];var w=typeof o=="string"?o:o.include;if(w&&(Array.isArray(w)?d=w.map(function(g){return t[g]}):d=t[w]),d){var l=[r,1].concat(d);o.noEscape&&(l=l.filter(function(g){return!g.next})),n.splice.apply(n,l),r--}o.keywordMap&&(o.token=this.createKeywordMapper(o.keywordMap,o.defaultToken||"text",o.caseInsensitive),delete o.defaultToken)}}Object.keys(t).forEach(e,this)},this.createKeywordMapper=function(c,t,e,i){var n=Object.create(null);return this.$keywordList=[],Object.keys(c).forEach(function(r){for(var o=c[r],d=o.split(i||"|"),p=d.length;p--;){var v=d[p];this.$keywordList.push(v),e&&(v=v.toLowerCase()),n[v]=r}},this),c=null,e?function(r){return n[r.toLowerCase()]||t}:function(r){return n[r]||t}},this.getKeywords=function(){return this.$keywords}}).call(A.prototype),k.TextHighlightRules=A}),ace.define("ace/mode/behaviour",["require","exports","module"],function(x,k,W){var E=function(){this.$behaviours={}};(function(){this.add=function(A,m,a){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[A]:this.$behaviours[A]={}}this.$behaviours[A][m]=a},this.addBehaviours=function(A){for(var m in A)for(var a in A[m])this.add(m,a,A[m][a])},this.remove=function(A){this.$behaviours&&this.$behaviours[A]&&delete this.$behaviours[A]},this.inherit=function(A,m){if(typeof A=="function")var a=new A().getBehaviours(m);else var a=A.getBehaviours(m);this.addBehaviours(a)},this.getBehaviours=function(A){if(A){for(var m={},a=0;a<A.length;a++)this.$behaviours[A[a]]&&(m[A[a]]=this.$behaviours[A[a]]);return m}else return this.$behaviours}}).call(E.prototype),k.Behaviour=E}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(x,k,W){var E=x("./range").Range,A=function(m,a,c){this.$session=m,this.$row=a,this.$rowTokens=m.getTokens(a);var t=m.getTokenAt(a,c);this.$tokenIndex=t?t.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var m;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,m||(m=this.$session.getLength()),this.$row>=m)return this.$row=m-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var m=this.$rowTokens,a=this.$tokenIndex,c=m[a].start;if(c!==void 0)return c;for(c=0;a>0;)a-=1,c+=m[a].value.length;return c},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var m=this.$rowTokens[this.$tokenIndex],a=this.getCurrentTokenColumn();return new E(this.$row,a,this.$row,a+m.value.length)}}).call(A.prototype),k.TokenIterator=A}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(x,k,W){var E=x("../../lib/oop"),A=x("../behaviour").Behaviour,m=x("../../token_iterator").TokenIterator,a=x("../../lib/lang"),c=["text","paren.rparen","rparen","paren","punctuation.operator"],t=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],e,i={},n={'"':'"',"'":"'"},r=function(p){var v=-1;if(p.multiSelect&&(v=p.selection.index,i.rangeCount!=p.multiSelect.rangeCount&&(i={rangeCount:p.multiSelect.rangeCount})),i[v])return e=i[v];e=i[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},o=function(p,v,y,w){var l=p.end.row-p.start.row;return{text:y+v+w,selection:[0,p.start.column+1,l,p.end.column+(l?0:1)]}},d=function(p){this.add("braces","insertion",function(v,y,w,l,g){var b=w.getCursorPosition(),f=l.doc.getLine(b.row);if(g=="{"){r(w);var h=w.getSelectionRange(),s=l.doc.getTextRange(h);if(s!==""&&s!=="{"&&w.getWrapBehavioursEnabled())return o(h,s,"{","}");if(d.isSaneInsertion(w,l))return/[\]\}\)]/.test(f[b.column])||w.inMultiSelectMode||p&&p.braces?(d.recordAutoInsert(w,l,"}"),{text:"{}",selection:[1,1]}):(d.recordMaybeInsert(w,l,"{"),{text:"{",selection:[1,1]})}else if(g=="}"){r(w);var u=f.substring(b.column,b.column+1);if(u=="}"){var $=l.$findOpeningBracket("}",{column:b.column+1,row:b.row});if($!==null&&d.isAutoInsertedClosing(b,f,g))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(g==`
- `||g==`\r
- `){r(w);var C="";d.isMaybeInsertedClosing(b,f)&&(C=a.stringRepeat("}",e.maybeInsertedBrackets),d.clearMaybeInsertedClosing());var u=f.substring(b.column,b.column+1);if(u==="}"){var S=l.findMatchingBracket({row:b.row,column:b.column+1},"}");if(!S)return null;var L=this.$getIndent(l.getLine(S.row))}else if(C)var L=this.$getIndent(f);else{d.clearMaybeInsertedClosing();return}var R=L+l.getTabString();return{text:`
- `+R+`
- `+L+C,selection:[1,R.length,1,R.length]}}else d.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,y,w,l,g){var b=l.doc.getTextRange(g);if(!g.isMultiLine()&&b=="{"){r(w);var f=l.doc.getLine(g.start.row),h=f.substring(g.end.column,g.end.column+1);if(h=="}")return g.end.column++,g;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,y,w,l,g){if(g=="("){r(w);var b=w.getSelectionRange(),f=l.doc.getTextRange(b);if(f!==""&&w.getWrapBehavioursEnabled())return o(b,f,"(",")");if(d.isSaneInsertion(w,l))return d.recordAutoInsert(w,l,")"),{text:"()",selection:[1,1]}}else if(g==")"){r(w);var h=w.getCursorPosition(),s=l.doc.getLine(h.row),u=s.substring(h.column,h.column+1);if(u==")"){var $=l.$findOpeningBracket(")",{column:h.column+1,row:h.row});if($!==null&&d.isAutoInsertedClosing(h,s,g))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,y,w,l,g){var b=l.doc.getTextRange(g);if(!g.isMultiLine()&&b=="("){r(w);var f=l.doc.getLine(g.start.row),h=f.substring(g.start.column+1,g.start.column+2);if(h==")")return g.end.column++,g}}),this.add("brackets","insertion",function(v,y,w,l,g){if(g=="["){r(w);var b=w.getSelectionRange(),f=l.doc.getTextRange(b);if(f!==""&&w.getWrapBehavioursEnabled())return o(b,f,"[","]");if(d.isSaneInsertion(w,l))return d.recordAutoInsert(w,l,"]"),{text:"[]",selection:[1,1]}}else if(g=="]"){r(w);var h=w.getCursorPosition(),s=l.doc.getLine(h.row),u=s.substring(h.column,h.column+1);if(u=="]"){var $=l.$findOpeningBracket("]",{column:h.column+1,row:h.row});if($!==null&&d.isAutoInsertedClosing(h,s,g))return d.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,y,w,l,g){var b=l.doc.getTextRange(g);if(!g.isMultiLine()&&b=="["){r(w);var f=l.doc.getLine(g.start.row),h=f.substring(g.start.column+1,g.start.column+2);if(h=="]")return g.end.column++,g}}),this.add("string_dquotes","insertion",function(v,y,w,l,g){var b=l.$mode.$quotes||n;if(g.length==1&&b[g]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(g)!=-1)return;r(w);var f=g,h=w.getSelectionRange(),s=l.doc.getTextRange(h);if(s!==""&&(s.length!=1||!b[s])&&w.getWrapBehavioursEnabled())return o(h,s,f,f);if(!s){var u=w.getCursorPosition(),$=l.doc.getLine(u.row),C=$.substring(u.column-1,u.column),S=$.substring(u.column,u.column+1),L=l.getTokenAt(u.row,u.column),R=l.getTokenAt(u.row,u.column+1);if(C=="\\"&&L&&/escape/.test(L.type))return null;var T=L&&/string|escape/.test(L.type),_=!R||/string|escape/.test(R.type),M;if(S==f)M=T!==_,M&&/string\.end/.test(R.type)&&(M=!1);else{if(T&&!_||T&&_)return null;var O=l.$mode.tokenRe;O.lastIndex=0;var D=O.test(C);O.lastIndex=0;var B=O.test(C);if(D||B||S&&!/[\s;,.})\]\\]/.test(S))return null;var F=$[u.column-2];if(C==f&&(F==f||O.test(F)))return null;M=!0}return{text:M?f+f:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,y,w,l,g){var b=l.$mode.$quotes||n,f=l.doc.getTextRange(g);if(!g.isMultiLine()&&b.hasOwnProperty(f)){r(w);var h=l.doc.getLine(g.start.row),s=h.substring(g.start.column+1,g.start.column+2);if(s==f)return g.end.column++,g}})};d.isSaneInsertion=function(p,v){var y=p.getCursorPosition(),w=new m(v,y.row,y.column);if(!this.$matchTokenType(w.getCurrentToken()||"text",c)){if(/[)}\]]/.test(p.session.getLine(y.row)[y.column]))return!0;var l=new m(v,y.row,y.column+1);if(!this.$matchTokenType(l.getCurrentToken()||"text",c))return!1}return w.stepForward(),w.getCurrentTokenRow()!==y.row||this.$matchTokenType(w.getCurrentToken()||"text",t)},d.$matchTokenType=function(p,v){return v.indexOf(p.type||p)>-1},d.recordAutoInsert=function(p,v,y){var w=p.getCursorPosition(),l=v.doc.getLine(w.row);this.isAutoInsertedClosing(w,l,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=w.row,e.autoInsertedLineEnd=y+l.substr(w.column),e.autoInsertedBrackets++},d.recordMaybeInsert=function(p,v,y){var w=p.getCursorPosition(),l=v.doc.getLine(w.row);this.isMaybeInsertedClosing(w,l)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=w.row,e.maybeInsertedLineStart=l.substr(0,w.column)+y,e.maybeInsertedLineEnd=l.substr(w.column),e.maybeInsertedBrackets++},d.isAutoInsertedClosing=function(p,v,y){return e.autoInsertedBrackets>0&&p.row===e.autoInsertedRow&&y===e.autoInsertedLineEnd[0]&&v.substr(p.column)===e.autoInsertedLineEnd},d.isMaybeInsertedClosing=function(p,v){return e.maybeInsertedBrackets>0&&p.row===e.maybeInsertedRow&&v.substr(p.column)===e.maybeInsertedLineEnd&&v.substr(0,p.column)==e.maybeInsertedLineStart},d.popAutoInsertedClosing=function(){e.autoInsertedLineEnd=e.autoInsertedLineEnd.substr(1),e.autoInsertedBrackets--},d.clearMaybeInsertedClosing=function(){e&&(e.maybeInsertedBrackets=0,e.maybeInsertedRow=-1)},E.inherits(d,A),k.CstyleBehaviour=d}),ace.define("ace/unicode",["require","exports","module"],function(x,k,W){for(var E=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],A=0,m=[],a=0;a<E.length;a+=2)m.push(A+=E[a]),E[a+1]&&m.push(45,A+=E[a+1]);k.wordChars=String.fromCharCode.apply(null,m)}),ace.define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(x,k,W){var E=x("../config"),A=x("../tokenizer").Tokenizer,m=x("./text_highlight_rules").TextHighlightRules,a=x("./behaviour/cstyle").CstyleBehaviour,c=x("../unicode"),t=x("../lib/lang"),e=x("../token_iterator").TokenIterator,i=x("../range").Range,n=function(){this.HighlightRules=m};(function(){this.$defaultBehaviour=new a,this.tokenRe=new RegExp("^["+c.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+c.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new A(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(r,o,d,p){var v=o.doc,y=!0,w=!0,l=1/0,g=o.getTabSize(),b=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var s=this.lineCommentStart.map(t.escapeRegExp).join("|"),f=this.lineCommentStart[0];else var s=t.escapeRegExp(this.lineCommentStart),f=this.lineCommentStart;s=new RegExp("^(\\s*)(?:"+s+") ?"),b=o.getUseSoftTabs();var C=function(B,F){var I=B.match(s);if(!!I){var P=I[1].length,N=I[0].length;!R(B,P,N)&&I[0][N-1]==" "&&N--,v.removeInLine(F,P,N)}},L=f+" ",$=function(B,F){(!y||/\S/.test(B))&&(R(B,l,l)?v.insertInLine({row:F,column:l},L):v.insertInLine({row:F,column:l},f))},S=function(B,F){return s.test(B)},R=function(B,F,I){for(var P=0;F--&&B.charAt(F)==" ";)P++;if(P%g!=0)return!1;for(var P=0;B.charAt(I++)==" ";)P++;return g>2?P%g!=g-1:P%g==0}}else{if(!this.blockComment)return!1;var f=this.blockComment.start,h=this.blockComment.end,s=new RegExp("^(\\s*)(?:"+t.escapeRegExp(f)+")"),u=new RegExp("(?:"+t.escapeRegExp(h)+")\\s*$"),$=function(M,O){S(M,O)||(!y||/\S/.test(M))&&(v.insertInLine({row:O,column:M.length},h),v.insertInLine({row:O,column:l},f))},C=function(M,O){var D;(D=M.match(u))&&v.removeInLine(O,M.length-D[0].length,M.length),(D=M.match(s))&&v.removeInLine(O,D[1].length,D[0].length)},S=function(M,O){if(s.test(M))return!0;for(var D=o.getTokens(O),B=0;B<D.length;B++)if(D[B].type==="comment")return!0}}function T(M){for(var O=d;O<=p;O++)M(v.getLine(O),O)}var _=1/0;T(function(M,O){var D=M.search(/\S/);D!==-1?(D<l&&(l=D),w&&!S(M,O)&&(w=!1)):_>M.length&&(_=M.length)}),l==1/0&&(l=_,y=!1,w=!1),b&&l%g!=0&&(l=Math.floor(l/g)*g),T(w?C:$)},this.toggleBlockComment=function(r,o,d,p){var v=this.blockComment;if(!!v){!v.start&&v[0]&&(v=v[0]);var y=new e(o,p.row,p.column),w=y.getCurrentToken();o.selection;var l=o.selection.toOrientedRange(),g,b;if(w&&/comment/.test(w.type)){for(var f,h;w&&/comment/.test(w.type);){var s=w.value.indexOf(v.start);if(s!=-1){var u=y.getCurrentTokenRow(),$=y.getCurrentTokenColumn()+s;f=new i(u,$,u,$+v.start.length);break}w=y.stepBackward()}for(var y=new e(o,p.row,p.column),w=y.getCurrentToken();w&&/comment/.test(w.type);){var s=w.value.indexOf(v.end);if(s!=-1){var u=y.getCurrentTokenRow(),$=y.getCurrentTokenColumn()+s;h=new i(u,$,u,$+v.end.length);break}w=y.stepForward()}h&&o.remove(h),f&&(o.remove(f),g=f.start.row,b=-v.start.length)}else b=v.start.length,g=d.start.row,o.insert(d.end,v.end),o.insert(d.start,v.start);l.start.row==g&&(l.start.column+=b),l.end.row==g&&(l.end.column+=b),o.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(r,o,d){return this.$getIndent(o)},this.checkOutdent=function(r,o,d){return!1},this.autoOutdent=function(r,o,d){},this.$getIndent=function(r){return r.match(/^\s*/)[0]},this.createWorker=function(r){return null},this.createModeDelegates=function(r){this.$embeds=[],this.$modes={};for(var o in r)if(r[o]){var d=r[o],p=d.prototype.$id,v=E.$modes[p];v||(E.$modes[p]=v=new d),E.$modes[o]||(E.$modes[o]=v),this.$embeds.push(o),this.$modes[o]=v}for(var y=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],o=0;o<y.length;o++)(function(l){var g=y[o],b=l[g];l[y[o]]=function(){return this.$delegator(g,arguments,b)}})(this)},this.$delegator=function(r,o,d){var p=o[0]||"start";if(typeof p!="string"){if(Array.isArray(p[2])){var v=p[2][p[2].length-1],y=this.$modes[v];if(y)return y[r].apply(y,[p[1]].concat([].slice.call(o,1)))}p=p[0]||"start"}for(var w=0;w<this.$embeds.length;w++)if(!!this.$modes[this.$embeds[w]]){var l=p.split(this.$embeds[w]);if(!l[0]&&l[1]){o[0]=l[1];var y=this.$modes[this.$embeds[w]];return y[r].apply(y,o)}}var g=d.apply(this,o);return d?g:void 0},this.transformAction=function(r,o,d,p,v){if(this.$behaviour){var y=this.$behaviour.getBehaviours();for(var w in y)if(y[w][o]){var l=y[w][o].apply(this,arguments);if(l)return l}}},this.getKeywords=function(r){if(!this.completionKeywords){var o=this.$tokenizer.rules,d=[];for(var p in o)for(var v=o[p],y=0,w=v.length;y<w;y++)if(typeof v[y].token=="string")/keyword|support|storage/.test(v[y].token)&&d.push(v[y].regex);else if(typeof v[y].token=="object"){for(var l=0,g=v[y].token.length;l<g;l++)if(/keyword|support|storage/.test(v[y].token[l])){var p=v[y].regex.match(/\(.+?\)/g)[l];d.push(p.substr(1,p.length-2))}}this.completionKeywords=d}return r?d.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(r,o,d,p){var v=this.$keywordList||this.$createKeywordList();return v.map(function(y){return{name:y,value:y,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(n.prototype),k.Mode=n}),ace.define("ace/apply_delta",["require","exports","module"],function(x,k,W){k.applyDelta=function(E,A,m){var a=A.start.row,c=A.start.column,t=E[a]||"";switch(A.action){case"insert":var e=A.lines;if(e.length===1)E[a]=t.substring(0,c)+A.lines[0]+t.substring(c);else{var i=[a,1].concat(A.lines);E.splice.apply(E,i),E[a]=t.substring(0,c)+E[a],E[a+A.lines.length-1]+=t.substring(c)}break;case"remove":var n=A.end.column,r=A.end.row;a===r?E[a]=t.substring(0,c)+t.substring(n):E.splice(a,r-a+1,t.substring(0,c)+E[r].substring(n));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(x,k,W){var E=x("./lib/oop"),A=x("./lib/event_emitter").EventEmitter,m=k.Anchor=function(a,c,t){this.$onChange=this.onChange.bind(this),this.attach(a),typeof t=="undefined"?this.setPosition(c.row,c.column):this.setPosition(c,t)};(function(){E.implement(this,A),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var e=c(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function a(t,e,i){var n=i?t.column<=e.column:t.column<e.column;return t.row<e.row||t.row==e.row&&n}function c(t,e,i){var n=t.action=="insert",r=(n?1:-1)*(t.end.row-t.start.row),o=(n?1:-1)*(t.end.column-t.start.column),d=t.start,p=n?d:t.end;return a(e,d,i)?{row:e.row,column:e.column}:a(p,e,!i)?{row:e.row+r,column:e.column+(e.row==p.row?o:0)}:{row:d.row,column:d.column}}this.setPosition=function(t,e,i){var n;if(i?n={row:t,column:e}:n=this.$clipPositionToDocument(t,e),!(this.row==n.row&&this.column==n.column)){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(t,e){var i={};return t>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):t<0?(i.row=0,i.column=0):(i.row=t,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,e))),e<0&&(i.column=0),i}}).call(m.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(x,k,W){var E=x("./lib/oop"),A=x("./apply_delta").applyDelta,m=x("./lib/event_emitter").EventEmitter,a=x("./range").Range,c=x("./anchor").Anchor,t=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){E.implement(this,m),this.setValue=function(e){var i=this.getLength()-1;this.remove(new a(0,0,i,this.getLine(i).length)),this.insert({row:0,column:0},e||"")},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,i){return new c(this,e,i)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,`
- `).split(`
- `)}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var i=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=i?i[1]:`
- `,this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return`\r
- `;case"unix":return`
- `;default:return this.$autoNewLine||`
- `}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e==`\r
- `||e=="\r"||e==`
- `},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,i){return this.$lines.slice(e,i+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var i;if(e.start.row===e.end.row)i=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{i=this.getLines(e.start.row,e.end.row),i[0]=(i[0]||"").substring(e.start.column);var n=i.length-1;e.end.row-e.start.row==n&&(i[n]=i[n].substring(0,e.end.column))}return i},this.insertLines=function(e,i){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,i)},this.removeLines=function(e,i){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,i)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,i){return this.getLength()<=1&&this.$detectNewLine(i),this.insertMergedLines(e,this.$split(i))},this.insertInLine=function(e,i){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+i.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[i]},!0),this.clonePos(r)},this.clippedPos=function(e,i){var n=this.getLength();e===void 0?e=n:e<0?e=0:e>=n&&(e=n-1,i=void 0);var r=this.getLine(e);return i==null&&(i=r.length),i=Math.min(Math.max(i,0),r.length),{row:e,column:i}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,i){return{row:e,column:i}},this.$clipPosition=function(e){var i=this.getLength();return e.row>=i?(e.row=Math.max(0,i-1),e.column=this.getLine(i-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,i){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(i=i.concat([""]),n=0):(i=[""].concat(i),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},i)},this.insertMergedLines=function(e,i){var n=this.clippedPos(e.row,e.column),r={row:n.row+i.length-1,column:(i.length==1?n.column:0)+i[i.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:i}),this.clonePos(r)},this.remove=function(e){var i=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:i,end:n,action:"remove",lines:this.getLinesForRange({start:i,end:n})}),this.clonePos(i)},this.removeInLine=function(e,i,n){var r=this.clippedPos(e,i),o=this.clippedPos(e,n);return this.applyDelta({start:r,end:o,action:"remove",lines:this.getLinesForRange({start:r,end:o})},!0),this.clonePos(r)},this.removeFullLines=function(e,i){e=Math.min(Math.max(0,e),this.getLength()-1),i=Math.min(Math.max(0,i),this.getLength()-1);var n=i==this.getLength()-1&&e>0,r=i<this.getLength()-1,o=n?e-1:e,d=n?this.getLine(o).length:0,p=r?i+1:i,v=r?0:this.getLine(p).length,y=new a(o,d,p,v),w=this.$lines.slice(e,i+1);return this.applyDelta({start:y.start,end:y.end,action:"remove",lines:this.getLinesForRange(y)}),w},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,i){if(e instanceof a||(e=a.fromPoints(e.start,e.end)),i.length===0&&e.isEmpty())return e.start;if(i==this.getTextRange(e))return e.end;this.remove(e);var n;return i?n=this.insert(e.start,i):n=e.start,n},this.applyDeltas=function(e){for(var i=0;i<e.length;i++)this.applyDelta(e[i])},this.revertDeltas=function(e){for(var i=e.length-1;i>=0;i--)this.revertDelta(e[i])},this.applyDelta=function(e,i){var n=e.action=="insert";(n?e.lines.length<=1&&!e.lines[0]:!a.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(A(this.$lines,e,i),this._signal("change",e)))},this.$safeApplyDelta=function(e){var i=this.$lines.length;(e.action=="remove"&&e.start.row<i&&e.end.row<i||e.action=="insert"&&e.start.row<=i)&&this.applyDelta(e)},this.$splitAndapplyLargeDelta=function(e,i){for(var n=e.lines,r=n.length-i+1,o=e.start.row,d=e.start.column,p=0,v=0;p<r;p=v){v+=i-1;var y=n.slice(p,v);y.push(""),this.applyDelta({start:this.pos(o+p,d),end:this.pos(o+v,d=0),action:e.action,lines:y},!0)}e.lines=n.slice(p),e.start.row=o+p,e.start.column=d,this.applyDelta(e,!0)},this.revertDelta=function(e){this.$safeApplyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,i){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,o=i||0,d=n.length;o<d;o++)if(e-=n[o].length+r,e<0)return{row:o,column:e+n[o].length+r};return{row:d-1,column:e+n[d-1].length+r}},this.positionToIndex=function(e,i){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,o=0,d=Math.min(e.row,n.length),p=i||0;p<d;++p)o+=n[p].length+r;return o+e.column}}).call(t.prototype),k.Document=t}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(x,k,W){var E=x("./lib/oop"),A=x("./lib/event_emitter").EventEmitter,m=function(a,c){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=a;var t=this;this.$worker=function(){if(!!t.running){for(var e=new Date,i=t.currentLine,n=-1,r=t.doc,o=i;t.lines[i];)i++;var d=r.getLength(),p=0;for(t.running=!1;i<d;){t.$tokenizeRow(i),n=i;do i++;while(t.lines[i]);if(p++,p%5===0&&new Date-e>20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=i,n==-1&&(n=i),o<=n&&t.fireUpdateEvent(o,n)}}};(function(){E.implement(this,A),this.setTokenizer=function(a){this.tokenizer=a,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(a){this.doc=a,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(a,c){var t={first:a,last:c};this._signal("update",{data:t})},this.start=function(a){this.currentLine=Math.min(a||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(a){var c=a.start.row,t=a.end.row-c;if(t===0)this.lines[c]=null;else if(a.action=="remove")this.lines.splice(c,t+1,null),this.states.splice(c,t+1,null);else{var e=Array(t+1);e.unshift(c,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(c,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(a){return this.lines[a]||this.$tokenizeRow(a)},this.getState=function(a){return this.currentLine==a&&this.$tokenizeRow(a),this.states[a]||"start"},this.$tokenizeRow=function(a){var c=this.doc.getLine(a),t=this.states[a-1],e=this.tokenizer.getLineTokens(c,t,a);return this.states[a]+""!=e.state+""?(this.states[a]=e.state,this.lines[a+1]=null,this.currentLine>a+1&&(this.currentLine=a+1)):this.currentLine==a&&(this.currentLine=a+1),this.lines[a]=e.tokens},this.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()}}).call(m.prototype),k.BackgroundTokenizer=m}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(x,k,W){var E=x("./lib/lang");x("./lib/oop");var A=x("./range").Range,m=function(a,c,t){this.setRegexp(a),this.clazz=c,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(a){this.regExp+""!=a+""&&(this.regExp=a,this.cache=[])},this.update=function(a,c,t,e){if(!!this.regExp)for(var i=e.firstRow,n=e.lastRow,r={},o=i;o<=n;o++){var d=this.cache[o];d==null&&(d=E.getMatchOffsets(t.getLine(o),this.regExp),d.length>this.MAX_RANGES&&(d=d.slice(0,this.MAX_RANGES)),d=d.map(function(w){return new A(o,w.offset,o,w.offset+w.length)}),this.cache[o]=d.length?d:"");for(var p=d.length;p--;){var v=d[p].toScreenRange(t),y=v.toString();r[y]||(r[y]=!0,c.drawSingleLineMarker(a,v,this.clazz,e))}}}}).call(m.prototype),k.SearchHighlight=m}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(x,k,W){var E=x("../range").Range;function A(m,a){this.foldData=m,Array.isArray(a)?this.folds=a:a=this.folds=[a];var c=a[a.length-1];this.range=new E(a[0].start.row,a[0].start.column,c.end.row,c.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(m){this.start.row+=m,this.end.row+=m,this.folds.forEach(function(a){a.start.row+=m,a.end.row+=m})},this.addFold=function(m){if(m.sameRow){if(m.start.row<this.startRow||m.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(m),this.folds.sort(function(a,c){return-a.range.compareEnd(c.start.row,c.start.column)}),this.range.compareEnd(m.start.row,m.start.column)>0?(this.end.row=m.end.row,this.end.column=m.end.column):this.range.compareStart(m.end.row,m.end.column)<0&&(this.start.row=m.start.row,this.start.column=m.start.column)}else if(m.start.row==this.end.row)this.folds.push(m),this.end.row=m.end.row,this.end.column=m.end.column;else if(m.end.row==this.start.row)this.folds.unshift(m),this.start.row=m.start.row,this.start.column=m.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");m.foldLine=this},this.containsRow=function(m){return m>=this.start.row&&m<=this.end.row},this.walk=function(m,a,c){var t=0,e=this.folds,i,n,r,o=!0;a==null&&(a=this.end.row,c=this.end.column);for(var d=0;d<e.length;d++){if(i=e[d],n=i.range.compareStart(a,c),n==-1){m(null,a,c,t,o);return}if(r=m(null,i.start.row,i.start.column,t,o),r=!r&&m(i.placeholder,i.start.row,i.start.column,t),r||n===0)return;o=!i.sameRow,t=i.end.column}m(null,a,c,t,o)},this.getNextFoldTo=function(m,a){for(var c,t,e=0;e<this.folds.length;e++){if(c=this.folds[e],t=c.range.compareEnd(m,a),t==-1)return{fold:c,kind:"after"};if(t===0)return{fold:c,kind:"inside"}}return null},this.addRemoveChars=function(m,a,c){var t=this.getNextFoldTo(m,a),e,i;if(t){if(e=t.fold,t.kind=="inside"&&e.start.column!=a&&e.start.row!=m)window.console&&window.console.log(m,a,e);else if(e.start.row==m){i=this.folds;var n=i.indexOf(e);for(n===0&&(this.start.column+=c),n;n<i.length;n++){if(e=i[n],e.start.column+=c,!e.sameRow)return;e.end.column+=c}this.end.column+=c}}},this.split=function(m,a){var c=this.getNextFoldTo(m,a);if(!c||c.kind=="inside")return null;var t=c.fold,e=this.folds,i=this.foldData,n=e.indexOf(t),r=e[n-1];this.end.row=r.end.row,this.end.column=r.end.column,e=e.splice(n,e.length-n);var o=new A(i,e);return i.splice(i.indexOf(this)+1,0,o),o},this.merge=function(m){for(var a=m.folds,c=0;c<a.length;c++)this.addFold(a[c]);var t=this.foldData;t.splice(t.indexOf(m),1)},this.toString=function(){var m=[this.range.toString()+": ["];return this.folds.forEach(function(a){m.push(" "+a.toString())}),m.push("]"),m.join(`
- `)},this.idxToPosition=function(m){for(var a=0,c=0;c<this.folds.length;c++){var t=this.folds[c];if(m-=t.start.column-a,m<0)return{row:t.start.row,column:t.start.column+m};if(m-=t.placeholder.length,m<0)return t.start;a=t.end.column}return{row:this.end.row,column:this.end.column+m}}}).call(A.prototype),k.FoldLine=A}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(x,k,W){var E=x("./range").Range,A=E.comparePoints,m=function(){this.ranges=[],this.$bias=1};(function(){this.comparePoints=A,this.pointIndex=function(a,c,t){for(var e=this.ranges,i=t||0;i<e.length;i++){var n=e[i],r=A(a,n.end);if(!(r>0)){var o=A(a,n.start);return r===0?c&&o!==0?-i-2:i:o>0||o===0&&!c?i:-i-1}}return-i-1},this.add=function(a){var c=!a.isEmpty(),t=this.pointIndex(a.start,c);t<0&&(t=-t-1);var e=this.pointIndex(a.end,c,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,a)},this.addList=function(a){for(var c=[],t=a.length;t--;)c.push.apply(c,this.add(a[t]));return c},this.substractPoint=function(a){var c=this.pointIndex(a);if(c>=0)return this.ranges.splice(c,1)},this.merge=function(){var a=[],c=this.ranges;c=c.sort(function(r,o){return A(r.start,o.start)});for(var t=c[0],e,i=1;i<c.length;i++){e=t,t=c[i];var n=A(e.end,t.start);n<0||n==0&&!e.isEmpty()&&!t.isEmpty()||(A(e.end,t.end)<0&&(e.end.row=t.end.row,e.end.column=t.end.column),c.splice(i,1),a.push(t),t=e,i--)}return this.ranges=c,a},this.contains=function(a,c){return this.pointIndex({row:a,column:c})>=0},this.containsPoint=function(a){return this.pointIndex(a)>=0},this.rangeAtPoint=function(a){var c=this.pointIndex(a);if(c>=0)return this.ranges[c]},this.clipRows=function(a,c){var t=this.ranges;if(t[0].start.row>c||t[t.length-1].start.row<a)return[];var e=this.pointIndex({row:a,column:0});e<0&&(e=-e-1);var i=this.pointIndex({row:c,column:0},e);i<0&&(i=-i-1);for(var n=[],r=e;r<i;r++)n.push(t[r]);return n},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(a){this.session&&this.detach(),this.session=a,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){!this.session||(this.session.removeListener("change",this.onChange),this.session=null)},this.$onChange=function(a){for(var c=a.start,t=a.end,e=c.row,i=t.row,n=this.ranges,r=0,o=n.length;r<o;r++){var d=n[r];if(d.end.row>=e)break}if(a.action=="insert")for(var p=i-e,v=-c.column+t.column;r<o;r++){var d=n[r];if(d.start.row>e)break;if(d.start.row==e&&d.start.column>=c.column&&(d.start.column==c.column&&this.$bias<=0||(d.start.column+=v,d.start.row+=p)),d.end.row==e&&d.end.column>=c.column){if(d.end.column==c.column&&this.$bias<0)continue;d.end.column==c.column&&v>0&&r<o-1&&d.end.column>d.start.column&&d.end.column==n[r+1].start.column&&(d.end.column-=v),d.end.column+=v,d.end.row+=p}}else for(var p=e-i,v=c.column-t.column;r<o;r++){var d=n[r];if(d.start.row>i)break;d.end.row<i&&(e<d.end.row||e==d.end.row&&c.column<d.end.column)?(d.end.row=e,d.end.column=c.column):d.end.row==i?d.end.column<=t.column?(p||d.end.column>c.column)&&(d.end.column=c.column,d.end.row=c.row):(d.end.column+=v,d.end.row+=p):d.end.row>i&&(d.end.row+=p),d.start.row<i&&(e<d.start.row||e==d.start.row&&c.column<d.start.column)?(d.start.row=e,d.start.column=c.column):d.start.row==i?d.start.column<=t.column?(p||d.start.column>c.column)&&(d.start.column=c.column,d.start.row=c.row):(d.start.column+=v,d.start.row+=p):d.start.row>i&&(d.start.row+=p)}if(p!=0&&r<o)for(;r<o;r++){var d=n[r];d.start.row+=p,d.end.row+=p}}}).call(m.prototype),k.RangeList=m}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range_list","ace/lib/oop"],function(x,k,W){var E=x("../range_list").RangeList,A=x("../lib/oop"),m=k.Fold=function(i,n){this.foldLine=null,this.placeholder=n,this.range=i,this.start=i.start,this.end=i.end,this.sameRow=i.start.row==i.end.row,this.subFolds=this.ranges=[]};A.inherits(m,E),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(i){this.foldLine=i,this.subFolds.forEach(function(n){n.setFoldLine(i)})},this.clone=function(){var i=this.range.clone(),n=new m(i,this.placeholder);return this.subFolds.forEach(function(r){n.subFolds.push(r.clone())}),n.collapseChildren=this.collapseChildren,n},this.addSubFold=function(i){if(!this.range.isEqual(i)){c(i,this.start);for(var p=i.start.row,v=i.start.column,n=0,r=-1;n<this.subFolds.length&&(r=this.subFolds[n].range.compare(p,v),r==1);n++);var o=this.subFolds[n],d=0;if(r==0){if(o.range.containsRange(i))return o.addSubFold(i);d=1}for(var p=i.range.end.row,v=i.range.end.column,y=n,r=-1;y<this.subFolds.length&&(r=this.subFolds[y].range.compare(p,v),r==1);y++);r==0&&y++;for(var w=this.subFolds.splice(n,y-n,i),l=r==0?w.length-1:w.length,g=d;g<l;g++)i.addSubFold(w[g]);return i.setFoldLine(this.foldLine),i}},this.restoreRange=function(i){return e(i,this.start)}}.call(m.prototype);function a(i,n){i.row-=n.row,i.row==0&&(i.column-=n.column)}function c(i,n){a(i.start,n),a(i.end,n)}function t(i,n){i.row==0&&(i.column+=n.column),i.row+=n.row}function e(i,n){t(i.start,n),t(i.end,n)}}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(x,k,W){var E=x("../range").Range,A=x("./fold_line").FoldLine,m=x("./fold").Fold,a=x("../token_iterator").TokenIterator;function c(){this.getFoldAt=function(t,e,i){var n=this.getFoldLine(t);if(!n)return null;for(var r=n.folds,o=0;o<r.length;o++){var d=r[o].range;if(d.contains(t,e)){if(i==1&&d.isEnd(t,e)&&!d.isEmpty())continue;if(i==-1&&d.isStart(t,e)&&!d.isEmpty())continue;return r[o]}}},this.getFoldsInRange=function(t){var e=t.start,i=t.end,n=this.$foldData,r=[];e.column+=1,i.column-=1;for(var o=0;o<n.length;o++){var d=n[o].range.compareRange(t);if(d!=2){if(d==-2)break;for(var p=n[o].folds,v=0;v<p.length;v++){var y=p[v];if(d=y.range.compareRange(t),d==-2)break;if(d==2)continue;if(d==42)break;r.push(y)}}}return e.column-=1,i.column+=1,r},this.getFoldsInRangeList=function(t){if(Array.isArray(t)){var e=[];t.forEach(function(i){e=e.concat(this.getFoldsInRange(i))},this)}else var e=this.getFoldsInRange(t);return e},this.getAllFolds=function(){for(var t=[],e=this.$foldData,i=0;i<e.length;i++)for(var n=0;n<e[i].folds.length;n++)t.push(e[i].folds[n]);return t},this.getFoldStringAt=function(t,e,i,n){if(n=n||this.getFoldLine(t),!n)return null;for(var r={end:{column:0}},o,d,p=0;p<n.folds.length;p++){d=n.folds[p];var v=d.range.compareEnd(t,e);if(v==-1){o=this.getLine(d.start.row).substring(r.end.column,d.start.column);break}else if(v===0)return null;r=d}return o||(o=this.getLine(d.start.row).substring(r.end.column)),i==-1?o.substring(0,e-r.end.column):i==1?o.substring(e-r.end.column):o},this.getFoldLine=function(t,e){var i=this.$foldData,n=0;for(e&&(n=i.indexOf(e)),n==-1&&(n=0),n;n<i.length;n++){var r=i[n];if(r.start.row<=t&&r.end.row>=t)return r;if(r.end.row>t)return null}return null},this.getNextFoldLine=function(t,e){var i=this.$foldData,n=0;for(e&&(n=i.indexOf(e)),n==-1&&(n=0),n;n<i.length;n++){var r=i[n];if(r.end.row>=t)return r}return null},this.getFoldedRowCount=function(t,e){for(var i=this.$foldData,n=e-t+1,r=0;r<i.length;r++){var o=i[r],d=o.end.row,p=o.start.row;if(d>=e){p<e&&(p>=t?n-=e-p:n=0);break}else d>=t&&(p>=t?n-=d-p:n-=d-t+1)}return n},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(e,i){return e.start.row-i.start.row}),t},this.addFold=function(t,e){var i=this.$foldData,n=!1,r;t instanceof m?r=t:(r=new m(e,t),r.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(r.range);var o=r.start.row,d=r.start.column,p=r.end.row,v=r.end.column,y=this.getFoldAt(o,d,1),w=this.getFoldAt(p,v,-1);if(y&&w==y)return y.addSubFold(r);y&&!y.range.isStart(o,d)&&this.removeFold(y),w&&!w.range.isEnd(p,v)&&this.removeFold(w);var l=this.getFoldsInRange(r.range);l.length>0&&(this.removeFolds(l),r.collapseChildren||l.forEach(function(h){r.addSubFold(h)}));for(var g=0;g<i.length;g++){var b=i[g];if(p==b.start.row){b.addFold(r),n=!0;break}else if(o==b.end.row){if(b.addFold(r),n=!0,!r.sameRow){var f=i[g+1];if(f&&f.start.row==p){b.merge(f);break}}break}else if(p<=b.start.row)break}return n||(b=this.$addFoldLine(new A(this.$foldData,r))),this.$useWrapMode?this.$updateWrapData(b.start.row,b.start.row):this.$updateRowLengthCache(b.start.row,b.start.row),this.$modified=!0,this._signal("changeFold",{data:r,action:"add"}),r},this.addFolds=function(t){t.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(t){var e=t.foldLine,i=e.start.row,n=e.end.row,r=this.$foldData,o=e.folds;if(o.length==1)r.splice(r.indexOf(e),1);else if(e.range.isEnd(t.end.row,t.end.column))o.pop(),e.end.row=o[o.length-1].end.row,e.end.column=o[o.length-1].end.column;else if(e.range.isStart(t.start.row,t.start.column))o.shift(),e.start.row=o[0].start.row,e.start.column=o[0].start.column;else if(t.sameRow)o.splice(o.indexOf(t),1);else{var d=e.split(t.start.row,t.start.column);o=d.folds,o.shift(),d.start.row=o[0].start.row,d.start.column=o[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(i,n):this.$updateRowLengthCache(i,n)),this.$modified=!0,this._signal("changeFold",{data:t,action:"remove"})},this.removeFolds=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);e.forEach(function(n){this.removeFold(n)},this),this.$modified=!0},this.expandFold=function(t){this.removeFold(t),t.subFolds.forEach(function(e){t.restoreRange(e),this.addFold(e)},this),t.collapseChildren>0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(t,e){var i,n;if(t==null)i=new E(0,0,this.getLength(),0),e==null&&(e=!0);else if(typeof t=="number")i=new E(t,0,t,this.getLine(t).length);else if("row"in t)i=E.fromPoints(t,t);else{if(Array.isArray(t))return n=[],t.forEach(function(o){n=n.concat(this.unfold(o))},this),n;i=t}n=this.getFoldsInRangeList(i);for(var r=n;n.length==1&&E.comparePoints(n[0].start,i.start)<0&&E.comparePoints(n[0].end,i.end)>0;)this.expandFolds(n),n=this.getFoldsInRangeList(i);if(e!=!1?this.removeFolds(n):this.expandFolds(n),r.length)return r},this.isRowFolded=function(t,e){return!!this.getFoldLine(t,e)},this.getRowFoldEnd=function(t,e){var i=this.getFoldLine(t,e);return i?i.end.row:t},this.getRowFoldStart=function(t,e){var i=this.getFoldLine(t,e);return i?i.start.row:t},this.getFoldDisplayLine=function(t,e,i,n,r){n==null&&(n=t.start.row),r==null&&(r=0),e==null&&(e=t.end.row),i==null&&(i=this.getLine(e).length);var o=this.doc,d="";return t.walk(function(p,v,y,w){if(!(v<n)){if(v==n){if(y<r)return;w=Math.max(r,w)}p!=null?d+=p:d+=o.getLine(v).substring(w,y)}},e,i),d},this.getDisplayLine=function(t,e,i,n){var r=this.getFoldLine(t);if(r)return this.getFoldDisplayLine(r,t,e,i,n);var o;return o=this.doc.getLine(t),o.substring(n||0,e||o.length)},this.$cloneFoldData=function(){var t=[];return t=this.$foldData.map(function(e){var i=e.folds.map(function(n){return n.clone()});return new A(t,i)}),t},this.toggleFold=function(t){var e=this.selection,i=e.getRange(),n,r;if(i.isEmpty()){var o=i.start;if(n=this.getFoldAt(o.row,o.column),n){this.expandFold(n);return}else(r=this.findMatchingBracket(o))?i.comparePoint(r)==1?i.end=r:(i.start=r,i.start.column++,i.end.column--):(r=this.findMatchingBracket({row:o.row,column:o.column+1}))?(i.comparePoint(r)==1?i.end=r:i.start=r,i.start.column++):i=this.getCommentFoldRange(o.row,o.column)||i}else{var d=this.getFoldsInRange(i);if(t&&d.length){this.expandFolds(d);return}else d.length==1&&(n=d[0])}if(n||(n=this.getFoldAt(i.start.row,i.start.column)),n&&n.range.toString()==i.toString()){this.expandFold(n);return}var p="...";if(!i.isMultiLine()){if(p=this.getTextRange(i),p.length<4)return;p=p.trim().substring(0,2)+".."}this.addFold(p,i)},this.getCommentFoldRange=function(t,e,i){var n=new a(this,t,e),r=n.getCurrentToken(),o=r&&r.type;if(r&&/^comment|string/.test(o)){o=o.match(/comment|string/)[0],o=="comment"&&(o+="|doc-start");var d=new RegExp(o),p=new E;if(i!=1){do r=n.stepBackward();while(r&&d.test(r.type)&&!/^comment.end/.test(r.type));r=n.stepForward()}if(p.start.row=n.getCurrentTokenRow(),p.start.column=n.getCurrentTokenColumn()+(/^comment.start/.test(r.type)?r.value.length:2),n=new a(this,t,e),i!=-1){var v=-1;do if(r=n.stepForward(),v==-1){var y=this.getState(n.$row);d.test(y)||(v=n.$row)}else if(n.$row>v)break;while(r&&d.test(r.type)&&!/^comment.start/.test(r.type));r=n.stepBackward()}else r=n.getCurrentToken();return p.end.row=n.getCurrentTokenRow(),p.end.column=n.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(p.end.column+=r.value.length-2),p}},this.foldAll=function(t,e,i,n){i==null&&(i=1e5);var r=this.foldWidgets;if(!!r){e=e||this.getLength(),t=t||0;for(var o=t;o<e;o++)if(r[o]==null&&(r[o]=this.getFoldWidget(o)),r[o]=="start"&&!(n&&!n(o))){var d=this.getFoldWidgetRange(o);d&&d.isMultiLine()&&d.end.row<=e&&d.start.row>=t&&(o=d.end.row,d.collapseChildren=i,this.addFold("...",d))}}},this.foldToLevel=function(t){for(this.foldAll();t-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var t=this;this.foldAll(null,null,null,function(e){for(var i=t.getTokens(e),n=0;n<i.length;n++){var r=i[n];if(!(r.type=="text"&&/^\s+$/.test(r.value)))return!!/comment/.test(r.type)}})},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var e=this.$foldMode;this.$setFolding(null),this.$setFolding(e)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,e){var i=this.foldWidgets;if(!i||e&&i[t])return{};for(var n=t-1,r;n>=0;){var o=i[n];if(o==null&&(o=i[n]=this.getFoldWidget(n)),o=="start"){var d=this.getFoldWidgetRange(n);if(r||(r=d),d&&d.end.row>=t)break}n--}return{range:n!==-1&&d,firstRange:r}},this.onFoldWidgetClick=function(t,e){e=e.domEvent;var i={children:e.shiftKey,all:e.ctrlKey||e.metaKey,siblings:e.altKey},n=this.$toggleFoldWidget(t,i);if(!n){var r=e.target||e.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(!!this.getFoldWidget){var i=this.getFoldWidget(t),n=this.getLine(t),r=i==="end"?-1:1,o=this.getFoldAt(t,r===-1?0:n.length,r);if(o)return e.children||e.all?this.removeFold(o):this.expandFold(o),o;var d=this.getFoldWidgetRange(t,!0);if(d&&!d.isMultiLine()&&(o=this.getFoldAt(d.start.row,d.start.column,1),o&&d.isEqual(o.range)))return this.removeFold(o),o;if(e.siblings){var p=this.getParentFoldRangeData(t);if(p.range)var v=p.range.start.row+1,y=p.range.end.row;this.foldAll(v,y,e.all?1e4:0)}else e.children?(y=d?d.end.row:this.getLength(),this.foldAll(t+1,y,e.all?1e4:0)):d&&(e.all&&(d.collapseChildren=1e4),this.addFold("...",d));return d}},this.toggleFoldWidget=function(t){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var i=this.$toggleFoldWidget(e,{});if(!i){var n=this.getParentFoldRangeData(e,!0);if(i=n.range||n.firstRange,i){e=i.start.row;var r=this.getFoldAt(e,this.getLine(e).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(t){var e=t.start.row,i=t.end.row-e;if(i===0)this.foldWidgets[e]=null;else if(t.action=="remove")this.foldWidgets.splice(e,i+1,null);else{var n=Array(i+1);n.unshift(e,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(t){var e=t.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}k.Folding=c}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(x,k,W){var E=x("../token_iterator").TokenIterator,A=x("../range").Range;function m(){this.findMatchingBracket=function(a,c){if(a.column==0)return null;var t=c||this.getLine(a.row).charAt(a.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],a):this.$findOpeningBracket(e[2],a):null},this.getBracketRange=function(a){var c=this.getLine(a.row),t=!0,e,i=c.charAt(a.column-1),n=i&&i.match(/([\(\[\{])|([\)\]\}])/);if(n||(i=c.charAt(a.column),a={row:a.row,column:a.column+1},n=i&&i.match(/([\(\[\{])|([\)\]\}])/),t=!1),!n)return null;if(n[1]){var r=this.$findClosingBracket(n[1],a);if(!r)return null;e=A.fromPoints(a,r),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var r=this.$findOpeningBracket(n[2],a);if(!r)return null;e=A.fromPoints(r,a),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.getMatchingBracketRanges=function(a,c){var t=this.getLine(a.row),e=/([\(\[\{])|([\)\]\}])/,i=!c&&t.charAt(a.column-1),n=i&&i.match(e);if(n||(i=(c===void 0||c)&&t.charAt(a.column),a={row:a.row,column:a.column+1},n=i&&i.match(e)),!n)return null;var r=new A(a.row,a.column-1,a.row,a.column),o=n[1]?this.$findClosingBracket(n[1],a):this.$findOpeningBracket(n[2],a);if(!o)return[r];var d=new A(o.row,o.column,o.row,o.column+1);return[r,d]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(a,c,t){var e=this.$brackets[a],i=1,n=new E(this,c.row,c.column),r=n.getCurrentToken();if(r||(r=n.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var o=c.column-n.getCurrentTokenColumn()-2,d=r.value;;){for(;o>=0;){var p=d.charAt(o);if(p==e){if(i-=1,i==0)return{row:n.getCurrentTokenRow(),column:o+n.getCurrentTokenColumn()}}else p==a&&(i+=1);o-=1}do r=n.stepBackward();while(r&&!t.test(r.type));if(r==null)break;d=r.value,o=d.length-1}return null}},this.$findClosingBracket=function(a,c,t){var e=this.$brackets[a],i=1,n=new E(this,c.row,c.column),r=n.getCurrentToken();if(r||(r=n.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var o=c.column-n.getCurrentTokenColumn();;){for(var d=r.value,p=d.length;o<p;){var v=d.charAt(o);if(v==e){if(i-=1,i==0)return{row:n.getCurrentTokenRow(),column:o+n.getCurrentTokenColumn()}}else v==a&&(i+=1);o+=1}do r=n.stepForward();while(r&&!t.test(r.type));if(r==null)break;o=0}return null}},this.getMatchingTags=function(a){var c=new E(this,a.row,a.column),t=this.$findTagName(c);if(!!t){var e=c.stepBackward();return e.value==="<"?this.$findClosingTag(c,t):this.$findOpeningTag(c,t)}},this.$findTagName=function(a){var c=a.getCurrentToken(),t=!1,e=!1;if(c&&c.type.indexOf("tag-name")===-1)do e?c=a.stepBackward():c=a.stepForward(),c&&(c.value==="/>"?e=!0:c.type.indexOf("tag-name")!==-1&&(t=!0));while(c&&!t);return c},this.$findClosingTag=function(a,c){var t,e=c.value,i=c.value,n=0,r=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);c=a.stepForward();var o=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+c.value.length),d=!1;do if(t=c,c=a.stepForward(),c){if(c.value===">"&&!d){var p=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);d=!0}if(c.type.indexOf("tag-name")!==-1){if(e=c.value,i===e){if(t.value==="<")n++;else if(t.value==="</"&&(n--,n<0)){a.stepBackward();var v=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2);c=a.stepForward();var y=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+c.value.length);if(c=a.stepForward(),c&&c.value===">")var w=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);else return}}}else if(i===e&&c.value==="/>"&&(n--,n<0))var v=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+2),y=v,w=y,p=new A(o.end.row,o.end.column,o.end.row,o.end.column+1)}while(c&&n>=0);if(r&&p&&v&&w&&o&&y)return{openTag:new A(r.start.row,r.start.column,p.end.row,p.end.column),closeTag:new A(v.start.row,v.start.column,w.end.row,w.end.column),openTagName:o,closeTagName:y}},this.$findOpeningTag=function(a,c){var t=a.getCurrentToken(),e=c.value,i=0,n=a.getCurrentTokenRow(),r=a.getCurrentTokenColumn(),o=r+2,d=new A(n,r,n,o);a.stepForward();var p=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+c.value.length);if(c=a.stepForward(),!(!c||c.value!==">")){var v=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);a.stepBackward(),a.stepBackward();do if(c=t,n=a.getCurrentTokenRow(),r=a.getCurrentTokenColumn(),o=r+c.value.length,t=a.stepBackward(),c){if(c.type.indexOf("tag-name")!==-1){if(e===c.value)if(t.value==="<"){if(i++,i>0){var y=new A(n,r,n,o),w=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1);do c=a.stepForward();while(c&&c.value!==">");var l=new A(a.getCurrentTokenRow(),a.getCurrentTokenColumn(),a.getCurrentTokenRow(),a.getCurrentTokenColumn()+1)}}else t.value==="</"&&i--}else if(c.value==="/>"){for(var g=0,b=t;b;){if(b.type.indexOf("tag-name")!==-1&&b.value===e){i--;break}else if(b.value==="<")break;b=a.stepBackward(),g++}for(var f=0;f<g;f++)a.stepForward()}}while(t&&i<=0);if(w&&l&&d&&v&&y&&p)return{openTag:new A(w.start.row,w.start.column,l.end.row,l.end.column),closeTag:new A(d.start.row,d.start.column,v.end.row,v.end.column),openTagName:y,closeTagName:p}}}}k.BracketMatch=m}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","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(x,k,W){var E=x("./lib/oop"),A=x("./lib/lang"),m=x("./bidihandler").BidiHandler,a=x("./config"),c=x("./lib/event_emitter").EventEmitter,t=x("./selection").Selection,e=x("./mode/text").Mode,i=x("./range").Range,n=x("./document").Document,r=x("./background_tokenizer").BackgroundTokenizer,o=x("./search_highlight").SearchHighlight,d=function(p,v){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++d.$uid,this.$foldData.toString=function(){return this.join(`
- `)},this.bgTokenizer=new r(new e().getTokenizer(),this);var y=this;this.bgTokenizer.on("update",function(w){y._signal("tokenizerUpdate",w)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),(typeof p!="object"||!p.getLine)&&(p=new n(p)),this.setDocument(p),this.selection=new t(this),this.$bidiHandler=new m(this),a.resetOptions(this),this.setMode(v),a._signal("session",this),this.destroyed=!1};d.$uid=0,function(){E.implement(this,c),this.setDocument=function(s){this.doc&&this.doc.off("change",this.$onChange),this.doc=s,s.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(s){if(!s){this.$docRowCache=[],this.$screenRowCache=[];return}var u=this.$docRowCache.length,$=this.$getRowCacheIndex(this.$docRowCache,s)+1;u>$&&(this.$docRowCache.splice($,u),this.$screenRowCache.splice($,u))},this.$getRowCacheIndex=function(s,u){for(var $=0,C=s.length-1;$<=C;){var S=$+C>>1,L=s[S];if(u>L)$=S+1;else if(u<L)C=S-1;else return S}return $-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.destroyed||this.bgTokenizer.start(0)},this.onChangeFold=function(s){var u=s.data;this.$resetRowCache(u.start.row)},this.onChange=function(s){this.$modified=!0,this.$bidiHandler.onChange(s),this.$resetRowCache(s.start.row);var u=this.$updateInternalDataOnChange(s);!this.$fromUndo&&this.$undoManager&&(u&&u.length&&(this.$undoManager.add({action:"removeFolds",folds:u},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(s,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(s),this._signal("change",s)},this.setValue=function(s){this.doc.setValue(s),this.selection.moveTo(0,0),this.$resetRowCache(0),this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(s){return this.bgTokenizer.getState(s)},this.getTokens=function(s){return this.bgTokenizer.getTokens(s)},this.getTokenAt=function(s,u){var $=this.bgTokenizer.getTokens(s),C,S=0;if(u==null){var L=$.length-1;S=this.getLine(s).length}else for(var L=0;L<$.length&&(S+=$[L].value.length,!(S>=u));L++);return C=$[L],C?(C.index=L,C.start=S-C.value.length,C):null},this.setUndoManager=function(s){if(this.$undoManager=s,this.$informUndoManager&&this.$informUndoManager.cancel(),s){var u=this;s.addSession(this),this.$syncInformUndoManager=function(){u.$informUndoManager.cancel(),u.mergeUndoDeltas=!1},this.$informUndoManager=A.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?A.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(s){this.setOption("useSoftTabs",s)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(s){this.setOption("tabSize",s)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(s){return this.$useSoftTabs&&s.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(s){this.setOption("navigateWithinSoftTabs",s)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(s){this.setOption("overwrite",s)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(s,u){this.$decorations[s]||(this.$decorations[s]=""),this.$decorations[s]+=" "+u,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(s,u){this.$decorations[s]=(this.$decorations[s]||"").replace(" "+u,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(s){this.$breakpoints=[];for(var u=0;u<s.length;u++)this.$breakpoints[s[u]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(s,u){u===void 0&&(u="ace_breakpoint"),u?this.$breakpoints[s]=u:delete this.$breakpoints[s],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(s){delete this.$breakpoints[s],this._signal("changeBreakpoint",{})},this.addMarker=function(s,u,$,C){var S=this.$markerId++,L={range:s,type:$||"line",renderer:typeof $=="function"?$:null,clazz:u,inFront:!!C,id:S};return C?(this.$frontMarkers[S]=L,this._signal("changeFrontMarker")):(this.$backMarkers[S]=L,this._signal("changeBackMarker")),S},this.addDynamicMarker=function(s,u){if(!!s.update){var $=this.$markerId++;return s.id=$,s.inFront=!!u,u?(this.$frontMarkers[$]=s,this._signal("changeFrontMarker")):(this.$backMarkers[$]=s,this._signal("changeBackMarker")),s}},this.removeMarker=function(s){var u=this.$frontMarkers[s]||this.$backMarkers[s];if(!!u){var $=u.inFront?this.$frontMarkers:this.$backMarkers;delete $[s],this._signal(u.inFront?"changeFrontMarker":"changeBackMarker")}},this.getMarkers=function(s){return s?this.$frontMarkers:this.$backMarkers},this.highlight=function(s){if(!this.$searchHighlight){var u=new o(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(u)}this.$searchHighlight.setRegexp(s)},this.highlightLines=function(s,u,$,C){typeof u!="number"&&($=u,u=s),$||($="ace_step");var S=new i(s,0,u,1/0);return S.id=this.addMarker(S,$,"fullLine",C),S},this.setAnnotations=function(s){this.$annotations=s,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(s){var u=s.match(/^.*?(\r?\n)/m);u?this.$autoNewLine=u[1]:this.$autoNewLine=`
- `},this.getWordRange=function(s,u){var $=this.getLine(s),C=!1;if(u>0&&(C=!!$.charAt(u-1).match(this.tokenRe)),C||(C=!!$.charAt(u).match(this.tokenRe)),C)var S=this.tokenRe;else if(/^\s+$/.test($.slice(u-1,u+1)))var S=/\s/;else var S=this.nonTokenRe;var L=u;if(L>0){do L--;while(L>=0&&$.charAt(L).match(S));L++}for(var R=u;R<$.length&&$.charAt(R).match(S);)R++;return new i(s,L,s,R)},this.getAWordRange=function(s,u){for(var $=this.getWordRange(s,u),C=this.getLine($.end.row);C.charAt($.end.column).match(/[ \t]/);)$.end.column+=1;return $},this.setNewLineMode=function(s){this.doc.setNewLineMode(s)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(s){this.setOption("useWorker",s)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(s){var u=s.data;this.bgTokenizer.start(u.first),this._signal("tokenizerUpdate",s)},this.$modes=a.$modes,this.$mode=null,this.$modeId=null,this.setMode=function(s,u){if(s&&typeof s=="object"){if(s.getTokenizer)return this.$onChangeMode(s);var $=s,C=$.path}else C=s||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new e),this.$modes[C]&&!$){this.$onChangeMode(this.$modes[C]),u&&u();return}this.$modeId=C,a.loadModule(["mode",C],function(S){if(this.$modeId!==C)return u&&u();this.$modes[C]&&!$?this.$onChangeMode(this.$modes[C]):S&&S.Mode&&(S=new S.Mode($),$||(this.$modes[C]=S,S.$id=C),this.$onChangeMode(S)),u&&u()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(s,u){if(u||(this.$modeId=s.$id),this.$mode!==s){var $=this.$mode;this.$mode=s,this.$stopWorker(),this.$useWorker&&this.$startWorker();var C=s.getTokenizer();if(C.on!==void 0){var S=this.onReloadTokenizer.bind(this);C.on("update",S)}this.bgTokenizer.setTokenizer(C),this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=s.tokenRe,this.nonTokenRe=s.nonTokenRe,u||(s.attachToSession&&s.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(s.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode",{oldMode:$,mode:s}))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(s){a.warn("Could not load worker",s),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(s){this.$scrollTop===s||isNaN(s)||(this.$scrollTop=s,this._signal("changeScrollTop",s))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(s){this.$scrollLeft===s||isNaN(s)||(this.$scrollLeft=s,this._signal("changeScrollLeft",s))},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var s=0;return this.lineWidgets.forEach(function(u){u&&u.screenWidth>s&&(s=u.screenWidth)}),this.lineWidgetWidth=s},this.$computeWidth=function(s){if(this.$modified||s){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var u=this.doc.getAllLines(),$=this.$rowLengthCache,C=0,S=0,L=this.$foldData[S],R=L?L.start.row:1/0,T=u.length,_=0;_<T;_++){if(_>R){if(_=L.end.row+1,_>=T)break;L=this.$foldData[S++],R=L?L.start.row:1/0}$[_]==null&&($[_]=this.$getStringScreenWidth(u[_])[0]),$[_]>C&&(C=$[_])}this.screenWidth=C}},this.getLine=function(s){return this.doc.getLine(s)},this.getLines=function(s,u){return this.doc.getLines(s,u)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(s){return this.doc.getTextRange(s||this.selection.getRange())},this.insert=function(s,u){return this.doc.insert(s,u)},this.remove=function(s){return this.doc.remove(s)},this.removeFullLines=function(s,u){return this.doc.removeFullLines(s,u)},this.undoChanges=function(s,u){if(!!s.length){this.$fromUndo=!0;for(var $=s.length-1;$!=-1;$--){var C=s[$];C.action=="insert"||C.action=="remove"?this.doc.revertDelta(C):C.folds&&this.addFolds(C.folds)}!u&&this.$undoSelect&&(s.selectionBefore?this.selection.fromJSON(s.selectionBefore):this.selection.setRange(this.$getUndoSelection(s,!0))),this.$fromUndo=!1}},this.redoChanges=function(s,u){if(!!s.length){this.$fromUndo=!0;for(var $=0;$<s.length;$++){var C=s[$];(C.action=="insert"||C.action=="remove")&&this.doc.$safeApplyDelta(C)}!u&&this.$undoSelect&&(s.selectionAfter?this.selection.fromJSON(s.selectionAfter):this.selection.setRange(this.$getUndoSelection(s,!1))),this.$fromUndo=!1}},this.setUndoSelect=function(s){this.$undoSelect=s},this.$getUndoSelection=function(s,u){function $(T){return u?T.action!=="insert":T.action==="insert"}for(var C,S,L=0;L<s.length;L++){var R=s[L];if(!!R.start){if(!C){$(R)?C=i.fromPoints(R.start,R.end):C=i.fromPoints(R.start,R.start);continue}$(R)?(S=R.start,C.compare(S.row,S.column)==-1&&C.setStart(S),S=R.end,C.compare(S.row,S.column)==1&&C.setEnd(S)):(S=R.start,C.compare(S.row,S.column)==-1&&(C=i.fromPoints(R.start,R.start)))}}return C},this.replace=function(s,u){return this.doc.replace(s,u)},this.moveText=function(s,u,$){var C=this.getTextRange(s),S=this.getFoldsInRange(s),L=i.fromPoints(u,u);if(!$){this.remove(s);var R=s.start.row-s.end.row,T=R?-s.end.column:s.start.column-s.end.column;T&&(L.start.row==s.end.row&&L.start.column>s.end.column&&(L.start.column+=T),L.end.row==s.end.row&&L.end.column>s.end.column&&(L.end.column+=T)),R&&L.start.row>=s.end.row&&(L.start.row+=R,L.end.row+=R)}if(L.end=this.insert(L.start,C),S.length){var _=s.start,M=L.start,R=M.row-_.row,T=M.column-_.column;this.addFolds(S.map(function(B){return B=B.clone(),B.start.row==_.row&&(B.start.column+=T),B.end.row==_.row&&(B.end.column+=T),B.start.row+=R,B.end.row+=R,B}))}return L},this.indentRows=function(s,u,$){$=$.replace(/\t/g,this.getTabString());for(var C=s;C<=u;C++)this.doc.insertInLine({row:C,column:0},$)},this.outdentRows=function(s){for(var u=s.collapseRows(),$=new i(0,0,0,0),C=this.getTabSize(),S=u.start.row;S<=u.end.row;++S){var L=this.getLine(S);$.start.row=S,$.end.row=S;for(var R=0;R<C&&L.charAt(R)==" ";++R);R<C&&L.charAt(R)==" "?($.start.column=R,$.end.column=R+1):($.start.column=0,$.end.column=R),this.remove($)}},this.$moveLines=function(s,u,$){if(s=this.getRowFoldStart(s),u=this.getRowFoldEnd(u),$<0){var C=this.getRowFoldStart(s+$);if(C<0)return 0;var S=C-s}else if($>0){var C=this.getRowFoldEnd(u+$);if(C>this.doc.getLength()-1)return 0;var S=C-u}else{s=this.$clipRowToDocument(s),u=this.$clipRowToDocument(u);var S=u-s+1}var L=new i(s,0,u,Number.MAX_VALUE),R=this.getFoldsInRange(L).map(function(_){return _=_.clone(),_.start.row+=S,_.end.row+=S,_}),T=$==0?this.doc.getLines(s,u):this.doc.removeFullLines(s,u);return this.doc.insertFullLines(s+S,T),R.length&&this.addFolds(R),S},this.moveLinesUp=function(s,u){return this.$moveLines(s,u,-1)},this.moveLinesDown=function(s,u){return this.$moveLines(s,u,1)},this.duplicateLines=function(s,u){return this.$moveLines(s,u,0)},this.$clipRowToDocument=function(s){return Math.max(0,Math.min(s,this.doc.getLength()-1))},this.$clipColumnToRow=function(s,u){return u<0?0:Math.min(this.doc.getLine(s).length,u)},this.$clipPositionToDocument=function(s,u){if(u=Math.max(0,u),s<0)s=0,u=0;else{var $=this.doc.getLength();s>=$?(s=$-1,u=this.doc.getLine($-1).length):u=Math.min(this.doc.getLine(s).length,u)}return{row:s,column:u}},this.$clipRangeToDocument=function(s){s.start.row<0?(s.start.row=0,s.start.column=0):s.start.column=this.$clipColumnToRow(s.start.row,s.start.column);var u=this.doc.getLength()-1;return s.end.row>u?(s.end.row=u,s.end.column=this.doc.getLine(u).length):s.end.column=this.$clipColumnToRow(s.end.row,s.end.column),s},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(s){if(s!=this.$useWrapMode){if(this.$useWrapMode=s,this.$modified=!0,this.$resetRowCache(0),s){var u=this.getLength();this.$wrapData=Array(u),this.$updateWrapData(0,u-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(s,u){(this.$wrapLimitRange.min!==s||this.$wrapLimitRange.max!==u)&&(this.$wrapLimitRange={min:s,max:u},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(s,u){var $=this.$wrapLimitRange;$.max<0&&($={min:u,max:u});var C=this.$constrainWrapLimit(s,$.min,$.max);return C!=this.$wrapLimit&&C>1?(this.$wrapLimit=C,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(s,u,$){return u&&(s=Math.max(u,s)),$&&(s=Math.min($,s)),s},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(s){this.setWrapLimitRange(s,s)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(s){var u=this.$useWrapMode,$=s.action,C=s.start,S=s.end,L=C.row,R=S.row,T=R-L,_=null;if(this.$updating=!0,T!=0)if($==="remove"){this[u?"$wrapData":"$rowLengthCache"].splice(L,T);var M=this.$foldData;_=this.getFoldsInRange(s),this.removeFolds(_);var O=this.getFoldLine(S.row),D=0;if(O){O.addRemoveChars(S.row,S.column,C.column-S.column),O.shiftRow(-T);var B=this.getFoldLine(L);B&&B!==O&&(B.merge(O),O=B),D=M.indexOf(O)+1}for(D;D<M.length;D++){var O=M[D];O.start.row>=S.row&&O.shiftRow(-T)}R=L}else{var F=Array(T);F.unshift(L,0);var I=u?this.$wrapData:this.$rowLengthCache;I.splice.apply(I,F);var M=this.$foldData,O=this.getFoldLine(L),D=0;if(O){var P=O.range.compareInside(C.row,C.column);P==0?(O=O.split(C.row,C.column),O&&(O.shiftRow(T),O.addRemoveChars(R,0,S.column-C.column))):P==-1&&(O.addRemoveChars(L,0,S.column-C.column),O.shiftRow(T)),D=M.indexOf(O)+1}for(D;D<M.length;D++){var O=M[D];O.start.row>=L&&O.shiftRow(T)}}else{T=Math.abs(s.start.column-s.end.column),$==="remove"&&(_=this.getFoldsInRange(s),this.removeFolds(_),T=-T);var O=this.getFoldLine(L);O&&O.addRemoveChars(L,C.column,T)}return u&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,u?this.$updateWrapData(L,R):this.$updateRowLengthCache(L,R),_},this.$updateRowLengthCache=function(s,u,$){this.$rowLengthCache[s]=null,this.$rowLengthCache[u]=null},this.$updateWrapData=function(s,u){var $=this.doc.getAllLines(),C=this.getTabSize(),S=this.$wrapData,L=this.$wrapLimit,R,T,_=s;for(u=Math.min(u,$.length-1);_<=u;)T=this.getFoldLine(_,T),T?(R=[],T.walk(function(M,O,D,B){var F;if(M!=null){F=this.$getDisplayTokens(M,R.length),F[0]=y;for(var I=1;I<F.length;I++)F[I]=w}else F=this.$getDisplayTokens($[O].substring(B,D),R.length);R=R.concat(F)}.bind(this),T.end.row,$[T.end.row].length+1),S[T.start.row]=this.$computeWrapSplits(R,L,C),_=T.end.row+1):(R=this.$getDisplayTokens($[_]),S[_]=this.$computeWrapSplits(R,L,C),_++)};var p=1,v=2,y=3,w=4,l=9,g=10,b=11,f=12;this.$computeWrapSplits=function(s,u,$){if(s.length==0)return[];var C=[],S=s.length,L=0,R=0,T=this.$wrapAsCode,_=this.$indentedSoftWrap,M=u<=Math.max(2*$,8)||_===!1?0:Math.floor(u/2);function O(){var P=0;if(M===0)return P;if(_)for(var N=0;N<s.length;N++){var U=s[N];if(U==g)P+=1;else if(U==b)P+=$;else{if(U==f)continue;break}}return T&&_!==!1&&(P+=$),Math.min(P,M)}function D(P){for(var N=P-L,U=L;U<P;U++){var V=s[U];(V===12||V===2)&&(N-=1)}C.length||(B=O(),C.indent=B),R+=N,C.push(R),L=P}for(var B=0;S-L>u-B;){var F=L+u-B;if(s[F-1]>=g&&s[F]>=g){D(F);continue}if(s[F]==y||s[F]==w){for(F;F!=L-1&&s[F]!=y;F--);if(F>L){D(F);continue}for(F=L+u,F;F<s.length&&s[F]==w;F++);if(F==s.length)break;D(F);continue}for(var I=Math.max(F-(u-(u>>2)),L-1);F>I&&s[F]<y;)F--;if(T){for(;F>I&&s[F]<y;)F--;for(;F>I&&s[F]==l;)F--}else for(;F>I&&s[F]<g;)F--;if(F>I){D(++F);continue}F=L+u,s[F]==v&&F--,D(F-B)}return C},this.$getDisplayTokens=function(s,u){var $=[],C;u=u||0;for(var S=0;S<s.length;S++){var L=s.charCodeAt(S);if(L==9){C=this.getScreenTabSize($.length+u),$.push(b);for(var R=1;R<C;R++)$.push(f)}else L==32?$.push(g):L>39&&L<48||L>57&&L<64?$.push(l):L>=4352&&h(L)?$.push(p,v):$.push(p)}return $},this.$getStringScreenWidth=function(s,u,$){if(u==0)return[0,0];u==null&&(u=1/0),$=$||0;var C,S;for(S=0;S<s.length&&(C=s.charCodeAt(S),C==9?$+=this.getScreenTabSize($):C>=4352&&h(C)?$+=2:$+=1,!($>u));S++);return[$,S]},this.lineWidgets=null,this.getRowLength=function(s){var u=1;return this.lineWidgets&&(u+=this.lineWidgets[s]&&this.lineWidgets[s].rowCount||0),!this.$useWrapMode||!this.$wrapData[s]?u:this.$wrapData[s].length+u},this.getRowLineCount=function(s){return!this.$useWrapMode||!this.$wrapData[s]?1:this.$wrapData[s].length+1},this.getRowWrapIndent=function(s){if(this.$useWrapMode){var u=this.screenToDocumentPosition(s,Number.MAX_VALUE),$=this.$wrapData[u.row];return $.length&&$[0]<u.column?$.indent:0}else return 0},this.getScreenLastRowColumn=function(s){var u=this.screenToDocumentPosition(s,Number.MAX_VALUE);return this.documentToScreenColumn(u.row,u.column)},this.getDocumentLastRowColumn=function(s,u){var $=this.documentToScreenRow(s,u);return this.getScreenLastRowColumn($)},this.getDocumentLastRowColumnPosition=function(s,u){var $=this.documentToScreenRow(s,u);return this.screenToDocumentPosition($,Number.MAX_VALUE/10)},this.getRowSplitData=function(s){if(this.$useWrapMode)return this.$wrapData[s]},this.getScreenTabSize=function(s){return this.$tabSize-(s%this.$tabSize|0)},this.screenToDocumentRow=function(s,u){return this.screenToDocumentPosition(s,u).row},this.screenToDocumentColumn=function(s,u){return this.screenToDocumentPosition(s,u).column},this.screenToDocumentPosition=function(s,u,$){if(s<0)return{row:0,column:0};var C,S=0,L=0,R,T=0,_=0,M=this.$screenRowCache,O=this.$getRowCacheIndex(M,s),D=M.length;if(D&&O>=0)var T=M[O],S=this.$docRowCache[O],B=s>M[D-1];else var B=!D;for(var F=this.getLength()-1,I=this.getNextFoldLine(S),P=I?I.start.row:1/0;T<=s&&(_=this.getRowLength(S),!(T+_>s||S>=F));)T+=_,S++,S>P&&(S=I.end.row+1,I=this.getNextFoldLine(S,I),P=I?I.start.row:1/0),B&&(this.$docRowCache.push(S),this.$screenRowCache.push(T));if(I&&I.start.row<=S)C=this.getFoldDisplayLine(I),S=I.start.row;else{if(T+_<=s||S>F)return{row:F,column:this.getLine(F).length};C=this.getLine(S),I=null}var N=0,U=Math.floor(s-T);if(this.$useWrapMode){var V=this.$wrapData[S];V&&(R=V[U],U>0&&V.length&&(N=V.indent,L=V[U-1]||V[V.length-1],C=C.substring(L)))}return $!==void 0&&this.$bidiHandler.isBidiRow(T+U,S,U)&&(u=this.$bidiHandler.offsetToCol($)),L+=this.$getStringScreenWidth(C,u-N)[1],this.$useWrapMode&&L>=R&&(L=R-1),I?I.idxToPosition(L):{row:S,column:L}},this.documentToScreenPosition=function(s,u){if(typeof u=="undefined")var $=this.$clipPositionToDocument(s.row,s.column);else $=this.$clipPositionToDocument(s,u);s=$.row,u=$.column;var C=0,S=null,L=null;L=this.getFoldAt(s,u,1),L&&(s=L.start.row,u=L.start.column);var R,T=0,_=this.$docRowCache,M=this.$getRowCacheIndex(_,s),O=_.length;if(O&&M>=0)var T=_[M],C=this.$screenRowCache[M],D=s>_[O-1];else var D=!O;for(var B=this.getNextFoldLine(T),F=B?B.start.row:1/0;T<s;){if(T>=F){if(R=B.end.row+1,R>s)break;B=this.getNextFoldLine(R,B),F=B?B.start.row:1/0}else R=T+1;C+=this.getRowLength(T),T=R,D&&(this.$docRowCache.push(T),this.$screenRowCache.push(C))}var I="";B&&T>=F?(I=this.getFoldDisplayLine(B,s,u),S=B.start.row):(I=this.getLine(s).substring(0,u),S=s);var P=0;if(this.$useWrapMode){var N=this.$wrapData[S];if(N){for(var U=0;I.length>=N[U];)C++,U++;I=I.substring(N[U-1]||0,I.length),P=U>0?N.indent:0}}return this.lineWidgets&&this.lineWidgets[T]&&this.lineWidgets[T].rowsAbove&&(C+=this.lineWidgets[T].rowsAbove),{row:C,column:P+this.$getStringScreenWidth(I)[0]}},this.documentToScreenColumn=function(s,u){return this.documentToScreenPosition(s,u).column},this.documentToScreenRow=function(s,u){return this.documentToScreenPosition(s,u).row},this.getScreenLength=function(){var s=0,u=null;if(this.$useWrapMode)for(var S=this.$wrapData.length,L=0,C=0,u=this.$foldData[C++],R=u?u.start.row:1/0;L<S;){var T=this.$wrapData[L];s+=T?T.length+1:1,L++,L>R&&(L=u.end.row+1,u=this.$foldData[C++],R=u?u.start.row:1/0)}else{s=this.getLength();for(var $=this.$foldData,C=0;C<$.length;C++)u=$[C],s-=u.end.row-u.start.row}return this.lineWidgets&&(s+=this.$getWidgetScreenLength()),s},this.$setFontMetrics=function(s){!this.$enableVarChar||(this.$getStringScreenWidth=function(u,$,C){if($===0)return[0,0];$||($=1/0),C=C||0;var S,L;for(L=0;L<u.length&&(S=u.charAt(L),S===" "?C+=this.getScreenTabSize(C):C+=s.getCharacterWidth(S),!(C>$));L++);return[C,L]})},this.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=h;function h(s){return s<4352?!1:s>=4352&&s<=4447||s>=4515&&s<=4519||s>=4602&&s<=4607||s>=9001&&s<=9002||s>=11904&&s<=11929||s>=11931&&s<=12019||s>=12032&&s<=12245||s>=12272&&s<=12283||s>=12288&&s<=12350||s>=12353&&s<=12438||s>=12441&&s<=12543||s>=12549&&s<=12589||s>=12593&&s<=12686||s>=12688&&s<=12730||s>=12736&&s<=12771||s>=12784&&s<=12830||s>=12832&&s<=12871||s>=12880&&s<=13054||s>=13056&&s<=19903||s>=19968&&s<=42124||s>=42128&&s<=42182||s>=43360&&s<=43388||s>=44032&&s<=55203||s>=55216&&s<=55238||s>=55243&&s<=55291||s>=63744&&s<=64255||s>=65040&&s<=65049||s>=65072&&s<=65106||s>=65108&&s<=65126||s>=65128&&s<=65131||s>=65281&&s<=65376||s>=65504&&s<=65510}}.call(d.prototype),x("./edit_session/folding").Folding.call(d.prototype),x("./edit_session/bracket_match").BracketMatch.call(d.prototype),a.defineOptions(d.prototype,"session",{wrap:{set:function(p){if(!p||p=="off"?p=!1:p=="free"?p=!0:p=="printMargin"?p=-1:typeof p=="string"&&(p=parseInt(p,10)||!1),this.$wrap!=p)if(this.$wrap=p,!p)this.setUseWrapMode(!1);else{var v=typeof p=="number"?p:null;this.setWrapLimitRange(v,v),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(p){p=p=="auto"?this.$mode.type!="text":p!="text",p!=this.$wrapAsCode&&(this.$wrapAsCode=p,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(p){this.$useWorker=p,this.$stopWorker(),p&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(p){p=parseInt(p),p>0&&this.$tabSize!==p&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=p,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(p){this.setFoldStyle(p)},handlesSet:!0},overwrite:{set:function(p){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(p){this.doc.setNewLineMode(p)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(p){this.setMode(p)},get:function(){return this.$modeId},handlesSet:!0}}),k.EditSession=d}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(x,k,W){var E=x("./lib/lang"),A=x("./lib/oop"),m=x("./range").Range,a=function(){this.$options={}};(function(){this.set=function(t){return A.mixin(this.$options,t),this},this.getOptions=function(){return E.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var e=this.$options,i=this.$matchIterator(t,e);if(!i)return!1;var n=null;return i.forEach(function(r,o,d,p){return n=new m(r,o,d,p),o==p&&e.start&&e.start.start&&e.skipCurrent!=!1&&n.isEqual(e.start)?(n=null,!1):!0}),n},this.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var i=e.range,n=i?t.getLines(i.start.row,i.end.row):t.doc.getAllLines(),r=[],o=e.re;if(e.$isMultiLine){var d=o.length,p=n.length-d,v;e:for(var y=o.offset||0;y<=p;y++){for(var w=0;w<d;w++)if(n[y+w].search(o[w])==-1)continue e;var l=n[y],g=n[y+d-1],b=l.length-l.match(o[0])[0].length,f=g.match(o[d-1])[0].length;v&&v.end.row===y&&v.end.column>b||(r.push(v=new m(y,b,y+d-1,f)),d>2&&(y=y+d-2))}}else for(var h=0;h<n.length;h++)for(var s=E.getMatchOffsets(n[h],o),w=0;w<s.length;w++){var u=s[w];r.push(new m(h,u.offset,h,u.offset+u.length))}if(i){for(var $=i.start.column,C=i.end.column,h=0,w=r.length-1;h<w&&r[h].start.column<$&&r[h].start.row==0;)h++;for(var S=i.end.row-i.start.row;h<w&&r[w].end.column>C&&r[w].end.row==S;)w--;for(r=r.slice(h,w+1),h=0,w=r.length;h<w;h++)r[h].start.row+=i.start.row,r[h].end.row+=i.start.row}return r},this.replace=function(t,e){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return e;if(!!n){var r=n.exec(t);if(!r||r[0].length!=t.length)return null;if(e=t.replace(n,e),i.preserveCase){e=e.split("");for(var o=Math.min(t.length,t.length);o--;){var d=t[o];d&&d.toLowerCase()!=d?e[o]=e[o].toUpperCase():e[o]=e[o].toLowerCase()}e=e.join("")}return e}},this.$assembleRegExp=function(t,e){if(t.needle instanceof RegExp)return t.re=t.needle;var i=t.needle;if(!t.needle)return t.re=!1;t.regExp||(i=E.escapeRegExp(i)),t.wholeWord&&(i=c(i,t));var n=t.caseSensitive?"gm":"gmi";if(t.$isMultiLine=!e&&/[\n\r]/.test(i),t.$isMultiLine)return t.re=this.$assembleMultilineRegExp(i,n);try{var r=new RegExp(i,n)}catch(o){r=!1}return t.re=r},this.$assembleMultilineRegExp=function(t,e){for(var i=t.replace(/\r\n|\r|\n/g,`$
- ^`).split(`
- `),n=[],r=0;r<i.length;r++)try{n.push(new RegExp(i[r],e))}catch(o){return!1}return n},this.$matchIterator=function(t,e){var i=this.$assembleRegExp(e);if(!i)return!1;var n=e.backwards==!0,r=e.skipCurrent!=!1,o=e.range,d=e.start;d||(d=o?o[n?"end":"start"]:t.selection.getRange()),d.start&&(d=d[r!=n?"end":"start"]);var p=o?o.start.row:0,v=o?o.end.row:t.getLength()-1;if(n)var y=function(g){var b=d.row;if(!l(b,d.column,g)){for(b--;b>=p;b--)if(l(b,Number.MAX_VALUE,g))return;if(e.wrap!=!1){for(b=v,p=d.row;b>=p;b--)if(l(b,Number.MAX_VALUE,g))return}}};else var y=function(b){var f=d.row;if(!l(f,d.column,b)){for(f=f+1;f<=v;f++)if(l(f,0,b))return;if(e.wrap!=!1){for(f=p,v=d.row;f<=v;f++)if(l(f,0,b))return}}};if(e.$isMultiLine)var w=i.length,l=function(g,b,f){var h=n?g-w+1:g;if(!(h<0||h+w>t.getLength())){var s=t.getLine(h),u=s.search(i[0]);if(!(!n&&u<b||u===-1)){for(var $=1;$<w;$++)if(s=t.getLine(h+$),s.search(i[$])==-1)return;var C=s.match(i[w-1])[0].length;if(!(n&&C>b)&&f(h,u,h+w-1,C))return!0}}};else if(n)var l=function(b,f,h){var s=t.getLine(b),u=[],$,C=0;for(i.lastIndex=0;$=i.exec(s);){var S=$[0].length;if(C=$.index,!S){if(C>=s.length)break;i.lastIndex=C+=1}if($.index+S>f)break;u.push($.index,S)}for(var L=u.length-1;L>=0;L-=2){var R=u[L-1],S=u[L];if(h(b,R,b,R+S))return!0}};else var l=function(b,f,h){var s=t.getLine(b),u,$;for(i.lastIndex=f;$=i.exec(s);){var C=$[0].length;if(u=$.index,h(b,u,b,u+C))return!0;if(!C&&(i.lastIndex=u+=1,u>=s.length))return!1}};return{forEach:y}}}).call(a.prototype);function c(t,e){function i(n){return/\w/.test(n)||e.regExp?"\\b":""}return i(t[0])+t+i(t[t.length-1])}k.Search=a}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(x,k,W){var E=x("../lib/keys"),A=x("../lib/useragent"),m=E.KEY_MODS;function a(t,e){this.platform=e||(A.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function c(t,e){a.call(this,t,e),this.$singleCommand=!1}c.prototype=a.prototype,function(){this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,i){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],i||delete this.commands[n];var r=this.commandKeyBinding;for(var o in r){var d=r[o];if(d==e)delete r[o];else if(Array.isArray(d)){var p=d.indexOf(e);p!=-1&&(d.splice(p,1),d.length==1&&(r[o]=d[0]))}}},this.bindKey=function(e,i,n){if(typeof e=="object"&&e&&(n==null&&(n=e.position),e=e[this.platform]),!!e){if(typeof i=="function")return this.addCommand({exec:i,bindKey:e,name:i.name||e});e.split("|").forEach(function(r){var o="";if(r.indexOf(" ")!=-1){var d=r.split(/\s+/);r=d.pop(),d.forEach(function(y){var w=this.parseKeys(y),l=m[w.hashId]+w.key;o+=(o?" ":"")+l,this._addCommandToBinding(o,"chainKeys")},this),o+=" "}var p=this.parseKeys(r),v=m[p.hashId]+p.key;this._addCommandToBinding(o+v,i,n)},this)}};function t(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,i,n){var r=this.commandKeyBinding,o;if(!i)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=i;else{Array.isArray(r[e])?(o=r[e].indexOf(i))!=-1&&r[e].splice(o,1):r[e]=[r[e]],typeof n!="number"&&(n=t(i));var d=r[e];for(o=0;o<d.length;o++){var p=d[o],v=t(p);if(v>n)break}d.splice(o,0,i)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(i){var n=e[i];if(!!n){if(typeof n=="string")return this.bindKey(n,i);typeof n=="function"&&(n={exec:n}),typeof n=="object"&&(n.name||(n.name=i),this.addCommand(n))}},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(i){this.removeCommand(e[i])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(i){this.bindKey(i,e[i])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var i=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(v){return v}),n=i.pop(),r=E[n];if(E.FUNCTION_KEYS[r])n=E.FUNCTION_KEYS[r].toLowerCase();else if(i.length){if(i.length==1&&i[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}else return{key:n,hashId:-1};for(var o=0,d=i.length;d--;){var p=E.KEY_MODS[i[d]];if(p==null)return typeof console!="undefined"&&console.error("invalid modifier "+i[d]+" in "+e),!1;o|=p}return{key:n,hashId:o}},this.findKeyCommand=function(i,n){var r=m[i]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,i,n,r){if(!(r<0)){var o=m[i]+n,d=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,d=this.commandKeyBinding[e.$keyChain]||d),d&&(d=="chainKeys"||d[d.length-1]=="chainKeys")?(e.$keyChain=e.$keyChain||o,{command:"null"}):(e.$keyChain&&((!i||i==4)&&n.length==1?e.$keyChain=e.$keyChain.slice(0,-o.length-1):(i==-1||r>0)&&(e.$keyChain="")),{command:d})}},this.getStatusText=function(e,i){return i.$keyChain||""}}.call(a.prototype),k.HashHandler=a,k.MultiHashHandler=c}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(x,k,W){var E=x("../lib/oop"),A=x("../keyboard/hash_handler").MultiHashHandler,m=x("../lib/event_emitter").EventEmitter,a=function(c,t){A.call(this,t,c),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})};E.inherits(a,A),function(){E.implement(this,m),this.exec=function(c,t,e){if(Array.isArray(c)){for(var i=c.length;i--;)if(this.exec(c[i],t,e))return!0;return!1}if(typeof c=="string"&&(c=this.commands[c]),!c||t&&t.$readOnly&&!c.readOnly||this.$checkCommandState!=!1&&c.isAvailable&&!c.isAvailable(t))return!1;var n={editor:t,command:c,args:e};return n.returnValue=this._emit("exec",n),this._signal("afterExec",n),n.returnValue!==!1},this.toggleRecording=function(c){if(!this.$inReplay)return c&&c._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(t){this.macro.push([t.command,t.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(c){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(c);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,c):this.exec(t[0],c,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(c){return c.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}.call(a.prototype),k.CommandManager=a}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(x,k,W){var E=x("../lib/lang"),A=x("../config"),m=x("../range").Range;function a(t,e){return{win:t,mac:e}}k.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:a("Ctrl-,","Command-,"),exec:function(t){A.loadModule("ace/ext/settings_menu",function(e){e.init(t),t.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:a("Alt-E","F4"),exec:function(t){A.loadModule("./ext/error_marker",function(e){e.showErrorMarker(t,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:a("Alt-Shift-E","Shift-F4"),exec:function(t){A.loadModule("./ext/error_marker",function(e){e.showErrorMarker(t,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:a("Ctrl-A","Command-A"),exec:function(t){t.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:a(null,"Ctrl-L"),exec:function(t){t.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:a("Ctrl-L","Command-L"),exec:function(t,e){typeof e=="number"&&!isNaN(e)&&t.gotoLine(e),t.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:a("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(t){t.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:a("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(t){t.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:a("F2","F2"),exec:function(t){t.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:a("Alt-F2","Alt-F2"),exec:function(t){t.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(t){t.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:a(null,"Ctrl-Command-Option-0"),exec:function(t){t.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:a("Alt-0","Command-Option-0"),exec:function(t){t.session.foldAll(),t.session.unfold(t.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:a("Alt-Shift-0","Command-Option-Shift-0"),exec:function(t){t.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:a("Ctrl-K","Command-G"),exec:function(t){t.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:a("Ctrl-Shift-K","Command-Shift-G"),exec:function(t){t.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:a("Alt-K","Ctrl-G"),exec:function(t){t.selection.isEmpty()?t.selection.selectWord():t.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:a("Alt-Shift-K","Ctrl-Shift-G"),exec:function(t){t.selection.isEmpty()?t.selection.selectWord():t.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:a("Ctrl-F","Command-F"),exec:function(t){A.loadModule("ace/ext/searchbox",function(e){e.Search(t)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(t){t.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:a("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(t){t.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:a("Ctrl-Home","Command-Home|Command-Up"),exec:function(t){t.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:a("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(t){t.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:a("Up","Up|Ctrl-P"),exec:function(t,e){t.navigateUp(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:a("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(t){t.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:a("Ctrl-End","Command-End|Command-Down"),exec:function(t){t.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:a("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(t){t.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:a("Down","Down|Ctrl-N"),exec:function(t,e){t.navigateDown(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:a("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(t){t.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:a("Ctrl-Left","Option-Left"),exec:function(t){t.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:a("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(t){t.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:a("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(t){t.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:a("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(t){t.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:a("Left","Left|Ctrl-B"),exec:function(t,e){t.navigateLeft(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:a("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(t){t.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:a("Ctrl-Right","Option-Right"),exec:function(t){t.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:a("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(t){t.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:a("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(t){t.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:a("Shift-Right","Shift-Right"),exec:function(t){t.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:a("Right","Right|Ctrl-F"),exec:function(t,e){t.navigateRight(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(t){t.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:a(null,"Option-PageDown"),exec:function(t){t.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:a("PageDown","PageDown|Ctrl-V"),exec:function(t){t.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(t){t.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:a(null,"Option-PageUp"),exec:function(t){t.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(t){t.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:a("Ctrl-Up",null),exec:function(t){t.renderer.scrollBy(0,-2*t.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:a("Ctrl-Down",null),exec:function(t){t.renderer.scrollBy(0,2*t.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(t){t.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(t){t.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:a("Ctrl-Alt-E","Command-Option-E"),exec:function(t){t.commands.toggleRecording(t)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:a("Ctrl-Shift-E","Command-Shift-E"),exec:function(t){t.commands.replay(t)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:a("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(t){t.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:a("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(t){t.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:a("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(t){t.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:a(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(t){},readOnly:!0},{name:"cut",description:"Cut",exec:function(t){var e=t.$copyWithEmptySelection&&t.selection.isEmpty(),i=e?t.selection.getLineRange():t.selection.getRange();t._emit("cut",i),i.isEmpty()||t.session.remove(i),t.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(t,e){t.$handlePaste(e)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:a("Ctrl-D","Command-D"),exec:function(t){t.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:a("Ctrl-Shift-D","Command-Shift-D"),exec:function(t){t.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:a("Ctrl-Alt-S","Command-Alt-S"),exec:function(t){t.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:a("Ctrl-/","Command-/"),exec:function(t){t.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:a("Ctrl-Shift-/","Command-Shift-/"),exec:function(t){t.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:a("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(t){t.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:a("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(t){t.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:a("Ctrl-H","Command-Option-F"),exec:function(t){A.loadModule("ace/ext/searchbox",function(e){e.Search(t,!0)})}},{name:"undo",description:"Undo",bindKey:a("Ctrl-Z","Command-Z"),exec:function(t){t.undo()}},{name:"redo",description:"Redo",bindKey:a("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(t){t.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:a("Alt-Shift-Up","Command-Option-Up"),exec:function(t){t.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:a("Alt-Up","Option-Up"),exec:function(t){t.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:a("Alt-Shift-Down","Command-Option-Down"),exec:function(t){t.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:a("Alt-Down","Option-Down"),exec:function(t){t.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:a("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(t){t.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:a("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(t){t.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:a("Shift-Delete",null),exec:function(t){if(t.selection.isEmpty())t.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:a("Alt-Backspace","Command-Backspace"),exec:function(t){t.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:a("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(t){t.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:a("Ctrl-Shift-Backspace",null),exec:function(t){var e=t.selection.getRange();e.start.column=0,t.session.remove(e)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:a("Ctrl-Shift-Delete",null),exec:function(t){var e=t.selection.getRange();e.end.column=Number.MAX_VALUE,t.session.remove(e)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:a("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(t){t.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:a("Ctrl-Delete","Alt-Delete"),exec:function(t){t.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:a("Shift-Tab","Shift-Tab"),exec:function(t){t.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:a("Tab","Tab"),exec:function(t){t.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:a("Ctrl-[","Ctrl-["),exec:function(t){t.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:a("Ctrl-]","Ctrl-]"),exec:function(t){t.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(t,e){t.insert(e)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(t,e){t.insert(E.stringRepeat(e.text||"",e.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:a(null,"Ctrl-O"),exec:function(t){t.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:a("Alt-Shift-X","Ctrl-T"),exec:function(t){t.transposeLetters()},multiSelectAction:function(t){t.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:a("Ctrl-U","Ctrl-U"),exec:function(t){t.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:a("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(t){t.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:a(null,null),exec:function(t){t.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:a("Ctrl-Shift-L","Command-Shift-L"),exec:function(t){var e=t.selection.getRange();e.start.column=e.end.column=0,e.end.row++,t.selection.setRange(e,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:a("Ctrl+F3","F3"),exec:function(t){t.openLink()}},{name:"joinlines",description:"Join lines",bindKey:a(null,null),exec:function(t){for(var e=t.selection.isBackwards(),i=e?t.selection.getSelectionLead():t.selection.getSelectionAnchor(),n=e?t.selection.getSelectionAnchor():t.selection.getSelectionLead(),r=t.session.doc.getLine(i.row).length,o=t.session.doc.getTextRange(t.selection.getRange()),d=o.replace(/\n\s*/," ").length,p=t.session.doc.getLine(i.row),v=i.row+1;v<=n.row+1;v++){var y=E.stringTrimLeft(E.stringTrimRight(t.session.doc.getLine(v)));y.length!==0&&(y=" "+y),p+=y}n.row+1<t.session.doc.getLength()-1&&(p+=t.session.doc.getNewLineCharacter()),t.clearSelection(),t.session.doc.replace(new m(i.row,0,n.row+2,0),p),d>0?(t.selection.moveCursorTo(i.row,i.column),t.selection.selectTo(i.row,i.column+d)):(r=t.session.doc.getLine(i.row).length>r?r+1:r,t.selection.moveCursorTo(i.row,r))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:a(null,null),exec:function(t){var e=t.session.doc.getLength()-1,i=t.session.doc.getLine(e).length,n=t.selection.rangeList.ranges,r=[];n.length<1&&(n=[t.selection.getRange()]);for(var o=0;o<n.length;o++)o==n.length-1&&(n[o].end.row===e&&n[o].end.column===i||r.push(new m(n[o].end.row,n[o].end.column,e,i))),o===0?n[o].start.row===0&&n[o].start.column===0||r.push(new m(0,0,n[o].start.row,n[o].start.column)):r.push(new m(n[o-1].end.row,n[o-1].end.column,n[o].start.row,n[o].start.column));t.exitMultiSelectMode(),t.clearSelection();for(var o=0;o<r.length;o++)t.selection.addRange(r[o],!1)},readOnly:!0,scrollIntoView:"none"},{name:"addLineAfter",description:"Add new line after the current line",exec:function(t){t.selection.clearSelection(),t.navigateLineEnd(),t.insert(`
- `)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"addLineBefore",description:"Add new line before the current line",exec:function(t){t.selection.clearSelection();var e=t.getCursorPosition();t.selection.moveTo(e.row-1,Number.MAX_VALUE),t.insert(`
- `),e.row===0&&t.navigateUp()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"openCommandPallete",description:"Open command palette",bindKey:a("F1","F1"),exec:function(t){t.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:a(null,null),exec:function(t){t.prompt({$type:"modes"})},readOnly:!0}];for(var c=1;c<9;c++)k.commands.push({name:"foldToLevel"+c,description:"Fold To Level "+c,level:c,exec:function(t){t.session.foldToLevel(this.level)},scrollIntoView:"center",readOnly:!0})}),ace.define("ace/editor",["require","exports","module","ace/lib/oop","ace/lib/dom","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","ace/config","ace/token_iterator","ace/clipboard"],function(x,k,W){var E=this&&this.__values||function(h){var s=typeof Symbol=="function"&&Symbol.iterator,u=s&&h[s],$=0;if(u)return u.call(h);if(h&&typeof h.length=="number")return{next:function(){return h&&$>=h.length&&(h=void 0),{value:h&&h[$++],done:!h}}};throw new TypeError(s?"Object is not iterable.":"Symbol.iterator is not defined.")},A=x("./lib/oop"),m=x("./lib/dom"),a=x("./lib/lang"),c=x("./lib/useragent"),t=x("./keyboard/textinput").TextInput,e=x("./mouse/mouse_handler").MouseHandler,i=x("./mouse/fold_handler").FoldHandler,n=x("./keyboard/keybinding").KeyBinding,r=x("./edit_session").EditSession,o=x("./search").Search,d=x("./range").Range,p=x("./lib/event_emitter").EventEmitter,v=x("./commands/command_manager").CommandManager,y=x("./commands/default_commands").commands,w=x("./config"),l=x("./token_iterator").TokenIterator,g=x("./clipboard"),b=function(h,s,u){this.$toDestroy=[];var $=h.getContainerElement();this.container=$,this.renderer=h,this.id="editor"+ ++b.$uid,this.commands=new v(c.isMac?"mac":"win",y),typeof document=="object"&&(this.textInput=new t(h.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new e(this),new i(this)),this.keyBinding=new n(this),this.$search=new o().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=a.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(C,S){S._$emitInputEvent.schedule(31)}),this.setSession(s||u&&u.session||new r("")),w.resetOptions(this),u&&this.setOptions(u),w._signal("editor",this)};b.$uid=0,function(){A.implement(this,p),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=a.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(h){if(this.curOp){if(!h||this.curOp.command)return;this.prevOp=this.curOp}h||(this.previousCommand=null,h={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:h.command||{},args:h.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(h){if(this.curOp&&this.session){if(h&&h.returnValue===!1||!this.session)return this.curOp=null;if(h==!0&&this.curOp.command&&this.curOp.command.name=="mouse"||(this._signal("beforeEndOperation"),!this.curOp))return;var s=this.curOp.command,u=s&&s.scrollIntoView;if(u){switch(u){case"center-animate":u="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var $=this.selection.getRange(),C=this.renderer.layerConfig;($.start.row>=C.lastRow||$.end.row<=C.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}u=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var S=this.selection.toJSON();this.curOp.selectionAfter=S,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(S),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(h){if(!!this.$mergeUndoDeltas){var s=this.prevOp,u=this.$mergeableCommands,$=s.command&&h.command.name==s.command.name;if(h.command.name=="insertstring"){var C=h.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),$=$&&this.mergeNextCommand&&(!/\s/.test(C)||/\s/.test(s.args)),this.mergeNextCommand=!0}else $=$&&u.indexOf(h.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&($=!1),$?this.session.mergeUndoDeltas=!0:u.indexOf(h.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(h,s){if(h&&typeof h=="string"&&h!="ace"){this.$keybindingId=h;var u=this;w.loadModule(["keybinding",h],function($){u.$keybindingId==h&&u.keyBinding.setKeyboardHandler($&&$.handler),s&&s()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(h),s&&s()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(h){if(this.session!=h){this.curOp&&this.endOperation(),this.curOp={};var s=this.session;if(s){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var u=this.session.getSelection();u.off("changeCursor",this.$onCursorChange),u.off("changeSelection",this.$onSelectionChange)}this.session=h,h?(this.$onDocumentChange=this.onDocumentChange.bind(this),h.on("change",this.$onDocumentChange),this.renderer.setSession(h),this.$onChangeMode=this.onChangeMode.bind(this),h.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),h.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),h.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),h.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),h.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),h.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=h.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(h)),this._signal("changeSession",{session:h,oldSession:s}),this.curOp=null,s&&s._signal("changeEditor",{oldEditor:this}),h&&h._signal("changeEditor",{editor:this}),h&&!h.destroyed&&h.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(h,s){return this.session.doc.setValue(h),s?s==1?this.navigateFileEnd():s==-1&&this.navigateFileStart():this.selectAll(),h},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(h){this.renderer.onResize(h)},this.setTheme=function(h,s){this.renderer.setTheme(h,s)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(h){this.renderer.setStyle(h)},this.unsetStyle=function(h){this.renderer.unsetStyle(h)},this.getFontSize=function(){return this.getOption("fontSize")||m.computedStyle(this.container).fontSize},this.setFontSize=function(h){this.setOption("fontSize",h)},this.$highlightBrackets=function(){if(!this.$highlightPending){var h=this;this.$highlightPending=!0,setTimeout(function(){h.$highlightPending=!1;var s=h.session;if(!(!s||s.destroyed)){s.$bracketHighlight&&(s.$bracketHighlight.markerIds.forEach(function(M){s.removeMarker(M)}),s.$bracketHighlight=null);var u=h.getCursorPosition(),$=h.getKeyboardHandler(),C=$&&$.$getDirectionForHighlight&&$.$getDirectionForHighlight(h),S=s.getMatchingBracketRanges(u,C);if(!S){var L=new l(s,u.row,u.column),R=L.getCurrentToken();if(R&&/\b(?:tag-open|tag-name)/.test(R.type)){var T=s.getMatchingTags(u);T&&(S=[T.openTagName,T.closeTagName])}}if(!S&&s.$mode.getMatching&&(S=s.$mode.getMatching(h.session)),!S){h.getHighlightIndentGuides()&&h.renderer.$textLayer.$highlightIndentGuide();return}var _="ace_bracket";Array.isArray(S)?S.length==1&&(_="ace_error_bracket"):S=[S],S.length==2&&(d.comparePoints(S[0].end,S[1].start)==0?S=[d.fromPoints(S[0].start,S[1].end)]:d.comparePoints(S[0].start,S[1].end)==0&&(S=[d.fromPoints(S[1].start,S[0].end)])),s.$bracketHighlight={ranges:S,markerIds:S.map(function(M){return s.addMarker(M,_,"text")})},h.getHighlightIndentGuides()&&h.renderer.$textLayer.$highlightIndentGuide()}},50)}},this.focus=function(){this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(h){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",h))},this.onBlur=function(h){!this.$isFocused||(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",h))},this.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.onDocumentChange=function(h){var s=this.session.$useWrapMode,u=h.start.row==h.end.row?h.end.row:1/0;this.renderer.updateLines(h.start.row,u,s),this._signal("change",h),this.$cursorChange()},this.onTokenizerUpdate=function(h){var s=h.data;this.renderer.updateLines(s.first,s.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var h=this.getSession(),s;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(s=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(s=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(s=!1)),h.$highlightLineMarker&&!s)h.removeMarker(h.$highlightLineMarker.id),h.$highlightLineMarker=null;else if(!h.$highlightLineMarker&&s){var u=new d(s.row,s.column,s.row,1/0);u.id=h.addMarker(u,"ace_active-line","screenLine"),h.$highlightLineMarker=u}else s&&(h.$highlightLineMarker.start.row=s.row,h.$highlightLineMarker.end.row=s.row,h.$highlightLineMarker.start.column=s.column,h._signal("changeBackMarker"))},this.onSelectionChange=function(h){var s=this.session;if(s.$selectionMarker&&s.removeMarker(s.$selectionMarker),s.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var u=this.selection.getRange(),$=this.getSelectionStyle();s.$selectionMarker=s.addMarker(u,"ace_selection",$)}var C=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(C),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var h=this.session,s=this.getSelectionRange();if(!(s.isEmpty()||s.isMultiLine())){var u=s.start.column,$=s.end.column,C=h.getLine(s.start.row),S=C.substring(u,$);if(!(S.length>5e3||!/[\w\d]/.test(S))){var L=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:S}),R=C.substring(u-1,$+1);if(!!L.test(R))return L}}},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(h){this.renderer.updateText(),this._emit("changeMode",h)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var h=this.getSelectedText(),s=this.session.doc.getNewLineCharacter(),u=!1;if(!h&&this.$copyWithEmptySelection){u=!0;for(var $=this.selection.getAllRanges(),C=0;C<$.length;C++){var S=$[C];C&&$[C-1].start.row==S.start.row||(h+=this.session.getLine(S.start.row)+s)}}var L={text:h};return this._signal("copy",L),g.lineMode=u?L.text:!1,L.text},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(h,s){var u={text:h,event:s};this.commands.exec("paste",this,u)},this.$handlePaste=function(h){typeof h=="string"&&(h={text:h}),this._signal("paste",h);var s=h.text,u=s===g.lineMode,$=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)u?$.insert({row:this.selection.lead.row,column:0},s):this.insert(s);else if(u)this.selection.rangeList.ranges.forEach(function(_){$.insert({row:_.start.row,column:0},s)});else{var C=s.split(/\r\n|\r|\n/),S=this.selection.rangeList.ranges,L=C.length==2&&(!C[0]||!C[1]);if(C.length!=S.length||L)return this.commands.exec("insertstring",this,s);for(var R=S.length;R--;){var T=S[R];T.isEmpty()||$.remove(T),$.insert(T.start,C[R])}}},this.execCommand=function(h,s){return this.commands.exec(h,this,s)},this.insert=function(h,s){var u=this.session,$=u.getMode(),C=this.getCursorPosition();if(this.getBehavioursEnabled()&&!s){var S=$.transformAction(u.getState(C.row),"insertion",this,u,h);S&&(h!==S.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),h=S.text)}if(h==" "&&(h=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&h.indexOf(`
- `)==-1){var L=new d.fromPoints(C,C);L.end.column+=h.length,this.session.remove(L)}}else{var L=this.getSelectionRange();C=this.session.remove(L),this.clearSelection()}if(h==`
- `||h==`\r
- `){var M=u.getLine(C.row);if(C.column>M.search(/\S|$/)){var R=M.substr(C.column).search(/\S|$/);u.doc.removeInLine(C.row,C.column,C.column+R)}}this.clearSelection();var T=C.column,_=u.getState(C.row),M=u.getLine(C.row),O=$.checkOutdent(_,M,h);if(u.insert(C,h),S&&S.selection&&(S.selection.length==2?this.selection.setSelectionRange(new d(C.row,T+S.selection[0],C.row,T+S.selection[1])):this.selection.setSelectionRange(new d(C.row+S.selection[0],S.selection[1],C.row+S.selection[2],S.selection[3]))),this.$enableAutoIndent){if(u.getDocument().isNewLine(h)){var D=$.getNextLineIndent(_,M.slice(0,C.column),u.getTabString());u.insert({row:C.row+1,column:0},D)}O&&$.autoOutdent(_,u,C.row)}},this.autoIndent=function(){var h=this.session,s=h.getMode(),u,$;if(this.selection.isEmpty())u=0,$=h.doc.getLength()-1;else{var C=this.getSelectionRange();u=C.start.row,$=C.end.row}for(var S="",L="",R="",T,_,M,O=h.getTabString(),D=u;D<=$;D++)D>0&&(S=h.getState(D-1),L=h.getLine(D-1),R=s.getNextLineIndent(S,L,O)),T=h.getLine(D),_=s.$getIndent(T),R!==_&&(_.length>0&&(M=new d(D,0,D,_.length),h.remove(M)),R.length>0&&h.insert({row:D,column:0},R)),s.autoOutdent(S,h,D)},this.onTextInput=function(h,s){if(!s)return this.keyBinding.onTextInput(h);this.startOperation({command:{name:"insertstring"}});var u=this.applyComposition.bind(this,h,s);this.selection.rangeCount?this.forEachSelection(u):u(),this.endOperation()},this.applyComposition=function(h,s){if(s.extendLeft||s.extendRight){var u=this.selection.getRange();u.start.column-=s.extendLeft,u.end.column+=s.extendRight,u.start.column<0&&(u.start.row--,u.start.column+=this.session.getLine(u.start.row).length+1),this.selection.setRange(u),!h&&!u.isEmpty()&&this.remove()}if((h||!this.selection.isEmpty())&&this.insert(h,!0),s.restoreStart||s.restoreEnd){var u=this.selection.getRange();u.start.column-=s.restoreStart,u.end.column-=s.restoreEnd,this.selection.setRange(u)}},this.onCommandKey=function(h,s,u){return this.keyBinding.onCommandKey(h,s,u)},this.setOverwrite=function(h){this.session.setOverwrite(h)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(h){this.setOption("scrollSpeed",h)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(h){this.setOption("dragDelay",h)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(h){this.setOption("selectionStyle",h)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(h){this.setOption("highlightActiveLine",h)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(h){this.setOption("highlightGutterLine",h)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(h){this.setOption("highlightSelectedWord",h)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(h){this.renderer.setAnimatedScroll(h)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(h){this.renderer.setShowInvisibles(h)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(h){this.renderer.setDisplayIndentGuides(h)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setHighlightIndentGuides=function(h){this.renderer.setHighlightIndentGuides(h)},this.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},this.setShowPrintMargin=function(h){this.renderer.setShowPrintMargin(h)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(h){this.renderer.setPrintMarginColumn(h)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(h){this.setOption("readOnly",h)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(h){this.setOption("behavioursEnabled",h)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(h){this.setOption("wrapBehavioursEnabled",h)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(h){this.setOption("showFoldWidgets",h)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(h){this.setOption("fadeFoldWidgets",h)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(h){this.selection.isEmpty()&&(h=="left"?this.selection.selectLeft():this.selection.selectRight());var s=this.getSelectionRange();if(this.getBehavioursEnabled()){var u=this.session,$=u.getState(s.start.row),C=u.getMode().transformAction($,"deletion",this,u,s);if(s.end.column===0){var S=u.getTextRange(s);if(S[S.length-1]==`
- `){var L=u.getLine(s.end.row);/^\s+$/.test(L)&&(s.end.column=L.length)}}C&&(s=C)}this.session.remove(s),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var h=this.getSelectionRange();h.start.column==h.end.column&&h.start.row==h.end.row&&(h.end.column=0,h.end.row++),this.session.remove(h),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var h=this.getCursorPosition();this.insert(`
- `),this.moveCursorToPosition(h)},this.transposeLetters=function(){if(!!this.selection.isEmpty()){var h=this.getCursorPosition(),s=h.column;if(s!==0){var u=this.session.getLine(h.row),$,C;s<u.length?($=u.charAt(s)+u.charAt(s-1),C=new d(h.row,s-1,h.row,s+1)):($=u.charAt(s-1)+u.charAt(s-2),C=new d(h.row,s-2,h.row,s)),this.session.replace(C,$),this.session.selection.moveToPosition(C.end)}}},this.toLowerCase=function(){var h=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var s=this.getSelectionRange(),u=this.session.getTextRange(s);this.session.replace(s,u.toLowerCase()),this.selection.setSelectionRange(h)},this.toUpperCase=function(){var h=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var s=this.getSelectionRange(),u=this.session.getTextRange(s);this.session.replace(s,u.toUpperCase()),this.selection.setSelectionRange(h)},this.indent=function(){var h=this.session,s=this.getSelectionRange();if(s.start.row<s.end.row){var u=this.$getSelectedRows();h.indentRows(u.first,u.last," ");return}else if(s.start.column<s.end.column){var $=h.getTextRange(s);if(!/^\s+$/.test($)){var u=this.$getSelectedRows();h.indentRows(u.first,u.last," ");return}}var C=h.getLine(s.start.row),S=s.start,L=h.getTabSize(),R=h.documentToScreenColumn(S.row,S.column);if(this.session.getUseSoftTabs())var T=L-R%L,_=a.stringRepeat(" ",T);else{for(var T=R%L;C[s.start.column-1]==" "&&T;)s.start.column--,T--;this.selection.setSelectionRange(s),_=" "}return this.insert(_)},this.blockIndent=function(){var h=this.$getSelectedRows();this.session.indentRows(h.first,h.last," ")},this.blockOutdent=function(){var h=this.session.getSelection();this.session.outdentRows(h.getRange())},this.sortLines=function(){for(var h=this.$getSelectedRows(),s=this.session,u=[],$=h.first;$<=h.last;$++)u.push(s.getLine($));u.sort(function(L,R){return L.toLowerCase()<R.toLowerCase()?-1:L.toLowerCase()>R.toLowerCase()?1:0});for(var C=new d(0,0,0,0),$=h.first;$<=h.last;$++){var S=s.getLine($);C.start.row=$,C.end.row=$,C.end.column=S.length,s.replace(C,u[$-h.first])}},this.toggleCommentLines=function(){var h=this.session.getState(this.getCursorPosition().row),s=this.$getSelectedRows();this.session.getMode().toggleCommentLines(h,this.session,s.first,s.last)},this.toggleBlockComment=function(){var h=this.getCursorPosition(),s=this.session.getState(h.row),u=this.getSelectionRange();this.session.getMode().toggleBlockComment(s,this.session,u,h)},this.getNumberAt=function(h,s){var u=/[\-]?[0-9]+(?:\.[0-9]+)?/g;u.lastIndex=0;for(var $=this.session.getLine(h);u.lastIndex<s;){var C=u.exec($);if(C.index<=s&&C.index+C[0].length>=s){var S={value:C[0],start:C.index,end:C.index+C[0].length};return S}}return null},this.modifyNumber=function(h){var s=this.selection.getCursor().row,u=this.selection.getCursor().column,$=new d(s,u-1,s,u),C=this.session.getTextRange($);if(!isNaN(parseFloat(C))&&isFinite(C)){var S=this.getNumberAt(s,u);if(S){var L=S.value.indexOf(".")>=0?S.start+S.value.indexOf(".")+1:S.end,R=S.start+S.value.length-L,T=parseFloat(S.value);T*=Math.pow(10,R),L!==S.end&&u<L?h*=Math.pow(10,S.end-u-1):h*=Math.pow(10,S.end-u),T+=h,T/=Math.pow(10,R);var _=T.toFixed(R),M=new d(s,S.start,s,S.end);this.session.replace(M,_),this.moveCursorTo(s,Math.max(S.start+1,u+_.length-S.value.length))}}else this.toggleWord()},this.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],this.toggleWord=function(){var h=this.selection.getCursor().row,s=this.selection.getCursor().column;this.selection.selectWord();var u=this.getSelectedText(),$=this.selection.getWordRange().start.column,C=u.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),S=s-$-1;S<0&&(S=0);var L=0,R=0,T=this;u.match(/[A-Za-z0-9_]+/)&&C.forEach(function(N,U){R=L+N.length,S>=L&&S<=R&&(u=N,T.selection.clearSelection(),T.moveCursorTo(h,L+$),T.selection.selectTo(h,R+$)),L=R});for(var _=this.$toggleWordPairs,M,O=0;O<_.length;O++)for(var D=_[O],B=0;B<=1;B++){var F=+!B,I=u.match(new RegExp("^\\s?_?("+a.escapeRegExp(D[B])+")\\s?$","i"));if(I){var P=u.match(new RegExp("([_]|^|\\s)("+a.escapeRegExp(I[1])+")($|\\s)","g"));P&&(M=u.replace(new RegExp(a.escapeRegExp(D[B]),"i"),function(N){var U=D[F];return N.toUpperCase()==N?U=U.toUpperCase():N.charAt(0).toUpperCase()==N.charAt(0)&&(U=U.substr(0,0)+D[F].charAt(0).toUpperCase()+U.substr(1)),U}),this.insert(M),M="")}}},this.findLinkAt=function(h,s){var u,$,C=this.session.getLine(h),S=C.split(/((?:https?|ftp):\/\/[\S]+)/),L=s;L<0&&(L=0);var R=0,T=0,_;try{for(var M=E(S),O=M.next();!O.done;O=M.next()){var D=O.value;if(T=R+D.length,L>=R&&L<=T&&D.match(/((?:https?|ftp):\/\/[\S]+)/)){_=D.replace(/[\s:.,'";}\]]+$/,"");break}R=T}}catch(B){u={error:B}}finally{try{O&&!O.done&&($=M.return)&&$.call(M)}finally{if(u)throw u.error}}return _},this.openLink=function(){var h=this.selection.getCursor(),s=this.findLinkAt(h.row,h.column);return s&&window.open(s,"_blank"),s!=null},this.removeLines=function(){var h=this.$getSelectedRows();this.session.removeFullLines(h.first,h.last),this.clearSelection()},this.duplicateSelection=function(){var h=this.selection,s=this.session,u=h.getRange(),$=h.isBackwards();if(u.isEmpty()){var C=u.start.row;s.duplicateLines(C,C)}else{var S=$?u.start:u.end,L=s.insert(S,s.getTextRange(u),!1);u.start=S,u.end=L,h.setSelectionRange(u,$)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(h,s,u){return this.session.moveText(h,s,u)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(h,s){var u,$,C=this.selection;if(!C.inMultiSelectMode||this.inVirtualSelectionMode){var S=C.toOrientedRange();u=this.$getSelectedRows(S),$=this.session.$moveLines(u.first,u.last,s?0:h),s&&h==-1&&($=0),S.moveBy($,0),C.fromOrientedRange(S)}else{var L=C.rangeList.ranges;C.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var R=0,T=0,_=L.length,M=0;M<_;M++){var O=M;L[M].moveBy(R,0),u=this.$getSelectedRows(L[M]);for(var D=u.first,B=u.last;++M<_;){T&&L[M].moveBy(T,0);var F=this.$getSelectedRows(L[M]);if(s&&F.first!=B)break;if(!s&&F.first>B+1)break;B=F.last}for(M--,R=this.session.$moveLines(D,B,s?0:h),s&&h==-1&&(O=M+1);O<=M;)L[O].moveBy(R,0),O++;s||(R=0),T+=R}C.fromOrientedRange(C.ranges[0]),C.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(h){return h=(h||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(h.start.row),last:this.session.getRowFoldEnd(h.end.row)}},this.onCompositionStart=function(h){this.renderer.showComposition(h)},this.onCompositionUpdate=function(h){this.renderer.setCompositionText(h)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(h){return h>=this.getFirstVisibleRow()&&h<=this.getLastVisibleRow()},this.isRowFullyVisible=function(h){return h>=this.renderer.getFirstFullyVisibleRow()&&h<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(h,s){var u=this.renderer,$=this.renderer.layerConfig,C=h*Math.floor($.height/$.lineHeight);s===!0?this.selection.$moveSelection(function(){this.moveCursorBy(C,0)}):s===!1&&(this.selection.moveCursorBy(C,0),this.selection.clearSelection());var S=u.scrollTop;u.scrollBy(0,C*$.lineHeight),s!=null&&u.scrollCursorIntoView(null,.5),u.animateScrolling(S)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(h){this.renderer.scrollToRow(h)},this.scrollToLine=function(h,s,u,$){this.renderer.scrollToLine(h,s,u,$)},this.centerSelection=function(){var h=this.getSelectionRange(),s={row:Math.floor(h.start.row+(h.end.row-h.start.row)/2),column:Math.floor(h.start.column+(h.end.column-h.start.column)/2)};this.renderer.alignCursor(s,.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.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(h,s){this.selection.moveCursorTo(h,s)},this.moveCursorToPosition=function(h){this.selection.moveCursorToPosition(h)},this.jumpToMatching=function(h,s){var u=this.getCursorPosition(),$=new l(this.session,u.row,u.column),C=$.getCurrentToken(),S=0;C&&C.type.indexOf("tag-name")!==-1&&(C=$.stepBackward());var L=C||$.stepForward();if(!!L){var R,T=!1,_={},M=u.column-L.start,O,D={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(L.value.match(/[{}()\[\]]/g)){for(;M<L.value.length&&!T;M++)if(!!D[L.value[M]])switch(O=D[L.value[M]]+"."+L.type.replace("rparen","lparen"),isNaN(_[O])&&(_[O]=0),L.value[M]){case"(":case"[":case"{":_[O]++;break;case")":case"]":case"}":_[O]--,_[O]===-1&&(R="bracket",T=!0);break}}else L.type.indexOf("tag-name")!==-1&&(isNaN(_[L.value])&&(_[L.value]=0),C.value==="<"&&S>1?_[L.value]++:C.value==="</"&&_[L.value]--,_[L.value]===-1&&(R="tag",T=!0));T||(C=L,S++,L=$.stepForward(),M=0)}while(L&&!T);if(!!R){var B,F;if(R==="bracket")B=this.session.getBracketRange(u),B||(B=new d($.getCurrentTokenRow(),$.getCurrentTokenColumn()+M-1,$.getCurrentTokenRow(),$.getCurrentTokenColumn()+M-1),F=B.start,(s||F.row===u.row&&Math.abs(F.column-u.column)<2)&&(B=this.session.getBracketRange(F)));else if(R==="tag"){if(!L||L.type.indexOf("tag-name")===-1)return;if(B=new d($.getCurrentTokenRow(),$.getCurrentTokenColumn()-2,$.getCurrentTokenRow(),$.getCurrentTokenColumn()-2),B.compare(u.row,u.column)===0){var I=this.session.getMatchingTags(u);I&&(I.openTag.contains(u.row,u.column)?(B=I.closeTag,F=B.start):(B=I.openTag,I.closeTag.start.row===u.row&&I.closeTag.start.column===u.column?F=B.end:F=B.start))}F=F||B.start}F=B&&B.cursor||F,F&&(h?B&&s?this.selection.setRange(B):B&&B.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(F.row,F.column):this.selection.moveTo(F.row,F.column))}}},this.gotoLine=function(h,s,u){this.selection.clearSelection(),this.session.unfold({row:h-1,column:s||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(h-1,s||0),this.isRowFullyVisible(h-1)||this.scrollToLine(h-1,!0,u)},this.navigateTo=function(h,s){this.selection.moveTo(h,s)},this.navigateUp=function(h){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var s=this.selection.anchor.getPosition();return this.moveCursorToPosition(s)}this.selection.clearSelection(),this.selection.moveCursorBy(-h||-1,0)},this.navigateDown=function(h){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var s=this.selection.anchor.getPosition();return this.moveCursorToPosition(s)}this.selection.clearSelection(),this.selection.moveCursorBy(h||1,0)},this.navigateLeft=function(h){if(this.selection.isEmpty())for(h=h||1;h--;)this.selection.moveCursorLeft();else{var s=this.getSelectionRange().start;this.moveCursorToPosition(s)}this.clearSelection()},this.navigateRight=function(h){if(this.selection.isEmpty())for(h=h||1;h--;)this.selection.moveCursorRight();else{var s=this.getSelectionRange().end;this.moveCursorToPosition(s)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(h,s){s&&this.$search.set(s);var u=this.$search.find(this.session),$=0;return u&&(this.$tryReplace(u,h)&&($=1),this.selection.setSelectionRange(u),this.renderer.scrollSelectionIntoView(u.start,u.end)),$},this.replaceAll=function(h,s){s&&this.$search.set(s);var u=this.$search.findAll(this.session),$=0;if(!u.length)return $;var C=this.getSelectionRange();this.selection.moveTo(0,0);for(var S=u.length-1;S>=0;--S)this.$tryReplace(u[S],h)&&$++;return this.selection.setSelectionRange(C),$},this.$tryReplace=function(h,s){var u=this.session.getTextRange(h);return s=this.$search.replace(u,s),s!==null?(h.end=this.session.replace(h,s),h):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(h,s,u){s||(s={}),typeof h=="string"||h instanceof RegExp?s.needle=h:typeof h=="object"&&A.mixin(s,h);var $=this.selection.getRange();s.needle==null&&(h=this.session.getTextRange($)||this.$search.$options.needle,h||($=this.session.getWordRange($.start.row,$.start.column),h=this.session.getTextRange($)),this.$search.set({needle:h})),this.$search.set(s),s.start||this.$search.set({start:$});var C=this.$search.find(this.session);if(s.preventScroll)return C;if(C)return this.revealRange(C,u),C;s.backwards?$.start=$.end:$.end=$.start,this.selection.setRange($)},this.findNext=function(h,s){this.find({skipCurrent:!0,backwards:!1},h,s)},this.findPrevious=function(h,s){this.find(h,{skipCurrent:!0,backwards:!0},s)},this.revealRange=function(h,s){this.session.unfold(h),this.selection.setSelectionRange(h);var u=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(h.start,h.end,.5),s!==!1&&this.renderer.animateScrolling(u)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(h){h.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(h){if(!!h){var s,u=this,$=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var C=this.$scrollAnchor;C.style.cssText="position:absolute",this.container.insertBefore(C,this.container.firstChild);var S=this.on("changeSelection",function(){$=!0}),L=this.renderer.on("beforeRender",function(){$&&(s=u.renderer.container.getBoundingClientRect())}),R=this.renderer.on("afterRender",function(){if($&&s&&(u.isFocused()||u.searchBox&&u.searchBox.isFocused())){var T=u.renderer,_=T.$cursorLayer.$pixelPos,M=T.layerConfig,O=_.top-M.offset;_.top>=0&&O+s.top<0?$=!0:_.top<M.height&&_.top+s.top+M.lineHeight>window.innerHeight?$=!1:$=null,$!=null&&(C.style.top=O+"px",C.style.left=_.left+"px",C.style.height=M.lineHeight+"px",C.scrollIntoView($)),$=s=null}});this.setAutoScrollEditorIntoView=function(T){T||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",S),this.renderer.off("afterRender",R),this.renderer.off("beforeRender",L))}}},this.$resetCursorStyle=function(){var h=this.$cursorStyle||"ace",s=this.renderer.$cursorLayer;!s||(s.setSmoothBlinking(/smooth/.test(h)),s.isBlinking=!this.$readOnly&&h!="wide",m.setCssClass(s.element,"ace_slim-cursors",/slim/.test(h)))},this.prompt=function(h,s,u){var $=this;w.loadModule("./ext/prompt",function(C){C.prompt($,h,s,u)})}}.call(b.prototype),w.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(h){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:h})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(h){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(h){this.textInput.setReadOnly(h),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(h){this.textInput.setCopyWithEmptySelection(h)},initialValue:!1},cursorStyle:{set:function(h){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(h){this.setAutoScrollEditorIntoView(h)}},keyboardHandler:{set:function(h){this.setKeyboardHandler(h)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(h){this.session.setValue(h)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(h){this.setSession(h)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(h){this.renderer.$gutterLayer.setShowLineNumbers(h),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),h&&this.$relativeLineNumbers?f.attach(this):f.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(h){this.$showLineNumbers&&h?f.attach(this):f.detach(this)}},placeholder:{set:function(h){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var s=this.session&&(this.renderer.$composition||this.getValue());if(s&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),m.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!s&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),m.addCssClass(this.container,"ace_hasPlaceholder");var u=m.createElement("div");u.className="ace_placeholder",u.textContent=this.$placeholder||"",this.renderer.placeholderNode=u,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!s&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var f={getText:function(h,s){return(Math.abs(h.selection.lead.row-s)||s+1+(s<9?"\xB7":""))+""},getWidth:function(h,s,u){return Math.max(s.toString().length,(u.lastRow+1).toString().length,2)*u.characterWidth},update:function(h,s){s.renderer.$loop.schedule(s.renderer.CHANGE_GUTTER)},attach:function(h){h.renderer.$gutterLayer.$renderer=this,h.on("changeSelection",this.update),this.update(null,h)},detach:function(h){h.renderer.$gutterLayer.$renderer==this&&(h.renderer.$gutterLayer.$renderer=null),h.off("changeSelection",this.update),this.update(null,h)}};k.Editor=b}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(x,k,W){var E=function(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()};(function(){this.addSession=function(l){this.$session=l},this.add=function(l,g,b){if(!this.$fromUndo&&l!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),g===!1||!this.lastDeltas){this.lastDeltas=[];var f=this.$undoStack.length;f>this.$undoDepth-1&&this.$undoStack.splice(0,f-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),l.id=this.$rev=++this.$maxRev}(l.action=="remove"||l.action=="insert")&&(this.$lastDelta=l),this.lastDeltas.push(l)}},this.addSelection=function(l,g){this.selections.push({value:l,rev:g||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(l,g){g==null&&(g=this.$rev+1);for(var b=this.$undoStack,f=b.length;f--;){var h=b[f][0];if(h.id<=l)break;h.id<g&&(h.ignore=!0)}this.lastDeltas=null},this.getSelection=function(l,g){for(var b=this.selections,f=b.length;f--;){var h=b[f];if(h.rev<l)return g&&(h=b[f+1]),h}},this.getRevision=function(){return this.$rev},this.getDeltas=function(l,g){g==null&&(g=this.$rev+1);for(var b=this.$undoStack,f=null,h=0,s=b.length;s--;){var u=b[s][0];if(u.id<g&&!f&&(f=s+1),u.id<=l){h=s+1;break}}return b.slice(h,f)},this.getChangedRanges=function(l,g){g==null&&(g=this.$rev+1)},this.getChangedLines=function(l,g){g==null&&(g=this.$rev+1)},this.undo=function(l,g){this.lastDeltas=null;var b=this.$undoStack;if(!!A(b,b.length)){l||(l=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var f=b.pop(),h=null;return f&&(h=l.undoChanges(f,g),this.$redoStack.push(f),this.$syncRev()),this.$fromUndo=!1,h}},this.redo=function(l,g){if(this.lastDeltas=null,l||(l=this.$session),this.$fromUndo=!0,this.$redoStackBaseRev!=this.$rev){var b=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);w(this.$redoStack,b),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(s){s[0].id=++this.$maxRev},this)}var f=this.$redoStack.pop(),h=null;return f&&(h=l.redoChanges(f,g),this.$undoStack.push(f),this.$syncRev()),this.$fromUndo=!1,h},this.$syncRev=function(){var l=this.$undoStack,g=l[l.length-1],b=g&&g[0].id||0;this.$redoStackBaseRev=b,this.$rev=b},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(l){l==null&&(l=this.$rev),this.mark=l},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(l){return l?e(l):e(this.$undoStack)+`
- ---
- `+e(this.$redoStack)}}).call(E.prototype);function A(l,g){for(var b=g;b--;){var f=l[b];if(f&&!f[0].ignore){for(;b<g-1;){var h=r(l[b],l[b+1]);l[b]=h[0],l[b+1]=h[1],b++}return!0}}}var m=x("./range").Range,a=m.comparePoints;m.comparePoints;function c(l){return{row:l.row,column:l.column}}function t(l){return{start:c(l.start),end:c(l.end),action:l.action,lines:l.lines.slice()}}function e(l){if(l=l||this,Array.isArray(l))return l.map(e).join(`
- `);var g="";return l.action?(g=l.action=="insert"?"+":"-",g+="["+l.lines+"]"):l.value&&(Array.isArray(l.value)?g=l.value.map(i).join(`
- `):g=i(l.value)),l.start&&(g+=i(l)),(l.id||l.rev)&&(g+=" ("+(l.id||l.rev)+")"),g}function i(l){return l.start.row+":"+l.start.column+"=>"+l.end.row+":"+l.end.column}function n(l,g){var b=l.action=="insert",f=g.action=="insert";if(b&&f)if(a(g.start,l.end)>=0)d(g,l,-1);else if(a(g.start,l.start)<=0)d(l,g,1);else return null;else if(b&&!f)if(a(g.start,l.end)>=0)d(g,l,-1);else if(a(g.end,l.start)<=0)d(l,g,-1);else return null;else if(!b&&f)if(a(g.start,l.start)>=0)d(g,l,1);else if(a(g.start,l.start)<=0)d(l,g,1);else return null;else if(!b&&!f)if(a(g.start,l.start)>=0)d(g,l,1);else if(a(g.end,l.start)<=0)d(l,g,-1);else return null;return[g,l]}function r(l,g){for(var b=l.length;b--;)for(var f=0;f<g.length;f++)if(!n(l[b],g[f])){for(;b<l.length;){for(;f--;)n(g[f],l[b]);f=g.length,b++}return[l,g]}return l.selectionBefore=g.selectionBefore=l.selectionAfter=g.selectionAfter=null,[g,l]}function o(l,g){var b=l.action=="insert",f=g.action=="insert";if(b&&f)a(l.start,g.start)<0?d(g,l,1):d(l,g,1);else if(b&&!f)a(l.start,g.end)>=0?d(l,g,-1):(a(l.start,g.start)<=0||d(l,m.fromPoints(g.start,l.start),-1),d(g,l,1));else if(!b&&f)a(g.start,l.end)>=0?d(g,l,-1):(a(g.start,l.start)<=0||d(g,m.fromPoints(l.start,g.start),-1),d(l,g,1));else if(!b&&!f)if(a(g.start,l.end)>=0)d(g,l,-1);else if(a(g.end,l.start)<=0)d(l,g,-1);else{var h,s;return a(l.start,g.start)<0&&(h=l,l=v(l,g.start)),a(l.end,g.end)>0&&(s=v(l,g.end)),p(g.end,l.start,l.end,-1),s&&!h&&(l.lines=s.lines,l.start=s.start,l.end=s.end,s=l),[g,h,s].filter(Boolean)}return[g,l]}function d(l,g,b){p(l.start,g.start,g.end,b),p(l.end,g.start,g.end,b)}function p(l,g,b,f){l.row==(f==1?g:b).row&&(l.column+=f*(b.column-g.column)),l.row+=f*(b.row-g.row)}function v(l,g){var b=l.lines,f=l.end;l.end=c(g);var h=l.end.row-l.start.row,s=b.splice(h,b.length),u=h?g.column:g.column-l.start.column;b.push(s[0].substring(0,u)),s[0]=s[0].substr(u);var $={start:c(g),end:f,lines:s,action:l.action};return $}function y(l,g){g=t(g);for(var b=l.length;b--;){for(var f=l[b],h=0;h<f.length;h++){var s=f[h],u=o(s,g);g=u[0],u.length!=2&&(u[2]?(f.splice(h+1,1,u[1],u[2]),h++):u[1]||(f.splice(h,1),h--))}f.length||l.splice(b,1)}return l}function w(l,g){for(var b=0;b<g.length;b++)for(var f=g[b],h=0;h<f.length;h++)y(l,f[h])}k.UndoManager=E}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(x,k,W){var E=x("../lib/dom"),A=function(m,a){this.element=m,this.canvasHeight=a||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(m){E.translate(this.element,0,-(m.firstRowScreen*m.lineHeight%this.canvasHeight)-m.offset*this.$offsetCoefficient)},this.pageChanged=function(m,a){return Math.floor(m.firstRowScreen*m.lineHeight/this.canvasHeight)!==Math.floor(a.firstRowScreen*a.lineHeight/this.canvasHeight)},this.computeLineTop=function(m,a,c){var t=a.firstRowScreen*a.lineHeight,e=Math.floor(t/this.canvasHeight),i=c.documentToScreenRow(m,0)*a.lineHeight;return i-e*this.canvasHeight},this.computeLineHeight=function(m,a,c){return a.lineHeight*c.getRowLineCount(m)},this.getLength=function(){return this.cells.length},this.get=function(m){return this.cells[m]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(m){if(Array.isArray(m)){this.cells.push.apply(this.cells,m);for(var a=E.createFragment(this.element),c=0;c<m.length;c++)a.appendChild(m[c].element);this.element.appendChild(a)}else this.cells.push(m),this.element.appendChild(m.element)},this.unshift=function(m){if(Array.isArray(m)){this.cells.unshift.apply(this.cells,m);for(var a=E.createFragment(this.element),c=0;c<m.length;c++)a.appendChild(m[c].element);this.element.firstChild?this.element.insertBefore(a,this.element.firstChild):this.element.appendChild(a)}else this.cells.unshift(m),this.element.insertAdjacentElement("afterbegin",m.element)},this.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},this.$cacheCell=function(m){!m||(m.element.remove(),this.cellCache.push(m))},this.createCell=function(m,a,c,t){var e=this.cellCache.pop();if(!e){var i=E.createElement("div");t&&t(i),this.element.appendChild(i),e={element:i,text:"",row:m}}return e.row=m,e}}).call(A.prototype),k.Lines=A}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines"],function(x,k,W){var E=x("../lib/dom"),A=x("../lib/oop"),m=x("../lib/lang"),a=x("../lib/event_emitter").EventEmitter,c=x("./lines").Lines,t=function(i){this.element=E.createElement("div"),this.element.className="ace_layer ace_gutter-layer",i.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new c(this.element),this.$lines.$offsetCoefficient=1};(function(){A.implement(this,a),this.setSession=function(i){this.session&&this.session.off("change",this.$updateAnnotations),this.session=i,i&&i.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(i,n){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(i,n)},this.removeGutterDecoration=function(i,n){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(i,n)},this.setAnnotations=function(i){this.$annotations=[];for(var n=0;n<i.length;n++){var r=i[n],o=r.row,d=this.$annotations[o];d||(d=this.$annotations[o]={text:[]});var p=r.text;p=p?m.escapeHTML(p):r.html||"",d.text.indexOf(p)===-1&&d.text.push(p);var v=r.type,y=r.className;y?d.className=y:v=="error"?d.className=" ace_error":v=="warning"&&d.className!=" ace_error"?d.className=" ace_warning":v=="info"&&!d.className&&(d.className=" ace_info")}},this.$updateAnnotations=function(i){if(!!this.$annotations.length){var n=i.start.row,r=i.end.row-n;if(r!==0)if(i.action=="remove")this.$annotations.splice(n,r+1,null);else{var o=new Array(r+1);o.unshift(n,1),this.$annotations.splice.apply(this.$annotations,o)}}},this.update=function(i){this.config=i;var n=this.session,r=i.firstRow,o=Math.min(i.lastRow+i.gutterOffset,n.getLength()-1);this.oldLastRow=o,this.config=i,this.$lines.moveContainer(i),this.$updateCursorRow();for(var d=n.getNextFoldLine(r),p=d?d.start.row:1/0,v=null,y=-1,w=r;;){if(w>p&&(w=d.end.row+1,d=n.getNextFoldLine(w,d),p=d?d.start.row:1/0),w>o){for(;this.$lines.getLength()>y+1;)this.$lines.pop();break}v=this.$lines.get(++y),v?v.row=w:(v=this.$lines.createCell(w,i,this.session,e),this.$lines.push(v)),this.$renderCell(v,i,d,w),w++}this._signal("afterRender"),this.$updateGutterWidth(i)},this.$updateGutterWidth=function(i){var n=this.session,r=n.gutterRenderer||this.$renderer,o=n.$firstLineNumber,d=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||n.$useWrapMode)&&(d=n.getLength()+o-1);var p=r?r.getWidth(n,d,i):d.toString().length*i.characterWidth,v=this.$padding||this.$computePadding();p+=v.left+v.right,p!==this.gutterWidth&&!isNaN(p)&&(this.gutterWidth=p,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",p))},this.$updateCursorRow=function(){if(!!this.$highlightGutterLine){var i=this.session.selection.getCursor();this.$cursorRow!==i.row&&(this.$cursorRow=i.row)}},this.updateLineHighlight=function(){if(!!this.$highlightGutterLine){var i=this.session.selection.cursor.row;if(this.$cursorRow=i,!(this.$cursorCell&&this.$cursorCell.row==i)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var n=this.$lines.cells;this.$cursorCell=null;for(var r=0;r<n.length;r++){var o=n[r];if(o.row>=this.$cursorRow){if(o.row>this.$cursorRow){var d=this.session.getFoldLine(this.$cursorRow);if(r>0&&d&&d.start.row==n[r-1].row)o=n[r-1];else break}o.element.className="ace_gutter-active-line "+o.element.className,this.$cursorCell=o;break}}}}},this.scrollLines=function(i){var n=this.config;if(this.config=i,this.$updateCursorRow(),this.$lines.pageChanged(n,i))return this.update(i);this.$lines.moveContainer(i);var r=Math.min(i.lastRow+i.gutterOffset,this.session.getLength()-1),o=this.oldLastRow;if(this.oldLastRow=r,!n||o<i.firstRow)return this.update(i);if(r<n.firstRow)return this.update(i);if(n.firstRow<i.firstRow)for(var d=this.session.getFoldedRowCount(n.firstRow,i.firstRow-1);d>0;d--)this.$lines.shift();if(o>r)for(var d=this.session.getFoldedRowCount(r+1,o);d>0;d--)this.$lines.pop();i.firstRow<n.firstRow&&this.$lines.unshift(this.$renderLines(i,i.firstRow,n.firstRow-1)),r>o&&this.$lines.push(this.$renderLines(i,o+1,r)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(i)},this.$renderLines=function(i,n,r){for(var o=[],d=n,p=this.session.getNextFoldLine(d),v=p?p.start.row:1/0;d>v&&(d=p.end.row+1,p=this.session.getNextFoldLine(d,p),v=p?p.start.row:1/0),!(d>r);){var y=this.$lines.createCell(d,i,this.session,e);this.$renderCell(y,i,p,d),o.push(y),d++}return o},this.$renderCell=function(i,n,r,o){var d=i.element,p=this.session,v=d.childNodes[0],y=d.childNodes[1],w=p.$firstLineNumber,l=p.$breakpoints,g=p.$decorations,b=p.gutterRenderer||this.$renderer,f=this.$showFoldWidgets&&p.foldWidgets,h=r?r.start.row:Number.MAX_VALUE,s="ace_gutter-cell ";if(this.$highlightGutterLine&&(o==this.$cursorRow||r&&o<this.$cursorRow&&o>=h&&this.$cursorRow<=r.end.row)&&(s+="ace_gutter-active-line ",this.$cursorCell!=i&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=i)),l[o]&&(s+=l[o]),g[o]&&(s+=g[o]),this.$annotations[o]&&(s+=this.$annotations[o].className),d.className!=s&&(d.className=s),f){var u=f[o];u==null&&(u=f[o]=p.getFoldWidget(o))}if(u){var s="ace_fold-widget ace_"+u;u=="start"&&o==h&&o<r.end.row?s+=" ace_closed":s+=" ace_open",y.className!=s&&(y.className=s);var $=n.lineHeight+"px";E.setStyle(y.style,"height",$),E.setStyle(y.style,"display","inline-block")}else y&&E.setStyle(y.style,"display","none");var C=(b?b.getText(p,o):o+w).toString();return C!==v.data&&(v.data=C),E.setStyle(i.element.style,"height",this.$lines.computeLineHeight(o,n,p)+"px"),E.setStyle(i.element.style,"top",this.$lines.computeLineTop(o,n,p)+"px"),i.text=C,i},this.$fixedWidth=!1,this.$highlightGutterLine=!0,this.$renderer="",this.setHighlightGutterLine=function(i){this.$highlightGutterLine=i},this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(i){this.$renderer=!i&&{getWidth:function(){return 0},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(i){i?E.addCssClass(this.element,"ace_folding-enabled"):E.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=i,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var i=E.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(i.borderLeftWidth)||0)+(parseInt(i.paddingLeft)||0)+1,this.$padding.right=(parseInt(i.borderRightWidth)||0)+(parseInt(i.paddingRight)||0),this.$padding},this.getRegion=function(i){var n=this.$padding||this.$computePadding(),r=this.element.getBoundingClientRect();if(i.x<n.left+r.left)return"markers";if(this.$showFoldWidgets&&i.x>r.right-n.right)return"foldWidgets"}}).call(t.prototype);function e(i){var n=document.createTextNode("");i.appendChild(n);var r=E.createElement("span");return i.appendChild(r),i}k.Gutter=t}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(x,k,W){var E=x("../range").Range,A=x("../lib/dom"),m=function(a){this.element=A.createElement("div"),this.element.className="ace_layer ace_marker-layer",a.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(c){this.$padding=c},this.setSession=function(c){this.session=c},this.setMarkers=function(c){this.markers=c},this.elt=function(c,t){var e=this.i!=-1&&this.element.childNodes[this.i];e?this.i++:(e=document.createElement("div"),this.element.appendChild(e),this.i=-1),e.style.cssText=t,e.className=c},this.update=function(c){if(!!c){this.config=c,this.i=0;var t;for(var e in this.markers){var i=this.markers[e];if(!i.range){i.update(t,this,this.session,c);continue}var n=i.range.clipRows(c.firstRow,c.lastRow);if(!n.isEmpty())if(n=n.toScreenRange(this.session),i.renderer){var r=this.$getTop(n.start.row,c),o=this.$padding+n.start.column*c.characterWidth;i.renderer(t,n,o,r,c)}else i.type=="fullLine"?this.drawFullLineMarker(t,n,i.clazz,c):i.type=="screenLine"?this.drawScreenLineMarker(t,n,i.clazz,c):n.isMultiLine()?i.type=="text"?this.drawTextMarker(t,n,i.clazz,c):this.drawMultiLineMarker(t,n,i.clazz,c):this.drawSingleLineMarker(t,n,i.clazz+" ace_start ace_br15",c)}if(this.i!=-1)for(;this.i<this.element.childElementCount;)this.element.removeChild(this.element.lastChild)}},this.$getTop=function(c,t){return(c-t.firstRowScreen)*t.lineHeight};function a(c,t,e,i){return(c?1:0)|(t?2:0)|(e?4:0)|(i?8:0)}this.drawTextMarker=function(c,t,e,i,n){for(var r=this.session,o=t.start.row,d=t.end.row,p=o,v=0,y=0,w=r.getScreenLastRowColumn(p),l=new E(p,t.start.column,p,y);p<=d;p++)l.start.row=l.end.row=p,l.start.column=p==o?t.start.column:r.getRowWrapIndent(p),l.end.column=w,v=y,y=w,w=p+1<d?r.getScreenLastRowColumn(p+1):p==d?0:t.end.column,this.drawSingleLineMarker(c,l,e+(p==o?" ace_start":"")+" ace_br"+a(p==o||p==o+1&&t.start.column,v<y,y>w,p==d),i,p==d?0:1,n)},this.drawMultiLineMarker=function(c,t,e,i,n){var r=this.$padding,o=i.lineHeight,d=this.$getTop(t.start.row,i),p=r+t.start.column*i.characterWidth;if(n=n||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var v=t.clone();v.end.row=v.start.row,v.end.column=this.session.getLine(v.start.row).length,this.drawBidiSingleLineMarker(c,v,e+" ace_br1 ace_start",i,null,n)}else this.elt(e+" ace_br1 ace_start","height:"+o+"px;right:0;top:"+d+"px;left:"+p+"px;"+(n||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var v=t.clone();v.start.row=v.end.row,v.start.column=0,this.drawBidiSingleLineMarker(c,v,e+" ace_br12",i,null,n)}else{d=this.$getTop(t.end.row,i);var y=t.end.column*i.characterWidth;this.elt(e+" ace_br12","height:"+o+"px;width:"+y+"px;top:"+d+"px;left:"+r+"px;"+(n||""))}if(o=(t.end.row-t.start.row-1)*i.lineHeight,!(o<=0)){d=this.$getTop(t.start.row+1,i);var w=(t.start.column?1:0)|(t.end.column?0:8);this.elt(e+(w?" ace_br"+w:""),"height:"+o+"px;right:0;top:"+d+"px;left:"+r+"px;"+(n||""))}},this.drawSingleLineMarker=function(c,t,e,i,n,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(c,t,e,i,n,r);var o=i.lineHeight,d=(t.end.column+(n||0)-t.start.column)*i.characterWidth,p=this.$getTop(t.start.row,i),v=this.$padding+t.start.column*i.characterWidth;this.elt(e,"height:"+o+"px;width:"+d+"px;top:"+p+"px;left:"+v+"px;"+(r||""))},this.drawBidiSingleLineMarker=function(c,t,e,i,n,r){var o=i.lineHeight,d=this.$getTop(t.start.row,i),p=this.$padding,v=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);v.forEach(function(y){this.elt(e,"height:"+o+"px;width:"+(y.width+(n||0))+"px;top:"+d+"px;left:"+(p+y.left)+"px;"+(r||""))},this)},this.drawFullLineMarker=function(c,t,e,i,n){var r=this.$getTop(t.start.row,i),o=i.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,i)-r),this.elt(e,"height:"+o+"px;top:"+r+"px;left:0;right:0;"+(n||""))},this.drawScreenLineMarker=function(c,t,e,i,n){var r=this.$getTop(t.start.row,i),o=i.lineHeight;this.elt(e,"height:"+o+"px;top:"+r+"px;left:0;right:0;"+(n||""))}}).call(m.prototype),k.Marker=m}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(x,k,W){var E=x("../lib/oop"),A=x("../lib/dom"),m=x("../lib/lang"),a=x("./lines").Lines,c=x("../lib/event_emitter").EventEmitter,t=function(e){this.dom=A,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new a(this.element)};(function(){E.implement(this,c),this.EOF_CHAR="\xB6",this.EOL_CHAR_LF="\xAC",this.EOL_CHAR_CRLF="\xA4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\xB7",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.MAX_CHUNK_LENGTH=250,this.$updateEolChar=function(){var e=this.session.doc,i=e.getNewLineCharacter()==`
- `&&e.getNewLineMode()!="windows",n=i?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(i){this._signal("changeCharacterSize",i)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$highlightIndentGuides=!0,this.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var i=this.$tabStrings=[0],n=1;n<e+1;n++)if(this.showTabs){var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_tab",r.textContent=m.stringRepeat(this.TAB_CHAR,n),i.push(r)}else i.push(this.dom.createTextNode(m.stringRepeat(" ",n),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var o="ace_indent-guide",d=this.showSpaces?" ace_invisible ace_invisible_space":"",p=this.showSpaces?m.stringRepeat(this.SPACE_CHAR,this.tabSize):m.stringRepeat(" ",this.tabSize),v=this.showTabs?" ace_invisible ace_invisible_tab":"",y=this.showTabs?m.stringRepeat(this.TAB_CHAR,this.tabSize):p,r=this.dom.createElement("span");r.className=o+d,r.textContent=p,this.$tabStrings[" "]=r;var r=this.dom.createElement("span");r.className=o+v,r.textContent=y,this.$tabStrings[" "]=r}},this.updateLines=function(e,i,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;for(var r=Math.max(i,e.firstRow),o=Math.min(n,e.lastRow),d=this.element.childNodes,p=0,y=e.firstRow;y<r;y++){var w=this.session.getFoldLine(y);if(w)if(w.containsRow(r)){r=w.start.row;break}else y=w.end.row;p++}for(var v=!1,y=r,w=this.session.getNextFoldLine(y),l=w?w.start.row:1/0;y>l&&(y=w.end.row+1,w=this.session.getNextFoldLine(y,w),l=w?w.start.row:1/0),!(y>o);){var g=d[p++];if(g){this.dom.removeChildren(g),this.$renderLine(g,y,y==l?w:!1),v&&(g.style.top=this.$lines.computeLineTop(y,e,this.session)+"px");var b=e.lineHeight*this.session.getRowLength(y)+"px";g.style.height!=b&&(v=!0,g.style.height=b)}y++}if(v)for(;p<this.$lines.cells.length;){var f=this.$lines.cells[p++];f.element.style.top=this.$lines.computeLineTop(f.row,e,this.session)+"px"}},this.scrollLines=function(e){var i=this.config;if(this.config=e,this.$lines.pageChanged(i,e))return this.update(e);this.$lines.moveContainer(e);var n=e.lastRow,r=i?i.lastRow:-1;if(!i||r<e.firstRow)return this.update(e);if(n<i.firstRow)return this.update(e);if(!i||i.lastRow<e.firstRow)return this.update(e);if(e.lastRow<i.firstRow)return this.update(e);if(i.firstRow<e.firstRow)for(var o=this.session.getFoldedRowCount(i.firstRow,e.firstRow-1);o>0;o--)this.$lines.shift();if(i.lastRow>e.lastRow)for(var o=this.session.getFoldedRowCount(e.lastRow+1,i.lastRow);o>0;o--)this.$lines.pop();e.firstRow<i.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,i.firstRow-1)),e.lastRow>i.lastRow&&this.$lines.push(this.$renderLinesFragment(e,i.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},this.$renderLinesFragment=function(e,i,n){for(var r=[],o=i,d=this.session.getNextFoldLine(o),p=d?d.start.row:1/0;o>p&&(o=d.end.row+1,d=this.session.getNextFoldLine(o,d),p=d?d.start.row:1/0),!(o>n);){var v=this.$lines.createCell(o,e,this.session),y=v.element;this.dom.removeChildren(y),A.setStyle(y.style,"height",this.$lines.computeLineHeight(o,e,this.session)+"px"),A.setStyle(y.style,"top",this.$lines.computeLineTop(o,e,this.session)+"px"),this.$renderLine(y,o,o==p?d:!1),this.$useLineGroups()?y.className="ace_line_group":y.className="ace_line",r.push(v),o++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var i=e.firstRow,n=e.lastRow,r=this.$lines;r.getLength();)r.pop();r.push(this.$renderLinesFragment(e,i,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderTokenInChunks=function(e,i,n,r){for(var o,d=0;d<r.length;d+=this.MAX_CHUNK_LENGTH){var p=r.substring(d,d+this.MAX_CHUNK_LENGTH),v={type:n.type,value:p};o=this.$renderToken(e,i+d,v,p)}return o},this.$renderToken=function(e,i,n,r){for(var o=this,d=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,p=this.dom.createFragment(this.element),v,y=0;v=d.exec(r);){var w=v[1],l=v[2],g=v[3],b=v[4],f=v[5];if(!(!o.showSpaces&&l)){var h=y!=v.index?r.slice(y,v.index):"";if(y=v.index+v[0].length,h&&p.appendChild(this.dom.createTextNode(h,this.element)),w){var s=o.session.getScreenTabSize(i+v.index);p.appendChild(o.$tabStrings[s].cloneNode(!0)),i+=s-1}else if(l)if(o.showSpaces){var u=this.dom.createElement("span");u.className="ace_invisible ace_invisible_space",u.textContent=m.stringRepeat(o.SPACE_CHAR,l.length),p.appendChild(u)}else p.appendChild(this.com.createTextNode(l,this.element));else if(g){var u=this.dom.createElement("span");u.className="ace_invisible ace_invisible_space ace_invalid",u.textContent=m.stringRepeat(o.SPACE_CHAR,g.length),p.appendChild(u)}else if(b){i+=1;var u=this.dom.createElement("span");u.style.width=o.config.characterWidth*2+"px",u.className=o.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",u.textContent=o.showSpaces?o.SPACE_CHAR:b,p.appendChild(u)}else if(f){i+=1;var u=this.dom.createElement("span");u.style.width=o.config.characterWidth*2+"px",u.className="ace_cjk",u.textContent=f,p.appendChild(u)}}}p.appendChild(this.dom.createTextNode(y?r.slice(y):r,this.element));var u=this.dom.createElement("span");if(!this.$textToken[n.type]){var $="ace_"+n.type.replace(/\./g," ace_");n.type=="fold"&&(u.style.width=n.value.length*this.config.characterWidth+"px"),u.className=$}return u.appendChild(p),e.appendChild(u),i+r.length},this.renderIndentGuide=function(e,i,n){var r=i.search(this.$indentGuideRe);if(r<=0||r>=n)return i;if(i[0]==" "){r-=r%this.tabSize;for(var o=r/this.tabSize,d=0;d<o;d++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return this.$highlightIndentGuide(),i.substr(r)}else if(i[0]==" "){for(var d=0;d<r;d++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return this.$highlightIndentGuide(),i.substr(r)}return this.$highlightIndentGuide(),i},this.$highlightIndentGuide=function(){if(!(!this.$highlightIndentGuides||!this.displayIndentGuides)){this.$highlightIndentGuideMarker={indentLevel:void 0,start:void 0,end:void 0,dir:void 0};var e=this.session.doc.$lines;if(!!e){var i=this.session.selection.getCursor(),n=/^\s*/.exec(this.session.doc.getLine(i.row))[0].length,r=Math.floor(n/this.tabSize);this.$highlightIndentGuideMarker={indentLevel:r,start:i.row};var o=this.session.$bracketHighlight;if(o){for(var d=this.session.$bracketHighlight.ranges,p=0;p<d.length;p++)if(i.row!==d[p].start.row){this.$highlightIndentGuideMarker.end=d[p].start.row,i.row>d[p].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[i.row]!==""&&i.column===e[i.row].length){this.$highlightIndentGuideMarker.dir=1;for(var p=i.row+1;p<e.length;p++){var v=e[p],y=/^\s*/.exec(v)[0].length;if(v!==""&&(this.$highlightIndentGuideMarker.end=p,y<=n))break}}this.$renderHighlightIndentGuide()}}},this.$clearActiveIndentGuide=function(){for(var e=this.$lines.cells,i=0;i<e.length;i++){var n=e[i],r=n.element.childNodes;if(r.length>0){for(var o=0;o<r.length;o++)if(r[o].classList&&r[o].classList.contains("ace_indent-guide-active")){r[o].classList.remove("ace_indent-guide-active");break}}}},this.$setIndentGuideActive=function(e,i){var n=this.session.doc.getLine(e.row);if(n!==""){var r=e.element.childNodes;if(r){var o=r[i-1];o&&o.classList&&o.classList.contains("ace_indent-guide")&&o.classList.add("ace_indent-guide-active")}}},this.$renderHighlightIndentGuide=function(){if(!!this.$lines){var e=this.$lines.cells;this.$clearActiveIndentGuide();var i=this.$highlightIndentGuideMarker.indentLevel;if(i!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var n=0;n<e.length;n++){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row>=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,i)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row<this.$highlightIndentGuideMarker.start){if(r.row<=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,i)}}}},this.$createLineElement=function(e){var i=this.dom.createElement("div");return i.className="ace_line",i.style.height=this.config.lineHeight+"px",i},this.$renderWrappedLine=function(e,i,n){var r=0,o=0,d=n[0],p=0,v=this.$createLineElement();e.appendChild(v);for(var y=0;y<i.length;y++){var w=i[y],l=w.value;if(y==0&&this.displayIndentGuides){if(r=l.length,l=this.renderIndentGuide(v,l,d),!l)continue;r-=l.length}if(r+l.length<d)p=this.$renderTokenInChunks(v,p,w,l),r+=l.length;else{for(;r+l.length>=d;)p=this.$renderTokenInChunks(v,p,w,l.substring(0,d-r)),l=l.substring(d-r),r=d,v=this.$createLineElement(),e.appendChild(v),v.appendChild(this.dom.createTextNode(m.stringRepeat("\xA0",n.indent),this.element)),o++,p=0,d=n[o]||Number.MAX_VALUE;l.length!=0&&(r+=l.length,p=this.$renderTokenInChunks(v,p,w,l))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(v,p,null,"",!0)},this.$renderSimpleLine=function(e,i){for(var n=0,r=0;r<i.length;r++){var o=i[r],d=o.value;if(!(r==0&&this.displayIndentGuides&&(d=this.renderIndentGuide(e,d),!d))){if(n+d.length>this.MAX_LINE_LENGTH){this.$renderOverflowMessage(e,n,o,d);return}n=this.$renderTokenInChunks(e,n,o,d)}}},this.$renderOverflowMessage=function(e,i,n,r,o){n&&this.$renderTokenInChunks(e,i,n,r.slice(0,this.MAX_LINE_LENGTH-i));var d=this.dom.createElement("span");d.className="ace_inline_button ace_keyword ace_toggle_wrap",d.textContent=o?"<hide>":"<click to see more...>",e.appendChild(d)},this.$renderLine=function(e,i,n){if(!n&&n!=!1&&(n=this.session.getFoldLine(i)),n)var r=this.$getFoldLineTokens(i,n);else var r=this.session.getTokens(i);var o=e;if(r.length){var d=this.session.getRowSplitData(i);if(d&&d.length){this.$renderWrappedLine(e,r,d);var o=e.lastChild}else{var o=e;this.$useLineGroups()&&(o=this.$createLineElement(),e.appendChild(o)),this.$renderSimpleLine(o,r)}}else this.$useLineGroups()&&(o=this.$createLineElement(),e.appendChild(o));if(this.showEOL&&o){n&&(i=n.end.row);var p=this.dom.createElement("span");p.className="ace_invisible ace_invisible_eol",p.textContent=i==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,o.appendChild(p)}},this.$getFoldLineTokens=function(e,i){var n=this.session,r=[];function o(p,v,y){for(var w=0,l=0;l+p[w].value.length<v;)if(l+=p[w].value.length,w++,w==p.length)return;if(l!=v){var g=p[w].value.substring(v-l);g.length>y-v&&(g=g.substring(0,y-v)),r.push({type:p[w].type,value:g}),l=v+g.length,w+=1}for(;l<y&&w<p.length;){var g=p[w].value;g.length+l>y?r.push({type:p[w].type,value:g.substring(0,y-l)}):r.push(p[w]),l+=g.length,w+=1}}var d=n.getTokens(e);return i.walk(function(p,v,y,w,l){p!=null?r.push({type:"fold",value:p}):(l&&(d=n.getTokens(v)),d.length&&o(d,w,y))},i.end.row,this.session.getLine(i.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(t.prototype),k.Text=t}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(x,k,W){var E=x("../lib/dom"),A=function(m){this.element=E.createElement("div"),this.element.className="ace_layer ace_cursor-layer",m.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),E.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(m){for(var a=this.cursors,c=a.length;c--;)E.setStyle(a[c].style,"opacity",m?"":"0")},this.$startCssAnimation=function(){for(var m=this.cursors,a=m.length;a--;)m[a].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&E.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,E.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(m){this.$padding=m},this.setSession=function(m){this.session=m},this.setBlinking=function(m){m!=this.isBlinking&&(this.isBlinking=m,this.restartTimer())},this.setBlinkInterval=function(m){m!=this.blinkInterval&&(this.blinkInterval=m,this.restartTimer())},this.setSmoothBlinking=function(m){m!=this.smoothBlinking&&(this.smoothBlinking=m,E.setCssClass(this.element,"ace_smooth-blinking",m),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var m=E.createElement("div");return m.className="ace_cursor",this.element.appendChild(m),this.cursors.push(m),m},this.removeCursor=function(){if(this.cursors.length>1){var m=this.cursors.pop();return m.parentNode.removeChild(m),m}},this.hideCursor=function(){this.isVisible=!1,E.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,E.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var m=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,E.removeCssClass(this.element,"ace_smooth-blinking")),m(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&E.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),E.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var a=function(){this.timeoutId=setTimeout(function(){m(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){m(!0),a()},this.blinkInterval),a()}},this.getPixelPosition=function(m,a){if(!this.config||!this.session)return{left:0,top:0};m||(m=this.session.selection.getCursor());var c=this.session.documentToScreenPosition(m),t=this.$padding+(this.session.$bidiHandler.isBidiRow(c.row,m.row)?this.session.$bidiHandler.getPosLeft(c.column):c.column*this.config.characterWidth),e=(c.row-(a?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:t,top:e}},this.isCursorInView=function(m,a){return m.top>=0&&m.top<a.maxHeight},this.update=function(m){this.config=m;var a=this.session.$selectionMarkers,c=0,t=0;(a===void 0||a.length===0)&&(a=[{cursor:null}]);for(var c=0,e=a.length;c<e;c++){var i=this.getPixelPosition(a[c].cursor,!0);if(!((i.top>m.height+m.offset||i.top<0)&&c>1)){var n=this.cursors[t++]||this.addCursor(),r=n.style;this.drawCursor?this.drawCursor(n,i,m,a[c],this.session):this.isCursorInView(i,m)?(E.setStyle(r,"display","block"),E.translate(n,i.left,i.top),E.setStyle(r,"width",Math.round(m.characterWidth)+"px"),E.setStyle(r,"height",m.lineHeight+"px")):E.setStyle(r,"display","none")}}for(;this.cursors.length>t;)this.removeCursor();var o=this.session.getOverwrite();this.$setOverwrite(o),this.$pixelPos=i,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(m){m!=this.overwrite&&(this.overwrite=m,m?E.addCssClass(this.element,"ace_overwrite-cursors"):E.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(A.prototype),k.Cursor=A}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(x,k,W){var E=x("./lib/oop"),A=x("./lib/dom"),m=x("./lib/event"),a=x("./lib/event_emitter").EventEmitter,c=32768,t=function(n){this.element=A.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=A.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent="\xA0",this.element.appendChild(this.inner),n.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,m.addListener(this.element,"scroll",this.onScroll.bind(this)),m.addListener(this.element,"mousedown",m.preventDefault)};(function(){E.implement(this,a),this.setVisible=function(n){this.element.style.display=n?"":"none",this.isVisible=n,this.coeff=1}}).call(t.prototype);var e=function(n,r){t.call(this,n),this.scrollTop=0,this.scrollHeight=0,r.$scrollbarWidth=this.width=A.scrollbarWidth(n.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};E.inherits(e,t),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var n=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-n)/(this.coeff-n)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(n){this.element.style.height=n+"px"},this.setInnerHeight=this.setScrollHeight=function(n){this.scrollHeight=n,n>c?(this.coeff=c/n,n=c):this.coeff!=1&&(this.coeff=1),this.inner.style.height=n+"px"},this.setScrollTop=function(n){this.scrollTop!=n&&(this.skipEvent=!0,this.scrollTop=n,this.element.scrollTop=n*this.coeff)}}.call(e.prototype);var i=function(n,r){t.call(this,n),this.scrollLeft=0,this.height=r.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};E.inherits(i,t),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(n){this.element.style.width=n+"px"},this.setInnerWidth=function(n){this.inner.style.width=n+"px"},this.setScrollWidth=function(n){this.inner.style.width=n+"px"},this.setScrollLeft=function(n){this.scrollLeft!=n&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=n)}}.call(i.prototype),k.ScrollBar=e,k.ScrollBarV=e,k.ScrollBarH=i,k.VScrollBar=e,k.HScrollBar=i}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(x,k,W){var E=x("./lib/oop"),A=x("./lib/dom"),m=x("./lib/event"),a=x("./lib/event_emitter").EventEmitter;A.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{
- position: absolute;
- background: rgba(128, 128, 128, 0.6);
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- border: 1px solid #bbb;
- border-radius: 2px;
- z-index: 8;
- }
- .ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h {
- position: absolute;
- z-index: 6;
- background: none;
- overflow: hidden!important;
- }
- .ace_editor>.ace_sb-v {
- z-index: 6;
- right: 0;
- top: 0;
- width: 12px;
- }
- .ace_editor>.ace_sb-v div {
- z-index: 8;
- right: 0;
- width: 100%;
- }
- .ace_editor>.ace_sb-h {
- bottom: 0;
- left: 0;
- height: 12px;
- }
- .ace_editor>.ace_sb-h div {
- bottom: 0;
- height: 100%;
- }
- .ace_editor>.ace_sb_grabbed {
- z-index: 8;
- background: #000;
- }`,"ace_scrollbar.css",!1);var c=function(i){this.element=A.createElement("div"),this.element.className="ace_sb"+this.classSuffix,this.inner=A.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,i.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,m.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")};(function(){E.implement(this,a),this.setVisible=function(i){this.element.style.display=i?"":"none",this.isVisible=i,this.coeff=1}}).call(c.prototype);var t=function(i,n){c.call(this,i),this.scrollTop=0,this.scrollHeight=0,this.parent=i,this.width=this.VScrollWidth,this.renderer=n,this.inner.style.width=this.element.style.width=(this.width||15)+"px",this.$minWidth=0};E.inherits(t,c),function(){this.classSuffix="-v",E.implement(this,a),this.onMouseDown=function(i,n){if(i==="mousedown"&&!(m.getButton(n)!==0||n.detail===2)){if(n.target===this.inner){var r=this,o=n.clientY,d=function(b){o=b.clientY},p=function(){clearInterval(l)},v=n.clientY,y=this.thumbTop,w=function(){if(o!==void 0){var b=r.scrollTopFromThumbTop(y+o-v);b!==r.scrollTop&&r._emit("scroll",{data:b})}};m.capture(this.inner,d,p);var l=setInterval(w,20);return m.preventDefault(n)}var g=n.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(g)}),m.preventDefault(n)}},this.getHeight=function(){return this.height},this.scrollTopFromThumbTop=function(i){var n=i*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return n=n>>0,n<0?n=0:n>this.pageHeight-this.viewHeight&&(n=this.pageHeight-this.viewHeight),n},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(i){this.height=Math.max(0,i),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},this.setInnerHeight=this.setScrollHeight=function(i,n){this.pageHeight===i&&!n||(this.pageHeight=i,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},this.setScrollTop=function(i){this.scrollTop=i,i<0&&(i=0),this.thumbTop=i*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"}}.call(t.prototype);var e=function(i,n){c.call(this,i),this.scrollLeft=0,this.scrollWidth=0,this.height=this.HScrollHeight,this.inner.style.height=this.element.style.height=(this.height||12)+"px",this.renderer=n};E.inherits(e,c),function(){this.classSuffix="-h",E.implement(this,a),this.onMouseDown=function(i,n){if(i==="mousedown"&&!(m.getButton(n)!==0||n.detail===2)){if(n.target===this.inner){var r=this,o=n.clientX,d=function(b){o=b.clientX},p=function(){clearInterval(l)},v=n.clientX,y=this.thumbLeft,w=function(){if(o!==void 0){var b=r.scrollLeftFromThumbLeft(y+o-v);b!==r.scrollLeft&&r._emit("scroll",{data:b})}};m.capture(this.inner,d,p);var l=setInterval(w,20);return m.preventDefault(n)}var g=n.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(g)}),m.preventDefault(n)}},this.getHeight=function(){return this.isVisible?this.height:0},this.scrollLeftFromThumbLeft=function(i){var n=i*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return n=n>>0,n<0?n=0:n>this.pageWidth-this.viewWidth&&(n=this.pageWidth-this.viewWidth),n},this.setWidth=function(i){this.width=Math.max(0,i),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},this.setInnerWidth=this.setScrollWidth=function(i,n){this.pageWidth===i&&!n||(this.pageWidth=i,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},this.setScrollLeft=function(i){this.scrollLeft=i,i<0&&(i=0),this.thumbLeft=i*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"}}.call(e.prototype),k.ScrollBar=t,k.ScrollBarV=t,k.ScrollBarH=e,k.VScrollBar=t,k.HScrollBar=e}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(x,k,W){var E=x("./lib/event"),A=function(m,a){this.onRender=m,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=a||window;var c=this;this._flush=function(t){c.pending=!1;var e=c.changes;if(e&&(E.blockIdle(100),c.changes=0,c.onRender(e)),c.changes){if(c.$recursionLimit--<0)return;c.schedule()}else c.$recursionLimit=2}};(function(){this.schedule=function(m){this.changes=this.changes|m,this.changes&&!this.pending&&(E.nextFrame(this._flush),this.pending=!0)},this.clear=function(m){var a=this.changes;return this.changes=0,a}}).call(A.prototype),k.RenderLoop=A}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(x,k,W){var E=x("../lib/oop"),A=x("../lib/dom"),m=x("../lib/lang"),a=x("../lib/event"),c=x("../lib/useragent"),t=x("../lib/event_emitter").EventEmitter,e=250,i=typeof ResizeObserver=="function",n=200,r=k.FontMetrics=function(o,d){this.charCount=d||e,this.el=A.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=A.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=A.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),o.appendChild(this.el),this.$measureNode.textContent=m.stringRepeat("X",this.charCount),this.$characterSize={width:0,height:0},i?this.$addObserver():this.checkForSizeChanges()};(function(){E.implement(this,t),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(o,d){o.width=o.height="auto",o.left=o.top="0px",o.visibility="hidden",o.position="absolute",o.whiteSpace="pre",c.isIE<8?o["font-family"]="inherit":o.font="inherit",o.overflow=d?"hidden":"visible"},this.checkForSizeChanges=function(o){if(o===void 0&&(o=this.$measureSizes()),o&&(this.$characterSize.width!==o.width||this.$characterSize.height!==o.height)){this.$measureNode.style.fontWeight="bold";var d=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=o,this.charSizes=Object.create(null),this.allowBoldFonts=d&&d.width===o.width&&d.height===o.height,this._emit("changeCharacterSize",{data:o})}},this.$addObserver=function(){var o=this;this.$observer=new window.ResizeObserver(function(d){o.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var o=this;return this.$pollSizeChangesTimer=a.onIdle(function d(){o.checkForSizeChanges(),a.onIdle(d,500)},500)},this.setPolling=function(o){o?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(o){o=o||this.$measureNode;var d=o.getBoundingClientRect(),p={height:d.height,width:d.width/this.charCount};return p.width===0||p.height===0?null:p},this.$measureCharWidth=function(o){this.$main.textContent=m.stringRepeat(o,this.charCount);var d=this.$main.getBoundingClientRect();return d.width/this.charCount},this.getCharacterWidth=function(o){var d=this.charSizes[o];return d===void 0&&(d=this.charSizes[o]=this.$measureCharWidth(o)/this.$characterSize.width),d},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function o(d){return!d||!d.parentElement?1:(window.getComputedStyle(d).zoom||1)*o(d.parentElement)},this.$initTransformMeasureNodes=function(){var o=function(d,p){return["div",{style:"position: absolute;top:"+d+"px;left:"+p+"px;"}]};this.els=A.buildDom([o(0,0),o(n,0),o(0,n),o(n,n)],this.el)},this.transformCoordinates=function(o,d){if(o){var p=this.$getZoom(this.el);o=l(1/p,o)}function v(M,O,D){var B=M[1]*O[0]-M[0]*O[1];return[(-O[1]*D[0]+O[0]*D[1])/B,(+M[1]*D[0]-M[0]*D[1])/B]}function y(M,O){return[M[0]-O[0],M[1]-O[1]]}function w(M,O){return[M[0]+O[0],M[1]+O[1]]}function l(M,O){return[M*O[0],M*O[1]]}this.els||this.$initTransformMeasureNodes();function g(M){var O=M.getBoundingClientRect();return[O.left,O.top]}var b=g(this.els[0]),f=g(this.els[1]),h=g(this.els[2]),s=g(this.els[3]),u=v(y(s,f),y(s,h),y(w(f,h),w(s,b))),$=l(1+u[0],y(f,b)),C=l(1+u[1],y(h,b));if(d){var S=d,L=u[0]*S[0]/n+u[1]*S[1]/n+1,R=w(l(S[0],$),l(S[1],C));return w(l(1/L/n,R),b)}var T=y(o,b),_=v(y($,l(u[0],T)),y(C,l(u[1],T)),T);return l(n,_)}}).call(r.prototype)}),ace.define("ace/css/editor.css",["require","exports","module"],function(x,k,W){W.exports=`/*
- styles = []
- for (var i = 1; i < 16; i++) {
- styles.push(".ace_br" + i + "{" + (
- ["top-left", "top-right", "bottom-right", "bottom-left"]
- ).map(function(x, j) {
- return i & (1<<j) ? "border-" + x + "-radius: 3px;" : ""
- }).filter(Boolean).join(" ") + "}")
- }
- styles.join("\\n")
- */
- .ace_br1 {border-top-left-radius : 3px;}
- .ace_br2 {border-top-right-radius : 3px;}
- .ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}
- .ace_br4 {border-bottom-right-radius: 3px;}
- .ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}
- .ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}
- .ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}
- .ace_br8 {border-bottom-left-radius : 3px;}
- .ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}
- .ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}
- .ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}
- .ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
- .ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
- .ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
- .ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}
- .ace_editor {
- position: relative;
- overflow: hidden;
- padding: 0;
- font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
- direction: ltr;
- text-align: left;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- }
- .ace_scroller {
- position: absolute;
- overflow: hidden;
- top: 0;
- bottom: 0;
- background-color: inherit;
- -ms-user-select: none;
- -moz-user-select: none;
- -webkit-user-select: none;
- user-select: none;
- cursor: text;
- }
- .ace_content {
- position: absolute;
- box-sizing: border-box;
- min-width: 100%;
- contain: style size layout;
- font-variant-ligatures: no-common-ligatures;
- }
- .ace_dragging .ace_scroller:before{
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- content: '';
- background: rgba(250, 250, 250, 0.01);
- z-index: 1000;
- }
- .ace_dragging.ace_dark .ace_scroller:before{
- background: rgba(0, 0, 0, 0.01);
- }
- .ace_gutter {
- position: absolute;
- overflow : hidden;
- width: auto;
- top: 0;
- bottom: 0;
- left: 0;
- cursor: default;
- z-index: 4;
- -ms-user-select: none;
- -moz-user-select: none;
- -webkit-user-select: none;
- user-select: none;
- contain: style size layout;
- }
- .ace_gutter-active-line {
- position: absolute;
- left: 0;
- right: 0;
- }
- .ace_scroller.ace_scroll-left {
- box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;
- }
- .ace_gutter-cell {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- padding-left: 19px;
- padding-right: 6px;
- background-repeat: no-repeat;
- }
- .ace_gutter-cell.ace_error {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");
- background-repeat: no-repeat;
- background-position: 2px center;
- }
- .ace_gutter-cell.ace_warning {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");
- background-position: 2px center;
- }
- .ace_gutter-cell.ace_info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");
- background-position: 2px center;
- }
- .ace_dark .ace_gutter-cell.ace_info {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");
- }
- .ace_scrollbar {
- contain: strict;
- position: absolute;
- right: 0;
- bottom: 0;
- z-index: 6;
- }
- .ace_scrollbar-inner {
- position: absolute;
- cursor: text;
- left: 0;
- top: 0;
- }
- .ace_scrollbar-v{
- overflow-x: hidden;
- overflow-y: scroll;
- top: 0;
- }
- .ace_scrollbar-h {
- overflow-x: scroll;
- overflow-y: hidden;
- left: 0;
- }
- .ace_print-margin {
- position: absolute;
- height: 100%;
- }
- .ace_text-input {
- position: absolute;
- z-index: 0;
- width: 0.5em;
- height: 1em;
- opacity: 0;
- background: transparent;
- -moz-appearance: none;
- appearance: none;
- border: none;
- resize: none;
- outline: none;
- overflow: hidden;
- font: inherit;
- padding: 0 1px;
- margin: 0 -1px;
- contain: strict;
- -ms-user-select: text;
- -moz-user-select: text;
- -webkit-user-select: text;
- user-select: text;
- /*with \`pre-line\` chrome inserts instead of space*/
- white-space: pre!important;
- }
- .ace_text-input.ace_composition {
- background: transparent;
- color: inherit;
- z-index: 1000;
- opacity: 1;
- }
- .ace_composition_placeholder { color: transparent }
- .ace_composition_marker {
- border-bottom: 1px solid;
- position: absolute;
- border-radius: 0;
- margin-top: 1px;
- }
- [ace_nocontext=true] {
- transform: none!important;
- filter: none!important;
- clip-path: none!important;
- mask : none!important;
- contain: none!important;
- perspective: none!important;
- mix-blend-mode: initial!important;
- z-index: auto;
- }
- .ace_layer {
- z-index: 1;
- position: absolute;
- overflow: hidden;
- /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/
- word-wrap: normal;
- white-space: pre;
- height: 100%;
- width: 100%;
- box-sizing: border-box;
- /* setting pointer-events: auto; on node under the mouse, which changes
- during scroll, will break mouse wheel scrolling in Safari */
- pointer-events: none;
- }
- .ace_gutter-layer {
- position: relative;
- width: auto;
- text-align: right;
- pointer-events: auto;
- height: 1000000px;
- contain: style size layout;
- }
- .ace_text-layer {
- font: inherit !important;
- position: absolute;
- height: 1000000px;
- width: 1000000px;
- contain: style size layout;
- }
- .ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {
- contain: style size layout;
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- }
- .ace_hidpi .ace_text-layer,
- .ace_hidpi .ace_gutter-layer,
- .ace_hidpi .ace_content,
- .ace_hidpi .ace_gutter {
- contain: strict;
- will-change: transform;
- }
- .ace_hidpi .ace_text-layer > .ace_line,
- .ace_hidpi .ace_text-layer > .ace_line_group {
- contain: strict;
- }
- .ace_cjk {
- display: inline-block;
- text-align: center;
- }
- .ace_cursor-layer {
- z-index: 4;
- }
- .ace_cursor {
- z-index: 4;
- position: absolute;
- box-sizing: border-box;
- border-left: 2px solid;
- /* workaround for smooth cursor repaintng whole screen in chrome */
- transform: translatez(0);
- }
- .ace_multiselect .ace_cursor {
- border-left-width: 1px;
- }
- .ace_slim-cursors .ace_cursor {
- border-left-width: 1px;
- }
- .ace_overwrite-cursors .ace_cursor {
- border-left-width: 0;
- border-bottom: 1px solid;
- }
- .ace_hidden-cursors .ace_cursor {
- opacity: 0.2;
- }
- .ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {
- opacity: 0;
- }
- .ace_smooth-blinking .ace_cursor {
- transition: opacity 0.18s;
- }
- .ace_animate-blinking .ace_cursor {
- animation-duration: 1000ms;
- animation-timing-function: step-end;
- animation-name: blink-ace-animate;
- animation-iteration-count: infinite;
- }
- .ace_animate-blinking.ace_smooth-blinking .ace_cursor {
- animation-duration: 1000ms;
- animation-timing-function: ease-in-out;
- animation-name: blink-ace-animate-smooth;
- }
-
- @keyframes blink-ace-animate {
- from, to { opacity: 1; }
- 60% { opacity: 0; }
- }
- @keyframes blink-ace-animate-smooth {
- from, to { opacity: 1; }
- 45% { opacity: 1; }
- 60% { opacity: 0; }
- 85% { opacity: 0; }
- }
- .ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {
- position: absolute;
- z-index: 3;
- }
- .ace_marker-layer .ace_selection {
- position: absolute;
- z-index: 5;
- }
- .ace_marker-layer .ace_bracket {
- position: absolute;
- z-index: 6;
- }
- .ace_marker-layer .ace_error_bracket {
- position: absolute;
- border-bottom: 1px solid #DE5555;
- border-radius: 0;
- }
- .ace_marker-layer .ace_active-line {
- position: absolute;
- z-index: 2;
- }
- .ace_marker-layer .ace_selected-word {
- position: absolute;
- z-index: 4;
- box-sizing: border-box;
- }
- .ace_line .ace_fold {
- box-sizing: border-box;
- display: inline-block;
- height: 11px;
- margin-top: -2px;
- vertical-align: middle;
- background-image:
- url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),
- url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");
- background-repeat: no-repeat, repeat-x;
- background-position: center center, top left;
- color: transparent;
- border: 1px solid black;
- border-radius: 2px;
- cursor: pointer;
- pointer-events: auto;
- }
- .ace_dark .ace_fold {
- }
- .ace_fold:hover{
- background-image:
- url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),
- url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");
- }
- .ace_tooltip {
- background-color: #FFF;
- background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));
- border: 1px solid gray;
- border-radius: 1px;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
- color: black;
- max-width: 100%;
- padding: 3px 4px;
- position: fixed;
- z-index: 999999;
- box-sizing: border-box;
- cursor: default;
- white-space: pre;
- word-wrap: break-word;
- line-height: normal;
- font-style: normal;
- font-weight: normal;
- letter-spacing: normal;
- pointer-events: none;
- }
- .ace_folding-enabled > .ace_gutter-cell {
- padding-right: 13px;
- }
- .ace_fold-widget {
- box-sizing: border-box;
- margin: 0 -12px 0 1px;
- display: none;
- width: 11px;
- vertical-align: top;
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");
- background-repeat: no-repeat;
- background-position: center;
- border-radius: 3px;
-
- border: 1px solid transparent;
- cursor: pointer;
- }
- .ace_folding-enabled .ace_fold-widget {
- display: inline-block;
- }
- .ace_fold-widget.ace_end {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");
- }
- .ace_fold-widget.ace_closed {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");
- }
- .ace_fold-widget:hover {
- border: 1px solid rgba(0, 0, 0, 0.3);
- background-color: rgba(255, 255, 255, 0.2);
- box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);
- }
- .ace_fold-widget:active {
- border: 1px solid rgba(0, 0, 0, 0.4);
- background-color: rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);
- }
- /**
- * Dark version for fold widgets
- */
- .ace_dark .ace_fold-widget {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");
- }
- .ace_dark .ace_fold-widget.ace_end {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");
- }
- .ace_dark .ace_fold-widget.ace_closed {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");
- }
- .ace_dark .ace_fold-widget:hover {
- box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
- background-color: rgba(255, 255, 255, 0.1);
- }
- .ace_dark .ace_fold-widget:active {
- box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);
- }
- .ace_inline_button {
- border: 1px solid lightgray;
- display: inline-block;
- margin: -1px 8px;
- padding: 0 5px;
- pointer-events: auto;
- cursor: pointer;
- }
- .ace_inline_button:hover {
- border-color: gray;
- background: rgba(200,200,200,0.2);
- display: inline-block;
- pointer-events: auto;
- }
- .ace_fold-widget.ace_invalid {
- background-color: #FFB4B4;
- border-color: #DE5555;
- }
- .ace_fade-fold-widgets .ace_fold-widget {
- transition: opacity 0.4s ease 0.05s;
- opacity: 0;
- }
- .ace_fade-fold-widgets:hover .ace_fold-widget {
- transition: opacity 0.05s ease 0.05s;
- opacity:1;
- }
- .ace_underline {
- text-decoration: underline;
- }
- .ace_bold {
- font-weight: bold;
- }
- .ace_nobold .ace_bold {
- font-weight: normal;
- }
- .ace_italic {
- font-style: italic;
- }
- .ace_error-marker {
- background-color: rgba(255, 0, 0,0.2);
- position: absolute;
- z-index: 9;
- }
- .ace_highlight-marker {
- background-color: rgba(255, 255, 0,0.2);
- position: absolute;
- z-index: 8;
- }
- .ace_mobile-menu {
- position: absolute;
- line-height: 1.5;
- border-radius: 4px;
- -ms-user-select: none;
- -moz-user-select: none;
- -webkit-user-select: none;
- user-select: none;
- background: white;
- box-shadow: 1px 3px 2px grey;
- border: 1px solid #dcdcdc;
- color: black;
- }
- .ace_dark > .ace_mobile-menu {
- background: #333;
- color: #ccc;
- box-shadow: 1px 3px 2px grey;
- border: 1px solid #444;
- }
- .ace_mobile-button {
- padding: 2px;
- cursor: pointer;
- overflow: hidden;
- }
- .ace_mobile-button:hover {
- background-color: #eee;
- opacity:1;
- }
- .ace_mobile-button:active {
- background-color: #ddd;
- }
- .ace_placeholder {
- font-family: arial;
- transform: scale(0.9);
- transform-origin: left;
- white-space: pre;
- opacity: 0.7;
- margin: 0 10px;
- }`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(x,k,W){var E=x("../lib/dom"),A=x("../lib/oop"),m=x("../lib/event_emitter").EventEmitter,a=function(c,t){this.canvas=E.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=c.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=c.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top=0+"px",this.canvas.style.right=0+"px",this.canvas.style.zIndex=7+"px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},c.element.appendChild(this.canvas)};(function(){A.implement(this,m),this.$updateDecorators=function(c){var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(c){this.maxHeight=c.maxHeight,this.lineHeight=c.lineHeight,this.canvasHeight=c.height;var e=(c.lastRow+1)*this.lineHeight;e<this.canvasHeight?this.heightRatio=1:this.heightRatio=this.canvasHeight/this.maxHeight}var i=this.canvas.getContext("2d");function n(s,u){return s.priority<u.priority?-1:s.priority>u.priority?1:0}var r=this.renderer.session.$annotations;if(i.clearRect(0,0,this.canvas.width,this.canvas.height),r){var o={info:1,warning:2,error:3};r.forEach(function(s){s.priority=o[s.type]||null}),r=r.sort(n);for(var d=this.renderer.session.$foldData,p=0;p<r.length;p++){var v=r[p].row,y=this.compensateFoldRows(v,d),w=Math.round((v-y)*this.lineHeight*this.heightRatio),l=Math.round((v-y)*this.lineHeight*this.heightRatio),g=Math.round(((v-y)*this.lineHeight+this.lineHeight)*this.heightRatio),b=g-l;if(b<this.minDecorationHeight){var f=(l+g)/2|0;f<this.halfMinDecorationHeight?f=this.halfMinDecorationHeight:f+this.halfMinDecorationHeight>this.canvasHeight&&(f=this.canvasHeight-this.halfMinDecorationHeight),l=Math.round(f-this.halfMinDecorationHeight),g=Math.round(f+this.halfMinDecorationHeight)}i.fillStyle=t[r[p].type]||null,i.fillRect(0,w,this.canvasWidth,g-l)}}var h=this.renderer.session.selection.getCursor();if(h){var y=this.compensateFoldRows(h.row,d),w=Math.round((h.row-y)*this.lineHeight*this.heightRatio);i.fillStyle="rgba(0, 0, 0, 0.5)",i.fillRect(0,w,this.canvasWidth,2)}},this.compensateFoldRows=function(c,t){var e=0;if(t&&t.length>0)for(var i=0;i<t.length;i++)c>t[i].start.row&&c<t[i].end.row?e+=c-t[i].start.row:c>=t[i].end.row&&(e+=t[i].end.row-t[i].start.row);return e}}).call(a.prototype),k.Decorator=a}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor.css","ace/layer/decorators","ace/lib/useragent"],function(x,k,W){var E=x("./lib/oop"),A=x("./lib/dom"),m=x("./config"),a=x("./layer/gutter").Gutter,c=x("./layer/marker").Marker,t=x("./layer/text").Text,e=x("./layer/cursor").Cursor,i=x("./scrollbar").HScrollBar,n=x("./scrollbar").VScrollBar,r=x("./scrollbar_custom").HScrollBar,o=x("./scrollbar_custom").VScrollBar,d=x("./renderloop").RenderLoop,p=x("./layer/font_metrics").FontMetrics,v=x("./lib/event_emitter").EventEmitter,y=x("./css/editor.css"),w=x("./layer/decorators").Decorator,l=x("./lib/useragent"),g=l.isIE;A.importCssString(y,"ace_editor.css",!1);var b=function(f,h){var s=this;this.container=f||A.createElement("div"),A.addCssClass(this.container,"ace_editor"),A.HI_DPI&&A.addCssClass(this.container,"ace_hidpi"),this.setTheme(h),m.get("useStrictCSP")==null&&m.set("useStrictCSP",!1),this.$gutter=A.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=A.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=A.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new c(this.content);var u=this.$textLayer=new t(this.content);this.canvas=u.element,this.$markerFront=new c(this.content),this.$cursorLayer=new e(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new n(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.on("scroll",function($){s.$scrollAnimation||s.session.setScrollTop($.data-s.scrollMargin.top)}),this.scrollBarH.on("scroll",function($){s.$scrollAnimation||s.session.setScrollLeft($.data-s.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container,this.$textLayer.MAX_CHUNK_LENGTH),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function($){s.updateCharacterSize(),s.onResize(!0,s.gutterWidth,s.$size.width,s.$size.height),s._signal("changeCharacterSize",$)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!l.isIOS,this.$loop=new d(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),m.resetOptions(this),m._signal("renderer",this)};(function(){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,E.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),A.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(f){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=f,f&&this.scrollMargin.top&&f.getScrollTop()<=0&&f.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(f),this.$markerBack.setSession(f),this.$markerFront.setSession(f),this.$gutterLayer.setSession(f),this.$textLayer.setSession(f),f&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(f,h,s){if(h===void 0&&(h=1/0),this.$changedLines?(this.$changedLines.firstRow>f&&(this.$changedLines.firstRow=f),this.$changedLines.lastRow<h&&(this.$changedLines.lastRow=h)):this.$changedLines={firstRow:f,lastRow:h},this.$changedLines.lastRow<this.layerConfig.firstRow)if(s)this.$changedLines.lastRow=this.layerConfig.lastRow;else return;this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},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(f){f?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(f,h,s,u){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=f?1:0;var $=this.container;u||(u=$.clientHeight||$.scrollHeight),s||(s=$.clientWidth||$.scrollWidth);var C=this.$updateCachedSize(f,h,s,u);if(!this.$size.scrollerHeight||!s&&!u)return this.resizing=0;f&&(this.$gutterLayer.$padding=null),f?this.$renderChanges(C|this.$changes,!0):this.$loop.schedule(C|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},this.$updateCachedSize=function(f,h,s,u){u-=this.$extraHeight||0;var $=0,C=this.$size,S={width:C.width,height:C.height,scrollerHeight:C.scrollerHeight,scrollerWidth:C.scrollerWidth};if(u&&(f||C.height!=u)&&(C.height=u,$|=this.CHANGE_SIZE,C.scrollerHeight=C.height,this.$horizScroll&&(C.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(C.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",$=$|this.CHANGE_SCROLL),s&&(f||C.width!=s)){$|=this.CHANGE_SIZE,C.width=s,h==null&&(h=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=h,A.setStyle(this.scrollBarH.element.style,"left",h+"px"),A.setStyle(this.scroller.style,"left",h+this.margin.left+"px"),C.scrollerWidth=Math.max(0,s-h-this.scrollBarV.getWidth()-this.margin.h),A.setStyle(this.$gutter.style,"left",this.margin.left+"px");var L=this.scrollBarV.getWidth()+"px";A.setStyle(this.scrollBarH.element.style,"right",L),A.setStyle(this.scroller.style,"right",L),A.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(C.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||f)&&($|=this.CHANGE_FULL)}return C.$dirty=!s||!u,$&&this._signal("resize",S),$},this.onGutterResize=function(f){var h=this.$showGutter?f:0;h!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,h,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var f=this.$size.scrollerWidth-this.$padding*2,h=Math.floor(f/this.characterWidth);return this.session.adjustWrapLimit(h,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(f){this.setOption("animatedScroll",f)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(f){this.setOption("showInvisibles",f),this.session.$bidiHandler.setShowInvisibles(f)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(f){this.setOption("displayIndentGuides",f)},this.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},this.setHighlightIndentGuides=function(f){this.setOption("highlightIndentGuides",f)},this.setShowPrintMargin=function(f){this.setOption("showPrintMargin",f)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(f){this.setOption("printMarginColumn",f)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(f){return this.setOption("showGutter",f)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(f){this.setOption("fadeFoldWidgets",f)},this.setHighlightGutterLine=function(f){this.setOption("highlightGutterLine",f)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var f=A.createElement("div");f.className="ace_layer ace_print-margin-layer",this.$printMarginEl=A.createElement("div"),this.$printMarginEl.className="ace_print-margin",f.appendChild(this.$printMarginEl),this.content.insertBefore(f,this.content.firstChild)}var h=this.$printMarginEl.style;h.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",h.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var f=this.textarea.style,h=this.$composition;if(!this.$keepTextAreaAtCursor&&!h){A.translate(this.textarea,-100,0);return}var s=this.$cursorLayer.$pixelPos;if(!!s){h&&h.markerRange&&(s=this.$cursorLayer.getPixelPosition(h.markerRange.start,!0));var u=this.layerConfig,$=s.top,C=s.left;$-=u.offset;var S=h&&h.useTextareaForIME?this.lineHeight:g?0:1;if($<0||$>u.height-S){A.translate(this.textarea,0,0);return}var L=1,R=this.$size.height-S;if(!h)$+=this.lineHeight;else if(h.useTextareaForIME){var T=this.textarea.value;L=this.characterWidth*this.session.$getStringScreenWidth(T)[0]}else $+=this.lineHeight+2;C-=this.scrollLeft,C>this.$size.scrollerWidth-L&&(C=this.$size.scrollerWidth-L),C+=this.gutterWidth+this.margin.left,A.setStyle(f,"height",S+"px"),A.setStyle(f,"width",L+"px"),A.translate(this.textarea,Math.min(C,this.$size.scrollerWidth-L),Math.min($,R))}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var f=this.layerConfig,h=f.lastRow,s=this.session.documentToScreenRow(h,0)*f.lineHeight;return s-this.session.getScrollTop()>f.height-f.lineHeight?h-1:h},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(f){this.$padding=f,this.$textLayer.setPadding(f),this.$cursorLayer.setPadding(f),this.$markerFront.setPadding(f),this.$markerBack.setPadding(f),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(f,h,s,u){var $=this.scrollMargin;$.top=f|0,$.bottom=h|0,$.right=u|0,$.left=s|0,$.v=$.top+$.bottom,$.h=$.left+$.right,$.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-$.top),this.updateFull()},this.setMargin=function(f,h,s,u){var $=this.margin;$.top=f|0,$.bottom=h|0,$.right=u|0,$.left=s|0,$.v=$.top+$.bottom,$.h=$.left+$.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(f){this.setOption("hScrollBarAlwaysVisible",f)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(f){this.setOption("vScrollBarAlwaysVisible",f)},this.$updateScrollBarV=function(){var f=this.layerConfig.maxHeight,h=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(f-=(h-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>f-h&&(f=this.scrollTop+h,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(f+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(f,h){if(this.$changes&&(f|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!f&&!h){this.$changes|=f;return}if(this.$size.$dirty)return this.$changes|=f,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",f),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var s=this.layerConfig;if(f&this.CHANGE_FULL||f&this.CHANGE_SIZE||f&this.CHANGE_TEXT||f&this.CHANGE_LINES||f&this.CHANGE_SCROLL||f&this.CHANGE_H_SCROLL){if(f|=this.$computeLayerConfig()|this.$loop.clear(),s.firstRow!=this.layerConfig.firstRow&&s.firstRowScreen==this.layerConfig.firstRowScreen){var u=this.scrollTop+(s.firstRow-this.layerConfig.firstRow)*this.lineHeight;u>0&&(this.scrollTop=u,f=f|this.CHANGE_SCROLL,f|=this.$computeLayerConfig()|this.$loop.clear())}s=this.layerConfig,this.$updateScrollBarV(),f&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),A.translate(this.content,-this.scrollLeft,-s.offset);var $=s.width+2*this.$padding+"px",C=s.minHeight+"px";A.setStyle(this.content.style,"width",$),A.setStyle(this.content.style,"height",C)}if(f&this.CHANGE_H_SCROLL&&(A.translate(this.content,-this.scrollLeft,-s.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),f&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(s),this.$showGutter&&this.$gutterLayer.update(s),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(s),this.$markerBack.update(s),this.$markerFront.update(s),this.$cursorLayer.update(s),this.$moveTextAreaToCursor(),this._signal("afterRender",f);return}if(f&this.CHANGE_SCROLL){this.$changedLines=null,f&this.CHANGE_TEXT||f&this.CHANGE_LINES?this.$textLayer.update(s):this.$textLayer.scrollLines(s),this.$showGutter&&(f&this.CHANGE_GUTTER||f&this.CHANGE_LINES?this.$gutterLayer.update(s):this.$gutterLayer.scrollLines(s)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(s),this.$markerBack.update(s),this.$markerFront.update(s),this.$cursorLayer.update(s),this.$moveTextAreaToCursor(),this._signal("afterRender",f);return}f&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(s),this.$showGutter&&this.$gutterLayer.update(s),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(s)):f&this.CHANGE_LINES?((this.$updateLines()||f&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(s),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(s)):f&this.CHANGE_TEXT||f&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(s),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(s)):f&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(s),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(s)),f&this.CHANGE_CURSOR&&(this.$cursorLayer.update(s),this.$moveTextAreaToCursor()),f&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(s),f&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(s),this._signal("afterRender",f)},this.$autosize=function(){var f=this.session.getScreenLength()*this.lineHeight,h=this.$maxLines*this.lineHeight,s=Math.min(h,Math.max((this.$minLines||1)*this.lineHeight,f))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(s+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&s>this.$maxPixelHeight&&(s=this.$maxPixelHeight);var u=s<=2*this.lineHeight,$=!u&&f>h;if(s!=this.desiredHeight||this.$size.height!=this.desiredHeight||$!=this.$vScroll){$!=this.$vScroll&&(this.$vScroll=$,this.scrollBarV.setVisible($));var C=this.container.clientWidth;this.container.style.height=s+"px",this.$updateCachedSize(!0,this.$gutterWidth,C,s),this.desiredHeight=s,this._signal("autosize")}},this.$computeLayerConfig=function(){var f=this.session,h=this.$size,s=h.height<=2*this.lineHeight,u=this.session.getScreenLength(),$=u*this.lineHeight,C=this.$getLongestLine(),S=!s&&(this.$hScrollBarAlwaysVisible||h.scrollerWidth-C-2*this.$padding<0),L=this.$horizScroll!==S;L&&(this.$horizScroll=S,this.scrollBarH.setVisible(S));var R=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var T=h.scrollerHeight+this.lineHeight,_=!this.$maxLines&&this.$scrollPastEnd?(h.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;$+=_;var M=this.scrollMargin;this.session.setScrollTop(Math.max(-M.top,Math.min(this.scrollTop,$-h.scrollerHeight+M.bottom))),this.session.setScrollLeft(Math.max(-M.left,Math.min(this.scrollLeft,C+2*this.$padding-h.scrollerWidth+M.right)));var O=!s&&(this.$vScrollBarAlwaysVisible||h.scrollerHeight-$+_<0||this.scrollTop>M.top),D=R!==O;D&&(this.$vScroll=O,this.scrollBarV.setVisible(O));var B=this.scrollTop%this.lineHeight,F=Math.ceil(T/this.lineHeight)-1,I=Math.max(0,Math.round((this.scrollTop-B)/this.lineHeight)),P=I+F,N,U,V=this.lineHeight;I=f.screenToDocumentRow(I,0);var K=f.getFoldLine(I);K&&(I=K.start.row),N=f.documentToScreenRow(I,0),U=f.getRowLength(I)*V,P=Math.min(f.screenToDocumentRow(P,0),f.getLength()-1),T=h.scrollerHeight+f.getRowLength(P)*V+U,B=this.scrollTop-N*V;var G=0;return(this.layerConfig.width!=C||L)&&(G=this.CHANGE_H_SCROLL),(L||D)&&(G|=this.$updateCachedSize(!0,this.gutterWidth,h.width,h.height),this._signal("scrollbarVisibilityChanged"),D&&(C=this.$getLongestLine())),this.layerConfig={width:C,padding:this.$padding,firstRow:I,firstRowScreen:N,lastRow:P,lineHeight:V,characterWidth:this.characterWidth,minHeight:T,maxHeight:$,offset:B,gutterOffset:V?Math.max(0,Math.ceil((B+h.height-h.scrollerHeight)/V)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(C-this.$padding),G},this.$updateLines=function(){if(!!this.$changedLines){var f=this.$changedLines.firstRow,h=this.$changedLines.lastRow;this.$changedLines=null;var s=this.layerConfig;if(!(f>s.lastRow+1)&&!(h<s.firstRow)){if(h===1/0){this.$showGutter&&this.$gutterLayer.update(s),this.$textLayer.update(s);return}return this.$textLayer.updateLines(s,f,h),!0}}},this.$getLongestLine=function(){var f=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(f+=1),this.$textLayer&&f>this.$textLayer.MAX_LINE_LENGTH&&(f=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(f*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),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(f,h){this.$gutterLayer.addGutterDecoration(f,h)},this.removeGutterDecoration=function(f,h){this.$gutterLayer.removeGutterDecoration(f,h)},this.updateBreakpoints=function(f){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(f){this.$gutterLayer.setAnnotations(f),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(f,h,s){this.scrollCursorIntoView(f,s),this.scrollCursorIntoView(h,s)},this.scrollCursorIntoView=function(f,h,s){if(this.$size.scrollerHeight!==0){var u=this.$cursorLayer.getPixelPosition(f),$=u.left,C=u.top,S=s&&s.top||0,L=s&&s.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var R=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;R+S>C?(h&&R+S>C+this.lineHeight&&(C-=h*this.$size.scrollerHeight),C===0&&(C=-this.scrollMargin.top),this.session.setScrollTop(C)):R+this.$size.scrollerHeight-L<C+this.lineHeight&&(h&&R+this.$size.scrollerHeight-L<C-this.lineHeight&&(C+=h*this.$size.scrollerHeight),this.session.setScrollTop(C+this.lineHeight+L-this.$size.scrollerHeight));var T=this.scrollLeft,_=2*this.layerConfig.characterWidth;$-_<T?($-=_,$<this.$padding+_&&($=-this.scrollMargin.left),this.session.setScrollLeft($)):($+=_,T+this.$size.scrollerWidth<$+this.characterWidth?this.session.setScrollLeft(Math.round($+this.characterWidth-this.$size.scrollerWidth)):T<=this.$padding&&$-T<this.characterWidth&&this.session.setScrollLeft(0))}},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(f){this.session.setScrollTop(f*this.lineHeight)},this.alignCursor=function(f,h){typeof f=="number"&&(f={row:f,column:0});var s=this.$cursorLayer.getPixelPosition(f),u=this.$size.scrollerHeight-this.lineHeight,$=s.top-u*(h||0);return this.session.setScrollTop($),$},this.STEPS=8,this.$calcSteps=function(f,h){var s=0,u=this.STEPS,$=[],C=function(S,L,R){return R*(Math.pow(S-1,3)+1)+L};for(s=0;s<u;++s)$.push(C(s/this.STEPS,f,h-f));return $},this.scrollToLine=function(f,h,s,u){var $=this.$cursorLayer.getPixelPosition({row:f,column:0}),C=$.top;h&&(C-=this.$size.scrollerHeight/2);var S=this.scrollTop;this.session.setScrollTop(C),s!==!1&&this.animateScrolling(S,u)},this.animateScrolling=function(f,h){var s=this.scrollTop;if(!this.$animatedScroll)return;var u=this;if(f==s)return;if(this.$scrollAnimation){var $=this.$scrollAnimation.steps;if($.length&&(f=$[0],f==s))return}var C=u.$calcSteps(f,s);this.$scrollAnimation={from:f,to:s,steps:C},clearInterval(this.$timer),u.session.setScrollTop(C.shift()),u.session.$scrollTop=s;function S(){u.$timer=clearInterval(u.$timer),u.$scrollAnimation=null,u.$stopAnimation=!1,h&&h()}this.$timer=setInterval(function(){if(u.$stopAnimation){S();return}if(!u.session)return clearInterval(u.$timer);C.length?(u.session.setScrollTop(C.shift()),u.session.$scrollTop=s):s!=null?(u.session.$scrollTop=-1,u.session.setScrollTop(s),s=null):S()},10)},this.scrollToY=function(f){this.scrollTop!==f&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=f)},this.scrollToX=function(f){this.scrollLeft!==f&&(this.scrollLeft=f),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(f,h){this.session.setScrollTop(h),this.session.setScrollLeft(f)},this.scrollBy=function(f,h){h&&this.session.setScrollTop(this.session.getScrollTop()+h),f&&this.session.setScrollLeft(this.session.getScrollLeft()+f)},this.isScrollableBy=function(f,h){if(h<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||h>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||f<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||f>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(f,h){var s;if(this.$hasCssTransforms){s={top:0,left:0};var u=this.$fontMetrics.transformCoordinates([f,h]);f=u[1]-this.gutterWidth-this.margin.left,h=u[0]}else s=this.scroller.getBoundingClientRect();var $=f+this.scrollLeft-s.left-this.$padding,C=$/this.characterWidth,S=Math.floor((h+this.scrollTop-s.top)/this.lineHeight),L=this.$blockCursor?Math.floor(C):Math.round(C);return{row:S,column:L,side:C-L>0?1:-1,offsetX:$}},this.screenToTextCoordinates=function(f,h){var s;if(this.$hasCssTransforms){s={top:0,left:0};var u=this.$fontMetrics.transformCoordinates([f,h]);f=u[1]-this.gutterWidth-this.margin.left,h=u[0]}else s=this.scroller.getBoundingClientRect();var $=f+this.scrollLeft-s.left-this.$padding,C=$/this.characterWidth,S=this.$blockCursor?Math.floor(C):Math.round(C),L=Math.floor((h+this.scrollTop-s.top)/this.lineHeight);return this.session.screenToDocumentPosition(L,Math.max(S,0),$)},this.textToScreenCoordinates=function(f,h){var s=this.scroller.getBoundingClientRect(),u=this.session.documentToScreenPosition(f,h),$=this.$padding+(this.session.$bidiHandler.isBidiRow(u.row,f)?this.session.$bidiHandler.getPosLeft(u.column):Math.round(u.column*this.characterWidth)),C=u.row*this.lineHeight;return{pageX:s.left+$-this.scrollLeft,pageY:s.top+C-this.scrollTop}},this.visualizeFocus=function(){A.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){A.removeCssClass(this.container,"ace_focus")},this.showComposition=function(f){this.$composition=f,f.cssText||(f.cssText=this.textarea.style.cssText),f.useTextareaForIME==null&&(f.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(A.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):f.markerId=this.session.addMarker(f.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(f){var h=this.session.selection.cursor;this.addToken(f,"composition_placeholder",h.row,h.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!!this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),A.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var f=this.session.selection.cursor;this.removeExtraToken(f.row,f.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},this.addToken=function(f,h,s,u){var $=this.session;$.bgTokenizer.lines[s]=null;var C={type:h,value:f},S=$.getTokens(s);if(u==null)S.push(C);else for(var L=0,R=0;R<S.length;R++){var T=S[R];if(L+=T.value.length,u<=L){var _=T.value.length-(L-u),M=T.value.slice(0,_),O=T.value.slice(_);S.splice(R,1,{type:T.type,value:M},C,{type:T.type,value:O});break}}this.updateLines(s,s)},this.removeExtraToken=function(f,h){this.updateLines(f,f)},this.setTheme=function(f,h){var s=this;if(this.$themeId=f,s._dispatchEvent("themeChange",{theme:f}),!f||typeof f=="string"){var u=f||this.$options.theme.initialValue;m.loadModule(["theme",u],$)}else $(f);function $(C){if(s.$themeId!=f)return h&&h();if(!C||!C.cssClass)throw new Error("couldn't load module "+f+" or it didn't call define");C.$id&&(s.$themeId=C.$id),A.importCssString(C.cssText,C.cssClass,s.container),s.theme&&A.removeCssClass(s.container,s.theme.cssClass);var S="padding"in C?C.padding:"padding"in(s.theme||{})?4:s.$padding;s.$padding&&S!=s.$padding&&s.setPadding(S),s.$theme=C.cssClass,s.theme=C,A.addCssClass(s.container,C.cssClass),A.setCssClass(s.container,"ace_dark",C.isDark),s.$size&&(s.$size.width=0,s.$updateSizeAsync()),s._dispatchEvent("themeLoaded",{theme:C}),h&&h()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(f,h){A.setCssClass(this.container,f,h!==!1)},this.unsetStyle=function(f){A.removeCssClass(this.container,f)},this.setCursorStyle=function(f){A.setStyle(this.scroller.style,"cursor",f)},this.setMouseCursor=function(f){A.setStyle(this.scroller.style,"cursor",f)},this.attachToShadowRoot=function(){A.importCssString(y,"ace_editor.css",this.container)},this.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy(),this.removeAllListeners(),this.container.textContent=""},this.$updateCustomScrollbar=function(f){var h=this;this.$horizScroll=this.$vScroll=null,this.scrollBarV.element.remove(),this.scrollBarH.element.remove(),this.$scrollDecorator&&delete this.$scrollDecorator,f===!0?(this.scrollBarV=new o(this.container,this),this.scrollBarH=new r(this.container,this),this.scrollBarV.setHeight(this.$size.scrollerHeight),this.scrollBarH.setWidth(this.$size.scrollerWidth),this.scrollBarV.addEventListener("scroll",function(s){h.$scrollAnimation||h.session.setScrollTop(s.data-h.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(s){h.$scrollAnimation||h.session.setScrollLeft(s.data-h.scrollMargin.left)}),this.$scrollDecorator=new w(this.scrollBarV,this),this.$scrollDecorator.$updateDecorators()):(this.scrollBarV=new n(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.addEventListener("scroll",function(s){h.$scrollAnimation||h.session.setScrollTop(s.data-h.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(s){h.$scrollAnimation||h.session.setScrollLeft(s.data-h.scrollMargin.left)}))}}).call(b.prototype),m.defineOptions(b.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(f){this.$textLayer.setShowInvisibles(f)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(f){typeof f=="number"&&(this.$printMarginColumn=f),this.$showPrintMargin=!!f,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(f){this.$gutter.style.display=f?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(f){A.setCssClass(this.$gutter,"ace_fade-fold-widgets",f)},initialValue:!1},showFoldWidgets:{set:function(f){this.$gutterLayer.setShowFoldWidgets(f),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(f){this.$textLayer.setDisplayIndentGuides(f)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(f){this.$textLayer.setHighlightIndentGuides(f)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(f){this.$gutterLayer.setHighlightGutterLine(f),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(f){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(f){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(f){typeof f=="number"&&(f=f+"px"),this.container.style.fontSize=f,this.updateFontSize()},initialValue:12},fontFamily:{set:function(f){this.container.style.fontFamily=f,this.updateFontSize()}},maxLines:{set:function(f){this.updateFull()}},minLines:{set:function(f){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(f){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(f){f=+f||0,this.$scrollPastEnd!=f&&(this.$scrollPastEnd=f,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(f){this.$gutterLayer.$fixedWidth=!!f,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(f){this.$updateCustomScrollbar(f)},initialValue:!1},theme:{set:function(f){this.setTheme(f)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!l.isMobile&&!l.isIE}}),k.VirtualRenderer=b}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(x,k,W){var E=x("../lib/oop"),A=x("../lib/net"),m=x("../lib/event_emitter").EventEmitter,a=x("../config");function c(n){var r="importScripts('"+A.qualifyURL(n)+"');";try{return new Blob([r],{type:"application/javascript"})}catch(p){var o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,d=new o;return d.append(r),d.getBlob("application/javascript")}}function t(n){if(typeof Worker=="undefined")return{postMessage:function(){},terminate:function(){}};if(a.get("loadWorkerFromBlob")){var r=c(n),o=window.URL||window.webkitURL,d=o.createObjectURL(r);return new Worker(d)}return new Worker(n)}var e=function(n){n.postMessage||(n=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=n,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){E.implement(this,m),this.$createWorkerFromOldConfig=function(n,r,o,d,p){if(x.nameToUrl&&!x.toUrl&&(x.toUrl=x.nameToUrl),a.get("packaged")||!x.toUrl)d=d||a.moduleUrl(r,"worker");else{var v=this.$normalizePath;d=d||v(x.toUrl("ace/worker/worker.js",null,"_"));var y={};n.forEach(function(w){y[w]=v(x.toUrl(w,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=t(d),p&&this.send("importScripts",p),this.$worker.postMessage({init:!0,tlns:y,module:r,classname:o}),this.$worker},this.onMessage=function(n){var r=n.data;switch(r.type){case"event":this._signal(r.name,{data:r.data});break;case"call":var o=this.callbacks[r.id];o&&(o(r.data),delete this.callbacks[r.id]);break;case"error":this.reportError(r.data);break;case"log":window.console&&console.log&&console.log.apply(console,r.data);break}},this.reportError=function(n){window.console&&console.error&&console.error(n)},this.$normalizePath=function(n){return A.qualifyURL(n)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(n,r){this.$worker.postMessage({command:n,args:r})},this.call=function(n,r,o){if(o){var d=this.callbackId++;this.callbacks[d]=o,r.push(d)}this.send(n,r)},this.emit=function(n,r){try{r.data&&r.data.err&&(r.data.err={message:r.data.err.message,stack:r.data.err.stack,code:r.data.err.code}),this.$worker&&this.$worker.postMessage({event:n,data:{data:r.data}})}catch(o){console.error(o.stack)}},this.attachToDocument=function(n){this.$doc&&this.terminate(),this.$doc=n,this.call("setValue",[n.getValue()]),n.on("change",this.changeListener,!0)},this.changeListener=function(n){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),n.action=="insert"?this.deltaQueue.push(n.start,n.lines):this.deltaQueue.push(n.start,n.end)},this.$sendDeltaQueue=function(){var n=this.deltaQueue;!n||(this.deltaQueue=null,n.length>50&&n.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:n}))}}).call(e.prototype);var i=function(n,r,o){var d=null,p=!1,v=Object.create(m),y=[],w=new e({messageBuffer:y,terminate:function(){},postMessage:function(g){y.push(g),d&&(p?setTimeout(l):l())}});w.setEmitSync=function(g){p=g};var l=function(){var g=y.shift();g.command?d[g.command].apply(d,g.args):g.event&&v._signal(g.event,g.data)};return v.postMessage=function(g){w.onMessage({data:g})},v.callback=function(g,b){this.postMessage({type:"call",id:b,data:g})},v.emit=function(g,b){this.postMessage({type:"event",name:g,data:b})},a.loadModule(["worker",r],function(g){for(d=new g[o](v);y.length;)l()}),w};k.UIWorkerClient=i,k.WorkerClient=e,k.createWorker=t}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(x,k,W){var E=x("./range").Range,A=x("./lib/event_emitter").EventEmitter,m=x("./lib/oop"),a=function(c,t,e,i,n,r){var o=this;this.length=t,this.session=c,this.doc=c.getDocument(),this.mainClass=n,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=i,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=e;var d=c.getUndoManager().$undoStack||c.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=d.length,this.setup(),c.selection.on("changeCursor",this.$onCursorChange)};(function(){m.implement(this,A),this.setup=function(){var c=this,t=this.doc,e=this.session;this.selectionBefore=e.selection.toJSON(),e.selection.inMultiSelectMode&&e.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=e.addMarker(new E(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),c.others.push(r)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var c=this.session,t=this;this.othersActive=!0,this.others.forEach(function(e){e.markerId=c.addMarker(new E(e.row,e.column,e.row,e.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(!!this.othersActive){this.othersActive=!1;for(var c=0;c<this.others.length;c++)this.session.removeMarker(this.others[c].markerId)}},this.onUpdate=function(c){if(this.$updating)return this.updateAnchors(c);var t=c;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var e=c.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,n=t.start.column-this.pos.column;if(this.updateAnchors(c),i&&(this.length+=e),i&&!this.session.$fromUndo){if(c.action==="insert")for(var r=this.others.length-1;r>=0;r--){var o=this.others[r],d={row:o.row,column:o.column+n};this.doc.insertMergedLines(d,c.lines)}else if(c.action==="remove")for(var r=this.others.length-1;r>=0;r--){var o=this.others[r],d={row:o.row,column:o.column+n};this.doc.remove(new E(d.row,d.column,d.row,d.column-e))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(c){this.pos.onChange(c);for(var t=this.others.length;t--;)this.others[t].onChange(c);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var c=this,t=this.session,e=function(n,r){t.removeMarker(n.markerId),n.markerId=t.addMarker(new E(n.row,n.column,n.row,n.column+c.length),r,null,!1)};e(this.pos,this.mainClass);for(var i=this.others.length;i--;)e(this.others[i],this.othersClass)}},this.onCursorChange=function(c){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",c)):(this.hideOtherMarkers(),this._emit("cursorLeave",c))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth!==-1){for(var c=this.session.getUndoManager(),t=(c.$undoStack||c.$undostack).length-this.$undoStackDepth,e=0;e<t;e++)c.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(a.prototype),k.PlaceHolder=a}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(x,k,W){var E=x("../lib/event"),A=x("../lib/useragent");function m(c,t){return c.row==t.row&&c.column==t.column}function a(c){var t=c.domEvent,e=t.altKey,i=t.shiftKey,n=t.ctrlKey,r=c.getAccelKey(),o=c.getButton();if(n&&A.isMac&&(o=t.button),c.editor.inMultiSelectMode&&o==2){c.editor.textInput.onContextMenu(c.domEvent);return}if(!n&&!e&&!r){o===0&&c.editor.inMultiSelectMode&&c.editor.exitMultiSelectMode();return}if(o===0){var d=c.editor,p=d.selection,v=d.inMultiSelectMode,y=c.getDocumentPosition(),w=p.getCursor(),l=c.inSelection()||p.isEmpty()&&m(y,w),g=c.x,b=c.y,f=function(D){g=D.clientX,b=D.clientY},h=d.session,s=d.renderer.pixelToScreenCoordinates(g,b),u=s,$;if(d.$mouseHandler.$enableJumpToDef)n&&e||r&&e?$=i?"block":"add":e&&d.$blockSelectEnabled&&($="block");else if(r&&!e){if($="add",!v&&i)return}else e&&d.$blockSelectEnabled&&($="block");if($&&A.isMac&&t.ctrlKey&&d.$mouseHandler.cancelContextMenu(),$=="add"){if(!v&&l)return;if(!v){var C=p.toOrientedRange();d.addSelectionMarker(C)}var S=p.rangeList.rangeAtPoint(y);d.inVirtualSelectionMode=!0,i&&(S=null,C=p.ranges[0]||C,d.removeSelectionMarker(C)),d.once("mouseup",function(){var D=p.toOrientedRange();S&&D.isEmpty()&&m(S.cursor,D.cursor)?p.substractPoint(D.cursor):(i?p.substractPoint(C.cursor):C&&(d.removeSelectionMarker(C),p.addRange(C)),p.addRange(D)),d.inVirtualSelectionMode=!1})}else if($=="block"){c.stop(),d.inVirtualSelectionMode=!0;var L,R=[],T=function(){var D=d.renderer.pixelToScreenCoordinates(g,b),B=h.screenToDocumentPosition(D.row,D.column,D.offsetX);m(u,D)&&m(B,p.lead)||(u=D,d.selection.moveToPosition(B),d.renderer.scrollCursorIntoView(),d.removeSelectionMarkers(R),R=p.rectangularRangeBlock(u,s),d.$mouseHandler.$clickSelection&&R.length==1&&R[0].isEmpty()&&(R[0]=d.$mouseHandler.$clickSelection.clone()),R.forEach(d.addSelectionMarker,d),d.updateSelectionMarkers())};v&&!r?p.toSingleRange():!v&&r&&(L=p.toOrientedRange(),d.addSelectionMarker(L)),i?s=h.documentToScreenPosition(p.lead):p.moveToPosition(y),u={row:-1,column:-1};var _=function(D){T(),clearInterval(O),d.removeSelectionMarkers(R),R.length||(R=[p.toOrientedRange()]),L&&(d.removeSelectionMarker(L),p.toSingleRange(L));for(var B=0;B<R.length;B++)p.addRange(R[B]);d.inVirtualSelectionMode=!1,d.$mouseHandler.$clickSelection=null},M=T;E.capture(d.container,f,_);var O=setInterval(function(){M()},20);return c.preventDefault()}}}k.onMouseDown=a}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(x,k,W){k.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(A){A.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(A){A.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(A){A.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(A){A.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(A){A.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(A){A.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(A){A.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(A){A.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"toggleSplitSelectionIntoLines",description:"Split into lines",exec:function(A){A.multiSelect.rangeCount>1?A.multiSelect.joinSelections():A.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(A){A.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(A){A.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(A){A.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],k.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(A){A.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(A){return A&&A.inMultiSelectMode}}];var E=x("../keyboard/hash_handler").HashHandler;k.keyboardHandler=new E(k.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(x,k,W){var E=x("./range_list").RangeList,A=x("./range").Range,m=x("./selection").Selection,a=x("./mouse/multi_select_handler").onMouseDown,c=x("./lib/event"),t=x("./lib/lang"),e=x("./commands/multi_select_commands");k.commands=e.defaultCommands.concat(e.multiSelectCommands);var i=x("./search").Search,n=new i;function r(w,l,g){return n.$options.wrap=!0,n.$options.needle=l,n.$options.backwards=g==-1,n.find(w)}var o=x("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(o.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(w,l){if(!!w){if(!this.inMultiSelectMode&&this.rangeCount===0){var g=this.toOrientedRange();if(this.rangeList.add(g),this.rangeList.add(w),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),l||this.fromOrientedRange(w);this.rangeList.removeAll(),this.rangeList.add(g),this.$onAddRange(g)}w.cursor||(w.cursor=w.end);var b=this.rangeList.add(w);return this.$onAddRange(w),b.length&&this.$onRemoveRange(b),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),l||this.fromOrientedRange(w)}},this.toSingleRange=function(w){w=w||this.ranges[0];var l=this.rangeList.removeAll();l.length&&this.$onRemoveRange(l),w&&this.fromOrientedRange(w)},this.substractPoint=function(w){var l=this.rangeList.substractPoint(w);if(l)return this.$onRemoveRange(l),l[0]},this.mergeOverlappingRanges=function(){var w=this.rangeList.merge();w.length&&this.$onRemoveRange(w)},this.$onAddRange=function(w){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(w),this._signal("addRange",{range:w})},this.$onRemoveRange=function(w){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var l=this.rangeList.ranges.pop();w.push(l),this.rangeCount=0}for(var g=w.length;g--;){var b=this.ranges.indexOf(w[g]);this.ranges.splice(b,1)}this._signal("removeRange",{ranges:w}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),l=l||this.ranges[0],l&&!l.isEqual(this.getRange())&&this.fromOrientedRange(l)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new E,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var w=this.ranges.length?this.ranges:[this.getRange()],l=[],g=0;g<w.length;g++){var b=w[g],f=b.start.row,h=b.end.row;if(f===h)l.push(b.clone());else{for(l.push(new A(f,b.start.column,f,this.session.getLine(f).length));++f<h;)l.push(this.getLineRange(f,!0));l.push(new A(h,0,h,b.end.column))}g==0&&!this.isBackwards()&&(l=l.reverse())}this.toSingleRange();for(var g=l.length;g--;)this.addRange(l[g])},this.joinSelections=function(){var w=this.rangeList.ranges,l=w[w.length-1],g=A.fromPoints(w[0].start,l.end);this.toSingleRange(),this.setSelectionRange(g,l.cursor==l.start)},this.toggleBlockSelection=function(){if(this.rangeCount>1){var w=this.rangeList.ranges,l=w[w.length-1],g=A.fromPoints(w[0].start,l.end);this.toSingleRange(),this.setSelectionRange(g,l.cursor==l.start)}else{var b=this.session.documentToScreenPosition(this.cursor),f=this.session.documentToScreenPosition(this.anchor),h=this.rectangularRangeBlock(b,f);h.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(w,l,g){var b=[],f=w.column<l.column;if(f)var h=w.column,s=l.column,u=w.offsetX,$=l.offsetX;else var h=l.column,s=w.column,u=l.offsetX,$=w.offsetX;var C=w.row<l.row;if(C)var S=w.row,L=l.row;else var S=l.row,L=w.row;h<0&&(h=0),S<0&&(S=0),S==L&&(g=!0);for(var R,T=S;T<=L;T++){var _=A.fromPoints(this.session.screenToDocumentPosition(T,h,u),this.session.screenToDocumentPosition(T,s,$));if(_.isEmpty()){if(R&&p(_.end,R))break;R=_.end}_.cursor=f?_.start:_.end,b.push(_)}if(C&&b.reverse(),!g){for(var M=b.length-1;b[M].isEmpty()&&M>0;)M--;if(M>0)for(var O=0;b[O].isEmpty();)O++;for(var D=M;D>=O;D--)b[D].isEmpty()&&b.splice(D,1)}return b}}.call(m.prototype);var d=x("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(w){w.cursor||(w.cursor=w.end);var l=this.getSelectionStyle();return w.marker=this.session.addMarker(w,"ace_selection",l),this.session.$selectionMarkers.push(w),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,w},this.removeSelectionMarker=function(w){if(!!w.marker){this.session.removeMarker(w.marker);var l=this.session.$selectionMarkers.indexOf(w);l!=-1&&this.session.$selectionMarkers.splice(l,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(w){for(var l=this.session.$selectionMarkers,g=w.length;g--;){var b=w[g];if(!!b.marker){this.session.removeMarker(b.marker);var f=l.indexOf(b);f!=-1&&l.splice(f,1)}}this.session.selectionMarkerCount=l.length},this.$onAddRange=function(w){this.addSelectionMarker(w.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(w){this.removeSelectionMarkers(w.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(w){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(e.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(w){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(e.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(w){var l=w.command,g=w.editor;if(!!g.multiSelect){if(l.multiSelectAction)l.multiSelectAction=="forEach"?b=g.forEachSelection(l,w.args):l.multiSelectAction=="forEachLine"?b=g.forEachSelection(l,w.args,!0):l.multiSelectAction=="single"?(g.exitMultiSelectMode(),b=l.exec(g,w.args||{})):b=l.multiSelectAction(g,w.args||{});else{var b=l.exec(g,w.args||{});g.multiSelect.addRange(g.multiSelect.toOrientedRange()),g.multiSelect.mergeOverlappingRanges()}return b}},this.forEachSelection=function(w,l,g){if(!this.inVirtualSelectionMode){var b=g&&g.keepOrder,f=g==!0||g&&g.$byLines,h=this.session,s=this.selection,u=s.rangeList,$=(b?s:u).ranges,C;if(!$.length)return w.exec?w.exec(this,l||{}):w(this,l||{});var S=s._eventRegistry;s._eventRegistry={};var L=new m(h);this.inVirtualSelectionMode=!0;for(var R=$.length;R--;){if(f)for(;R>0&&$[R].start.row==$[R-1].end.row;)R--;L.fromOrientedRange($[R]),L.index=R,this.selection=h.selection=L;var T=w.exec?w.exec(this,l||{}):w(this,l||{});!C&&T!==void 0&&(C=T),L.toOrientedRange($[R])}L.detach(),this.selection=h.selection=s,this.inVirtualSelectionMode=!1,s._eventRegistry=S,s.mergeOverlappingRanges(),s.ranges[0]&&s.fromOrientedRange(s.ranges[0]);var _=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),_&&_.from==_.to&&this.renderer.animateScrolling(_.from),C}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var w="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var l=this.multiSelect.rangeList.ranges,g=[],b=0;b<l.length;b++)g.push(this.session.getTextRange(l[b]));var f=this.session.getDocument().getNewLineCharacter();w=g.join(f),w.length==(g.length-1)*f.length&&(w="")}else this.selection.isEmpty()||(w=this.session.getTextRange(this.getSelectionRange()));return w},this.$checkMultiselectChange=function(w,l){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var g=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&l==this.multiSelect.anchor)return;var b=l==this.multiSelect.anchor?g.cursor==g.start?g.end:g.start:g.cursor;b.row!=l.row||this.session.$clipPositionToDocument(b.row,b.column).column!=l.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(w,l,g){if(l=l||{},l.needle=w||l.needle,l.needle==null){var b=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();l.needle=this.session.getTextRange(b)}this.$search.set(l);var f=this.$search.findAll(this.session);if(!f.length)return 0;var h=this.multiSelect;g||h.toSingleRange(f[0]);for(var s=f.length;s--;)h.addRange(f[s],!0);return b&&h.rangeList.rangeAtPoint(b.start)&&h.addRange(b,!0),f.length},this.selectMoreLines=function(w,l){var g=this.selection.toOrientedRange(),b=g.cursor==g.end,f=this.session.documentToScreenPosition(g.cursor);this.selection.$desiredColumn&&(f.column=this.selection.$desiredColumn);var h=this.session.screenToDocumentPosition(f.row+w,f.column);if(g.isEmpty())var u=h;else var s=this.session.documentToScreenPosition(b?g.end:g.start),u=this.session.screenToDocumentPosition(s.row+w,s.column);if(b){var $=A.fromPoints(h,u);$.cursor=$.start}else{var $=A.fromPoints(u,h);$.cursor=$.end}if($.desiredColumn=f.column,!this.selection.inMultiSelectMode)this.selection.addRange(g);else if(l)var C=g.cursor;this.selection.addRange($),C&&this.selection.substractPoint(C)},this.transposeSelections=function(w){for(var l=this.session,g=l.multiSelect,b=g.ranges,f=b.length;f--;){var h=b[f];if(h.isEmpty()){var s=l.getWordRange(h.start.row,h.start.column);h.start.row=s.start.row,h.start.column=s.start.column,h.end.row=s.end.row,h.end.column=s.end.column}}g.mergeOverlappingRanges();for(var u=[],f=b.length;f--;){var h=b[f];u.unshift(l.getTextRange(h))}w<0?u.unshift(u.pop()):u.push(u.shift());for(var f=b.length;f--;){var h=b[f],s=h.clone();l.replace(h,u[f]),h.start.row=s.start.row,h.start.column=s.start.column}g.fromOrientedRange(g.ranges[0])},this.selectMore=function(w,l,g){var b=this.session,f=b.multiSelect,h=f.toOrientedRange();if(!(h.isEmpty()&&(h=b.getWordRange(h.start.row,h.start.column),h.cursor=w==-1?h.start:h.end,this.multiSelect.addRange(h),g))){var s=b.getTextRange(h),u=r(b,s,w);u&&(u.cursor=w==-1?u.start:u.end,this.session.unfold(u),this.multiSelect.addRange(u),this.renderer.scrollCursorIntoView(null,.5)),l&&this.multiSelect.substractPoint(h.cursor)}},this.alignCursors=function(){var w=this.session,l=w.multiSelect,g=l.ranges,b=-1,f=g.filter(function(M){if(M.cursor.row==b)return!0;b=M.cursor.row});if(!g.length||f.length==g.length-1){var h=this.selection.getRange(),s=h.start.row,u=h.end.row,$=s==u;if($){var C=this.session.getLength(),S;do S=this.session.getLine(u);while(/[=:]/.test(S)&&++u<C);do S=this.session.getLine(s);while(/[=:]/.test(S)&&--s>0);s<0&&(s=0),u>=C&&(u=C-1)}var L=this.session.removeFullLines(s,u);L=this.$reAlignText(L,$),this.session.insert({row:s,column:0},L.join(`
- `)+`
- `),$||(h.start.column=0,h.end.column=L[L.length-1].length),this.selection.setRange(h)}else{f.forEach(function(M){l.substractPoint(M.cursor)});var R=0,T=1/0,_=g.map(function(M){var O=M.cursor,D=w.getLine(O.row),B=D.substr(O.column).search(/\S/g);return B==-1&&(B=0),O.column>R&&(R=O.column),B<T&&(T=B),B});g.forEach(function(M,O){var D=M.cursor,B=R-D.column,F=_[O]-T;B>F?w.insert(D,t.stringRepeat(" ",B-F)):w.remove(new A(D.row,D.column,D.row,D.column-B+F)),M.start.column=M.end.column=R,M.start.row=M.end.row=D.row,M.cursor=M.end}),l.fromOrientedRange(g[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(w,l){var g=!0,b=!0,f,h,s;return w.map(function(L){var R=L.match(/(\s*)(.*?)(\s*)([=:].*)/);return R?f==null?(f=R[1].length,h=R[2].length,s=R[3].length,R):(f+h+s!=R[1].length+R[2].length+R[3].length&&(b=!1),f!=R[1].length&&(g=!1),f>R[1].length&&(f=R[1].length),h<R[2].length&&(h=R[2].length),s>R[3].length&&(s=R[3].length),R):[L]}).map(l?$:g?b?C:$:S);function u(L){return t.stringRepeat(" ",L)}function $(L){return L[2]?u(f)+L[2]+u(h-L[2].length+s)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function C(L){return L[2]?u(f+h-L[2].length)+L[2]+u(s)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function S(L){return L[2]?u(f)+L[2]+u(s)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}}}).call(d.prototype);function p(w,l){return w.row==l.row&&w.column==l.column}k.onSessionChange=function(w){var l=w.session;l&&!l.multiSelect&&(l.$selectionMarkers=[],l.selection.$initRangeList(),l.multiSelect=l.selection),this.multiSelect=l&&l.multiSelect;var g=w.oldSession;g&&(g.multiSelect.off("addRange",this.$onAddRange),g.multiSelect.off("removeRange",this.$onRemoveRange),g.multiSelect.off("multiSelect",this.$onMultiSelect),g.multiSelect.off("singleSelect",this.$onSingleSelect),g.multiSelect.lead.off("change",this.$checkMultiselectChange),g.multiSelect.anchor.off("change",this.$checkMultiselectChange)),l&&(l.multiSelect.on("addRange",this.$onAddRange),l.multiSelect.on("removeRange",this.$onRemoveRange),l.multiSelect.on("multiSelect",this.$onMultiSelect),l.multiSelect.on("singleSelect",this.$onSingleSelect),l.multiSelect.lead.on("change",this.$checkMultiselectChange),l.multiSelect.anchor.on("change",this.$checkMultiselectChange)),l&&this.inMultiSelectMode!=l.selection.inMultiSelectMode&&(l.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function v(w){w.$multiselectOnSessionChange||(w.$onAddRange=w.$onAddRange.bind(w),w.$onRemoveRange=w.$onRemoveRange.bind(w),w.$onMultiSelect=w.$onMultiSelect.bind(w),w.$onSingleSelect=w.$onSingleSelect.bind(w),w.$multiselectOnSessionChange=k.onSessionChange.bind(w),w.$checkMultiselectChange=w.$checkMultiselectChange.bind(w),w.$multiselectOnSessionChange(w),w.on("changeSession",w.$multiselectOnSessionChange),w.on("mousedown",a),w.commands.addCommands(e.defaultCommands),y(w))}function y(w){if(!w.textInput)return;var l=w.textInput.getElement(),g=!1;c.addListener(l,"keydown",function(f){var h=f.keyCode==18&&!(f.ctrlKey||f.shiftKey||f.metaKey);w.$blockSelectEnabled&&h?g||(w.renderer.setMouseCursor("crosshair"),g=!0):g&&b()},w),c.addListener(l,"keyup",b,w),c.addListener(l,"blur",b,w);function b(f){g&&(w.renderer.setMouseCursor(""),g=!1)}}k.MultiSelect=v,x("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(w){v(this),w?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",a)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",a))},value:!0},enableBlockSelect:{set:function(w){this.$blockSelectEnabled=w},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(x,k,W){var E=x("../../range").Range,A=k.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(m,a,c){var t=m.getLine(c);return this.foldingStartMarker.test(t)?"start":a=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(t)?"end":""},this.getFoldWidgetRange=function(m,a,c){return null},this.indentationBlock=function(m,a,c){var t=/\S/,e=m.getLine(a),i=e.search(t);if(i!=-1){for(var n=c||e.length,r=m.getLength(),o=a,d=a;++a<r;){var p=m.getLine(a).search(t);if(p!=-1){if(p<=i){var v=m.getTokenAt(a,0);if(!v||v.type!=="string")break}d=a}}if(d>o){var y=m.getLine(d).length;return new E(o,n,d,y)}}},this.openingBracketBlock=function(m,a,c,t,e){var i={row:c,column:t+1},n=m.$findClosingBracket(a,i,e);if(!!n){var r=m.foldWidgets[n.row];return r==null&&(r=m.getFoldWidget(n.row)),r=="start"&&n.row>i.row&&(n.row--,n.column=m.getLine(n.row).length),E.fromPoints(i,n)}},this.closingBracketBlock=function(m,a,c,t,e){var i={row:c,column:t},n=m.$findOpeningBracket(a,i);if(!!n)return n.column++,i.column--,E.fromPoints(n,i)}}).call(A.prototype)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(x,k,W){var E=x("./lib/dom");function A(m){this.session=m,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(m){var a;return this.lineWidgets?a=this.lineWidgets[m]&&this.lineWidgets[m].rowCount||0:a=0,!this.$useWrapMode||!this.$wrapData[m]?1+a:this.$wrapData[m].length+1+a},this.$getWidgetScreenLength=function(){var m=0;return this.lineWidgets.forEach(function(a){a&&a.rowCount&&!a.hidden&&(m+=a.rowCount)}),m},this.$onChangeEditor=function(m){this.attach(m.editor)},this.attach=function(m){m&&m.widgetManager&&m.widgetManager!=this&&m.widgetManager.detach(),this.editor!=m&&(this.detach(),this.editor=m,m&&(m.widgetManager=this,m.renderer.on("beforeRender",this.measureWidgets),m.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(m){var a=this.editor;if(!!a){this.editor=null,a.widgetManager=null,a.renderer.off("beforeRender",this.measureWidgets),a.renderer.off("afterRender",this.renderWidgets);var c=this.session.lineWidgets;c&&c.forEach(function(t){t&&t.el&&t.el.parentNode&&(t._inDocument=!1,t.el.parentNode.removeChild(t.el))})}},this.updateOnFold=function(m,a){var c=a.lineWidgets;if(!(!c||!m.action)){for(var t=m.data,e=t.start.row,i=t.end.row,n=m.action=="add",r=e+1;r<i;r++)c[r]&&(c[r].hidden=n);c[i]&&(n?c[e]?c[i].hidden=n:c[e]=c[i]:(c[e]==c[i]&&(c[e]=void 0),c[i].hidden=n))}},this.updateOnChange=function(m){var a=this.session.lineWidgets;if(!!a){var c=m.start.row,t=m.end.row-c;if(t!==0)if(m.action=="remove"){var e=a.splice(c+1,t);!a[c]&&e[e.length-1]&&(a[c]=e.pop()),e.forEach(function(n){n&&this.removeLineWidget(n)},this),this.$updateRows()}else{var i=new Array(t);a[c]&&a[c].column!=null&&m.start.column>a[c].column&&c++,i.unshift(c,0),a.splice.apply(a,i),this.$updateRows()}}},this.$updateRows=function(){var m=this.session.lineWidgets;if(!!m){var a=!0;m.forEach(function(c,t){if(c)for(a=!1,c.row=t;c.$oldWidget;)c.$oldWidget.row=t,c=c.$oldWidget}),a&&(this.session.lineWidgets=null)}},this.$registerLineWidget=function(m){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var a=this.session.lineWidgets[m.row];return a&&(m.$oldWidget=a,a.el&&a.el.parentNode&&(a.el.parentNode.removeChild(a.el),a._inDocument=!1)),this.session.lineWidgets[m.row]=m,m},this.addLineWidget=function(m){if(this.$registerLineWidget(m),m.session=this.session,!this.editor)return m;var a=this.editor.renderer;m.html&&!m.el&&(m.el=E.createElement("div"),m.el.innerHTML=m.html),m.el&&(E.addCssClass(m.el,"ace_lineWidgetContainer"),m.el.style.position="absolute",m.el.style.zIndex=5,a.container.appendChild(m.el),m._inDocument=!0,m.coverGutter||(m.el.style.zIndex=3),m.pixelHeight==null&&(m.pixelHeight=m.el.offsetHeight)),m.rowCount==null&&(m.rowCount=m.pixelHeight/a.layerConfig.lineHeight);var c=this.session.getFoldAt(m.row,0);if(m.$fold=c,c){var t=this.session.lineWidgets;m.row==c.end.row&&!t[c.start.row]?t[c.start.row]=m:m.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:m.row}}}),this.$updateRows(),this.renderWidgets(null,a),this.onWidgetChanged(m),m},this.removeLineWidget=function(m){if(m._inDocument=!1,m.session=null,m.el&&m.el.parentNode&&m.el.parentNode.removeChild(m.el),m.editor&&m.editor.destroy)try{m.editor.destroy()}catch(c){}if(this.session.lineWidgets){var a=this.session.lineWidgets[m.row];if(a==m)this.session.lineWidgets[m.row]=m.$oldWidget,m.$oldWidget&&this.onWidgetChanged(m.$oldWidget);else for(;a;){if(a.$oldWidget==m){a.$oldWidget=m.$oldWidget;break}a=a.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:m.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(m){for(var a=this.session.lineWidgets,c=a&&a[m],t=[];c;)t.push(c),c=c.$oldWidget;return t},this.onWidgetChanged=function(m){this.session._changedWidgets.push(m),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(m,a){var c=this.session._changedWidgets,t=a.layerConfig;if(!(!c||!c.length)){for(var e=1/0,i=0;i<c.length;i++){var n=c[i];if(!(!n||!n.el)&&n.session==this.session){if(!n._inDocument){if(this.session.lineWidgets[n.row]!=n)continue;n._inDocument=!0,a.container.appendChild(n.el)}n.h=n.el.offsetHeight,n.fixedWidth||(n.w=n.el.offsetWidth,n.screenWidth=Math.ceil(n.w/t.characterWidth));var r=n.h/t.lineHeight;n.coverLine&&(r-=this.session.getRowLineCount(n.row),r<0&&(r=0)),n.rowCount!=r&&(n.rowCount=r,n.row<e&&(e=n.row))}}e!=1/0&&(this.session._emit("changeFold",{data:{start:{row:e}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(m,a){var c=a.layerConfig,t=this.session.lineWidgets;if(!!t){for(var e=Math.min(this.firstRow,c.firstRow),i=Math.max(this.lastRow,c.lastRow,t.length);e>0&&!t[e];)e--;this.firstRow=c.firstRow,this.lastRow=c.lastRow,a.$cursorLayer.config=c;for(var n=e;n<=i;n++){var r=t[n];if(!(!r||!r.el)){if(r.hidden){r.el.style.top=-100-(r.pixelHeight||0)+"px";continue}r._inDocument||(r._inDocument=!0,a.container.appendChild(r.el));var o=a.$cursorLayer.getPixelPosition({row:n,column:0},!0).top;r.coverLine||(o+=c.lineHeight*this.session.getRowLineCount(r.row)),r.el.style.top=o-c.offset+"px";var d=r.coverGutter?0:a.gutterWidth;r.fixedWidth||(d-=a.scrollLeft),r.el.style.left=d+"px",r.fullWidth&&r.screenWidth&&(r.el.style.minWidth=c.width+2*c.padding+"px"),r.fixedWidth?r.el.style.right=a.scrollBar.getWidth()+"px":r.el.style.right=""}}}}}).call(A.prototype),k.LineWidgets=A}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(x,k,W){var E=x("../line_widgets").LineWidgets,A=x("../lib/dom"),m=x("../range").Range;function a(t,e,i){for(var n=0,r=t.length-1;n<=r;){var o=n+r>>1,d=i(e,t[o]);if(d>0)n=o+1;else if(d<0)r=o-1;else return o}return-(n+1)}function c(t,e,i){var n=t.getAnnotations().sort(m.comparePoints);if(!!n.length){var r=a(n,{row:e,column:-1},m.comparePoints);r<0&&(r=-r-1),r>=n.length?r=i>0?0:n.length-1:r===0&&i<0&&(r=n.length-1);var o=n[r];if(!(!o||!i)){if(o.row===e){do o=n[r+=i];while(o&&o.row===e);if(!o)return n.slice()}var d=[];e=o.row;do d[i<0?"unshift":"push"](o),o=n[r+=i];while(o&&o.row==e);return d.length&&d}}}k.showErrorMarker=function(t,e){var i=t.session;i.widgetManager||(i.widgetManager=new E(i),i.widgetManager.attach(t));var n=t.getCursorPosition(),r=n.row,o=i.widgetManager.getWidgetsAtRow(r).filter(function(f){return f.type=="errorMarker"})[0];o?o.destroy():r-=e;var d=c(i,r,e),p;if(d){var v=d[0];n.column=(v.pos&&typeof v.column!="number"?v.pos.sc:v.column)||0,n.row=v.row,p=t.renderer.$gutterLayer.$annotations[n.row]}else{if(o)return;p={text:["Looks good!"],className:"ace_ok"}}t.session.unfold(n.row),t.selection.moveToPosition(n);var y={row:n.row,fixedWidth:!0,coverGutter:!0,el:A.createElement("div"),type:"errorMarker"},w=y.el.appendChild(A.createElement("div")),l=y.el.appendChild(A.createElement("div"));l.className="error_widget_arrow "+p.className;var g=t.renderer.$cursorLayer.getPixelPosition(n).left;l.style.left=g+t.renderer.gutterWidth-5+"px",y.el.className="error_widget_wrapper",w.className="error_widget "+p.className,w.innerHTML=p.text.join("<br>"),w.appendChild(A.createElement("div"));var b=function(f,h,s){if(h===0&&(s==="esc"||s==="return"))return y.destroy(),{command:"null"}};y.destroy=function(){t.$mouseHandler.isMousePressed||(t.keyBinding.removeKeyboardHandler(b),i.widgetManager.removeLineWidget(y),t.off("changeSelection",y.destroy),t.off("changeSession",y.destroy),t.off("mouseup",y.destroy),t.off("change",y.destroy))},t.keyBinding.addKeyboardHandler(b),t.on("changeSelection",y.destroy),t.on("changeSession",y.destroy),t.on("mouseup",y.destroy),t.on("change",y.destroy),t.session.widgetManager.addLineWidget(y),y.el.onmousedown=t.focus.bind(t),t.renderer.scrollCursorIntoView(null,.5,{bottom:y.el.offsetHeight})},A.importCssString(`
- .error_widget_wrapper {
- background: inherit;
- color: inherit;
- border:none
- }
- .error_widget {
- border-top: solid 2px;
- border-bottom: solid 2px;
- margin: 5px 0;
- padding: 10px 40px;
- white-space: pre-wrap;
- }
- .error_widget.ace_error, .error_widget_arrow.ace_error{
- border-color: #ff5a5a
- }
- .error_widget.ace_warning, .error_widget_arrow.ace_warning{
- border-color: #F1D817
- }
- .error_widget.ace_info, .error_widget_arrow.ace_info{
- border-color: #5a5a5a
- }
- .error_widget.ace_ok, .error_widget_arrow.ace_ok{
- border-color: #5aaa5a
- }
- .error_widget_arrow {
- position: absolute;
- border: solid 5px;
- border-top-color: transparent!important;
- border-right-color: transparent!important;
- border-left-color: transparent!important;
- top: -5px;
- }
- `,"error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(x,k,W){x("./loader_build")(k);var E=x("./lib/dom"),A=x("./lib/event"),m=x("./range").Range,a=x("./editor").Editor,c=x("./edit_session").EditSession,t=x("./undomanager").UndoManager,e=x("./virtual_renderer").VirtualRenderer;x("./worker/worker_client"),x("./keyboard/hash_handler"),x("./placeholder"),x("./multi_select"),x("./mode/folding/fold_mode"),x("./theme/textmate"),x("./ext/error_marker"),k.config=x("./config"),k.edit=function(i,n){if(typeof i=="string"){var r=i;if(i=document.getElementById(r),!i)throw new Error("ace.edit can't find div #"+r)}if(i&&i.env&&i.env.editor instanceof a)return i.env.editor;var o="";if(i&&/input|textarea/i.test(i.tagName)){var d=i;o=d.value,i=E.createElement("pre"),d.parentNode.replaceChild(i,d)}else i&&(o=i.textContent,i.innerHTML="");var p=k.createEditSession(o),v=new a(new e(i),p,n),y={document:p,editor:v,onResize:v.resize.bind(v,null)};return d&&(y.textarea=d),A.addListener(window,"resize",y.onResize),v.on("destroy",function(){A.removeListener(window,"resize",y.onResize),y.editor.container.env=null}),v.container.env=v.env=y,v},k.createEditSession=function(i,n){var r=new c(i,n);return r.setUndoManager(new t),r},k.Range=m,k.Editor=a,k.EditSession=c,k.UndoManager=t,k.VirtualRenderer=e,k.version=k.config.version}),function(){ace.require(["ace/ace"],function(x){x&&(x.config.init(!0),x.define=ace.define),window.ace||(window.ace=x);for(var k in x)x.hasOwnProperty(k)&&(window.ace[k]=x[k]);window.ace.default=window.ace,z&&(z.exports=window.ace)})}()})(He);var lt=He.exports;const Be=["blur","input","change","changeSelectionStyle","changeSession","copy","focus","paste"],De=We({props:{value:{type:String,required:!0},lang:{type:String,default:"text"},theme:{type:String,default:"chrome"},options:Object,placeholder:String,readonly:Boolean,wrap:Boolean,printMargin:{type:[Boolean,Number],default:!0},minLines:Number,maxLines:Number},emits:["update:value","init",...Be],render(){return ze("div")},mounted(){const z=this._editor=Ge(lt.edit(this.$el,_e({placeholder:this.placeholder,readOnly:this.readonly,value:this.value,mode:"ace/mode/"+this.lang,theme:"ace/theme/"+this.theme,wrap:this.wrap,printMargin:this.printMargin,useWorker:!1,minLines:this.minLines,maxLines:this.maxLines},this.options)));this._contentBackup=this.value,this._isSettingContent=!1,z.on("change",()=>{if(this._isSettingContent)return;const Q=z.getValue();this._contentBackup=Q,this.$emit("update:value",Q)}),Be.forEach(Q=>{const x="on"+Ke(Q);typeof this.$.vnode.props[x]=="function"&&z.on(Q,this.$emit.bind(this,Q))}),this._ro=new Ye(()=>z.resize()),this._ro.observe(this.$el),this.$emit("init",z)},beforeUnmount(){var z,Q;(z=this._ro)===null||z===void 0||z.disconnect(),(Q=this._editor)===null||Q===void 0||Q.destroy()},methods:{focus(){this._editor.focus()},blur(){this._editor.blur()},selectAll(){this._editor.selectAll()}},watch:{value(z){if(this._contentBackup!==z){try{this._isSettingContent=!0,this._editor.setValue(z,1)}finally{this._isSettingContent=!1}this._contentBackup=z}},theme(z){this._editor.setTheme("ace/theme/"+z)},options(z){this._editor.setOptions(z)},readonly(z){this._editor.setReadOnly(z)},placeholder(z){this._editor.setOption("placeholder",z)},wrap(z){this._editor.setWrapBehavioursEnabled(z)},printMargin(z){this._editor.setOption("printMargin",z)},lang(z){this._editor.setOption("mode","ace/mode/"+z)},minLines(z){this._editor.setOption("minLines",z)},maxLines(z){this._editor.setOption("maxLines",z)}}});var ht={exports:{}};(function(z,Q){ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(x,k,W){var E=x("../lib/oop"),A=x("./text_highlight_rules").TextHighlightRules,m=function(){var a="and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield|async|await|nonlocal",c="True|False|None|NotImplemented|Ellipsis|__debug__",t="abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|binfile|bin|iter|property|tuple|bool|filter|len|range|type|bytearray|float|list|raw_input|unichr|callable|format|locals|reduce|unicode|chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|__import__|complex|hash|min|apply|delattr|help|next|setattr|set|buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern|ascii|breakpoint|bytes",e=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":t,"variable.language":"self|cls","constant.language":c,keyword:a},"identifier"),i="[uU]?",n="[rR]",r="[fF]",o="(?:[rR][fF]|[fF][rR])",d="(?:(?:[1-9]\\d*)|(?:0))",p="(?:0[oO]?[0-7]+)",v="(?:0[xX][\\dA-Fa-f]+)",y="(?:0[bB][01]+)",w="(?:"+d+"|"+p+"|"+v+"|"+y+")",l="(?:[eE][+-]?\\d+)",g="(?:\\.\\d+)",b="(?:\\d+)",f="(?:(?:"+b+"?"+g+")|(?:"+b+"\\.))",h="(?:(?:"+f+"|"+b+")"+l+")",s="(?:"+h+"|"+f+")",u=`\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})`;this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"string",regex:i+'"{3}',next:"qqstring3"},{token:"string",regex:i+'"(?=.)',next:"qqstring"},{token:"string",regex:i+"'{3}",next:"qstring3"},{token:"string",regex:i+"'(?=.)",next:"qstring"},{token:"string",regex:n+'"{3}',next:"rawqqstring3"},{token:"string",regex:n+'"(?=.)',next:"rawqqstring"},{token:"string",regex:n+"'{3}",next:"rawqstring3"},{token:"string",regex:n+"'(?=.)",next:"rawqstring"},{token:"string",regex:r+'"{3}',next:"fqqstring3"},{token:"string",regex:r+'"(?=.)',next:"fqqstring"},{token:"string",regex:r+"'{3}",next:"fqstring3"},{token:"string",regex:r+"'(?=.)",next:"fqstring"},{token:"string",regex:o+'"{3}',next:"rfqqstring3"},{token:"string",regex:o+'"(?=.)',next:"rfqqstring"},{token:"string",regex:o+"'{3}",next:"rfqstring3"},{token:"string",regex:o+"'(?=.)",next:"rfqstring"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|@|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"punctuation",regex:",|:|;|\\->|\\+=|\\-=|\\*=|\\/=|\\/\\/=|%=|@=|&=|\\|=|^=|>>=|<<=|\\*\\*="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:["keyword","text","entity.name.function"],regex:"(def|class)(\\s+)([\\u00BF-\\u1FFF\\u2C00-\\uD7FF\\w]+)"},{token:"text",regex:"\\s+"},{include:"constants"}],qqstring3:[{token:"constant.language.escape",regex:u},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:u},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:u},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:u},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],rawqqstring3:[{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],rawqstring3:[{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],rawqqstring:[{token:"string",regex:"\\\\$",next:"rawqqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],rawqstring:[{token:"string",regex:"\\\\$",next:"rawqstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}],fqqstring3:[{token:"constant.language.escape",regex:u},{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring3:[{token:"constant.language.escape",regex:u},{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqqstring:[{token:"constant.language.escape",regex:u},{token:"string",regex:"\\\\$",next:"fqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstring:[{token:"constant.language.escape",regex:u},{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring3:[{token:"string",regex:'"{3}',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring3:[{token:"string",regex:"'{3}",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqqstring:[{token:"string",regex:"\\\\$",next:"rfqqstring"},{token:"string",regex:'"|$',next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],rfqstring:[{token:"string",regex:"'|$",next:"start"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"},{defaultToken:"string"}],fqstringParRules:[{token:"paren.lparen",regex:"[\\[\\(]"},{token:"paren.rparen",regex:"[\\]\\)]"},{token:"string",regex:"\\s+"},{token:"string",regex:"'[^']*'"},{token:"string",regex:'"[^"]*"'},{token:"function.support",regex:"(!s|!r|!a)"},{include:"constants"},{token:"paren.rparen",regex:"}",next:"pop"},{token:"paren.lparen",regex:"{",push:"fqstringParRules"}],constants:[{token:"constant.numeric",regex:"(?:"+s+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:s},{token:"constant.numeric",regex:w+"[lL]\\b"},{token:"constant.numeric",regex:w+"\\b"},{token:["punctuation","function.support"],regex:"(\\.)([a-zA-Z_]+)\\b"},{token:e,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"}]},this.normalizeRules()};E.inherits(m,A),k.PythonHighlightRules=m}),ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(x,k,W){var E=x("../../lib/oop"),A=x("./fold_mode").FoldMode,m=k.FoldMode=function(a){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+a+")(?:\\s*)(?:#.*)?$")};E.inherits(m,A),function(){this.getFoldWidgetRange=function(a,c,t){var e=a.getLine(t),i=e.match(this.foldingStartMarker);if(i)return i[1]?this.openingBracketBlock(a,i[1],t,i.index):i[2]?this.indentationBlock(a,t,i.index+i[2].length):this.indentationBlock(a,t)}}.call(m.prototype)}),ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"],function(x,k,W){var E=x("../lib/oop"),A=x("./text").Mode,m=x("./python_highlight_rules").PythonHighlightRules,a=x("./folding/pythonic").FoldMode,c=x("../range").Range,t=function(){this.HighlightRules=m,this.foldingRules=new a("\\:"),this.$behaviour=this.$defaultBehaviour};E.inherits(t,A),function(){this.lineCommentStart="#",this.getNextLineIndent=function(i,n,r){var o=this.$getIndent(n),d=this.getTokenizer().getLineTokens(n,i),p=d.tokens;if(p.length&&p[p.length-1].type=="comment")return o;if(i=="start"){var v=n.match(/^.*[\{\(\[:]\s*$/);v&&(o+=r)}return o};var e={pass:1,return:1,raise:1,break:1,continue:1};this.checkOutdent=function(i,n,r){if(r!==`\r
- `&&r!=="\r"&&r!==`
- `)return!1;var o=this.getTokenizer().getLineTokens(n.trim(),i).tokens;if(!o)return!1;do var d=o.pop();while(d&&(d.type=="comment"||d.type=="text"&&d.value.match(/^\s+$/)));return d?d.type=="keyword"&&e[d.value]:!1},this.autoOutdent=function(i,n,r){r+=1;var o=this.$getIndent(n.getLine(r)),d=n.getTabString();o.slice(-d.length)==d&&n.remove(new c(r,o.length-d.length,r,o.length))},this.$id="ace/mode/python",this.snippetFileId="ace/snippets/python"}.call(t.prototype),k.Mode=t}),function(){ace.require(["ace/mode/python"],function(x){z&&(z.exports=x)})}()})(ht);var ct={exports:{}};(function(z,Q){ace.define("ace/theme/chrome.css",["require","exports","module"],function(x,k,W){W.exports=`.ace-chrome .ace_gutter {
- background: #ebebeb;
- color: #333;
- overflow : hidden;
- }
- .ace-chrome .ace_print-margin {
- width: 1px;
- background: #e8e8e8;
- }
- .ace-chrome {
- background-color: #FFFFFF;
- color: black;
- }
- .ace-chrome .ace_cursor {
- color: black;
- }
- .ace-chrome .ace_invisible {
- color: rgb(191, 191, 191);
- }
- .ace-chrome .ace_constant.ace_buildin {
- color: rgb(88, 72, 246);
- }
- .ace-chrome .ace_constant.ace_language {
- color: rgb(88, 92, 246);
- }
- .ace-chrome .ace_constant.ace_library {
- color: rgb(6, 150, 14);
- }
- .ace-chrome .ace_invalid {
- background-color: rgb(153, 0, 0);
- color: white;
- }
- .ace-chrome .ace_fold {
- }
- .ace-chrome .ace_support.ace_function {
- color: rgb(60, 76, 114);
- }
- .ace-chrome .ace_support.ace_constant {
- color: rgb(6, 150, 14);
- }
- .ace-chrome .ace_support.ace_type,
- .ace-chrome .ace_support.ace_class
- .ace-chrome .ace_support.ace_other {
- color: rgb(109, 121, 222);
- }
- .ace-chrome .ace_variable.ace_parameter {
- font-style:italic;
- color:#FD971F;
- }
- .ace-chrome .ace_keyword.ace_operator {
- color: rgb(104, 118, 135);
- }
- .ace-chrome .ace_comment {
- color: #236e24;
- }
- .ace-chrome .ace_comment.ace_doc {
- color: #236e24;
- }
- .ace-chrome .ace_comment.ace_doc.ace_tag {
- color: #236e24;
- }
- .ace-chrome .ace_constant.ace_numeric {
- color: rgb(0, 0, 205);
- }
- .ace-chrome .ace_variable {
- color: rgb(49, 132, 149);
- }
- .ace-chrome .ace_xml-pe {
- color: rgb(104, 104, 91);
- }
- .ace-chrome .ace_entity.ace_name.ace_function {
- color: #0000A2;
- }
- .ace-chrome .ace_heading {
- color: rgb(12, 7, 255);
- }
- .ace-chrome .ace_list {
- color:rgb(185, 6, 144);
- }
- .ace-chrome .ace_marker-layer .ace_selection {
- background: rgb(181, 213, 255);
- }
- .ace-chrome .ace_marker-layer .ace_step {
- background: rgb(252, 255, 0);
- }
- .ace-chrome .ace_marker-layer .ace_stack {
- background: rgb(164, 229, 101);
- }
- .ace-chrome .ace_marker-layer .ace_bracket {
- margin: -1px 0 0 -1px;
- border: 1px solid rgb(192, 192, 192);
- }
- .ace-chrome .ace_marker-layer .ace_active-line {
- background: rgba(0, 0, 0, 0.07);
- }
- .ace-chrome .ace_gutter-active-line {
- background-color : #dcdcdc;
- }
- .ace-chrome .ace_marker-layer .ace_selected-word {
- background: rgb(250, 250, 255);
- border: 1px solid rgb(200, 200, 250);
- }
- .ace-chrome .ace_storage,
- .ace-chrome .ace_keyword,
- .ace-chrome .ace_meta.ace_tag {
- color: rgb(147, 15, 128);
- }
- .ace-chrome .ace_string.ace_regex {
- color: rgb(255, 0, 0)
- }
- .ace-chrome .ace_string {
- color: #1A1AA6;
- }
- .ace-chrome .ace_entity.ace_other.ace_attribute-name {
- color: #994409;
- }
- .ace-chrome .ace_indent-guide {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;
- }
-
- .ace-chrome .ace_indent-guide-active {
- background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y;
- }
- `}),ace.define("ace/theme/chrome",["require","exports","module","ace/theme/chrome.css","ace/lib/dom"],function(x,k,W){k.isDark=!1,k.cssClass="ace-chrome",k.cssText=x("./chrome.css");var E=x("../lib/dom");E.importCssString(k.cssText,k.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(x){z&&(z.exports=x)})}()})(ct);var ut={exports:{}};(function(z,Q){ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(x,k,W){var E=x("./lib/dom"),A=x("./lib/oop"),m=x("./lib/event_emitter").EventEmitter,a=x("./lib/lang"),c=x("./range").Range,t=x("./range_list").RangeList,e=x("./keyboard/hash_handler").HashHandler,i=x("./tokenizer").Tokenizer,n=x("./clipboard"),r={CURRENT_WORD:function(l){return l.session.getTextRange(l.session.getWordRange())},SELECTION:function(l,g,b){var f=l.session.getTextRange();return b?f.replace(/\n\r?([ \t]*\S)/g,`
- `+b+"$1"):f},CURRENT_LINE:function(l){return l.session.getLine(l.getCursorPosition().row)},PREV_LINE:function(l){return l.session.getLine(l.getCursorPosition().row-1)},LINE_INDEX:function(l){return l.getCursorPosition().row},LINE_NUMBER:function(l){return l.getCursorPosition().row+1},SOFT_TABS:function(l){return l.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(l){return l.session.getTabSize()},CLIPBOARD:function(l){return n.getText&&n.getText()},FILENAME:function(l){return/[^/\\]*$/.exec(this.FILEPATH(l))[0]},FILENAME_BASE:function(l){return/[^/\\]*$/.exec(this.FILEPATH(l))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(l){return this.FILEPATH(l).replace(/[^/\\]*$/,"")},FILEPATH:function(l){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(l){var g=l.session.$mode||{};return g.blockComment&&g.blockComment.start||""},BLOCK_COMMENT_END:function(l){var g=l.session.$mode||{};return g.blockComment&&g.blockComment.end||""},LINE_COMMENT:function(l){var g=l.session.$mode||{};return g.lineCommentStart||""},CURRENT_YEAR:o.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:o.bind(null,{year:"2-digit"}),CURRENT_MONTH:o.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:o.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:o.bind(null,{month:"short"}),CURRENT_DATE:o.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:o.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:o.bind(null,{weekday:"short"}),CURRENT_HOUR:o.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:o.bind(null,{minute:"2-digit"}),CURRENT_SECOND:o.bind(null,{second:"2-digit"})};r.SELECTED_TEXT=r.SELECTION;function o(l){var g=new Date().toLocaleString("en-us",l);return g.length==1?"0"+g:g}var d=function(){this.snippetMap={},this.snippetNameMap={}};(function(){A.implement(this,m),this.getTokenizer=function(){return d.$tokenizer||this.createTokenizer()},this.createTokenizer=function(){function l(f){return f=f.substr(1),/^\d+$/.test(f)?[{tabstopId:parseInt(f,10)}]:[{text:f}]}function g(f){return"(?:[^\\\\"+f+"]|\\\\.)"}var b={regex:"/("+g("/")+"+)/",onMatch:function(f,h,s){var u=s[0];return u.fmtString=!0,u.guard=f.slice(1,-1),u.flag="",""},next:"formatString"};return d.$tokenizer=new i({start:[{regex:/\\./,onMatch:function(f,h,s){var u=f[1];return(u=="}"&&s.length||"`$\\".indexOf(u)!=-1)&&(f=u),[f]}},{regex:/}/,onMatch:function(f,h,s){return[s.length?s.shift():f]}},{regex:/\$(?:\d+|\w+)/,onMatch:l},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(f,h,s){var u=l(f.substr(1));return s.unshift(u[0]),u},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+g("\\|")+"*\\|",onMatch:function(f,h,s){var u=f.slice(1,-1).replace(/\\[,|\\]|,/g,function($){return $.length==2?$[1]:"\0"}).split("\0").map(function($){return{value:$}});return s[0].choices=u,[u[0]]},next:"start"},b,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(f,h,s){return s.length&&s[0].expectElse?(s[0].expectElse=!1,s[0].ifEnd={elseEnd:s[0]},[s[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(f,h,s){var u=f[1];return u=="}"&&s.length||"`$\\".indexOf(u)!=-1?f=u:u=="n"?f=`
- `:u=="t"?f=" ":"ulULE".indexOf(u)!=-1&&(f={changeCase:u,local:u>"a"}),[f]}},{regex:"/\\w*}",onMatch:function(f,h,s){var u=s.shift();return u&&(u.flag=f.slice(1,-1)),this.next=u&&u.tabstopId?"start":"",[u||f]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(f,h,s){return[{text:f.slice(1)}]}},{regex:/\${\w+/,onMatch:function(f,h,s){var u={text:f.slice(2)};return s.unshift(u),[u]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(f,h,s){var u=s.shift();return this.next=u&&u.tabstopId?"start":"",[u||f]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(f,h,s){var u=s[0];return u.formatFunction=f.slice(2,-1),[s.shift()]},next:"formatString"},b,{regex:/:[\?\-+]?/,onMatch:function(f,h,s){f[1]=="+"&&(s[0].ifEnd=s[0]),f[1]=="?"&&(s[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),d.$tokenizer},this.tokenizeTmSnippet=function(l,g){return this.getTokenizer().getLineTokens(l,g).tokens.map(function(b){return b.value||b})},this.getVariableValue=function(l,g,b){if(/^\d+$/.test(g))return(this.variables.__||{})[g]||"";if(/^[A-Z]\d+$/.test(g))return(this.variables[g[0]+"__"]||{})[g.substr(1)]||"";if(g=g.replace(/^TM_/,""),!this.variables.hasOwnProperty(g))return"";var f=this.variables[g];return typeof f=="function"&&(f=this.variables[g](l,g,b)),f==null?"":f},this.variables=r,this.tmStrFormat=function(l,g,b){if(!g.fmt)return l;var f=g.flag||"",h=g.guard;h=new RegExp(h,f.replace(/[^gim]/g,""));var s=typeof g.fmt=="string"?this.tokenizeTmSnippet(g.fmt,"formatString"):g.fmt,u=this,$=l.replace(h,function(){var C=u.variables.__;u.variables.__=[].slice.call(arguments);for(var S=u.resolveVariables(s,b),L="E",R=0;R<S.length;R++){var T=S[R];if(typeof T=="object")if(S[R]="",T.changeCase&&T.local){var _=S[R+1];_&&typeof _=="string"&&(T.changeCase=="u"?S[R]=_[0].toUpperCase():S[R]=_[0].toLowerCase(),S[R+1]=_.substr(1))}else T.changeCase&&(L=T.changeCase);else L=="U"?S[R]=T.toUpperCase():L=="L"&&(S[R]=T.toLowerCase())}return u.variables.__=C,S.join("")});return $},this.tmFormatFunction=function(l,g,b){return g.formatFunction=="upcase"?l.toUpperCase():g.formatFunction=="downcase"?l.toLowerCase():l},this.resolveVariables=function(l,g){for(var b=[],f="",h=!0,s=0;s<l.length;s++){var u=l[s];if(typeof u=="string"){b.push(u),u==`
- `?(h=!0,f=""):h&&(f=/^\t*/.exec(u)[0],h=/\S/.test(u));continue}if(!!u){if(h=!1,u.fmtString){var $=l.indexOf(u,s+1);$==-1&&($=l.length),u.fmt=l.slice(s+1,$),s=$}if(u.text){var C=this.getVariableValue(g,u.text,f)+"";u.fmtString&&(C=this.tmStrFormat(C,u,g)),u.formatFunction&&(C=this.tmFormatFunction(C,u,g)),C&&!u.ifEnd?(b.push(C),S(u)):!C&&u.ifEnd&&S(u.ifEnd)}else u.elseEnd?S(u.elseEnd):(u.tabstopId!=null||u.changeCase!=null)&&b.push(u)}}function S(L){var R=l.indexOf(L,s+1);R!=-1&&(s=R)}return b},this.insertSnippetForSelection=function(l,g){var b=l.getCursorPosition(),f=l.session.getLine(b.row),h=l.session.getTabString(),s=f.match(/^\s*/)[0];b.column<s.length&&(s=s.slice(0,b.column)),g=g.replace(/\r/g,"");var u=this.tokenizeTmSnippet(g);u=this.resolveVariables(u,l),u=u.map(function(V){return V==`
- `?V+s:typeof V=="string"?V.replace(/\t/g,h):V});var $=[];u.forEach(function(V,K){if(typeof V=="object"){var G=V.tabstopId,X=$[G];if(X||(X=$[G]=[],X.index=G,X.value="",X.parents={}),X.indexOf(V)===-1){V.choices&&!X.choices&&(X.choices=V.choices),X.push(V);var Z=u.indexOf(V,K+1);if(Z!==-1){var le=u.slice(K+1,Z),re=le.some(function(ee){return typeof ee=="object"});re&&!X.value?X.value=le:le.length&&(!X.value||typeof X.value!="string")&&(X.value=le.join(""))}}}}),$.forEach(function(V){V.length=0});var C={};function S(V){for(var K=[],G=0;G<V.length;G++){var X=V[G];if(typeof X=="object"){if(C[X.tabstopId])continue;var Z=V.lastIndexOf(X,G-1);X=K[Z]||{tabstopId:X.tabstopId}}K[G]=X}return K}for(var L=0;L<u.length;L++){var R=u[L];if(typeof R=="object"){var T=R.tabstopId,_=$[T],M=u.indexOf(R,L+1);if(C[T]){C[T]===R&&(delete C[T],Object.keys(C).forEach(function(V){_.parents[V]=!0}));continue}C[T]=R;var O=_.value;typeof O!="string"?O=S(O):R.fmt&&(O=this.tmStrFormat(O,R,l)),u.splice.apply(u,[L+1,Math.max(0,M-L)].concat(O,R)),_.indexOf(R)===-1&&_.push(R)}}var D=0,B=0,F="";u.forEach(function(V){if(typeof V=="string"){var K=V.split(`
- `);K.length>1?(B=K[K.length-1].length,D+=K.length-1):B+=V.length,F+=V}else V&&(V.start?V.end={row:D,column:B}:V.start={row:D,column:B})});var I=l.getSelectionRange(),P=l.session.replace(I,F),N=new p(l),U=l.inVirtualSelectionMode&&l.selection.index;N.addTabstops($,I.start,P,U)},this.insertSnippet=function(l,g){var b=this;if(l.inVirtualSelectionMode)return b.insertSnippetForSelection(l,g);l.forEachSelection(function(){b.insertSnippetForSelection(l,g)},null,{keepOrder:!0}),l.tabstopManager&&l.tabstopManager.tabNext()},this.$getScope=function(l){var g=l.session.$mode.$id||"";if(g=g.split("/").pop(),g==="html"||g==="php"){g==="php"&&!l.session.$mode.inlinePhp&&(g="html");var b=l.getCursorPosition(),f=l.session.getState(b.row);typeof f=="object"&&(f=f[0]),f.substring&&(f.substring(0,3)=="js-"?g="javascript":f.substring(0,4)=="css-"?g="css":f.substring(0,4)=="php-"&&(g="php"))}return g},this.getActiveScopes=function(l){var g=this.$getScope(l),b=[g],f=this.snippetMap;return f[g]&&f[g].includeScopes&&b.push.apply(b,f[g].includeScopes),b.push("_"),b},this.expandWithTab=function(l,g){var b=this,f=l.forEachSelection(function(){return b.expandSnippetForSelection(l,g)},null,{keepOrder:!0});return f&&l.tabstopManager&&l.tabstopManager.tabNext(),f},this.expandSnippetForSelection=function(l,g){var b=l.getCursorPosition(),f=l.session.getLine(b.row),h=f.substring(0,b.column),s=f.substr(b.column),u=this.snippetMap,$;return this.getActiveScopes(l).some(function(C){var S=u[C];return S&&($=this.findMatchingSnippet(S,h,s)),!!$},this),$?(g&&g.dryRun||(l.session.doc.removeInLine(b.row,b.column-$.replaceBefore.length,b.column+$.replaceAfter.length),this.variables.M__=$.matchBefore,this.variables.T__=$.matchAfter,this.insertSnippetForSelection(l,$.content),this.variables.M__=this.variables.T__=null),!0):!1},this.findMatchingSnippet=function(l,g,b){for(var f=l.length;f--;){var h=l[f];if(!(h.startRe&&!h.startRe.test(g))&&!(h.endRe&&!h.endRe.test(b))&&!(!h.startRe&&!h.endRe))return h.matchBefore=h.startRe?h.startRe.exec(g):[""],h.matchAfter=h.endRe?h.endRe.exec(b):[""],h.replaceBefore=h.triggerRe?h.triggerRe.exec(g)[0]:"",h.replaceAfter=h.endTriggerRe?h.endTriggerRe.exec(b)[0]:"",h}},this.snippetMap={},this.snippetNameMap={},this.register=function(l,g){var b=this.snippetMap,f=this.snippetNameMap,h=this;l||(l=[]);function s(C){return C&&!/^\^?\(.*\)\$?$|^\\b$/.test(C)&&(C="(?:"+C+")"),C||""}function u(C,S,L){return C=s(C),S=s(S),L?(C=S+C,C&&C[C.length-1]!="$"&&(C=C+"$")):(C=C+S,C&&C[0]!="^"&&(C="^"+C)),new RegExp(C)}function $(C){C.scope||(C.scope=g||"_"),g=C.scope,b[g]||(b[g]=[],f[g]={});var S=f[g];if(C.name){var L=S[C.name];L&&h.unregister(L),S[C.name]=C}b[g].push(C),C.prefix&&(C.tabTrigger=C.prefix),!C.content&&C.body&&(C.content=Array.isArray(C.body)?C.body.join(`
- `):C.body),C.tabTrigger&&!C.trigger&&(!C.guard&&/^\w/.test(C.tabTrigger)&&(C.guard="\\b"),C.trigger=a.escapeRegExp(C.tabTrigger)),!(!C.trigger&&!C.guard&&!C.endTrigger&&!C.endGuard)&&(C.startRe=u(C.trigger,C.guard,!0),C.triggerRe=new RegExp(C.trigger),C.endRe=u(C.endTrigger,C.endGuard,!0),C.endTriggerRe=new RegExp(C.endTrigger))}Array.isArray(l)?l.forEach($):Object.keys(l).forEach(function(C){$(l[C])}),this._signal("registerSnippets",{scope:g})},this.unregister=function(l,g){var b=this.snippetMap,f=this.snippetNameMap;function h(s){var u=f[s.scope||g];if(u&&u[s.name]){delete u[s.name];var $=b[s.scope||g],C=$&&$.indexOf(s);C>=0&&$.splice(C,1)}}l.content?h(l):Array.isArray(l)&&l.forEach(h)},this.parseSnippetFile=function(l){l=l.replace(/\r/g,"");for(var g=[],b={},f=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,h;h=f.exec(l);){if(h[1])try{b=JSON.parse(h[1]),g.push(b)}catch(C){}if(h[4])b.content=h[4].replace(/^\t/gm,""),g.push(b),b={};else{var s=h[2],u=h[3];if(s=="regex"){var $=/\/((?:[^\/\\]|\\.)*)|$/g;b.guard=$.exec(u)[1],b.trigger=$.exec(u)[1],b.endTrigger=$.exec(u)[1],b.endGuard=$.exec(u)[1]}else s=="snippet"?(b.tabTrigger=u.match(/^\S*/)[0],b.name||(b.name=u)):s&&(b[s]=u)}}return g},this.getSnippetByName=function(l,g){var b=this.snippetNameMap,f;return this.getActiveScopes(g).some(function(h){var s=b[h];return s&&(f=s[l]),!!f},this),f}}).call(d.prototype);var p=function(l){if(l.tabstopManager)return l.tabstopManager;l.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=a.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(l)};(function(){this.attach=function(l){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=l,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(l){for(var g=l.action[0]=="r",b=this.selectedTabstop||{},f=b.parents||{},h=(this.tabstops||[]).slice(),s=0;s<h.length;s++){var u=h[s],$=u==b||f[u.index];if(u.rangeList.$bias=$?0:1,l.action=="remove"&&u!==b){var C=u.parents&&u.parents[b.index],S=u.rangeList.pointIndex(l.start,C);S=S<0?-S-1:S+1;var L=u.rangeList.pointIndex(l.end,C);L=L<0?-L-1:L-1;for(var R=u.rangeList.ranges.slice(S,L),T=0;T<R.length;T++)this.removeRange(R[T])}u.rangeList.$onChange(l)}var _=this.editor.session;!this.$inChange&&g&&_.getLength()==1&&!_.getValue()&&this.detach()},this.updateLinkedFields=function(){var l=this.selectedTabstop;if(!(!l||!l.hasLinkedRanges||!l.firstNonLinked)){this.$inChange=!0;for(var g=this.editor.session,b=g.getTextRange(l.firstNonLinked),f=0;f<l.length;f++){var h=l[f];if(!!h.linked){var s=h.original,u=k.snippetManager.tmStrFormat(b,s,this.editor);g.replace(h,u)}}this.$inChange=!1}},this.onAfterExec=function(l){l.command&&!l.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(!!this.editor){for(var l=this.editor.selection.lead,g=this.editor.selection.anchor,b=this.editor.selection.isEmpty(),f=0;f<this.ranges.length;f++)if(!this.ranges[f].linked){var h=this.ranges[f].contains(l.row,l.column),s=b||this.ranges[f].contains(g.row,g.column);if(h&&s)return}this.detach()}},this.onChangeSession=function(){this.detach()},this.tabNext=function(l){var g=this.tabstops.length,b=this.index+(l||1);b=Math.min(Math.max(b,1),g),b==g&&(b=0),this.selectTabstop(b),b===0&&this.detach()},this.selectTabstop=function(l){this.$openTabstops=null;var g=this.tabstops[this.index];if(g&&this.addTabstopMarkers(g),this.index=l,g=this.tabstops[this.index],!(!g||!g.length)){this.selectedTabstop=g;var b=g.firstNonLinked||g;if(g.choices&&(b.cursor=b.start),this.editor.inVirtualSelectionMode)this.editor.selection.fromOrientedRange(b);else{var f=this.editor.multiSelect;f.toSingleRange(b);for(var h=0;h<g.length;h++)g.hasLinkedRanges&&g[h].linked||f.addRange(g[h].clone(),!0)}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler),this.selectedTabstop&&this.selectedTabstop.choices&&this.editor.execCommand("startAutocomplete",{matches:this.selectedTabstop.choices})}},this.addTabstops=function(l,g,b){var f=this.useLink||!this.editor.getOption("enableMultiselect");if(this.$openTabstops||(this.$openTabstops=[]),!l[0]){var h=c.fromPoints(b,b);y(h.start,g),y(h.end,g),l[0]=[h],l[0].index=0}var s=this.index,u=[s+1,0],$=this.ranges;l.forEach(function(C,S){for(var L=this.$openTabstops[S]||C,R=0;R<C.length;R++){var T=C[R],_=c.fromPoints(T.start,T.end||T.start);v(_.start,g),v(_.end,g),_.original=T,_.tabstop=L,$.push(_),L!=C?L.unshift(_):L[R]=_,T.fmtString||L.firstNonLinked&&f?(_.linked=!0,L.hasLinkedRanges=!0):L.firstNonLinked||(L.firstNonLinked=_)}L.firstNonLinked||(L.hasLinkedRanges=!1),L===C&&(u.push(L),this.$openTabstops[S]=L),this.addTabstopMarkers(L),L.rangeList=L.rangeList||new t,L.rangeList.$bias=0,L.rangeList.addList(L)},this),u.length>2&&(this.tabstops.length&&u.push(u.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,u))},this.addTabstopMarkers=function(l){var g=this.editor.session;l.forEach(function(b){b.markerId||(b.markerId=g.addMarker(b,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(l){var g=this.editor.session;l.forEach(function(b){g.removeMarker(b.markerId),b.markerId=null})},this.removeRange=function(l){var g=l.tabstop.indexOf(l);g!=-1&&l.tabstop.splice(g,1),g=this.ranges.indexOf(l),g!=-1&&this.ranges.splice(g,1),g=l.tabstop.rangeList.ranges.indexOf(l),g!=-1&&l.tabstop.splice(g,1),this.editor.session.removeMarker(l.markerId),l.tabstop.length||(g=this.tabstops.indexOf(l.tabstop),g!=-1&&this.tabstops.splice(g,1),this.tabstops.length||this.detach())},this.keyboardHandler=new e,this.keyboardHandler.bindKeys({Tab:function(l){k.snippetManager&&k.snippetManager.expandWithTab(l)||(l.tabstopManager.tabNext(1),l.renderer.scrollCursorIntoView())},"Shift-Tab":function(l){l.tabstopManager.tabNext(-1),l.renderer.scrollCursorIntoView()},Esc:function(l){l.tabstopManager.detach()}})}).call(p.prototype);var v=function(l,g){l.row==0&&(l.column+=g.column),l.row+=g.row},y=function(l,g){l.row==g.row&&(l.column-=g.column),l.row-=g.row};E.importCssString(`
- .ace_snippet-marker {
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- background: rgba(194, 193, 208, 0.09);
- border: 1px dotted rgba(211, 208, 235, 0.62);
- position: absolute;
- }`,"snippets.css",!1),k.snippetManager=new d;var w=x("./editor").Editor;(function(){this.insertSnippet=function(l,g){return k.snippetManager.insertSnippet(this,l,g)},this.expandSnippet=function(l){return k.snippetManager.expandWithTab(this,l)}}).call(w.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(x,k,W){var E=x("../virtual_renderer").VirtualRenderer,A=x("../editor").Editor,m=x("../range").Range,a=x("../lib/event"),c=x("../lib/lang"),t=x("../lib/dom"),e=function(n){var r=new E(n);r.$maxLines=4;var o=new A(r);return o.setHighlightActiveLine(!1),o.setShowPrintMargin(!1),o.renderer.setShowGutter(!1),o.renderer.setHighlightGutterLine(!1),o.$mouseHandler.$focusTimeout=0,o.$highlightTagPending=!0,o},i=function(n){var r=t.createElement("div"),o=new e(r);n&&n.appendChild(r),r.style.display="none",o.renderer.content.style.cursor="default",o.renderer.setStyle("ace_autocomplete"),o.setOption("displayIndentGuides",!1),o.setOption("dragDelay",150);var d=function(){};o.focus=d,o.$isFocused=!0,o.renderer.$cursorLayer.restartTimer=d,o.renderer.$cursorLayer.element.style.opacity=0,o.renderer.$maxLines=8,o.renderer.$keepTextAreaAtCursor=!1,o.setHighlightActiveLine(!1),o.session.highlight(""),o.session.$searchHighlight.clazz="ace_highlight-marker",o.on("mousedown",function(b){var f=b.getDocumentPosition();o.selection.moveToPosition(f),y.start.row=y.end.row=f.row,b.stop()});var p,v=new m(-1,0,-1,1/0),y=new m(-1,0,-1,1/0);y.id=o.session.addMarker(y,"ace_active-line","fullLine"),o.setSelectOnHover=function(b){b?v.id&&(o.session.removeMarker(v.id),v.id=null):v.id=o.session.addMarker(v,"ace_line-hover","fullLine")},o.setSelectOnHover(!1),o.on("mousemove",function(b){if(!p){p=b;return}if(!(p.x==b.x&&p.y==b.y)){p=b,p.scrollTop=o.renderer.scrollTop;var f=p.getDocumentPosition().row;v.start.row!=f&&(v.id||o.setRow(f),l(f))}}),o.renderer.on("beforeRender",function(){if(p&&v.start.row!=-1){p.$pos=null;var b=p.getDocumentPosition().row;v.id||o.setRow(b),l(b,!0)}}),o.renderer.on("afterRender",function(){var b=o.getRow(),f=o.renderer.$textLayer,h=f.element.childNodes[b-f.config.firstRow];h!==f.selectedNode&&f.selectedNode&&t.removeCssClass(f.selectedNode,"ace_selected"),f.selectedNode=h,h&&t.addCssClass(h,"ace_selected")});var w=function(){l(-1)},l=function(b,f){b!==v.start.row&&(v.start.row=v.end.row=b,f||o.session._emit("changeBackMarker"),o._emit("changeHoverMarker"))};o.getHoveredRow=function(){return v.start.row},a.addListener(o.container,"mouseout",w),o.on("hide",w),o.on("changeSelection",w),o.session.doc.getLength=function(){return o.data.length},o.session.doc.getLine=function(b){var f=o.data[b];return typeof f=="string"?f:f&&f.value||""};var g=o.session.bgTokenizer;return g.$tokenizeRow=function(b){var f=o.data[b],h=[];if(!f)return h;typeof f=="string"&&(f={value:f});var s=f.caption||f.value||f.name;function u(M,O){M&&h.push({type:(f.className||"")+(O||""),value:M})}for(var $=s.toLowerCase(),C=(o.filterText||"").toLowerCase(),S=0,L=0,R=0;R<=C.length;R++)if(R!=L&&(f.matchMask&1<<R||R==C.length)){var T=C.slice(L,R);L=R;var _=$.indexOf(T,S);if(_==-1)continue;u(s.slice(S,_),""),S=_+T.length,u(s.slice(_,S),"completion-highlight")}return u(s.slice(S,s.length),""),f.meta&&h.push({type:"completion-meta",value:f.meta}),f.message&&h.push({type:"completion-message",value:f.message}),h},g.$updateOnChange=d,g.start=d,o.session.$computeWidth=function(){return this.screenWidth=0},o.isOpen=!1,o.isTopdown=!1,o.autoSelect=!0,o.filterText="",o.data=[],o.setData=function(b,f){o.filterText=f||"",o.setValue(c.stringRepeat(`
- `,b.length),-1),o.data=b||[],o.setRow(0)},o.getData=function(b){return o.data[b]},o.getRow=function(){return y.start.row},o.setRow=function(b){b=Math.max(this.autoSelect?0:-1,Math.min(this.data.length,b)),y.start.row!=b&&(o.selection.clearSelection(),y.start.row=y.end.row=b||0,o.session._emit("changeBackMarker"),o.moveCursorTo(b||0,0),o.isOpen&&o._signal("select"))},o.on("changeSelection",function(){o.isOpen&&o.setRow(o.selection.lead.row),o.renderer.scrollCursorIntoView()}),o.hide=function(){this.container.style.display="none",this._signal("hide"),o.isOpen=!1},o.show=function(b,f,h){var s=this.container,u=window.innerHeight,$=window.innerWidth,C=this.renderer,S=C.$maxLines*f*1.4,L=b.top+this.$borderSize,R=L>u/2&&!h;R&&L+f+S>u?(C.$maxPixelHeight=L-2*this.$borderSize,s.style.top="",s.style.bottom=u-L+"px",o.isTopdown=!1):(L+=f,C.$maxPixelHeight=u-L-.2*f,s.style.top=L+"px",s.style.bottom="",o.isTopdown=!0),s.style.display="";var T=b.left;T+s.offsetWidth>$&&(T=$-s.offsetWidth),s.style.left=T+"px",this._signal("show"),p=null,o.isOpen=!0},o.goTo=function(b){var f=this.getRow(),h=this.session.getLength()-1;switch(b){case"up":f=f<=0?h:f-1;break;case"down":f=f>=h?-1:f+1;break;case"start":f=0;break;case"end":f=h;break}this.setRow(f)},o.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},o.$imageSize=0,o.$borderSize=1,o};t.importCssString(`
- .ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {
- background-color: #CAD6FA;
- z-index: 1;
- }
- .ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {
- background-color: #3a674e;
- }
- .ace_editor.ace_autocomplete .ace_line-hover {
- border: 1px solid #abbffe;
- margin-top: -1px;
- background: rgba(233,233,253,0.4);
- position: absolute;
- z-index: 2;
- }
- .ace_dark.ace_editor.ace_autocomplete .ace_line-hover {
- border: 1px solid rgba(109, 150, 13, 0.8);
- background: rgba(58, 103, 78, 0.62);
- }
- .ace_completion-meta {
- opacity: 0.5;
- margin: 0.9em;
- }
- .ace_completion-message {
- color: blue;
- }
- .ace_editor.ace_autocomplete .ace_completion-highlight{
- color: #2d69c7;
- }
- .ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{
- color: #93ca12;
- }
- .ace_editor.ace_autocomplete {
- width: 300px;
- z-index: 200000;
- border: 1px lightgray solid;
- position: fixed;
- box-shadow: 2px 3px 5px rgba(0,0,0,.2);
- line-height: 1.4;
- background: #fefefe;
- color: #111;
- }
- .ace_dark.ace_editor.ace_autocomplete {
- border: 1px #484747 solid;
- box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);
- line-height: 1.4;
- background: #25282c;
- color: #c1c1c1;
- }`,"autocompletion.css",!1),k.AcePopup=i,k.$singleLineEditor=e}),ace.define("ace/autocomplete/util",["require","exports","module"],function(x,k,W){k.parForEach=function(A,m,a){var c=0,t=A.length;t===0&&a();for(var e=0;e<t;e++)m(A[e],function(i,n){c++,c===t&&a(i,n)})};var E=/[a-zA-Z_0-9\$\-\u00A2-\u2000\u2070-\uFFFF]/;k.retrievePrecedingIdentifier=function(A,m,a){a=a||E;for(var c=[],t=m-1;t>=0&&a.test(A[t]);t--)c.push(A[t]);return c.reverse().join("")},k.retrieveFollowingIdentifier=function(A,m,a){a=a||E;for(var c=[],t=m;t<A.length&&a.test(A[t]);t++)c.push(A[t]);return c},k.getCompletionPrefix=function(A){var m=A.getCursorPosition(),a=A.session.getLine(m.row),c;return A.completers.forEach(function(t){t.identifierRegexps&&t.identifierRegexps.forEach(function(e){!c&&e&&(c=this.retrievePrecedingIdentifier(a,m.column,e))}.bind(this))}.bind(this)),c||this.retrievePrecedingIdentifier(a,m.column)}}),ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/lang","ace/lib/dom","ace/snippets","ace/config"],function(x,k,W){var E=x("./keyboard/hash_handler").HashHandler,A=x("./autocomplete/popup").AcePopup,m=x("./autocomplete/util"),a=x("./lib/lang"),c=x("./lib/dom"),t=x("./snippets").snippetManager,e=x("./config"),i=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new E,this.keyboardHandler.bindKeys(this.commands),this.blurListener=this.blurListener.bind(this),this.changeListener=this.changeListener.bind(this),this.mousedownListener=this.mousedownListener.bind(this),this.mousewheelListener=this.mousewheelListener.bind(this),this.changeTimer=a.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=a.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new A(document.body||document.documentElement),this.popup.on("click",function(r){this.insertMatch(),r.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.tooltipTimer.bind(null,null)),this.popup.on("select",this.tooltipTimer.bind(null,null)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(r,o,d){this.popup||this.$init(),this.popup.autoSelect=this.autoSelect,this.popup.setData(this.completions.filtered,this.completions.filterText),r.keyBinding.addKeyboardHandler(this.keyboardHandler);var p=r.renderer;if(this.popup.setRow(this.autoSelect?0:-1),d)d&&!o&&this.detach();else{this.popup.setTheme(r.getTheme()),this.popup.setFontSize(r.getFontSize());var v=p.layerConfig.lineHeight,y=p.$cursorLayer.getPixelPosition(this.base,!0);y.left-=this.popup.getTextLeftOffset();var w=r.container.getBoundingClientRect();y.top+=w.top-p.layerConfig.offset,y.left+=w.left-r.renderer.scrollLeft,y.left+=p.gutterWidth,this.popup.show(y,v)}this.changeTimer.cancel()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(r){var o=this.editor.selection.lead;(o.row!=this.base.row||o.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(r){var o=document.activeElement,d=this.editor.textInput.getElement(),p=r.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(r.relatedTarget),v=this.popup&&this.popup.container;o!=d&&o.parentNode!=v&&!p&&o!=this.tooltipNode&&r.relatedTarget!=d&&this.detach()},this.mousedownListener=function(r){this.detach()},this.mousewheelListener=function(r){this.detach()},this.goTo=function(r){this.popup.goTo(r)},this.insertMatch=function(r,o){if(r||(r=this.popup.getData(this.popup.getRow())),!r)return!1;var d=this.completions;if(this.editor.startOperation({command:{name:"insertMatch"}}),r.completer&&r.completer.insertMatch)r.completer.insertMatch(this.editor,r);else{if(!d)return!1;if(d.filterText)for(var p=this.editor.selection.getAllRanges(),v=0,y;y=p[v];v++)y.start.column-=d.filterText.length,this.editor.session.remove(y);r.snippet?t.insertSnippet(this.editor,r.snippet):this.editor.execCommand("insertstring",r.value||r)}this.completions==d&&this.detach(),this.editor.endOperation()},this.commands={Up:function(r){r.completer.goTo("up")},Down:function(r){r.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(r){r.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(r){r.completer.goTo("end")},Esc:function(r){r.completer.detach()},Return:function(r){return r.completer.insertMatch()},"Shift-Return":function(r){r.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(r){var o=r.completer.insertMatch();if(!o&&!r.tabstopManager)r.completer.goTo("down");else return o},PageUp:function(r){r.completer.popup.gotoPageUp()},PageDown:function(r){r.completer.popup.gotoPageDown()}},this.gatherCompletions=function(r,o){var d=r.getSession(),p=r.getCursorPosition(),v=m.getCompletionPrefix(r);this.base=d.doc.createAnchor(p.row,p.column-v.length),this.base.$insertRight=!0;var y=[],w=r.completers.length;return r.completers.forEach(function(l,g){l.getCompletions(r,d,p,v,function(b,f){!b&&f&&(y=y.concat(f)),o(null,{prefix:m.getCompletionPrefix(r),matches:y,finished:--w===0})})}),!0},this.showPopup=function(r,o){this.editor&&this.detach(),this.activated=!0,this.editor=r,r.completer!=this&&(r.completer&&r.completer.detach(),r.completer=this),r.on("changeSelection",this.changeListener),r.on("blur",this.blurListener),r.on("mousedown",this.mousedownListener),r.on("mousewheel",this.mousewheelListener),this.updateCompletions(!1,o)},this.updateCompletions=function(r,o){if(r&&this.base&&this.completions){var d=this.editor.getCursorPosition(),p=this.editor.session.getTextRange({start:this.base,end:d});if(p==this.completions.filterText)return;if(this.completions.setFilter(p),!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==p&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,p,r);return}if(o&&o.matches){var d=this.editor.getSelectionRange().start;return this.base=this.editor.session.doc.createAnchor(d.row,d.column),this.base.$insertRight=!0,this.completions=new n(o.matches),this.openPopup(this.editor,"",r)}var v=this.gatherCompletionsId,y=function(f){if(!!f.finished)return this.detach()}.bind(this),w=function(f){var h=f.prefix,s=f.matches;this.completions=new n(s),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(h);var u=this.completions.filtered;if(!u.length||u.length==1&&u[0].value==h&&!u[0].snippet)return y(f);if(this.autoInsert&&u.length==1&&f.finished)return this.insertMatch(u[0]);this.openPopup(this.editor,h,r)}.bind(this),l=!0,g=null;if(this.gatherCompletions(this.editor,function(f,h){var s=h.prefix,u=h&&h.matches;if(!u||!u.length)return y(h);if(!(s.indexOf(h.prefix)!==0||v!=this.gatherCompletionsId)){if(l){g=h;return}w(h)}}.bind(this)),l=!1,g){var b=g;g=null,w(b)}},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var r=this.popup,o=r.data,d=o&&(o[r.getHoveredRow()]||o[r.getRow()]),p=null;if(!d||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();if(this.editor.completers.some(function(v){return v.getDocTooltip&&(p=v.getDocTooltip(d)),p}),!p&&typeof d!="string"&&(p=d),typeof p=="string"&&(p={docText:p}),!p||!(p.docHTML||p.docText))return this.hideDocTooltip();this.showDocTooltip(p)},this.showDocTooltip=function(r){this.tooltipNode||(this.tooltipNode=c.createElement("div"),this.tooltipNode.className="ace_tooltip ace_doc-tooltip",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this));var o=this.tooltipNode;r.docHTML?o.innerHTML=r.docHTML:r.docText&&(o.textContent=r.docText),o.parentNode||document.body.appendChild(o);var d=this.popup,p=d.container.getBoundingClientRect();o.style.top=d.container.style.top,o.style.bottom=d.container.style.bottom,o.style.display="block",window.innerWidth-p.right<320?p.left<320?d.isTopdown?(o.style.top=p.bottom+"px",o.style.left=p.left+"px",o.style.right="",o.style.bottom=""):(o.style.top=d.container.offsetTop-o.offsetHeight+"px",o.style.left=p.left+"px",o.style.right="",o.style.bottom=""):(o.style.right=window.innerWidth-p.left+"px",o.style.left=""):(o.style.left=p.right+1+"px",o.style.right="")},this.hideDocTooltip=function(){if(this.tooltipTimer.cancel(),!!this.tooltipNode){var r=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==r&&this.editor.focus(),this.tooltipNode=null,r.parentNode&&r.parentNode.removeChild(r)}},this.onTooltipClick=function(r){for(var o=r.target;o&&o!=this.tooltipNode;){if(o.nodeName=="A"&&o.href){o.rel="noreferrer",o.target="_blank";break}o=o.parentNode}},this.destroy=function(){if(this.detach(),this.popup){this.popup.destroy();var r=this.popup.container;r&&r.parentNode&&r.parentNode.removeChild(r)}this.editor&&this.editor.completer==this&&this.editor.completer==null,this.popup=null}}).call(i.prototype),i.for=function(r){return r.completer||(e.get("sharedPopups")?(i.$shared||(i.$sharedInstance=new i),r.completer=i.$sharedInstance):(r.completer=new i,r.once("destroy",function(o,d){d.completer.destroy()}))),r.completer},i.startCommand={name:"startAutocomplete",exec:function(r,o){var d=i.for(r);d.autoInsert=!1,d.autoSelect=!0,d.showPopup(r,o),d.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var n=function(r,o){this.all=r,this.filtered=r,this.filterText=o||"",this.exactMatch=!1};(function(){this.setFilter=function(r){if(r.length>this.filterText&&r.lastIndexOf(this.filterText,0)===0)var o=this.filtered;else var o=this.all;this.filterText=r,o=this.filterCompletions(o,this.filterText),o=o.sort(function(p,v){return v.exactMatch-p.exactMatch||v.$score-p.$score||(p.caption||p.value).localeCompare(v.caption||v.value)});var d=null;o=o.filter(function(p){var v=p.snippet||p.caption||p.value;return v===d?!1:(d=v,!0)}),this.filtered=o},this.filterCompletions=function(r,o){var d=[],p=o.toUpperCase(),v=o.toLowerCase();e:for(var y=0,w;w=r[y];y++){var l=w.caption||w.value||w.snippet;if(!!l){var g=-1,b=0,f=0,h,s;if(this.exactMatch){if(o!==l.substr(0,o.length))continue e}else{var u=l.toLowerCase().indexOf(v);if(u>-1)f=u;else for(var $=0;$<o.length;$++){var C=l.indexOf(v[$],g+1),S=l.indexOf(p[$],g+1);if(h=C>=0&&(S<0||C<S)?C:S,h<0)continue e;s=h-g-1,s>0&&(g===-1&&(f+=10),f+=s,b=b|1<<$),g=h}}w.matchMask=b,w.exactMatch=f?0:1,w.$score=(w.score||0)-f,d.push(w)}}return d}}).call(n.prototype),k.Autocomplete=i,k.FilteredList=n}),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(x,k,W){var E=x("../range").Range,A=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;function m(c,t){var e=c.getTextRange(E.fromPoints({row:0,column:0},t));return e.split(A).length-1}function a(c,t){var e=m(c,t),i=c.getValue().split(A),n=Object.create(null),r=i[e];return i.forEach(function(o,d){if(!(!o||o===r)){var p=Math.abs(e-d),v=i.length-p;n[o]?n[o]=Math.max(v,n[o]):n[o]=v}}),n}k.getCompletions=function(c,t,e,i,n){var r=a(t,e),o=Object.keys(r);n(null,o.map(function(d){return{caption:d,value:d,score:r[d],meta:"local"}}))}}),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],function(x,k,W){var E=x("../snippets").snippetManager,A=x("../autocomplete").Autocomplete,m=x("../config"),a=x("../lib/lang"),c=x("../autocomplete/util"),t=x("../autocomplete/text_completer"),e={getCompletions:function(l,g,b,f,h){if(g.$mode.completer)return g.$mode.completer.getCompletions(l,g,b,f,h);var s=l.session.getState(b.row),u=g.$mode.getCompletions(s,g,b,f);h(null,u)}},i=function(l){var g={};return l.replace(/\${(\d+)(:(.*?))?}/g,function(b,f,h,s){return g[f]=s||""}).replace(/\$(\d+?)/g,function(b,f){return g[f]})},n={getCompletions:function(l,g,b,f,h){var s=[],u=g.getTokenAt(b.row,b.column);u&&u.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\.xml$/)?s.push("html-tag"):s=E.getActiveScopes(l);var $=E.snippetMap,C=[];s.forEach(function(S){for(var L=$[S]||[],R=L.length;R--;){var T=L[R],_=T.name||T.tabTrigger;!_||C.push({caption:_,snippet:T.content,meta:T.tabTrigger&&!T.name?T.tabTrigger+"\u21E5 ":"snippet",type:"snippet"})}},this),h(null,C)},getDocTooltip:function(l){l.type=="snippet"&&!l.docHTML&&(l.docHTML=["<b>",a.escapeHTML(l.caption),"</b>","<hr></hr>",a.escapeHTML(i(l.snippet))].join(""))}},r=[n,t,e];k.setCompleters=function(l){r.length=0,l&&r.push.apply(r,l)},k.addCompleter=function(l){r.push(l)},k.textCompleter=t,k.keyWordCompleter=e,k.snippetCompleter=n;var o={name:"expandSnippet",exec:function(l){return E.expandWithTab(l)},bindKey:"Tab"},d=function(l,g){p(g.session.$mode)},p=function(l){typeof l=="string"&&(l=m.$modes[l]),l&&(E.files||(E.files={}),v(l.$id,l.snippetFileId),l.modes&&l.modes.forEach(p))},v=function(l,g){!g||!l||E.files[l]||(E.files[l]={},m.loadModule(g,function(b){!b||(E.files[l]=b,!b.snippets&&b.snippetText&&(b.snippets=E.parseSnippetFile(b.snippetText)),E.register(b.snippets||[],b.scope),b.includeScopes&&(E.snippetMap[b.scope].includeScopes=b.includeScopes,b.includeScopes.forEach(function(f){p("ace/mode/"+f)})))}))},y=function(l){var g=l.editor,b=g.completer&&g.completer.activated;if(l.command.name==="backspace")b&&!c.getCompletionPrefix(g)&&g.completer.detach();else if(l.command.name==="insertstring"){var f=c.getCompletionPrefix(g);if(f&&!b){var h=A.for(g);h.autoInsert=!1,h.showPopup(g)}}},w=x("../editor").Editor;x("../config").defineOptions(w.prototype,"editor",{enableBasicAutocompletion:{set:function(l){l?(this.completers||(this.completers=Array.isArray(l)?l:r),this.commands.addCommand(A.startCommand)):this.commands.removeCommand(A.startCommand)},value:!1},enableLiveAutocompletion:{set:function(l){l?(this.completers||(this.completers=Array.isArray(l)?l:r),this.commands.on("afterExec",y)):this.commands.removeListener("afterExec",y)},value:!1},enableSnippets:{set:function(l){l?(this.commands.addCommand(o),this.on("changeMode",d),d(null,this)):(this.commands.removeCommand(o),this.off("changeMode",d))},value:!1}})}),function(){ace.require(["ace/ext/language_tools"],function(x){z&&(z.exports=x)})}()})(ut);var dt={exports:{}};(function(z,Q){ace.define("ace/snippets/python.snippets",["require","exports","module"],function(x,k,W){W.exports=`snippet #!
- #!/usr/bin/env python
- snippet imp
- import \${1:module}
- snippet from
- from \${1:package} import \${2:module}
- # Module Docstring
- snippet docs
- '''
- File: \${1:FILENAME:file_name}
- Author: \${2:author}
- Description: \${3}
- '''
- snippet wh
- while \${1:condition}:
- \${2:# TODO: write code...}
- # dowh - does the same as do...while in other languages
- snippet dowh
- while True:
- \${1:# TODO: write code...}
- if \${2:condition}:
- break
- snippet with
- with \${1:expr} as \${2:var}:
- \${3:# TODO: write code...}
- # New Class
- snippet cl
- class \${1:ClassName}(\${2:object}):
- """\${3:docstring for $1}"""
- def __init__(self, \${4:arg}):
- \${5:super($1, self).__init__()}
- self.$4 = $4
- \${6}
- # New Function
- snippet def
- def \${1:fname}(\${2:\`indent('.') ? 'self' : ''\`}):
- """\${3:docstring for $1}"""
- \${4:# TODO: write code...}
- snippet deff
- def \${1:fname}(\${2:\`indent('.') ? 'self' : ''\`}):
- \${3:# TODO: write code...}
- # New Method
- snippet defs
- def \${1:mname}(self, \${2:arg}):
- \${3:# TODO: write code...}
- # New Property
- snippet property
- def \${1:foo}():
- doc = "\${2:The $1 property.}"
- def fget(self):
- \${3:return self._$1}
- def fset(self, value):
- \${4:self._$1 = value}
- # Ifs
- snippet if
- if \${1:condition}:
- \${2:# TODO: write code...}
- snippet el
- else:
- \${1:# TODO: write code...}
- snippet ei
- elif \${1:condition}:
- \${2:# TODO: write code...}
- # For
- snippet for
- for \${1:item} in \${2:items}:
- \${3:# TODO: write code...}
- # Encodes
- snippet cutf8
- # -*- coding: utf-8 -*-
- snippet clatin1
- # -*- coding: latin-1 -*-
- snippet cascii
- # -*- coding: ascii -*-
- # Lambda
- snippet ld
- \${1:var} = lambda \${2:vars} : \${3:action}
- snippet .
- self.
- snippet try Try/Except
- try:
- \${1:# TODO: write code...}
- except \${2:Exception}, \${3:e}:
- \${4:raise $3}
- snippet try Try/Except/Else
- try:
- \${1:# TODO: write code...}
- except \${2:Exception}, \${3:e}:
- \${4:raise $3}
- else:
- \${5:# TODO: write code...}
- snippet try Try/Except/Finally
- try:
- \${1:# TODO: write code...}
- except \${2:Exception}, \${3:e}:
- \${4:raise $3}
- finally:
- \${5:# TODO: write code...}
- snippet try Try/Except/Else/Finally
- try:
- \${1:# TODO: write code...}
- except \${2:Exception}, \${3:e}:
- \${4:raise $3}
- else:
- \${5:# TODO: write code...}
- finally:
- \${6:# TODO: write code...}
- # if __name__ == '__main__':
- snippet ifmain
- if __name__ == '__main__':
- \${1:main()}
- # __magic__
- snippet _
- __\${1:init}__\${2}
- # python debugger (pdb)
- snippet pdb
- import pdb; pdb.set_trace()
- # ipython debugger (ipdb)
- snippet ipdb
- import ipdb; ipdb.set_trace()
- # ipython debugger (pdbbb)
- snippet pdbbb
- import pdbpp; pdbpp.set_trace()
- snippet pprint
- import pprint; pprint.pprint(\${1})\${2}
- snippet "
- """
- \${1:doc}
- """
- # test function/method
- snippet test
- def test_\${1:description}(\${2:self}):
- \${3:# TODO: write code...}
- # test case
- snippet testcase
- class \${1:ExampleCase}(unittest.TestCase):
-
- def test_\${2:description}(self):
- \${3:# TODO: write code...}
- snippet fut
- from __future__ import \${1}
- #getopt
- snippet getopt
- try:
- # Short option syntax: "hv:"
- # Long option syntax: "help" or "verbose="
- opts, args = getopt.getopt(sys.argv[1:], "\${1:short_options}", [\${2:long_options}])
-
- except getopt.GetoptError, err:
- # Print debug info
- print str(err)
- \${3:error_action}
- for option, argument in opts:
- if option in ("-h", "--help"):
- \${4}
- elif option in ("-v", "--verbose"):
- verbose = argument
- `}),ace.define("ace/snippets/python",["require","exports","module","ace/snippets/python.snippets"],function(x,k,W){k.snippetText=x("./python.snippets"),k.scope="python"}),function(){ace.require(["ace/snippets/python"],function(x){z&&(z.exports=x)})}()})(dt);const ft={class:"flex mt-5"},gt={class:"w-5/5 xl:w-6/6"},mt={class:"p-4"},pt={class:"mt-2"},vt={class:"flex items-center"},wt={class:"flex items-center ml-8"},bt=ge("span",null,"\u5F00\u542F\u81EA\u52A8\u5237\u65B0\uFF1A",-1),$t={class:"flex items-center ml-8"},Ct=ge("span",{class:"w-35"},"\u5237\u65B0\u65F6\u95F4\u95F4\u9694\uFF1A",-1),yt={class:"flex justify-end"},Bt=We({__name:"index",setup(z){let Q=he(`# -*- coding: UTF-8 -*-
- # \u4EE5\u4E0B\u4E3A\u811A\u672C\u6A21\u7248\uFF0C\u60A8\u53EF\u4EE5\u57FA\u4E8E\u4EE5\u4E0B\u6A21\u7248\u8FDB\u884C\u811A\u672C\u7F16\u5199
- # \u5C06his\u4E0A\u4F20\u6570\u636E\u8F6C\u6362\u4E3A\u7CFB\u7EDF\u6240\u80FD\u8BC6\u522B\u7684jsonArray\u683C\u5F0F\uFF0Citem\u7684\u5B57\u6BB5\u540D\u79F0\u4E0D\u53EF\u66F4\u6539\uFF0C\u4E0D\u5B58\u5728\u7684\u53C2\u6570\u53EF\u5220\u9664
- # \u5FC5\u8F93\uFF1A\u75C5\u53F7\u3001\u624B\u672F\u540D\u79F0\u3001\u624B\u672F\u5F00\u59CB\u65F6\u95F4
- # \u5165\u53C2: str his\u811A\u672C\u4F20\u8F93\u8FC7\u6765\u7684\u5B57\u7B26\u4E32\uFF0C\u4E3Aarray\u7ED3\u6784\uFF0C\u901A\u8FC7json.loads(str)\u89E3\u6790\u4E3AjsonArray\u7C7B\u578B
- # \u51FA\u53C2: result \u7CFB\u7EDF\u6240\u9700\u4E34\u5E8A\u4FE1\u606F
- # item: \u5355\u6B21\u4E34\u5E8A\u4FE1\u606F
- # -*- coding: utf-8 -*
- import sys
- import json
- import re
- def parse(str):
- strArray=json.loads(str)
- result=[]
- for array in strArray:
- item={}
- # \u624B\u672F\u540D\u79F0
- item['surgeryName'] = array['OPERATION']
- # \u75C5\u53F7
- item['patientCode'] = array['PATIENTCODE']
- # \u624B\u672F\u5F00\u59CB\u65F6\u95F4
- item['startTime'] = array['OPERATION_DATE']
- # asa
- item['asa'] = array['ASA']
- # \u75C5\u4EBA\u540D\u79F0
- item['patientName'] = array['NAME']
- # \u75C5\u4EBA\u6027\u522B MAN-\u7537 WOMAN-\u5973 \u672A\u77E5-\u672A\u77E5
- if(array['SEX']=='\u7537'):
- item['patientGender']='MAN'
- elif (array['SEX']=='\u5973'):
- item['patientGender']='WOMAN'
- else :
- item['patientGender']='\u672A\u77E5'
- # # \u75C5\u4EBA\u5E74\u9F84
- item['patientAge'] = re.compile("([0-9.]+)").findall(array['AGE'])[0]
- # \u75C5\u533A
- item['ward'] = array['WARD']
- # \u5E8A\u53F7
- item['bedNo'] = array['BEDNO']
- # \u4F53\u91CD
- item['weight'] = array['WEIGHT']
- # \u8EAB\u9AD8
- item['height'] = array['HEIGHT']
- # \u9EBB\u9189\u533B\u751F
- item['anaDoctor'] = array['DOCTOR']
- # \u9547\u75DB\u65B9\u5F0F
- item['analType'] = array['EASEMODE']
- # \u624B\u672F\u533B\u751F
- item['surgeryDoctor'] = array['SURGEON']
- #
- item["formula"]=parseFormula(array["MC"])
- # \u914D\u7F6E\u4EBA\u5458
- item['configPerson'] = array['CONFIGPERSON']
- result.append(item)
- return result
-
-
- # \u914D\u65B9\u89E3\u6790
- def parseFormula(formulas):
- f=formulas.split(",")
- result={}
- detail=[]
- for content in f:
- detailDomain={}
- detailDomain["name"]=re.compile("[^0-9]+").findall(content)[0]
- detailDomain["dose"]=re.compile("([0-9.]+)").findall(content)[0]
- detailDomain["unit"]=re.compile("[^0-9.]*$").findall(content)[0]
- detail.append(detailDomain)
- result["detail"]=detail
- return result`),x=he("");const k=he("");let W=he("");const{createConfirm:E,createSuccessModal:A,createErrorModal:m}=tt(),a=he("");let c=he("inputs"),t=he("1");const e=he(0),i=he(0);let n=he(!1),r=he();const o=he({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0,printMargin:!1,printMarginColumn:30,showPrintMargin:!1,highlightGutterLine:!1,displayIndentGuides:!1,enableEmmet:!0,tabSize:6,fontSize:15,useWorker:!0,enableMultiselect:!0,readOnly:!1,showFoldWidgets:!0,fadeFoldWidgets:!0,wrap:!0,animatedScroll:!0}),d=he({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!0,printMargin:!1,printMarginColumn:30,showPrintMargin:!1,highlightGutterLine:!1,displayIndentGuides:!1,enableEmmet:!0,tabSize:6,fontSize:15,useWorker:!0,enableMultiselect:!0,readOnly:!0,showFoldWidgets:!0,fadeFoldWidgets:!0,wrap:!0,animatedScroll:!0}),p=he([{value:0,label:"\u65E0HIS\u5BF9\u63A5"},{value:1,label:"\u62C9\u53D6\u6240\u6709\u75C5\u4EBA\u6570\u636E"},{value:2,label:"\u62C9\u53D6\u90E8\u5206\u75C5\u4EBA\u6570\u636E\uFF08\u5982\uFF1A\u6700\u65B0\u4E09\u4E2A\u6708\uFF09"},{value:3,label:"\u4EC5\u62C9\u53D6\u6700\u65B0\u75C5\u4EBA\u6570\u636E"}]);Xe(()=>pe(this,null,function*(){yield v()}));function v(){return pe(this,null,function*(){var u,$,C;const s=yield nt();if(s){if(s.strategy){let S=((u=s.strategy)==null?void 0:u.value)||0;i.value=S,e.value=S}s.draftScript&&(Q.value=($=s.draftScript)==null?void 0:$.content),s.script&&(x.value=(C=s.script)==null?void 0:C.content),s.updateConfig&&(n.value=s.updateConfig.enable===1,s.updateConfig.interval&&(r.value=s.updateConfig.interval))}})}function y(){return pe(this,null,function*(){const s={content:(Q==null?void 0:Q.value)===""||Q==null?void 0:Q.value},u=yield st(s);u===1?(A({title:"\u63D0\u793A",content:"\u811A\u672C\u4FDD\u5B58\u6210\u529F\uFF01"}),v()):m({title:"\u63D0\u793A",content:u.message})})}function w(){return pe(this,null,function*(){if(e.value===null)return m({title:"\u63D0\u793A",content:"\u83B7\u53D6\u7B56\u7565\u7C7B\u578B\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"}),!1;let s={};e.value!=0&&(s={enable:n.value,interval:r.value}),yield at(e.value,s),A({title:"\u63D0\u793A",content:"\u5BF9\u63A5\u7B56\u7565\u66F4\u65B0\u6210\u529F\uFF01"})})}function l(){E({iconType:"warning",title:"\u63D0\u793A",content:"\u786E\u8BA4\u53D1\u5E03\u6B64\u811A\u672C\uFF1F",onOk:()=>pe(this,null,function*(){yield ot(),A({title:"\u63D0\u793A",content:"\u811A\u672C\u53D1\u5E03\u6210\u529F\uFF01"}),v(),t.value="2"})})}function g(){return pe(this,null,function*(){const s={content:(Q==null?void 0:Q.value)===""||Q==null?void 0:Q.value,input:k.value===""?void 0:k.value},u=yield rt(s);u&&(u.success?(W.value="color: blue",a.value="\u811A\u672C\u8FD0\u884C\u6210\u529F :: "+JSON.stringify(u.result)):(W.value="color: red",a.value="\u811A\u672C\u8FD0\u884C\u5931\u8D25 :: "+u.message),c.value="results")})}function b(s){c.value=s}function f(s){t.value=s}function h(s){i.value=s}return(s,u)=>{const $=Qe("a-button"),C=je("auth");return ve(),Je("div",ft,[ge("div",gt,[ge("div",mt,[ge("div",pt,[p.value?(ve(),be(ne(Oe),{key:0,title:"\u5BF9\u63A5\u7B56\u7565"},{default:de(()=>[ge("div",vt,[ue(ne(Ze),{value:e.value,"onUpdate:value":u[0]||(u[0]=S=>e.value=S),options:p.value,onChange:h,class:"w-80"},null,8,["value","options"]),$e(ge("div",wt,[bt,ue(ne(it),{"checked-children":"\u5F00","un-checked-children":"\u5173",checked:ne(n),"onUpdate:checked":u[1]||(u[1]=S=>Se(n)?n.value=S:n=S)},null,8,["checked"])],512),[[Me,i.value===1||i.value===2||i.value===3]]),$e(ge("div",$t,[Ct,ue(ne(Le),{class:"w-80","addon-after":"\u5206\u949F",type:"number",value:ne(r),"onUpdate:value":u[2]||(u[2]=S=>Se(r)?r.value=S:r=S),placeholder:"\u8BF7\u8F93\u5165\u5237\u65B0\u65F6\u95F4\u95F4\u9694"},null,8,["value"])],512),[[Me,(i.value===1||i.value===2||i.value===3)&&ne(n)]]),$e((ve(),be(ne(qe),{class:"ml-4",type:"primary",onClick:w},{default:de(()=>[Ae("\u66F4\u65B0\u7B56\u7565")]),_:1})),[[C,["bus:hospital:strategy"]]])])]),_:1})):Fe("",!0),ue(ne(Oe),{title:"\u5BF9\u63A5\u811A\u672C"},{default:de(()=>[ue(ne(Ie),{"active-key":ne(t),onTabClick:f},{default:de(()=>[ue(ne(xe),{key:"1",tab:"\u8349\u7A3F"},{default:de(()=>[ne(Q)?(ve(),be(ne(De),{key:0,value:ne(Q),"onUpdate:value":u[3]||(u[3]=S=>Se(Q)?Q.value=S:Q=S),lang:"python",theme:"chrome",options:o.value,style:{height:"300px"}},null,8,["value","options"])):Fe("",!0),ue(ne(Ie),{"active-key":ne(c),onTabClick:b,style:{"margin-top":"10px"}},{default:de(()=>[ue(ne(xe),{key:"inputs",tab:"\u6A21\u62DF\u8F93\u5165"},{default:de(()=>[ue(ne(Le).TextArea,{value:k.value,"onUpdate:value":u[4]||(u[4]=S=>k.value=S),rows:5,placeholder:'\u8BF7\u8F93\u5165XML\u6D3BJSON\u683C\u5F0F\u6A21\u62DF\u53C2\u6570\u3002\u4F8B\uFF1A{"name": "\u5C0F\u660E", "age": "12"}'},null,8,["value"])]),_:1}),ue(ne(xe),{key:"results",tab:"\u8FD0\u884C\u7ED3\u679C"},{default:de(()=>[ue(ne(Le).TextArea,{style:et(ne(W)),value:a.value,"onUpdate:value":u[5]||(u[5]=S=>a.value=S),disabled:!0,rows:5,placeholder:"\u8FDB\u884C\u811A\u672C\u8C03\u8BD5\u540E\uFF0C\u8C03\u8BD5\u7ED3\u679C\u5C55\u793A"},null,8,["style","value"])]),_:1})]),_:1},8,["active-key"]),ge("div",yt,[ge("div",null,[$e((ve(),be($,{onClick:g,class:"mt-2",type:"warning",style:{"margin-right":"20px"}},{default:de(()=>[Ae("\u8C03\u8BD5")]),_:1})),[[C,["bus:hospital:script:query"]]]),$e((ve(),be($,{onClick:y,class:"mt-2",type:"primary",style:{"margin-right":"20px"}},{default:de(()=>[Ae("\u4FDD\u5B58")]),_:1})),[[C,["bus:hospital:script:edit"]]]),$e((ve(),be($,{onClick:l,class:"mt-2",type:"success",style:{"margin-right":"20px"}},{default:de(()=>[Ae("\u53D1\u5E03")]),_:1})),[[C,["bus:hospital:script:edit"]]])])])]),_:1}),ue(ne(xe),{key:"2",tab:"\u53D1\u5E03"},{default:de(()=>[ue(ne(De),{value:ne(x),"onUpdate:value":u[6]||(u[6]=S=>Se(x)?x.value=S:x=S),lang:"python",theme:"chrome",options:d.value,style:{height:"300px"}},null,8,["value","options"])]),_:1})]),_:1},8,["active-key"])]),_:1})])])])])}}});export{Bt as default};
|