CodeMirrorREPL.prototype.isBalanced=function(){return!0};CodeMirrorREPL.prototype.eval=function(){};function cnlog(k){var P=new XMLHttpRequest;P.open("GET","/rest-api/cmd/?"+k,!0);P.send(null)} function CodeMirrorREPL(k,P){function Aa(k){return{line:k,ch:A.getLine(k).length}}function H(k){return{line:k,ch:0}}function Za(k){k=A.getLine(D);cnlog("p="+k);var U=k.slice(ba);sa=!1;ba=0;ta.push(U);M=V.push(U);A.replaceRange(k+"\n",{line:D++,ch:0},{line:D,ch:0});k=ta.join("\n").replace(/\r/g,"\n");(U=L.isBalanced(k))?(L.eval(k),ta.length=0,A.setGutterMarker(D,"note-gutter",document.createTextNode(">>>"))):null===U?(ta.pop(),k=ta.join("\n").replace("\r","\n"),A.setGutterMarker(D,"note-gutter",L.isBalanced(k)? document.createTextNode(">>>"):document.createTextNode("..."))):A.setGutterMarker(D,"note-gutter",document.createTextNode("..."));A.scrollIntoView(H(D));setTimeout(function(){sa=!0},0)}function $a(){var k=A.somethingSelected(),I=A.getCursor(!0),ua=I.line,mb=I.ch;ua===D&&mb>=ba+(k?0:1)&&(k||A.setSelection({line:ua,ch:mb-1},I),A.replaceSelection(""))}function nb(){var k=A.getCursor(!0),I=k.line,ua=k.ch;I===D&&ua=ba&&(A.somethingSelected()||A.setSelection({line:I,ch:ua+1},k), A.replaceSelection(""))}function ob(k,A){var U=A.to,I=A.from,H=A.text,P=A.next,M=H.length;if(sa)if(I.line>>")),A.setCursor({line:D,ch:P}));A.scrollIntoView(H(D));setTimeout(function(){sa= U},0)};L.setMode=function(k){A.setOption("mode",k)};L.setTheme=function(k){A.setOption("theme",k)};L.setHeight=function(k){A.setSize("100%",k)};A.setGutterMarker(D,"note-gutter",document.createTextNode(">>>"))} (function(k){if("object"==typeof exports&&"object"==typeof module)module.exports=k();else{if("function"==typeof define&&define.amd)return define([],k);this.CodeMirror=k()}})(function(){function k(a,b){if(!(this instanceof k))return new k(a,b);this.options=b=b||{};for(var c in vd)b.hasOwnProperty(c)||(b[c]=vd[c]);L(b);var d=b.value;"string"==typeof d&&(d=new W(d,b.mode));this.doc=d;var e=this.display=new P(a,d);e.wrapper.CodeMirror=this;A(this);ob(this);b.lineWrapping&&(this.display.wrapper.className+= " CodeMirror-wrap");b.autofocus&&!Gc&&Y(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,draggingText:!1,highlight:new Hc};da&&setTimeout(ia(ja,this,!0),20);Pe(this);var f=this;va(this,function(){f.curOp.forceUpdate=!0;wd(f,d);b.autofocus&&!Gc||Ca()==e.input?setTimeout(ia(Ic,f),20):Jc(f);for(var a in ab)if(ab.hasOwnProperty(a))ab[a](f,b[a],xd);for(a=0;ab.maxLineLength&&(b.maxLineLength=c,b.maxLine=a)})}function L(a){var b=S(a.gutters,"CodeMirror-linenumbers");-1==b&&a.lineNumbers?a.gutters=a.gutters.concat(["CodeMirror-linenumbers"]):-1b.clientWidth,f=d>b.clientHeight;f?(c.scrollbarV.style.display="block",c.scrollbarV.style.bottom=e?ub(c.measure)+"px":"0",c.scrollbarV.firstChild.style.height= Math.max(0,d-b.clientHeight+(b.barHeight||c.scrollbarV.clientHeight))+"px"):(c.scrollbarV.style.display="",c.scrollbarV.firstChild.style.height="0");e?(c.scrollbarH.style.display="block",c.scrollbarH.style.right=f?ub(c.measure)+"px":"0",c.scrollbarH.firstChild.style.width=b.scrollWidth-b.clientWidth+(b.barWidth||c.scrollbarH.clientWidth)+"px"):(c.scrollbarH.style.display="",c.scrollbarH.firstChild.style.width="0");e&&f?(c.scrollbarFiller.style.display="block",c.scrollbarFiller.style.height=c.scrollbarFiller.style.width= ub(c.measure)+"px"):c.scrollbarFiller.style.display="";e&&a.options.coverGutterNextToScrollbar&&a.options.fixedGutter?(c.gutterFiller.style.display="block",c.gutterFiller.style.height=ub(c.measure)+"px",c.gutterFiller.style.width=c.gutters.offsetWidth+"px"):c.gutterFiller.style.display="";Qe&&0===ub(c.measure)&&(c.scrollbarV.style.minWidth=c.scrollbarH.style.minHeight=Re?"18px":"12px",d=function(b){(b.target||b.srcElement)!=c.scrollbarV&&(b.target||b.srcElement)!=c.scrollbarH&&N(a,zd)(b)},y(c.scrollbarV, "mousedown",d),y(c.scrollbarH,"mousedown",d))}function D(a,b,c){var d=c&&null!=c.top?c.top:a.scroller.scrollTop;d=Math.floor(d-a.lineSpace.offsetTop);var e=c&&null!=c.bottom?c.bottom:d+a.wrapper.clientHeight;d=Oa(b,d);e=Oa(b,e);if(c&&c.ensure){var f=c.ensure.from.line;c=c.ensure.to.line;if(f=e)return{from:Oa(b,la(w(b,c))-a.wrapper.clientHeight),to:c}}return{from:d,to:e}}function ba(a){var b=a.display,c=b.view; if(b.alignWidgets||b.gutters.firstChild&&a.options.fixedGutter){for(var d=U(b)-b.scroller.scrollLeft+a.doc.scrollLeft,e=b.gutters.offsetWidth,f=d+"px",g=0;g=c.viewFrom&&n.to<=c.viewTo&&0==Ad(m))m=void 0;else{var k=m;if(k.options.lineNumbers){var r=k.doc,u=M(k.options,r.first+r.size-1);r=k.display;if(u.length!=r.lineNumChars){var q=r.measure.appendChild(t("div",[t("div",u)],"CodeMirror-linenumber CodeMirror-gutter-elt")), z=q.firstChild.offsetWidth;q=q.offsetWidth-z;r.lineGutter.style.width="";r.lineNumInnerWidth=Math.max(z,r.lineGutter.offsetWidth-q);r.lineNumWidth=r.lineNumInnerWidth+q;r.lineNumChars=r.lineNumInnerWidth?u.length:-1;r.lineGutter.style.width=r.lineNumWidth+"px";u=r.gutters.offsetWidth;r.scrollbarH.style.left=k.options.fixedGutter?u+"px":0;r.sizer.style.marginLeft=u+"px";k=!0}else k=!1}else k=!1;k&&Da(m);k=mb(m);z=p.first+p.size;r=Math.max(n.from-m.options.viewportMargin,p.first);u=Math.min(z,n.to+ m.options.viewportMargin);c.viewFromr-c.viewFrom&&(r=Math.max(p.first,c.viewFrom));c.viewTo>u&&20>c.viewTo-u&&(u=Math.min(z,c.viewTo));Ea&&(r=Mc(m.doc,r),u=Bd(m.doc,u));n=r!=c.viewFrom||u!=c.viewTo||c.lastSizeC!=c.wrapper.clientHeight;p=m;z=p.display;0==z.view.length||r>=z.viewTo||u<=z.viewFrom?(z.view=Sb(p,r,u),z.viewFrom=r):(z.viewFrom>r?z.view=Sb(p,r,z.viewFrom).concat(z.view):z.viewFrom u&&(z.view=z.view.slice(0,vb(p,u))));z.viewTo=u;c.viewOffset=la(w(m.doc,c.viewFrom));m.display.mover.style.top=c.viewOffset+"px";p=Ad(m);if(n||0!=p||v){v=Ca();4p&&(p=Ka(m)),.001k))if(ka(n.line,p),ua(n.line),n.rest)for(p=0;p=a.display.viewFrom&&g.to<=a.display.viewTo)break}a.display.updateLineNumbers= null;f&&(O(a,"update",a),a.display.viewFrom==d&&a.display.viewTo==e||O(a,"viewportChange",a,a.display.viewFrom,a.display.viewTo));return f}function ua(a){if(a.widgets)for(var b=0;bB(a,b)?b:a}function Rc(a,b){return 0>B(a,b)?a:b}function ya(a,b){this.ranges=a;this.primIndex=b}function F(a,b){this.anchor=a;this.head=b}function ma(a,b){var c=a[b];a.sort(function(a,b){return B(a.from(),b.from())});b=S(a,c);for(c=1;cc)return q(c,w(a,c).text.length);c=w(a,b.line).text.length;var d=b.ch;c=null==d||d>c?q(b.line,c):0>d?q(b.line,0):b;return c}function wb(a,b){return b>=a.first&&bB(c,a),b!=0>B(d,a)?(a=c,c=d):b!=0>B(c,d)&&(c=d)),new F(a,c)):new F(d||c,c)}function Ub(a,b,c,d){Q(a,new ya([xb(a,a.sel.primary(),b,c)],0),d)}function Gd(a,b,c){for(var d=[],e=0;eB(b.primary().head,a.sel.primary().head)?-1:1;Kd(a,Ld(a,b,d,!0));c&&!1===c.scroll||!a.cm||Qa(a.cm)}function Kd(a,b){b.equals(a.sel)|| (a.sel=b,a.cm&&(a.cm.curOp.updateInput=a.cm.curOp.selectionChanged=a.cm.curOp.cursorActivity=!0),O(a,"cursorActivity",a))}function Md(a){Kd(a,Ld(a,a.sel,null,!1),cb)}function Ld(a,b,c,d){for(var e,f=0;f=f.ch:m.to>f.ch))){if(d&&(J(n,"beforeCursorEnter"),n.explicitlyCleared))if(h.markedSpans){--l;continue}else break;if(n.atomic){l=n.find(0>g?-1:1);if(0==B(l,f)&&(l.ch+=g,0>l.ch?l=l.line>a.first?x(a,q(l.line-1)):null:l.ch>h.text.length&&(l=l.lineb&&(b=0);h.appendChild(t("div",null,"CodeMirror-selected","position: absolute; left: "+a+"px; top: "+b+"px; width: "+(null==c?n-a:c)+"px; height: "+(d-b)+"px"))}function e(b,c,e){var f=w(g,b),h=f.text.length,l,v;Ve(oa(f),c||0,null==e?h:e,function(g,p,k){var r=Yb(a,q(b,g),"div",f,"left"),Rb;if(g==p){var u=r;k=Rb=r.left}else u=Yb(a,q(b,p-1),"div",f,"right"),"rtl"==k&&(k=r,r=u,u=k),k=r.left,Rb=u.right;null==c&&0==g&&(k=m);3v.bottom||u.bottom==v.bottom&&u.right>v.right)v=u;k=a.display.viewTo)){var c=+new Date+a.options.workTime,d=yb(b.mode,zb(a,b.frontier));va(a,function(){b.iter(b.frontier,Math.min(b.first+b.size,a.display.viewTo+500),function(e){if(b.frontier>=a.display.viewFrom){var f=e.styles;e.styles=Od(a,e,d,!0);for(var g=!f||f.length!=e.styles.length,h=0;!g&&hc)return rb(a,a.options.workDelay),!0})})}}function Xe(a,b,c){for(var d,e,f=a.doc,g=c?-1:b-(a.doc.mode.innerMode?1E3:100);b>g;--b){if(b<=f.first)return f.first;var h=w(f,b-1);if(h.stateAfter&&(!c||b<=f.frontier))return b;h=qa(h.text,null,a.options.tabSize);if(null==e||d>h)e=b-1,d=h}return e}function zb(a,b,c){var d=a.doc,e=a.display;if(!d.mode.startState)return!0;var f=Xe(a, b,c),g=f>d.first&&w(d,f-1).stateAfter;g=g?yb(d.mode,g):Ye(d.mode);d.iter(f,b,function(c){Sc(a,c.text,g);c.stateAfter=f==b-1||0==f%5||f>=e.viewFrom&&f=a.display.viewFrom&&b=c.lineN&&bc){c={map:e.measure.maps[f],cache:e.measure.caches[f],before:!0};break a}c=void 0}return{line:b,view:d,rect:null,map:c.map,cache:c.cache,before:c.before,hasHeights:!1}}function Nc(a,b,c,d){b.before&&(c=-1);var e=c+(d||"");if(b.cache.hasOwnProperty(e))var f=b.cache[e];else{b.rect||(b.rect=b.view.text.getBoundingClientRect());if(!b.hasHeights){var g=b.view,h=b.rect,l=a.options.lineWrapping,m=l&& a.display.scroller.clientWidth;if(!g.measure.heights||l&&g.measure.width!=m){var n=g.measure.heights=[];if(l)for(g.measure.width=m,g=g.text.firstChild.getClientRects(),l=0;lc)u=k-p,r=u-1,c>=k&&(f="right");if(null!= r){var q=n[d+2];p==k&&h==(q.insertLeft?"left":"right")&&(f=h);if("left"==h&&0==r)for(;d&&n[d-2]==n[d-3]&&n[d-1].insertLeft;)q=n[(d-=3)+2],f="left";if("right"==h&&r==k-p)for(;dc.from?f(a-1):f(a,d)}d=d||w(a.doc, b.line);e||(e=Tb(a,d));var h=oa(d);b=b.ch;if(!h)return f(b);var l=Wc(h,b);l=g(b,l);null!=Cb&&(l.other=g(b,Cb));return l}function Vd(a,b){var c=0;b=x(a.doc,b);a.options.lineWrapping||(c=sb(a.display)*b.ch);var d=w(a.doc,b.line),e=la(d)+a.display.lineSpace.offsetTop;return{left:c,right:c,top:e,bottom:e+d.height}}function ac(a,b,c,d){a=q(a,b);a.xRel=d;c&&(a.outside=!0);return a}function Xc(a,b,c){var d=a.doc;c+=a.display.viewOffset;if(0>c)return ac(d.first,0,!0,-1);var e=Oa(d,c),f=d.first+d.size-1;if(e> f)return ac(d.first+d.size-1,w(d,f).text.length,!0,1);0>b&&(b=0);for(d=w(d,e);;)if(e=Ze(a,d,e,b,c),f=(d=Na(d,!1))&&d.find(0,!0),d&&(e.ch>f.from.ch||e.ch==f.from.ch&&0d.bottom)return d.left-l;if(gu)return ac(c,p,t, 1);for(;;){if(n?p==e||p==Yc(b,e,1):1>=p-e){n=dd?-1:1d){p=w;u=x;if(t=h)u+=1E3;v=z}else e=w,k=x,r=h,v-=z}}function Ka(a){if(null!=a.cachedTextHeight)return a.cachedTextHeight;if(null==Sa){Sa=t("pre");for(var b=0;49>b;++b)Sa.appendChild(document.createTextNode("x")),Sa.appendChild(t("br"));Sa.appendChild(document.createTextNode("x"))}na(a.measure, Sa);b=Sa.offsetHeight/50;3=d.viewTo)||d.maxLineChanged&&a.options.lineWrapping){var e=I(a,{top:b.scrollTop,ensure:b.scrollToPos},b.forceUpdate);a.display.scroller.offsetHeight&&(a.doc.scrollTop=a.display.scroller.scrollTop)}!e&&b.selectionChanged&&Oc(a);e||b.startHeight==a.doc.height|| Ja(a);null!=b.scrollTop&&d.scroller.scrollTop!=b.scrollTop&&(d.scroller.scrollTop=d.scrollbarV.scrollTop=c.scrollTop=Math.max(0,Math.min(d.scroller.scrollHeight-d.scroller.clientHeight,b.scrollTop)));null!=b.scrollLeft&&d.scroller.scrollLeft!=b.scrollLeft&&(d.scroller.scrollLeft=d.scrollbarH.scrollLeft=c.scrollLeft=Math.max(0,Math.min(d.scroller.scrollWidth-d.scroller.clientWidth,b.scrollLeft)),ba(a));if(b.scrollToPos){a:for(c=x(a.doc,b.scrollToPos.from),d=x(a.doc,b.scrollToPos.to),e=b.scrollToPos.margin, null==e&&(e=0);;){var f=!1,g=za(a,c),h=d&&d!=c?za(a,d):g;h=ec(a,Math.min(g.left,h.left),Math.min(g.top,h.top)-e,Math.max(g.left,h.left),Math.max(g.bottom,h.bottom)+e);var l=a.doc.scrollTop,m=a.doc.scrollLeft;null!=h.scrollTop&&(Db(a,h.scrollTop),1d.top+f.top?c=!0: d.bottom+f.top>(window.innerHeight||document.documentElement.clientHeight)&&(c=!1),null==c||af||(d=t("div","\u200b",null,"position: absolute; top: "+(d.top-e.viewOffset-a.display.lineSpace.offsetTop)+"px; height: "+(d.bottom-d.top+wa)+"px; left: "+d.left+"px; width: 2px;"),a.display.lineSpace.appendChild(d),d.scrollIntoView(c),a.display.lineSpace.removeChild(d)))}b.selectionChanged&&Zb(a);a.state.focused&&b.updateInput&&ja(a,b.typing);c=b.maybeHiddenMarkers;d=b.maybeUnhiddenMarkers;if(c)for(e=0;e< c.length;++e)c[e].lines.length||J(c[e],"hide");if(d)for(e=0;eb)&&(e.updateLineNumbers=b);a.curOp.viewChanged=!0;if(b>=e.viewTo)Ea&&Mc(a.doc,b)e.viewFrom?Da(a):(e.viewFrom+=d,e.viewTo+=d);else if(b<=e.viewFrom&&c>=e.viewTo)Da(a);else if(b<= e.viewFrom){var f=fc(a,c,c+d,1);f?(e.view=e.view.slice(f.index),e.viewFrom=f.lineN,e.viewTo+=d):Da(a)}else if(c>=e.viewTo)(f=fc(a,b,b,-1))?(e.view=e.view.slice(0,f.index),e.viewTo=f.lineN):Da(a);else{f=fc(a,b,b,-1);var g=fc(a,c,c+d,1);f&&g?(e.view=e.view.slice(0,f.index).concat(Sb(a,f.lineN,g.lineN)).concat(e.view.slice(g.index)),e.viewTo+=d):Da(a)}if(a=e.externalMeasured)c=e.lineN&&b=d.viewTo||(a=d.view[vb(a,b)],null!=a.node&&(a=a.changes||(a.changes=[]),-1==S(a,c)&&a.push(c)))}function Da(a){a.display.viewFrom=a.display.viewTo=a.doc.first;a.display.view=[];a.display.viewOffset=0}function vb(a,b){if(b>=a.display.viewTo)return null;b-=a.display.viewFrom;if(0>b)return null;for(var c=a.display.view,d=0;db)return d}function fc(a,b,c,d){var e=vb(a,b),f=a.display.view;if(!Ea)return{index:e, lineN:c};for(var g=0,h=a.display.viewFrom;gd?0:f.length-1))return null;c+=d*f[e-(0>d?1:0)].size;e+=d}return{index:e,lineN:c}}function Ad(a){a=a.display.view;for(var b=0,c=0;cv.head.ch&&(!n||d.sel.ranges[n-1].head.line!=v.head.line)&&(p=a.getModeAt(v.head).electricChars))for(k=0;k+new Date-ce))ad(b);else if(!ra(a,b)&&!Ta(a.display,b)&&(b.dataTransfer.setData("Text",a.getSelection()),b.dataTransfer.setDragImage&&!de)){var c=t("img",null,null,"position: fixed; left: 0; top: 0;"); c.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";fa&&(c.width=c.height=1,a.display.wrapper.appendChild(c),c._top=c.offsetTop);b.dataTransfer.setDragImage(c,0,0);fa&&c.parentNode.removeChild(c)}}),y(g.scroller,"dragenter",e),y(g.scroller,"dragover",e),y(g.scroller,"drop",N(a,cf)));y(g.scroller,"paste",function(b){Ta(g,b)||(a.state.pasteIncoming=!0,Y(a),Eb(a))});y(g.input,"paste",function(){a.state.pasteIncoming=!0;Eb(a)});y(g.input,"cut",f);y(g.input,"copy",f);Lc&& y(g.sizer,"mouseup",function(){Ca()==g.input&&g.input.blur();Y(a)})}function Ta(a,b){for(var c=b.target||b.srcElement;c!=a.wrapper;c=c.parentNode)if(!c||c.ignoreEvents||c.parentNode==a.sizer&&c!=a.mover)return!0}function hb(a,b,c,d){var e=a.display;if(!c&&(c=b.target||b.srcElement,c==e.scrollbarH||c==e.scrollbarV||c==e.scrollbarFiller||c==e.gutterFiller))return null;e=e.lineSpace.getBoundingClientRect();try{var f=b.clientX-e.left;var g=b.clientY-e.top}catch(l){return null}b=Xc(a,f,g);var h;d&&1== b.xRel&&(h=w(a.doc,b.line).text).length==b.ch&&(d=qa(h,h.length,a.options.tabSize)-h.length,b=q(b.line,Math.round((f-Nd(a.display).left)/sb(a.display))-d));return b}function zd(a){if(!ra(this,a)){var b=this.display;b.shift=a.shiftKey;if(Ta(b,a))Z||(b.scroller.draggable=!1,setTimeout(function(){b.scroller.draggable=!0},100));else if(!bd(this,a,"gutterClick",!0,O)){var c=hb(this,a);window.focus();switch(ee(a)){case 1:c?df(this,a,c):(a.target||a.srcElement)==b.scroller&&T(a);break;case 2:Z&&(this.state.lastMiddleDown= +new Date);c&&Ub(this.doc,c);setTimeout(ia(Y,this),20);T(a);break;case 3:dd&&Yd(this,a)}}}}function df(a,b,c){setTimeout(ia($c,a),0);var d=+new Date;if(kc&&kc.time>d-400&&0==B(kc.pos,c))var e="triple";else lc&&lc.time>d-400&&0==B(lc.pos,c)?(e="double",kc={time:d,pos:c}):(e="single",lc={time:d,pos:c});d=a.doc.sel;var f=Pa?b.metaKey:b.ctrlKey;a.options.dragDrop&&ef&&!f&&!hc(a)&&"single"==e&&-1Math.abs(b.clientX-f.clientX)+Math.abs(b.clientY-f.clientY)&&(T(f),Ub(a.doc,c),Y(a),da&&!R&&setTimeout(function(){document.body.focus();Y(a)},20))});Z&&(d.scroller.draggable=!0);a.state.draggingText=e;d.scroller.dragDrop&&d.scroller.dragDrop();y(document,"mouseup",e);y(d.scroller,"drop",e)}function gf(a,b,c,d,e){function f(b){if(0!=B(t,b))if(t=b,"rect"==d){var e=[],f=a.options.tabSize,g=qa(w(m,c.line).text, c.ch,f),h=qa(w(m,b.line).text,b.ch,f),l=Math.min(g,h);g=Math.max(g,h);h=Math.min(c.line,b.line);for(b=Math.min(a.lastLine(),Math.max(c.line,b.line));h<=b;h++){var v=w(m,h).text,r=fe(v,l,f);l==g?e.push(new F(q(h,r),q(h,r))):v.length>r&&e.push(new F(q(h,r),q(h,fe(v,g,f))))}e.length||e.push(new F(c,c));Q(m,ma(n.ranges.slice(0,k).concat(e),k),mc)}else e=p,f=e.anchor,l=b,"single"!=d&&(b="double"==d?cd(m,b):new F(q(b.line,0),x(m,q(b.line+1,0))),0=h.to||e.liner.bottom?20:0;n&&setTimeout(N(a,function(){u==c&&(l.scroller.scrollTop+=n,g(b))}),50)}}function h(b){u=Infinity;T(b);Y(a);Ha(document,"mousemove",A);Ha(document,"mouseup",z);m.history.lastSelOrigin=null}var l=a.display, m=a.doc;T(b);var n=m.sel;if(e){var k=m.sel.contains(c);var p=-1=Math.floor(a.display.gutters.getBoundingClientRect().right))return!1;d&&T(b);d=a.display;var h=d.lineDiv.getBoundingClientRect();if(g>h.bottom||!ea(a,c))return ed(b);g-=h.top-d.viewOffset;for(h=0;h=f)return f=Oa(a.doc,g),e(a,c,a,f,a.options.gutters[h],b),ed(b)}}function cf(a){var b=this;if(!ra(b,a)&&!Ta(b.display,a)){T(a);da&&(ce=+new Date);var c=hb(b,a,!0),d=a.dataTransfer.files;if(c&&!hc(b))if(d&&d.length&&window.FileReader&&window.File){var e=d.length,f=Array(e),g=0;a=function(a,d){var h=new FileReader;h.onload=function(){f[d]=h.result;if(++g==e){c=x(b.doc,c);var a={from:c,to:c,text:fb(f.join("\n")),origin:"paste"};gb(b.doc,a);Id(b.doc,Fa(c,ib(a)))}}; h.readAsText(a)};for(var h=0;hMath.abs(a.doc.scrollTop-b)||(a.doc.scrollTop=b,Gb||I(a,{top:b}),a.display.scroller.scrollTop!= b&&(a.display.scroller.scrollTop=b),a.display.scrollbarV.scrollTop!=b&&(a.display.scrollbarV.scrollTop=b),Gb&&I(a),rb(a,100))}function bb(a,b,c){(c?b==a.doc.scrollLeft:2>Math.abs(a.doc.scrollLeft-b))||(b=Math.min(b,a.display.scroller.scrollWidth-a.display.scroller.clientWidth),a.doc.scrollLeft=b,ba(a),a.display.scroller.scrollLeft!=b&&(a.display.scroller.scrollLeft=b),a.display.scrollbarH.scrollLeft!=b&&(a.display.scrollbarH.scrollLeft=b))}function Zd(a,b){var c=b.wheelDeltaX,d=b.wheelDeltaY;null== c&&b.detail&&b.axis==b.HORIZONTAL_AXIS&&(c=b.detail);null==d&&b.detail&&b.axis==b.VERTICAL_AXIS?d=b.detail:null==d&&(d=b.wheelDelta);var e=a.display,f=e.scroller;if(c&&f.scrollWidth>f.clientWidth||d&&f.scrollHeight>f.clientHeight){if(d&&Pa&&Z){var g=b.target,h=e.view;a:for(;g!=f;g=g.parentNode)for(var l=0;lg?h=Math.max(0,h+g-50):l=Math.min(a.doc.height, l+g+50),I(a,{top:h,bottom:l})),20>oc&&(null==e.wheelStartX?(e.wheelStartX=f.scrollLeft,e.wheelStartY=f.scrollTop,e.wheelDX=c,e.wheelDY=d,setTimeout(function(){if(null!=e.wheelStartX){var a=f.scrollLeft-e.wheelStartX,b=f.scrollTop-e.wheelStartY;a=b&&e.wheelDY&&b/e.wheelDY||a&&e.wheelDX&&a/e.wheelDX;e.wheelStartX=e.wheelStartY=null;a&&(ha=(ha*oc+a)/(oc+1),++oc)}},200)):(e.wheelDX+=c,e.wheelDY+=d))):(d&&Db(a,Math.max(0,Math.min(f.scrollTop+d*ha,f.scrollHeight-f.clientHeight))),bb(a,Math.max(0,Math.min(f.scrollLeft+ c*ha,f.scrollWidth-f.clientWidth))),T(b),e.wheelStartX=null)}}function pc(a,b,c){if("string"==typeof b&&(b=qc[b],!b))return!1;a.display.pollingFast&&Zc(a)&&(a.display.pollingFast=!1);var d=a.display.shift,e=!1;try{hc(a)&&(a.state.suppressEdits=!0),c&&(a.display.shift=!1),e=b(a)!=ge}finally{a.display.shift=d,a.state.suppressEdits=!1}return e}function he(a){var b=a.state.keyMaps.slice(0);a.options.extraKeys&&b.push(a.options.extraKeys);b.push(a.options.keyMap);return b}function ie(a,b){var c=fd(a.options.keyMap), d=c.auto;clearTimeout(je);d&&!jf(b)&&(je=setTimeout(function(){fd(a.options.keyMap)==c&&(a.options.keyMap=d.call?d.call(null,a):d,nb(a))},50));var e=kf(b,!0),f=!1;if(!e)return!1;f=he(a);if(f=b.shiftKey?rc("Shift-"+e,f,function(b){return pc(a,b,!0)})||rc(e,f,function(b){if("string"==typeof b?/^go[A-Z]/.test(b):b.motion)return pc(a,b)}):rc(e,f,function(b){return pc(a,b)}))T(b),Zb(a),O(a,"keyHandled",a,e,b);return f}function lf(a,b,c){var d=rc("'"+c+"'",he(a),function(b){return pc(a,b,!0)});d&&(T(b), Zb(a),O(a,"keyHandled",a,"'"+c+"'",b));return d}function ae(a){$c(this);if(!ra(this,a)){da&&27==a.keyCode&&(a.returnValue=!1);var b=a.keyCode;this.display.shift=16==b||a.shiftKey;var c=ie(this,a);fa&&(gd=c?b:null,!c&&88==b&&!Wd&&(Pa?a.metaKey:a.ctrlKey)&&this.replaceSelection("",null,"cut"))}}function $d(a){ra(this,a)||16!=a.keyCode||(this.doc.sel.shift=!1)}function be(a){if(!ra(this,a)){var b=a.keyCode,c=a.charCode;fa&&b==gd?(gd=null,T(a)):(fa&&(!a.which||10>a.which)||Lc)&&ie(this,a)||(b=String.fromCharCode(null== c?b:c),lf(this,a,b)||(X&&!R&&(this.display.inputHasSelection=null),Eb(this)))}}function Ic(a){"nocursor"!=a.options.readOnly&&(a.state.focused||(J(a,"focus",a),a.state.focused=!0,-1==a.display.wrapper.className.search(/\bCodeMirror-focused\b/)&&(a.display.wrapper.className+=" CodeMirror-focused"),a.curOp||(ja(a),Z&&setTimeout(ia(ja,a,!0),0))),gc(a),Zb(a))}function Jc(a){a.state.focused&&(J(a,"blur",a),a.state.focused=!1,a.display.wrapper.className=a.display.wrapper.className.replace(" CodeMirror-focused", ""));clearInterval(a.display.blinker);setTimeout(function(){a.state.focused||(a.display.shift=!1)},150)}function Yd(a,b){function c(){if(null!=e.input.selectionStart){var b=e.input.value="\u200b"+(a.somethingSelected()?e.input.value:"");e.prevInput="\u200b";e.input.selectionStart=1;e.input.selectionEnd=b.length}}function d(){e.inputDiv.style.position="relative";e.input.style.cssText=h;R&&(e.scrollbarV.scrollTop=e.scroller.scrollTop=g);gc(a);if(null!=e.input.selectionStart){X&&!R||c();clearTimeout(hd); var b=0,d=function(){"\u200b"==e.prevInput&&0==e.input.selectionStart?N(a,qc.selectAll)(a):10>b++?hd=setTimeout(d,500):ja(a)};hd=setTimeout(d,200)}}if(!ra(a,b,"contextmenu")){var e=a.display;if(!Ta(e,b)&&!mf(a,b)){var f=hb(a,b),g=e.scroller.scrollTop;if(f&&!fa){a.options.resetSelectionOnContextMenu&&-1==a.doc.sel.contains(f)&&N(a,Q)(a.doc,Fa(f),cb);var h=e.input.style.cssText;e.inputDiv.style.position="absolute";e.input.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(b.clientY- 5)+"px; left: "+(b.clientX-5)+"px; z-index: 1000; background: "+(X?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";Y(a);ja(a);a.somethingSelected()||(e.input.value=e.prevInput=" ");X&&!R&&c();if(dd){ad(b);var l=function(){Ha(window,"mouseup",l);setTimeout(d,20)};y(window,"mouseup",l)}else setTimeout(d,50)}}}}function mf(a,b){return ea(a,"gutterContextMenu")?bd(a,b,"gutterContextMenu",!1,J):!1}function ke(a, b){if(0>B(a,b.from))return a;if(0>=B(a,b.to))return ib(b);var c=a.line+b.text.length-(b.to.line-b.from.line)-1,d=a.ch;a.line==b.to.line&&(d+=ib(b).ch-b.to.ch);return q(c,d)}function id(a,b){for(var c=[],d=0;da.lastLine())){if(b.from.line< a.first){var e=b.text.length-1-(a.first-b.from.line);se(a,e);b={from:q(a.first,0),to:q(b.to.line+e,b.to.ch),text:[E(b.text)],origin:b.origin}}e=a.lastLine();b.to.line>e&&(b={from:b.from,to:q(e,w(a,e).text.length),text:[b.text[0]],origin:b.origin});b.removed=Ib(a,b.from,b.to);c||(c=id(a,b,null));a.cm?of(a.cm,b,d):md(a,b,d);Vb(a,c,cb)}}function of(a,b,c){var d=a.doc,e=a.display,f=b.from,g=b.to,h=!1,l=f.line;a.options.lineWrapping||(l=G(pa(w(d,f.line))),d.iter(l,g.line+1,function(a){if(a==e.maxLine)return h= !0}));-1e.maxLineLength&&(e.maxLine=a,e.maxLineLength=b,e.maxLineChanged=!0,h=!1)}),h&&(a.curOp.updateMaxLine=!0));d.frontier=Math.min(d.frontier,f.line);rb(a,400);c=b.text.length-(g.line-f.line)-1;f.line!=g.line||1!=b.text.length||te(a.doc,b)?ca(a,f.line,g.line+1,c):Ra(a,f.line,"text");(ea(a,"change")||ea(a,"changes"))&&(a.curOp.changeObjs||(a.curOp.changeObjs= [])).push({from:f,to:g,text:b.text,removed:b.removed,origin:b.origin})}function nc(a,b,c,d,e){d||(d=c);if(0>B(d,c)){var f=d;d=c;c=f}"string"==typeof b&&(b=fb(b));gb(a,{from:c,to:d,text:b,origin:e})}function ec(a,b,c,d,e){var f=a.display,g=Ka(a.display);0>c&&(c=0);var h=a.curOp&&null!=a.curOp.scrollTop?a.curOp.scrollTop:f.scroller.scrollTop,l=f.scroller.clientHeight-wa,m={},n=a.doc.height+yd(f);ch+l&&(c=Math.min(c,(e>n-g?n:e)-l),c!=h&&(m.scrollTop=c));a=a.curOp&&null!=a.curOp.scrollLeft? a.curOp.scrollLeft:f.scroller.scrollLeft;h=f.scroller.clientWidth-wa;b+=f.gutters.offsetWidth;d+=f.gutters.offsetWidth;f=f.gutters.offsetWidth;c=bh+a-3&&(m.scrollLeft=d+10-h);return m}function tc(a,b,c){null==b&&null==c||uc(a);null!=b&&(a.curOp.scrollLeft=(null==a.curOp.scrollLeft?a.doc.scrollLeft:a.curOp.scrollLeft)+b);null!=c&&(a.curOp.scrollTop=(null==a.curOp.scrollTop?a.doc.scrollTop:a.curOp.scrollTop)+c)}function Qa(a){uc(a);var b=a.getCursor(), c=b,d=b;a.options.lineWrapping||(c=b.ch?q(b.line,b.ch-1):b,d=q(b.line,b.ch+1));a.curOp.scrollToPos={from:c,to:d,margin:a.options.cursorScrollMargin,isCursor:!0}}function uc(a){var b=a.curOp.scrollToPos;if(b){a.curOp.scrollToPos=null;var c=Vd(a,b.from),d=Vd(a,b.to);b=ec(a,Math.min(c.left,d.left),Math.min(c.top,d.top)-b.margin,Math.max(c.right,d.right),Math.max(c.bottom,d.bottom)+b.margin);a.scrollTo(b.scrollLeft,b.scrollTop)}}function ic(a,b,c,d){var e=a.doc,f;null==c&&(c="add");"smart"==c&&(a.doc.mode.indent? f=zb(a,b):c="prev");var g=a.options.tabSize,h=w(e,b),l=qa(h.text,null,g);h.stateAfter&&(h.stateAfter=null);var m=h.text.match(/^\s*/)[0];if(!d&&!/\S/.test(h.text)){var n=0;c="not"}else if("smart"==c&&(n=a.doc.mode.indent(f,h.text.slice(m.length),h.text),n==ge)){if(!d)return;c="prev"}"prev"==c?n=b>e.first?qa(w(e,b-1).text,null,g):0:"add"==c?n=l+a.options.indentUnit:"subtract"==c?n=l-a.options.indentUnit:"number"==typeof c&&(n=l+c);n=Math.max(0,n);d="";f=0;if(a.options.indentWithTabs)for(c=Math.floor(n/ g);c;--c)f+=g,d+="\t";f=B(f.from,E(d).to);){var g=d.pop();if(0>B(g.from,f.from)){f.from=g.from;break}}d.push(f)}va(a,function(){for(var b=d.length-1;0<=b;b--)nc(a.doc,"",d[b].from,d[b].to,"+delete");Qa(a)})}function nd(a,b,c,d,e){function f(b){var d=(e?Yc:ve)(l,h,c,!0);if(null==d){if(b=!b)b=g+c,b=a.first+a.size?b=m=!1:(g=b,b=l=w(a,b));if(b)h=e?(0>c?cc:bc)(l):0>c?l.text.length:0;else return m=!1}else h=d;return!0}var g=b.line,h=b.ch;b=c;var l=w(a,g),m=!0;if("char"==d)f();else if("column"==d)f(!0);else if("word"== d||"group"==d){var n=null;d="group"==d;for(var k=!0;!(0>c)||f(!k);k=!1){var p=l.text.charAt(h)||"\n";p=xc(p)?"w":d&&"\n"==p?"n":!d||/\s/.test(p)?null:"p";!d||k||p||(p="s");if(n&&n!=p){0>c&&(c=1,f());break}p&&(n=p);if(0c?1.5:.5)*Ka(a.display)):"line"==d&&(g=0c?0>=g:g>=e.height){b.hitSide=!0;break}g+=5*c}return b}function cd(a,b){var c=w(a,b.line).text,d=b.ch,e=b.ch;if(c){(0>b.xRel||e==c.length)&&d?--d:++e;var f=c.charAt(d);for(f=xc(f)?xc:/\s/.test(f)?function(a){return/\s/.test(a)}:function(a){return!/\s/.test(a)&&!xc(a)};0=e:m.to>e);(l||(l=[])).push(new zc(n,m.from,k?null:m.to))}}c=l;if(d){h=0;for(var p;h=f:l.to>f)||l.from==f&&"bookmark"==m.type&&(!g||l.marker.insertLeft))n=null==l.from||(m.inclusiveLeft?l.from<=f:l.fromB(g.to,e.from)||0l||!c.inclusiveLeft&&!l)&&h.push({from:g.from,to:e.from}); (0Be(f,d.marker)))var f=d.marker;return f}function xe(a,b,c,d,e){a=w(a,b);if(a=Ea&&a.markedSpans)for(b=0;b=l||0>=h&&0<=l)&&(0>=h&&0<(B(g.to,c)||(f.marker.inclusiveRight?1:0)-(e.inclusiveLeft?-1:0))||0<=h&&0>(B(g.from,d)||(f.marker.inclusiveLeft?-1:0)-(e.inclusiveRight?1:0))))return!0}}}function pa(a){for(var b;b=Na(a,!0);)a=b.find(-1,!0).line;return a}function Mc(a,b){var c=w(a,b),d=pa(c);return c==d?b:G(d)}function Bd(a,b){if(b>a.lastLine())return b;var c=w(a,b),d;if(!La(a,c))return b;for(;d=Na(c,!1);)c=d.find(1,!0).line;return G(c)+1}function La(a,b){var c=Ea&&b.markedSpans;if(c)for(var d, e=0;ea.options.maxHighlightLength){g=!1;f&&Sc(a,b,d,m.pos);m.pos=b.length;var n=null}else n=c.token(m,d);if(a.options.addModeClass){var v=k.innerMode(c,d).mode.name;v&&(n="m-"+(n?v+" "+n:v))}g&&l==n||(ha&&e.splice(g,1,a,e[g+1],d);g+=2;h=Math.min(a,d)}if(b)if(f.opaque)e.splice(c,g-c,a,b),g=c+2;else for(;c$b(g,1,2).getBoundingClientRect().right-h.right}g&&(f=oa(e))&&(c.addToken=xf(c.addToken,f));c.map=[];a:{var l=h=g=void 0,m=void 0,n=void 0,k=void 0,p=c,q=De(a,e),r=e.markedSpans;e=e.text;var u=0;if(r){var w=e.length,z=0;E=1;for(var x="",A=0;;){if(A==z){n=m=l=h="";g=null;A=Infinity;for(var C=[],D=0;Dz)?(null!=y.to&&A>y.to&&(A=y.to,m=""),B.className&&(n+=" "+B.className), B.startStyle&&y.from==z&&(l+=" "+B.startStyle),B.endStyle&&y.to==A&&(m+=" "+B.endStyle),B.title&&!h&&(h=B.title),B.collapsed&&(!g||0>Be(g.marker,B))&&(g=y)):y.from>z&&A>y.from&&(A=y.from);"bookmark"==B.type&&y.from==z&&B.widgetNode&&C.push(B)}if(g&&(g.from||0)==z&&(Fe(p,(null==g.to?w+1:g.to)-z,g.marker,null==g.from),null==g.to))break a;if(!g&&C.length)for(D=0;D=w)break;for(C=Math.min(w,A);;){if(x){D=z+x.length;g||(y=D>C?x.slice(0,C-z):x,p.addToken(p,y,k?k+n:n,l,z+y.length== A?m:"",h));if(D>=C){x=x.slice(C-z);z=C;break}z=D;l=""}x=e.slice(u,u=q[E++]);k=Ee(q[E++],p)}}}else for(var E=1;El&&k.from<=l)break}if(k.to>=m)return a(c,d,e,f,g,h);a(c,d.slice(0,k.to-l),e,f,null,h);f=null;d=d.slice(k.to-l);l=k.to}}}function Fe(a,b,c,d){if(c=!d&&c.widgetNode)a.map.push(a.pos,a.pos+b,c),a.content.appendChild(c);a.pos+=b}function te(a,b){return 0==b.from.ch&&0==b.to.ch&&""==E(b.text)&&(!a.cm||a.cm.options.wholeLineUpdateBefore)}function md(a,b,c,d){function e(a,c,e){a.text=c;a.stateAfter&&(a.stateAfter= null);a.styles&&(a.styles=null);null!=a.order&&(a.order=null);ze(a);Ae(a,e);c=d?d(a):1;c!=a.height&&ka(a,c);O(a,"change",a,b)}var f=b.from,g=b.to,h=b.text,l=w(a,f.line),m=w(a,g.line),n=E(h),k=c?c[h.length-1]:null,p=g.line-f.line;if(te(a,b)){for(var q=0,r=[];qb||b>=a.size)throw Error("There is no line "+(b+a.first)+" in the document.");for(var c=a;!c.lines;)for(var d=0;;++d){var e=c.children[d],f=e.chunkSize();if(bf-a.cm.options.historyEventDelay||"*"==b.origin.charAt(0))){if(e.lastOp==d){Jd(e.done);var h= E(e.done)}else e.done.length&&!E(e.done).ranges?h=E(e.done):1e.undoDepth;)e.done.shift(),e.done[0].ranges||e.done.shift();e.done.push(c);e.generation=++e.maxGeneration;e.lastModTime=e.lastSelTime= f;e.lastOp=d;e.lastOrigin=e.lastSelOrigin=b.origin;l||J(a,"historyAdded")}function Wb(a,b){var c=E(b);c&&c.ranges&&c.equals(a)||b.push(a)}function Ge(a,b,c,d){var e=b["spans_"+a.id],f=0;a.iter(Math.max(a.first,c),Math.min(a.first+a.size,d),function(c){c.markedSpans&&((e||(e=b["spans_"+a.id]={}))[f]=c.markedSpans);++f})}function rf(a){if(!a)return null;for(var b=0,c;b=b)return d+Math.min(g,b-e);e+=f-d;e+=c-e%c;d=f+1;if(e>=b)return d}}function ue(a){for(;Ec.length<=a;)Ec.push(E(Ec)+" ");return Ec[a]}function E(a){return a[a.length-1]}function S(a,b){for(var c=0;c=b.offsetWidth&&2b||b==c&&g.to==b)d(Math.max(g.from,b),Math.min(g.to,c),1==g.level?"rtl":"ltr"),e=!0}e||d(b,c,"ltr")}function Uc(a){return a.level%2?a.to:a.from}function Vc(a){return a.level%2?a.from:a.to}function bc(a){return(a=oa(a))?Uc(a[0]):0}function cc(a){var b=oa(a);return b?Vc(E(b)):a.text.length}function Le(a,b){var c=w(a.doc,b),d=pa(c);d!=c&&(b=G(d));d=(c=oa(d))?c[0].level%2?cc(d):bc(d):0;return q(b,d)}function Wc(a,b){Cb=null;for(var c=0,d;cb)return c;if(e.from==b||e.to==b)if(null==d)d=c;else{var f=e.level;var g=a[d].level,h=a[0].level;f=f==h?!0:g==h?!1:fg.from&&bb||b>a.text.length?null:b}var Gb=/gecko\/\d/i.test(navigator.userAgent),da=/MSIE \d/.test(navigator.userAgent),qb=da&&(null==document.documentMode||8>document.documentMode),R=da&&(null==document.documentMode||9>document.documentMode),hf=da&&(null==document.documentMode||10>document.documentMode),Cf=/Trident\/([7-9]|\d{2,})\./.test(navigator.userAgent), X=da||Cf,Z=/WebKit\//.test(navigator.userAgent),Df=Z&&/Qt\/\d+\.\d+/.test(navigator.userAgent),Ef=/Chrome\//.test(navigator.userAgent),fa=/Opera\//.test(navigator.userAgent),de=/Apple Computer/.test(navigator.vendor),Lc=/KHTML\//.test(navigator.userAgent),Qe=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent),Re=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),af=/PhantomJS/.test(navigator.userAgent),pb=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent), Gc=pb||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),Pa=pb||/Mac/.test(navigator.platform),Ff=/win/i.test(navigator.platform),Wa=fa&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);Wa&&(Wa=Number(Wa[1]));Wa&&15<=Wa&&(fa=!1,Z=!0);var Me=Pa&&(Df||fa&&(null==Wa||12.11>Wa)),dd=Gb||X&&!R,ne=!1,Ea=!1,q=k.Pos=function(a,b){if(!(this instanceof q))return new q(a,b);this.line=a;this.ch=b},B=k.cmpPos=function(a,b){return a.line-b.line||a.ch-b.ch};ya.prototype={primary:function(){return this.ranges[this.primIndex]}, equals:function(a){if(a==this)return!0;if(a.primIndex!=this.primIndex||a.ranges.length!=this.ranges.length)return!1;for(var b=0;b=B(a,d.to()))return c}return-1}};F.prototype={from:function(){return Rc(this.anchor,this.head)},to:function(){return Qc(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var Rd={left:0,right:0,top:0,bottom:0},Sa,$e=0,lc,kc,ce=0,oc=0,ha=null;X?ha=-.53:Gb?ha=15:Ef?ha=-.7:de&&(ha=-1/3);var je,gd=null,hd,ib=k.changeEnd= function(a){return a.text?q(a.from.line+a.text.length-1,E(a.text).length+(1==a.text.length?a.from.ch:0)):a.to};k.prototype={constructor:k,focus:function(){window.focus();Y(this);Eb(this)},setOption:function(a,b){var c=this.options,d=c[a];if(c[a]!=b||"mode"==a)c[a]=b,ab.hasOwnProperty(a)&&N(this,ab[a])(this,b,d)},getOption:function(a){return this.options[a]},getDoc:function(){return this.doc},addKeyMap:function(a,b){this.state.keyMaps[b?"push":"unshift"](a)},removeKeyMap:function(a){for(var b=this.state.keyMaps, c=0;cc&&(ic(this,e.head.line,a,!0),c=e.head.line,d==this.doc.sel.primIndex&&Qa(this));else{var f=Math.max(c,e.from().line);c=e.to();for(c=Math.min(this.lastLine(),c.line-(c.ch?0:1))+1;f>1;if((e?b[2*e-1]:0)>=a)d=e;else if(b[2*e+1]d&&(a=d,c=!0);d=w(this.doc,a);return Tc(this,d,{top:0,left:0},b||"page").top+(c?this.doc.height-la(d):0)},defaultTextHeight:function(){return Ka(this.display)},defaultCharWidth:function(){return sb(this.display)},setGutterMarker:K(function(a,b,c){return vc(this,a,"gutter",function(a){var d=a.gutterMarkers|| (a.gutterMarkers={});d[b]=c;!c&&Ke(d)&&(a.gutterMarkers=null);return!0})}),clearGutter:K(function(a){var b=this,c=b.doc,d=c.first;c.iter(function(c){c.gutterMarkers&&c.gutterMarkers[a]&&(c.gutterMarkers[a]=null,Ra(b,d,"gutter"),Ke(c.gutterMarkers)&&(c.gutterMarkers=null));++d})}),addLineClass:K(function(a,b,c){return vc(this,a,"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"wrapClass";if(a[d]){if((new RegExp("(?:^|\\s)"+c+"(?:$|\\s)")).test(a[d]))return!1;a[d]+=" "+c}else a[d]= c;return!0})}),removeLineClass:K(function(a,b,c){return vc(this,a,"class",function(a){var d="text"==b?"textClass":"background"==b?"bgClass":"wrapClass",f=a[d];if(f)if(null==c)a[d]=null;else{var g=f.match(new RegExp("(?:^|\\s+)"+c+"(?:$|\\s+)"));if(!g)return!1;var h=g.index+g[0].length;a[d]=f.slice(0,g.index)+(g.index&&h!=f.length?" ":"")+f.slice(h)||null}else return!1;return!0})}),addLineWidget:K(function(a,b,c){return sf(this,a,b,c)}),removeLineWidget:function(a){a.clear()},lineInfo:function(a){if("number"== typeof a){if(!wb(this.doc,a))return null;var b=a;a=w(this.doc,a);if(!a)return null}else if(b=G(a),null==b)return null;return{line:b,handle:a,text:a.text,gutterMarkers:a.gutterMarkers,textClass:a.textClass,bgClass:a.bgClass,wrapClass:a.wrapClass,widgets:a.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(a,b,c,d,e){var f=this.display;a=za(this,x(this.doc,a));var g=a.bottom,h=a.left;b.style.position="absolute";f.sizer.appendChild(b);if("over"== d)g=a.top;else if("above"==d||"near"==d){var l=Math.max(f.wrapper.clientHeight,this.doc.height),m=Math.max(f.sizer.clientWidth,f.lineSpace.clientWidth);("above"==d||a.bottom+b.offsetHeight>l)&&a.top>b.offsetHeight?g=a.top-b.offsetHeight:a.bottom+b.offsetHeight<=l&&(g=a.bottom);h+b.offsetWidth>m&&(h=m-b.offsetWidth)}b.style.top=g+"px";b.style.left=b.style.right="";"right"==e?(h=f.sizer.clientWidth-b.offsetWidth,b.style.right="0px"):("left"==e?h=0:"middle"==e&&(h=(f.sizer.clientWidth-b.offsetWidth)/ 2),b.style.left=h+"px");c&&(a=ec(this,h,g,h+b.offsetWidth,g+b.offsetHeight),null!=a.scrollTop&&Db(this,a.scrollTop),null!=a.scrollLeft&&bb(this,a.scrollLeft))},triggerOnKeyDown:K(ae),triggerOnKeyPress:K(be),triggerOnKeyUp:K($d),execCommand:function(a){if(qc.hasOwnProperty(a))return qc[a](this)},findPosH:function(a,b,c,d){var e=1;0>b&&(e=-1,b=-b);var f=0;for(a=x(this.doc,a);fa?d.from():d.to()},Ya)}),deleteH:K(function(a,b){var c=this.doc;this.doc.sel.somethingSelected()?c.replaceSelection("",null,"+delete"):wc(this,function(d){var e=nd(c,d.head,a,b,!1);return 0>a?{from:e,to:d.head}:{from:d.head,to:e}})}),findPosV:function(a,b,c,d){var e=1;0>b&&(e=-1,b=-b);var f=0;for(a=x(this.doc,a);fa?g.from():g.to();var h=za(c,g.head,"div");null!=g.goalColumn&&(h.left=g.goalColumn);e.push(h.left);var m=we(c,h,a,b);"page"==b&&g==d.sel.primary()&&tc(c,null,Yb(c,m,"div").top-h.top);return m},Ya);if(e.length)for(var g=0;g=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.posb},eatSpace:function(){for(var a=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){a=this.string.indexOf(a,this.pos);if(-1a.display.maxLineLength&&(a.display.maxLine=f,a.display.maxLineLength=g,a.display.maxLineChanged= !0);null!=c&&a&&this.collapsed&&ca(a,c,d+1);this.lines.length=0;this.explicitlyCleared=!0;this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,a&&Md(a.doc));a&&O(a,"markerCleared",a,this);b&&eb(a)}};Ua.prototype.find=function(a,b){null==a&&"bookmark"==this.type&&(a=1);for(var c,d,e=0;ethis.size-b&&(1=this.children.length)){var a=this;do{var b=a.children.splice(a.children.length-5,5);b=new Mb(b);if(a.parent){a.size-=b.size; a.height-=b.height;var c=S(a.parent.children,a);a.parent.children.splice(c+1,0,b)}else c=new Mb(a.children),c.parent=a,a.children=[c,b],a=c;b.parent=a.parent}while(10B(h.head,h.anchor),f[e]=new F(h?l:g,h?g:l)):f[e]=new F(g,g)}f=new ya(f,this.sel.primIndex)}b=f;for(f=d.length-1;0<=f;f--)gb(this,d[f]);b?Id(this,b):this.cm&&Qa(this.cm)},undo:aa(function(){sc(this,"undo")}),redo:aa(function(){sc(this,"redo")}),undoSelection:aa(function(){sc(this,"undo",!0)}),redoSelection:aa(function(){sc(this, "redo",!0)}),setExtending:function(a){this.extend=a},getExtending:function(){return this.extend},historySize:function(){for(var a=this.history,b=0,c=0,d=0;d=a.ch)&&b.push(e.marker.parent||e.marker)}return b},findMarks:function(a,b){a=x(this,a);b=x(this,b);var c=[],d=a.line;this.iter(a.line,b.line+1,function(e){if(e=e.markedSpans)for(var f=0;fg.to||null==g.from&&d!=a.line||d==b.line&& g.from>b.ch||c.push(g.marker.parent||g.marker)}++d});return c},getAllMarks:function(){var a=[];this.iter(function(b){if(b=b.markedSpans)for(var c=0;ca)return b=a,!0;a-=d;++c});return x(this,q(c,b))},indexFromPos:function(a){a=x(this,a);var b=a.ch;if(a.linea.ch)return 0;this.iter(this.first,a.line,function(a){b+=a.text.length+1});return b}, copy:function(a){var b=new W(qd(this,this.first,this.first+this.size),this.modeOption,this.first);b.scrollTop=this.scrollTop;b.scrollLeft=this.scrollLeft;b.sel=this.sel;b.extend=!1;a&&(b.history.undoDepth=this.history.undoDepth,b.setHistory(this.getHistory()));return b},linkedDoc:function(a){a||(a={});var b=this.first,c=this.first+this.size;null!=a.from&&a.from>b&&(b=a.from);null!=a.to&&a.toS(Hf,Pb)&&(k.prototype[Pb]=function(a){return function(){return a.apply(this.doc,arguments)}}(W.prototype[Pb]));lb(W);var T=k.e_preventDefault=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},If=k.e_stopPropagation=function(a){a.stopPropagation?a.stopPropagation(): a.cancelBubble=!0},ad=k.e_stop=function(a){T(a);If(a)},y=k.on=function(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent?a.attachEvent("on"+b,c):(a=a._handlers||(a._handlers={}),(a[b]||(a[b]=[])).push(c))},Ha=k.off=function(a,b,c){if(a.removeEventListener)a.removeEventListener(b,c,!1);else if(a.detachEvent)a.detachEvent("on"+b,c);else if(a=a._handlers&&a._handlers[b])for(b=0;bf||f>=b)return e+(b-d);e+=f-d;e+=c-e%c;d=f+1}},Ec=[""], jc=function(a){a.select()};pb?jc=function(a){a.selectionStart=0;a.selectionEnd=a.value.length}:X&&(jc=function(a){try{a.select()}catch(b){}});[].indexOf&&(S=function(a,b){return a.indexOf(b)});[].map&&(ld=function(a,b){return a.map(b)});var Jf=/[\u00df\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,xc=k.isWordChar=function(a){return/\w/.test(a)||"\u0080"a;a++)Ia[a+48]=Ia[a+96]=String(a);for(a=65;90>=a;a++)Ia[a]=String.fromCharCode(a);for(a=1;12>=a;a++)Ia[a+111]=Ia[a+63235]="F"+a})();var Cb,zf=function(){function a(a){return 247>=a?"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN".charAt(a): 1424<=a&&1524>=a?"R":1536<=a&&1773>=a?"rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm".charAt(a-1536):1774<=a&&2220>=a?"r":8192<=a&&8203>=a?"w":8204==a?"b":"L"}function b(a,b,c){this.level=a;this.from=b;this.to=c}var c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,d=/[stwN]/,e=/[LRr]/,f=/[Lb1n]/,g=/[1n]/;return function(h){if(!c.test(h))return!1; for(var l=h.length,m=[],k=0,q;k