genghisapp 2.3.9 → 2.3.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,11 @@
1
+ ## v2.3.10
2
+
3
+ * [Fix #145][i145], [#148][i148] — work around rack-protection's misguided path decoding.
4
+
5
+ [i145]: https://github.com/bobthecow/genghis/issues/145
6
+ [i148]: https://github.com/bobthecow/genghis/issues/148
7
+
8
+
1
9
  ## v2.3.9
2
10
 
3
11
  * [Fix #135][i135] — error when entering a `new Date()` value in a document.
data/genghis.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #
3
- # Genghis v2.3.9
3
+ # Genghis v2.3.10
4
4
  #
5
5
  # The single-file MongoDB admin app
6
6
  #
@@ -9,7 +9,7 @@
9
9
  # @author Justin Hileman <justin@justinhileman.info>
10
10
  #
11
11
  module Genghis
12
- VERSION = "2.3.9"
12
+ VERSION = "2.3.10"
13
13
  end
14
14
  GENGHIS_VERSION = Genghis::VERSION
15
15
 
@@ -878,6 +878,9 @@ module Genghis
878
878
  # default to 'production' because yeah
879
879
  set :environment, :production
880
880
 
881
+ # work around path param slash encoding issues.
882
+ set :protection, :except => :path_traversal
883
+
881
884
  enable :inline_templates
882
885
 
883
886
  helpers Sinatra::Streaming
@@ -1071,7 +1074,7 @@ __END__
1071
1074
 
1072
1075
  @@ style.css
1073
1076
  /**
1074
- * Genghis v2.3.9
1077
+ * Genghis v2.3.10
1075
1078
  *
1076
1079
  * The single-file MongoDB admin app
1077
1080
  *
@@ -1083,7 +1086,7 @@ __END__
1083
1086
 
1084
1087
  @@ script.js
1085
1088
  /**
1086
- * Genghis v2.3.9
1089
+ * Genghis v2.3.10
1087
1090
  *
1088
1091
  * The single-file MongoDB admin app
1089
1092
  *
@@ -1100,7 +1103,7 @@ s+=a.top+("window"==r?0:U());var l=a.left+("window"==r?0:V());n.left+=l,n.right+
1100
1103
  for(var i=0;i<n.length;++i){var o=n[i],s=r[i];if(o&&s)e:for(var a=0;a<s.length;++a){for(var l=s[a],c=0;c<o.length;++c)if(o[c].marker==l.marker)continue e;o.push(l)}else s&&(n[i]=s)}return n}function On(e,t,n){var r=null;if(e.iter(t.line,n.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var n=e.markedSpans[t].marker;!n.readOnly||r&&-1!=Xr(r,n)||(r||(r=[])).push(n)}}),!r)return null;for(var i=[{from:t,to:n}],o=0;o<r.length;++o)for(var s=r[o],a=s.find(),l=0;l<i.length;++l){var c=i[l];if(!Vt(c.to,a.from)&&!Vt(a.to,c.from)){var u=[l,1];(Vt(c.from,a.from)||!s.inclusiveLeft&&Wt(c.from,a.from))&&u.push({from:c.from,to:a.from}),(Vt(a.to,c.to)||!s.inclusiveRight&&Wt(c.to,a.to))&&u.push({from:a.to,to:c.to}),i.splice.apply(i,u),l+=u.length-1}}return i}function Pn(e,t){var n,r=Ui&&e.markedSpans;if(r)for(var i,o=0;o<r.length;++o)i=r[o],i.marker.collapsed&&(null==i.from||i.from<t)&&(null==i.to||i.to>t)&&(!n||n.width<i.marker.width)&&(n=i.marker);return n}function Fn(e){return Pn(e,-1)}function Gn(e){return Pn(e,e.text.length+1)}function Hn(e,t){for(var n;n=Fn(t);)t=dr(e,n.find().from.line);return t}function jn(e,t){var n=Ui&&t.markedSpans;if(n)for(var r,i=0;i<n.length;++i)if(r=n[i],r.marker.collapsed){if(null==r.from)return!0;if(!r.marker.replacedWith&&0==r.from&&r.marker.inclusiveLeft&&Rn(e,t,r))return!0}}function Rn(e,t,n){if(null==n.to){var r=n.marker.find().to,i=dr(e,r.line);return Rn(e,i,En(i.markedSpans,n.marker))}if(n.marker.inclusiveRight&&n.to==t.text.length)return!0;for(var o,s=0;s<t.markedSpans.length;++s)if(o=t.markedSpans[s],o.marker.collapsed&&!o.marker.replacedWith&&o.from==n.to&&(o.marker.inclusiveLeft||n.marker.inclusiveRight)&&Rn(e,t,o))return!0}function _n(e){var t=e.markedSpans;if(t){for(var n=0;n<t.length;++n)t[n].marker.detachLine(e);e.markedSpans=null}}function Bn(e,t){if(t){for(var n=0;n<t.length;++n)t[n].marker.attachLine(e);e.markedSpans=t}}function zn(e){return function(){var t=!this.cm.curOp;t&&nt(this.cm);try{var n=e.apply(this,arguments)}finally{t&&rt(this.cm)}return n}}function Wn(e){return null!=e.height?e.height:(e.node.parentNode&&1==e.node.parentNode.nodeType||ii(e.cm.display.measure,ni("div",[e.node],null,"position: relative")),e.height=e.node.offsetHeight)}function Vn(e,t,n,r){var i=new uo(e,n,r);return i.noHScroll&&(e.display.alignWidgets=!0),un(e,t,function(t){if((t.widgets||(t.widgets=[])).push(i),i.line=t,!jn(e.doc,t)||i.showIfHidden){var n=vr(e,t)<e.display.scroller.scrollTop;pr(t,t.height+Wn(i)),n&&ln(e,0,i.height)}return!0}),i}function Un(e,t,n){var r={text:e};return Bn(r,t),r.height=n?n(r):1,r}function qn(e,t,n,r){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),_n(e),Bn(e,n);var i=r?r(e):1;i!=e.height&&pr(e,i)}function Kn(e){e.parent=null,_n(e)}function Xn(e,t,n,r,i){var o=n.flattenSpans;null==o&&(o=e.options.flattenSpans);var s,a=0,l=null,c=new Cn(t,e.options.tabSize);for(""==t&&n.blankLine&&n.blankLine(r);!c.eol();)c.pos>e.options.maxHighlightLength?(o=!1,c.pos=Math.min(t.length,c.start+5e4),s=null):s=n.token(c,r),o&&l==s||(a<c.start&&i(c.start,l),a=c.start,l=s),c.start=c.pos;a<c.pos&&i(c.pos,l)}function Jn(e,t,n){var r=[e.state.modeGen];Xn(e,t.text,e.doc.mode,n,function(e,t){r.push(e,t)});for(var i=0;i<e.state.overlays.length;++i){var o=e.state.overlays[i],s=1,a=0;Xn(e,t.text,o.mode,!0,function(e,t){for(var n=s;e>a;){var i=r[s];i>e&&r.splice(s,1,e,r[s+1],i),s+=2,a=Math.min(e,i)}if(t)if(o.opaque)r.splice(n,s-n,e,t),s=n+2;else for(;s>n;n+=2){var l=r[n+1];r[n+1]=l?l+" "+t:t}})}return r}function Qn(e,t){return t.styles&&t.styles[0]==e.state.modeGen||(t.styles=Jn(e,t,t.stateAfter=O(e,mr(t)))),t.styles}function Yn(e,t,n){var r=e.doc.mode,i=new Cn(t.text,e.options.tabSize);for(""==t.text&&r.blankLine&&r.blankLine(n);!i.eol()&&i.pos<=e.options.maxHighlightLength;)r.token(i,n),i.start=i.pos}function Zn(e){return e?fo[e]||(fo[e]="cm-"+e.replace(/ +/g," cm-")):null}function er(e,t,n){for(var r,i=t,o=!0;r=Fn(i);)i=dr(e.doc,r.find().from.line);var s={pre:ni("pre"),col:0,pos:0,display:!n,measure:null,measuredSomething:!1,cm:e};i.textClass&&(s.pre.className=i.textClass);do{i.text&&(o=!1),s.measure=i==t&&n,s.pos=0,s.addToken=s.measure?nr:tr,(Si||Li)&&e.getOption("lineWrapping")&&(s.addToken=rr(s.addToken));var a=or(i,s,Qn(e,i));n&&i==t&&!s.measuredSomething&&(n[0]=s.pre.appendChild(ci(e.display.measure)),s.measuredSomething=!0),a&&(i=dr(e.doc,a.to.line))}while(a);!n||s.measuredSomething||n[0]||(n[0]=s.pre.appendChild(o?ni("span","\xa0"):ci(e.display.measure))),s.pre.firstChild||jn(e.doc,t)||s.pre.appendChild(document.createTextNode("\xa0"));var l;if(n&&Si&&(l=br(i))){var c=l.length-1;l[c].from==l[c].to&&--c;var u=l[c],d=l[c-1];if(u.from+1==u.to&&d&&u.level<d.level){var f=n[s.pos-1];f&&f.parentNode.insertBefore(f.measureRight=ci(e.display.measure),f.nextSibling)}}return jr(e,"renderLine",e,t,s.pre),s.pre}function tr(e,t,n,r,i){if(t){if(ho.test(t))for(var o=document.createDocumentFragment(),s=0;;){ho.lastIndex=s;var a=ho.exec(t),l=a?a.index-s:t.length-s;if(l&&(o.appendChild(document.createTextNode(t.slice(s,s+l))),e.col+=l),!a)break;if(s+=l+1," "==a[0]){var c=e.cm.options.tabSize,u=c-e.col%c;o.appendChild(ni("span",Ur(u),"cm-tab")),e.col+=u}else{var d=ni("span","\u2022","cm-invalidchar");d.title="\\u"+a[0].charCodeAt(0).toString(16),o.appendChild(d),e.col+=1}}else{e.col+=t.length;var o=document.createTextNode(t)}if(n||r||i||e.measure){var f=n||"";return r&&(f+=r),i&&(f+=i),e.pre.appendChild(ni("span",[o],f))}e.pre.appendChild(o)}}function nr(e,t,n,r,i){for(var o=e.cm.options.lineWrapping,s=0;s<t.length;++s){var a=t.charAt(s),l=0==s;a>="\ud800"&&"\udbff">a&&s<t.length-1?(a=t.slice(s,s+2),++s):s&&o&&ai(t,s)&&e.pre.appendChild(ni("wbr"));var c=e.measure[e.pos]=tr(e,a,n,l&&r,s==t.length-1&&i);Si&&o&&" "==a&&s&&!/\s/.test(t.charAt(s-1))&&s<t.length-1&&!/\s/.test(t.charAt(s+1))&&(c.style.whiteSpace="normal"),e.pos+=a.length}t.length&&(e.measuredSomething=!0)}function rr(e){function t(e){for(var t=" ",n=0;n<e.length-2;++n)t+=n%2?" ":"\xa0";return t+=" "}return function(n,r,i,o,s){return e(n,r.replace(/ {3,}/,t),i,o,s)}}function ir(e,t,n){n&&(e.display||(n=n.cloneNode(!0)),e.measure&&(e.measure[e.pos]=t?n:e.pre.appendChild(ci(e.cm.display.measure)),e.measuredSomething=!0),e.pre.appendChild(n)),e.pos+=t}function or(e,t,n){var r=e.markedSpans,i=e.text,o=0;if(r)for(var s,a,l,c,u,d=i.length,f=0,h=1,p="",m=0;;){if(m==f){a=l=c="",u=null,m=1/0;for(var g=null,v=0;v<r.length;++v){var b=r[v],y=b.marker;b.from<=f&&(null==b.to||b.to>f)?(null!=b.to&&m>b.to&&(m=b.to,l=""),y.className&&(a+=" "+y.className),y.startStyle&&b.from==f&&(c+=" "+y.startStyle),y.endStyle&&b.to==m&&(l+=" "+y.endStyle),y.collapsed&&(!u||u.marker.size<y.size)&&(u=b)):b.from>f&&m>b.from&&(m=b.from),"bookmark"==y.type&&b.from==f&&y.replacedWith&&(g=y.replacedWith)}if(u&&(u.from||0)==f&&(ir(t,(null==u.to?d:u.to)-f,null!=u.from&&u.marker.replacedWith),null==u.to))return u.marker.find();g&&!u&&ir(t,0,g)}if(f>=d)break;for(var w=Math.min(d,m);;){if(p){var x=f+p.length;if(!u){var C=x>w?p.slice(0,w-f):p;t.addToken(t,C,s?s+a:a,c,f+C.length==m?l:"")}if(x>=w){p=p.slice(w-f),f=w;break}f=x,c=""}p=i.slice(o,o=n[h++]),s=Zn(n[h++])}}else for(var h=1;h<n.length;h+=2)t.addToken(t,i.slice(o,o=n[h]),Zn(n[h+1]))}function sr(e,t,n,r,i){function o(e){return n?n[e]:null}function s(e,n,r){qn(e,n,r,i),Rr(e,"change",e,t)}var a=t.from,l=t.to,c=t.text,u=dr(e,a.line),d=dr(e,l.line),f=qr(c),h=o(c.length-1),p=l.line-a.line;if(0==a.ch&&0==l.ch&&""==f){for(var m=0,g=c.length-1,v=[];g>m;++m)v.push(Un(c[m],o(m),i));s(d,d.text,h),p&&e.remove(a.line,p),v.length&&e.insert(a.line,v)}else if(u==d)if(1==c.length)s(u,u.text.slice(0,a.ch)+f+u.text.slice(l.ch),h);else{for(var v=[],m=1,g=c.length-1;g>m;++m)v.push(Un(c[m],o(m),i));v.push(Un(f+u.text.slice(l.ch),h,i)),s(u,u.text.slice(0,a.ch)+c[0],o(0)),e.insert(a.line+1,v)}else if(1==c.length)s(u,u.text.slice(0,a.ch)+c[0]+d.text.slice(l.ch),o(0)),e.remove(a.line+1,p);else{s(u,u.text.slice(0,a.ch)+c[0],o(0)),s(d,f+d.text.slice(l.ch),h);for(var m=1,g=c.length-1,v=[];g>m;++m)v.push(Un(c[m],o(m),i));p>1&&e.remove(a.line+1,p-1),e.insert(a.line+1,v)}Rr(e,"change",e,t),Zt(e,r.anchor,r.head,null,!0)}function ar(e){this.lines=e,this.parent=null;for(var t=0,n=e.length,r=0;n>t;++t)e[t].parent=this,r+=e[t].height;this.height=r}function lr(e){this.children=e;for(var t=0,n=0,r=0,i=e.length;i>r;++r){var o=e[r];t+=o.chunkSize(),n+=o.height,o.parent=this}this.size=t,this.height=n,this.parent=null}function cr(e,t,n){function r(e,i,o){if(e.linked)for(var s=0;s<e.linked.length;++s){var a=e.linked[s];if(a.doc!=i){var l=o&&a.sharedHist;(!n||l)&&(t(a.doc,l),r(a.doc,e,l))}}}r(e,null,!0)}function ur(e,t){if(t.cm)throw new Error("This document is already in use.");e.doc=t,t.cm=e,o(e),n(e),e.options.lineWrapping||d(e),e.options.mode=t.modeOption,at(e)}function dr(e,t){for(t-=e.first;!e.lines;)for(var n=0;;++n){var r=e.children[n],i=r.chunkSize();if(i>t){e=r;break}t-=i}return e.lines[t]}function fr(e,t,n){var r=[],i=t.line;return e.iter(t.line,n.line+1,function(e){var o=e.text;i==n.line&&(o=o.slice(0,n.ch)),i==t.line&&(o=o.slice(t.ch)),r.push(o),++i}),r}function hr(e,t,n){var r=[];return e.iter(t,n,function(e){r.push(e.text)}),r}function pr(e,t){for(var n=t-e.height,r=e;r;r=r.parent)r.height+=n}function mr(e){if(null==e.parent)return null;for(var t=e.parent,n=Xr(t.lines,e),r=t.parent;r;t=r,r=r.parent)for(var i=0;r.children[i]!=t;++i)n+=r.children[i].chunkSize();return n+t.first}function gr(e,t){var n=e.first;e:do{for(var r=0,i=e.children.length;i>r;++r){var o=e.children[r],s=o.height;if(s>t){e=o;continue e}t-=s,n+=o.chunkSize()}return n}while(!e.lines);for(var r=0,i=e.lines.length;i>r;++r){var a=e.lines[r],l=a.height;if(l>t)break;t-=l}return n+r}function vr(e,t){t=Hn(e.doc,t);for(var n=0,r=t.parent,i=0;i<r.lines.length;++i){var o=r.lines[i];if(o==t)break;n+=o.height}for(var s=r.parent;s;r=s,s=r.parent)for(var i=0;i<s.children.length;++i){var a=s.children[i];if(a==r)break;n+=a.height}return n}function br(e){var t=e.order;return null==t&&(t=e.order=$o(e.text)),t}function yr(e){return{done:[],undone:[],undoDepth:1/0,lastTime:0,lastOp:null,lastOrigin:null,generation:e||1,maxGeneration:e||1}}function wr(e,t,n,r){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,n),Math.min(e.first+e.size,r),function(n){n.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=n.markedSpans),++o})}function xr(e,t){var n={from:t.from,to:eo(t),text:fr(e,t.from,t.to)};return wr(e,n,t.from.line,t.to.line+1),cr(e,function(e){wr(e,n,t.from.line,t.to.line+1)},!0),n}function Cr(e,t,n,r){var i=e.history;i.undone.length=0;var o=+new Date,s=qr(i.done);if(s&&(i.lastOp==r||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastTime>o-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))){var a=qr(s.changes);Wt(t.from,t.to)&&Wt(t.from,a.to)?a.to=eo(t):s.changes.push(xr(e,t)),s.anchorAfter=n.anchor,s.headAfter=n.head}else for(s={changes:[xr(e,t)],generation:i.generation,anchorBefore:e.sel.anchor,headBefore:e.sel.head,anchorAfter:n.anchor,headAfter:n.head},i.done.push(s),i.generation=++i.maxGeneration;i.done.length>i.undoDepth;)i.done.shift();i.lastTime=o,i.lastOp=r,i.lastOrigin=t.origin}function Sr(e){if(!e)return null;for(var t,n=0;n<e.length;++n)e[n].marker.explicitlyCleared?t||(t=e.slice(0,n)):t&&t.push(e[n]);return t?t.length?t:null:e}function kr(e,t){var n=t["spans_"+e.id];if(!n)return null;for(var r=0,i=[];r<t.text.length;++r)i.push(Sr(n[r]));return i}function Tr(e,t){for(var n=0,r=[];n<e.length;++n){var i=e[n],o=i.changes,s=[];r.push({changes:s,anchorBefore:i.anchorBefore,headBefore:i.headBefore,anchorAfter:i.anchorAfter,headAfter:i.headAfter});for(var a=0;a<o.length;++a){var l,c=o[a];if(s.push({from:c.from,to:c.to,text:c.text}),t)for(var u in c)(l=u.match(/^spans_(\d+)$/))&&Xr(t,Number(l[1]))>-1&&(qr(s)[u]=c[u],delete c[u])}}return r}function Lr(e,t,n,r){n<e.line?e.line+=r:t<e.line&&(e.line=t,e.ch=0)}function Er(e,t,n,r){for(var i=0;i<e.length;++i){for(var o=e[i],s=!0,a=0;a<o.changes.length;++a){var l=o.changes[a];if(o.copied||(l.from=Ut(l.from),l.to=Ut(l.to)),n<l.from.line)l.from.line+=r,l.to.line+=r;else if(t<=l.to.line){s=!1;break}}o.copied||(o.anchorBefore=Ut(o.anchorBefore),o.headBefore=Ut(o.headBefore),o.anchorAfter=Ut(o.anchorAfter),o.readAfter=Ut(o.headAfter),o.copied=!0),s?(Lr(o.anchorBefore),Lr(o.headBefore),Lr(o.anchorAfter),Lr(o.headAfter)):(e.splice(0,i+1),i=0)}}function Nr(e,t){var n=t.from.line,r=t.to.line,i=t.text.length-(r-n)-1;Er(e.done,n,r,i),Er(e.undone,n,r,i)}function Ar(){Or(this)}function Dr(e){return e.stop||(e.stop=Ar),e}function Mr(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function Ir(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function $r(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Or(e){Mr(e),Ir(e)}function Pr(e){return e.target||e.srcElement}function Fr(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),Gi&&e.ctrlKey&&1==t&&(t=3),t}function Gr(e,t,n){if(e.addEventListener)e.addEventListener(t,n,!1);else if(e.attachEvent)e.attachEvent("on"+t,n);else{var r=e._handlers||(e._handlers={}),i=r[t]||(r[t]=[]);i.push(n)}}function Hr(e,t,n){if(e.removeEventListener)e.removeEventListener(t,n,!1);else if(e.detachEvent)e.detachEvent("on"+t,n);else{var r=e._handlers&&e._handlers[t];if(!r)return;for(var i=0;i<r.length;++i)if(r[i]==n){r.splice(i,1);break}}}function jr(e,t){var n=e._handlers&&e._handlers[t];if(n)for(var r=Array.prototype.slice.call(arguments,2),i=0;i<n.length;++i)n[i].apply(null,r)}function Rr(e,t){function n(e){return function(){e.apply(null,i)}}var r=e._handlers&&e._handlers[t];if(r){var i=Array.prototype.slice.call(arguments,2);bo||(++yo,bo=[],setTimeout(Br,0));for(var o=0;o<r.length;++o)bo.push(n(r[o]))}}function _r(e,t){return jr(e,t.type,e,t),$r(t)}function Br(){--yo;var e=bo;bo=null;for(var t=0;t<e.length;++t)e[t]()}function zr(e,t){var n=e._handlers&&e._handlers[t];return n&&n.length>0}function Wr(){this.id=null}function Vr(e,t,n,r,i){null==t&&(t=e.search(/[^\s\u00a0]/),-1==t&&(t=e.length));for(var o=r||0,s=i||0;t>o;++o)" "==e.charAt(o)?s+=n-s%n:++s;return s}function Ur(e){for(;Co.length<=e;)Co.push(qr(Co)+" ");return Co[e]}function qr(e){return e[e.length-1]}function Kr(e){if(Pi)e.selectionStart=0,e.selectionEnd=e.value.length;else try{e.select()}catch(t){}}function Xr(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;r>n;++n)if(e[n]==t)return n;return-1}function Jr(e,t){function n(){}n.prototype=e;var r=new n;return t&&Qr(t,r),r}function Qr(e,t){t||(t={});for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function Yr(e){for(var t=[],n=0;e>n;++n)t.push(void 0);return t}function Zr(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function ei(e){return/\w/.test(e)||e>"\x80"&&(e.toUpperCase()!=e.toLowerCase()||So.test(e))}function ti(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function ni(e,t,n,r){var i=document.createElement(e);if(n&&(i.className=n),r&&(i.style.cssText=r),"string"==typeof t)oi(i,t);else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function ri(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function ii(e,t){return ri(e).appendChild(t)}function oi(e,t){Ti?(e.innerHTML="",e.appendChild(document.createTextNode(t))):e.textContent=t}function si(e){return e.getBoundingClientRect()}function ai(){return!1}function li(e){if(null!=Lo)return Lo;var t=ni("div",null,null,"width: 50px; height: 50px; overflow-x: scroll");return ii(e,t),t.offsetWidth&&(Lo=t.offsetHeight-t.clientHeight),Lo||0}function ci(e){if(null==Eo){var t=ni("span","\u200b");ii(e,ni("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Eo=t.offsetWidth<=1&&t.offsetHeight>2&&!ki)}return Eo?ni("span","\u200b"):ni("span","\xa0",null,"display: inline-block; width: 1px; margin-right: -1px")}function ui(e,t,n,r){if(!e)return r(t,n,"ltr");for(var i=0;i<e.length;++i){var o=e[i];(o.from<n&&o.to>t||t==n&&o.to==t)&&r(Math.max(o.from,t),Math.min(o.to,n),1==o.level?"rtl":"ltr")}}function di(e){return e.level%2?e.to:e.from}function fi(e){return e.level%2?e.from:e.to}function hi(e){var t=br(e);return t?di(t[0]):0}function pi(e){var t=br(e);return t?fi(qr(t)):e.text.length}function mi(e,t){var n=dr(e.doc,t),r=Hn(e.doc,n);r!=n&&(t=mr(r));var i=br(r),o=i?i[0].level%2?pi(r):hi(r):0;return zt(t,o)}function gi(e,t){for(var n,r;n=Gn(r=dr(e.doc,t));)t=n.find().to.line;var i=br(r),o=i?i[0].level%2?hi(r):pi(r):r.text.length;return zt(t,o)}function vi(e,t,n){var r=e[0].level;return t==r?!0:n==r?!1:n>t}function bi(e,t){for(var n,r=0;r<e.length;++r){var i=e[r];if(i.from<t&&i.to>t)return Io=null,r;if(i.from==t||i.to==t){if(null!=n)return vi(e,i.level,e[n].level)?(Io=n,r):(Io=r,n);n=r}}return Io=null,n}function yi(e,t,n,r){if(!r)return t+n;do t+=n;while(t>0&&ko.test(e.text.charAt(t)));return t}function wi(e,t,n,r){var i=br(e);if(!i)return xi(e,t,n,r);for(var o=bi(i,t),s=i[o],a=yi(e,t,s.level%2?-n:n,r);;){if(a>s.from&&a<s.to)return a;if(a==s.from||a==s.to)return bi(i,a)==o?a:(s=i[o+=n],n>0==s.level%2?s.to:s.from);if(s=i[o+=n],!s)return null;a=n>0==s.level%2?yi(e,s.to,-1,r):yi(e,s.from,1,r)}}function xi(e,t,n,r){var i=t+n;if(r)for(;i>0&&ko.test(e.text.charAt(i));)i+=n;return 0>i||i>e.text.length?null:i}var Ci=/gecko\/\d/i.test(navigator.userAgent),Si=/MSIE \d/.test(navigator.userAgent),ki=Si&&(null==document.documentMode||document.documentMode<8),Ti=Si&&(null==document.documentMode||document.documentMode<9),Li=/WebKit\//.test(navigator.userAgent),Ei=Li&&/Qt\/\d+\.\d+/.test(navigator.userAgent),Ni=/Chrome\//.test(navigator.userAgent),Ai=/Opera\//.test(navigator.userAgent),Di=/Apple Computer/.test(navigator.vendor),Mi=/KHTML\//.test(navigator.userAgent),Ii=/Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent),$i=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),Oi=/PhantomJS/.test(navigator.userAgent),Pi=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),Fi=Pi||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),Gi=Pi||/Mac/.test(navigator.platform),Hi=/windows/i.test(navigator.platform),ji=Ai&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);ji&&(ji=Number(ji[1]));var Ri,_i,Bi,zi=Gi&&(Ei||Ai&&(null==ji||12.11>ji)),Wi=Ci||Si&&!Ti,Vi=!1,Ui=!1,qi=0,Ki=0,Xi=0,Ji=null;Si?Ji=-.53:Ci?Ji=15:Ni?Ji=-.7:Di&&(Ji=-1/3);var Qi,Yi,Zi=null,eo=e.changeEnd=function(e){return e.text?zt(e.from.line+e.text.length-1,qr(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};e.Pos=zt,e.prototype={constructor:e,focus:function(){window.focus(),ft(this),Dt(this),ct(this)},setOption:function(e,t){var n=this.options,r=n[e];(n[e]!=t||"mode"==e)&&(n[e]=t,to.hasOwnProperty(e)&&it(this,to[e])(this,t,r))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](e)},removeKeyMap:function(e){for(var t=this.state.keyMaps,n=0;n<t.length;++n)if(("string"==typeof e?t[n].name:t[n])==e)return t.splice(n,1),!0},addOverlay:it(null,function(t,n){var r=t.token?t:e.getMode(this.options,t);if(r.startState)throw new Error("Overlays may not be stateful.");this.state.overlays.push({mode:r,modeSpec:t,opaque:n&&n.opaque}),this.state.modeGen++,at(this)}),removeOverlay:it(null,function(e){for(var t=this.state.overlays,n=0;n<t.length;++n){var r=t[n].modeSpec;if(r==e||"string"==typeof e&&r.name==e)return t.splice(n,1),this.state.modeGen++,at(this),void 0}}),indentLine:it(null,function(e,t,n){"string"!=typeof t&&"number"!=typeof t&&(t=null==t?this.options.smartIndent?"smart":"prev":t?"add":"subtract"),Jt(this.doc,e)&&cn(this,e,t,n)}),indentSelection:it(null,function(e){var t=this.doc.sel;if(Wt(t.from,t.to))return cn(this,t.from.line,e);for(var n=t.to.line-(t.to.ch?0:1),r=t.from.line;n>=r;++r)cn(this,r,e)}),getTokenAt:function(e,t){var n=this.doc;e=Kt(n,e);for(var r=O(this,e.line,t),i=this.doc.mode,o=dr(n,e.line),s=new Cn(o.text,this.options.tabSize);s.pos<e.ch&&!s.eol();){s.start=s.pos;var a=i.token(s,r)}return{start:s.start,end:s.pos,string:s.current(),className:a||null,type:a||null,state:r}},getTokenTypeAt:function(e){e=Kt(this.doc,e);for(var t=Qn(this,dr(this.doc,e.line)),n=0,r=(t.length-1)/2,i=e.ch;;){var o=n+r>>1;if((o?t[2*o-1]:0)>=i)r=o;else{if(!(t[2*o+1]<i))return t[2*o+2];n=o+1}}},getStateAfter:function(e,t){var n=this.doc;return e=qt(n,null==e?n.first+n.size-1:e),O(this,e+1,t)},cursorCoords:function(e,t){var n,r=this.doc.sel;return n=null==e?r.head:"object"==typeof e?Kt(this.doc,e):e?r.from:r.to,J(this,n,t||"page")},charCoords:function(e,t){return X(this,Kt(this.doc,e),t||"page")},coordsChar:function(e,t){return e=K(this,e,t||"page"),Y(this,e.left,e.top)},lineAtHeight:function(e,t){return e=K(this,{top:e,left:0},t||"page").top,gr(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t){var n=!1,r=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>r&&(e=r,n=!0);var i=dr(this.doc,e);return q(this,dr(this.doc,e),{top:0,left:0},t||"page").top+(n?i.height:0)},defaultTextHeight:function(){return et(this.display)},defaultCharWidth:function(){return tt(this.display)},setGutterMarker:it(null,function(e,t,n){return un(this,e,function(e){var r=e.gutterMarkers||(e.gutterMarkers={});return r[t]=n,!n&&ti(r)&&(e.gutterMarkers=null),!0})}),clearGutter:it(null,function(e){var t=this,n=t.doc,r=n.first;n.iter(function(n){n.gutterMarkers&&n.gutterMarkers[e]&&(n.gutterMarkers[e]=null,at(t,r,r+1),ti(n.gutterMarkers)&&(n.gutterMarkers=null)),++r})}),addLineClass:it(null,function(e,t,n){return un(this,e,function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"wrapClass";if(e[r]){if(new RegExp("(?:^|\\s)"+n+"(?:$|\\s)").test(e[r]))return!1;e[r]+=" "+n}else e[r]=n;return!0})}),removeLineClass:it(null,function(e,t,n){return un(this,e,function(e){var r="text"==t?"textClass":"background"==t?"bgClass":"wrapClass",i=e[r];if(!i)return!1;if(null==n)e[r]=null;else{var o=i.match(new RegExp("(?:^|\\s+)"+n+"(?:$|\\s+)"));if(!o)return!1;var s=o.index+o[0].length;e[r]=i.slice(0,o.index)+(o.index&&s!=i.length?" ":"")+i.slice(s)||null}return!0})}),addLineWidget:it(null,function(e,t,n){return Vn(this,e,t,n)}),removeLineWidget:function(e){e.clear()},lineInfo:function(e){if("number"==typeof e){if(!Jt(this.doc,e))return null;var t=e;if(e=dr(this.doc,e),!e)return null}else{var t=mr(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.showingFrom,to:this.display.showingTo}},addWidget:function(e,t,n,r,i){var o=this.display;e=J(this,Kt(this.doc,e));var s=e.bottom,a=e.left;if(t.style.position="absolute",o.sizer.appendChild(t),"over"==r)s=e.top;else if("above"==r||"near"==r){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==r||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?s=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(s=e.bottom),a+t.offsetWidth>c&&(a=c-t.offsetWidth)}t.style.top=s+"px",t.style.left=t.style.right="","right"==i?(a=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?a=0:"middle"==i&&(a=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=a+"px"),n&&on(this,a,s,a+t.offsetWidth,s+t.offsetHeight)},triggerOnKeyDown:it(null,Nt),execCommand:function(e){return lo[e](this)},findPosH:function(e,t,n,r){var i=1;0>t&&(i=-1,t=-t);for(var o=0,s=Kt(this.doc,e);t>o&&(s=dn(this.doc,s,i,n,r),!s.hitSide);++o);return s},moveH:it(null,function(e,t){var n,r=this.doc.sel;n=r.shift||r.extend||Wt(r.from,r.to)?dn(this.doc,r.head,e,t,this.options.rtlMoveVisually):0>e?r.from:r.to,Qt(this.doc,n,n,e)}),deleteH:it(null,function(e,t){var n=this.doc.sel;Wt(n.from,n.to)?Bt(this.doc,"",n.from,dn(this.doc,n.head,e,t,!1),"+delete"):Bt(this.doc,"",n.from,n.to,"+delete"),this.curOp.userSelChange=!0}),findPosV:function(e,t,n,r){var i=1,o=r;0>t&&(i=-1,t=-t);for(var s=0,a=Kt(this.doc,e);t>s;++s){var l=J(this,a,"div");if(null==o?o=l.left:l.left=o,a=fn(this,l,i,n),a.hitSide)break}return a},moveV:it(null,function(e,t){var n=this.doc.sel,r=J(this,n.head,"div");null!=n.goalColumn&&(r.left=n.goalColumn);var i=fn(this,r,e,t);"page"==t&&ln(this,0,X(this,i,"div").top-r.top),Qt(this.doc,i,i,e),n.goalColumn=r.left}),toggleOverwrite:function(e){(null==e||e!=this.state.overwrite)&&((this.state.overwrite=!this.state.overwrite)?this.display.cursor.className+=" CodeMirror-overwrite":this.display.cursor.className=this.display.cursor.className.replace(" CodeMirror-overwrite",""))},hasFocus:function(){return this.state.focused},scrollTo:it(null,function(e,t){an(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller,t=wo;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-t,width:e.scrollWidth-t,clientHeight:e.clientHeight-t,clientWidth:e.clientWidth-t}},scrollIntoView:it(null,function(e,t){"number"==typeof e&&(e=zt(e,0)),t||(t=0);var n=e;e&&null==e.line||(this.curOp.scrollToPos=e?Kt(this.doc,e):this.doc.sel.head,this.curOp.scrollToPosMargin=t,n=J(this,this.curOp.scrollToPos));var r=sn(this,n.left,n.top-t,n.right,n.bottom+t);an(this,r.scrollLeft,r.scrollTop)}),setSize:function(e,t){function n(e){return"number"==typeof e||/^\d+$/.test(String(e))?e+"px":e}null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.refresh()},on:function(e,t){Gr(this,e,t)},off:function(e,t){Hr(this,e,t)},operation:function(e){return st(this,e)},refresh:it(null,function(){W(this),an(this,this.doc.scrollLeft,this.doc.scrollTop),at(this)}),swapDoc:it(null,function(e){var t=this.doc;return t.cm=null,ur(this,e),W(this),dt(this,!0),an(this,e.scrollLeft,e.scrollTop),t}),getInputField:function(){return this.display.input},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}};var to=e.optionHandlers={},no=e.defaults={},ro=e.Init={toString:function(){return"CodeMirror.Init"}};mn("value","",function(e,t){e.setValue(t)},!0),mn("mode",null,function(e,t){e.doc.modeOption=t,n(e)},!0),mn("indentUnit",2,n,!0),mn("indentWithTabs",!1),mn("smartIndent",!0),mn("tabSize",4,function(e){n(e),W(e),at(e)},!0),mn("electricChars",!0),mn("rtlMoveVisually",!Hi),mn("theme","default",function(e){a(e),l(e)},!0),mn("keyMap","default",s),mn("extraKeys",null),mn("onKeyEvent",null),mn("onDragEvent",null),mn("lineWrapping",!1,r,!0),mn("gutters",[],function(e){f(e.options),l(e)},!0),mn("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?b(e.display)+"px":"0",e.refresh()},!0),mn("coverGutterNextToScrollbar",!1,h,!0),mn("lineNumbers",!1,function(e){f(e.options),l(e)},!0),mn("firstLineNumber",1,l,!0),mn("lineNumberFormatter",function(e){return e},l,!0),mn("showCursorWhenSelecting",!1,E,!0),mn("readOnly",!1,function(e,t){"nocursor"==t?(Mt(e),e.display.input.blur()):t||dt(e,!0)}),mn("dragDrop",!0),mn("cursorBlinkRate",530),mn("cursorScrollMargin",0),mn("cursorHeight",1),mn("workTime",100),mn("workDelay",100),mn("flattenSpans",!0),mn("pollInterval",100),mn("undoDepth",40,function(e,t){e.doc.history.undoDepth=t}),mn("historyEventDelay",500),mn("viewportMargin",10,function(e){e.refresh()},!0),mn("maxHighlightLength",1e4,function(e){n(e),e.refresh()},!0),mn("moveInputWithCursor",!0,function(e,t){t||(e.display.inputDiv.style.top=e.display.inputDiv.style.left=0)}),mn("tabindex",null,function(e,t){e.display.input.tabIndex=t||""}),mn("autofocus",null);var io=e.modes={},oo=e.mimeModes={};e.defineMode=function(t,n){if(e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2){n.dependencies=[];for(var r=2;r<arguments.length;++r)n.dependencies.push(arguments[r])}io[t]=n},e.defineMIME=function(e,t){oo[e]=t},e.resolveMode=function(t){if("string"==typeof t&&oo.hasOwnProperty(t))t=oo[t];else if(t&&"string"==typeof t.name&&oo.hasOwnProperty(t.name)){var n=oo[t.name];t=Jr(n,t),t.name=n.name}else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,n){n=e.resolveMode(n);var r=io[n.name];if(!r)return e.getMode(t,"text/plain");var i=r(t,n);if(so.hasOwnProperty(n.name)){var o=so[n.name];for(var s in o)o.hasOwnProperty(s)&&(i.hasOwnProperty(s)&&(i["_"+s]=i[s]),i[s]=o[s])}return i.name=n.name,i},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var so=e.modeExtensions={};e.extendMode=function(e,t){var n=so.hasOwnProperty(e)?so[e]:so[e]={};Qr(t,n)},e.defineExtension=function(t,n){e.prototype[t]=n},e.defineDocExtension=function(e,t){mo.prototype[e]=t},e.defineOption=mn;var ao=[];e.defineInitHook=function(e){ao.push(e)},e.copyState=gn,e.startState=vn,e.innerMode=function(e,t){for(;e.innerMode;){var n=e.innerMode(t);t=n.state,e=n.mode}return n||{mode:e,state:t}};var lo=e.commands={selectAll:function(e){e.setSelection(zt(e.firstLine(),0),zt(e.lastLine()))},killLine:function(e){var t=e.getCursor(!0),n=e.getCursor(!1),r=!Wt(t,n);r||e.getLine(t.line).length!=t.ch?e.replaceRange("",t,r?n:zt(t.line),"+delete"):e.replaceRange("",t,zt(t.line+1,0),"+delete")},deleteLine:function(e){var t=e.getCursor().line;e.replaceRange("",zt(t,0),zt(t),"+delete")},delLineLeft:function(e){var t=e.getCursor();e.replaceRange("",zt(t.line,0),t,"+delete")},undo:function(e){e.undo()},redo:function(e){e.redo()},goDocStart:function(e){e.extendSelection(zt(e.firstLine(),0))},goDocEnd:function(e){e.extendSelection(zt(e.lastLine()))},goLineStart:function(e){e.extendSelection(mi(e,e.getCursor().line))},goLineStartSmart:function(e){var t=e.getCursor(),n=mi(e,t.line),r=e.getLineHandle(n.line),i=br(r);if(i&&0!=i[0].level)e.extendSelection(n);else{var o=Math.max(0,r.text.search(/\S/)),s=t.line==n.line&&t.ch<=o&&t.ch;e.extendSelection(zt(n.line,s?0:o))}},goLineEnd:function(e){e.extendSelection(gi(e,e.getCursor().line))},goLineRight:function(e){var t=e.charCoords(e.getCursor(),"div").top+5;e.extendSelection(e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:t},"div"))},goLineLeft:function(e){var t=e.charCoords(e.getCursor(),"div").top+5;e.extendSelection(e.coordsChar({left:0,top:t},"div"))},goLineUp:function(e){e.moveV(-1,"line")},goLineDown:function(e){e.moveV(1,"line")},goPageUp:function(e){e.moveV(-1,"page")},goPageDown:function(e){e.moveV(1,"page")},goCharLeft:function(e){e.moveH(-1,"char")},goCharRight:function(e){e.moveH(1,"char")},goColumnLeft:function(e){e.moveH(-1,"column")},goColumnRight:function(e){e.moveH(1,"column")},goWordLeft:function(e){e.moveH(-1,"word")},goGroupRight:function(e){e.moveH(1,"group")},goGroupLeft:function(e){e.moveH(-1,"group")},goWordRight:function(e){e.moveH(1,"word")},delCharBefore:function(e){e.deleteH(-1,"char")},delCharAfter:function(e){e.deleteH(1,"char")},delWordBefore:function(e){e.deleteH(-1,"word")},delWordAfter:function(e){e.deleteH(1,"word")},delGroupBefore:function(e){e.deleteH(-1,"group")},delGroupAfter:function(e){e.deleteH(1,"group")},indentAuto:function(e){e.indentSelection("smart")},indentMore:function(e){e.indentSelection("add")},indentLess:function(e){e.indentSelection("subtract")},insertTab:function(e){e.replaceSelection(" ","end","+input")},defaultTab:function(e){e.somethingSelected()?e.indentSelection("add"):e.replaceSelection(" ","end","+input")},transposeChars:function(e){var t=e.getCursor(),n=e.getLine(t.line);t.ch>0&&t.ch<n.length-1&&e.replaceRange(n.charAt(t.ch)+n.charAt(t.ch-1),zt(t.line,t.ch-1),zt(t.line,t.ch+1))},newlineAndIndent:function(e){it(e,function(){e.replaceSelection("\n","end","+input"),e.indentLine(e.getCursor().line,null,!0)})()},toggleOverwrite:function(e){e.toggleOverwrite()}},co=e.keyMap={};co.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite"},co.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore",fallthrough:"basic"},co.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delLineLeft",fallthrough:["basic","emacsy"]},co["default"]=Gi?co.macDefault:co.pcDefault,co.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars"},e.lookupKey=yn,e.isModifierKey=wn,e.keyName=xn,e.fromTextArea=function(t,n){function r(){t.value=c.getValue()
1101
1104
  }if(n||(n={}),n.value=t.value,!n.tabindex&&t.tabindex&&(n.tabindex=t.tabindex),!n.placeholder&&t.placeholder&&(n.placeholder=t.placeholder),null==n.autofocus){var i=document.body;try{i=document.activeElement}catch(o){}n.autofocus=i==t||null!=t.getAttribute("autofocus")&&i==document.body}if(t.form&&(Gr(t.form,"submit",r),!n.leaveSubmitMethodAlone)){var s=t.form,a=s.submit;try{var l=s.submit=function(){r(),s.submit=a,s.submit(),s.submit=l}}catch(o){}}t.style.display="none";var c=e(function(e){t.parentNode.insertBefore(e,t.nextSibling)},n);return c.save=r,c.getTextArea=function(){return t},c.toTextArea=function(){r(),t.parentNode.removeChild(c.getWrapperElement()),t.style.display="",t.form&&(Hr(t.form,"submit",r),"function"==typeof t.form.submit&&(t.form.submit=a))},c},Cn.prototype={eol:function(){return this.pos>=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){return this.pos<this.string.length?this.string.charAt(this.pos++):void 0},eat:function(e){var t=this.string.charAt(this.pos);if("string"==typeof e)var n=t==e;else var n=t&&(e.test?e.test(t):e(t));return n?(++this.pos,t):void 0},eatWhile:function(e){for(var t=this.pos;this.eat(e););return this.pos>t},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);return t>-1?(this.pos=t,!0):void 0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=Vr(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue},indentation:function(){return Vr(this.string,null,this.tabSize)},match:function(e,t,n){if("string"!=typeof e){var r=this.string.slice(this.pos).match(e);return r&&r.index>0?null:(r&&t!==!1&&(this.pos+=r[0].length),r)}var i=function(e){return n?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);return i(o)==i(e)?(t!==!1&&(this.pos+=e.length),!0):void 0},current:function(){return this.string.slice(this.start,this.pos)}},e.StringStream=Cn,e.TextMarker=Sn,Sn.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;t&&nt(e);for(var n=null,r=null,i=0;i<this.lines.length;++i){var o=this.lines[i],s=En(o.markedSpans,this);null!=s.to&&(r=mr(o)),o.markedSpans=Nn(o.markedSpans,s),null!=s.from?n=mr(o):this.collapsed&&!jn(this.doc,o)&&e&&pr(o,et(e.display))}if(e&&this.collapsed&&!e.options.lineWrapping)for(var i=0;i<this.lines.length;++i){var a=Hn(e.doc,this.lines[i]),l=u(e.doc,a);l>e.display.maxLineLength&&(e.display.maxLine=a,e.display.maxLineLength=l,e.display.maxLineChanged=!0)}null!=n&&e&&at(e,n,r+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&en(e)),t&&rt(e),Rr(this,"clear")}},Sn.prototype.find=function(){for(var e,t,n=0;n<this.lines.length;++n){var r=this.lines[n],i=En(r.markedSpans,this);if(null!=i.from||null!=i.to){var o=mr(r);null!=i.from&&(e=zt(o,i.from)),null!=i.to&&(t=zt(o,i.to))}}return"bookmark"==this.type?e:e&&{from:e,to:t}},Sn.prototype.changed=function(){var e=this.find(),t=this.doc.cm;if(e&&t){var n=dr(this.doc,e.from.line);if(R(t,n),e.from.line>=t.display.showingFrom&&e.from.line<t.display.showingTo){for(var r=t.display.lineDiv.firstChild;r;r=r.nextSibling)if(r.lineObj==n){r.offsetHeight!=n.height&&pr(n,r.offsetHeight);break}st(t,function(){t.curOp.selectionChanged=!0})}}},Sn.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=Xr(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},Sn.prototype.detachLine=function(e){if(this.lines.splice(Xr(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},e.SharedTextMarker=Tn,Tn.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();Rr(this,"clear")}},Tn.prototype.find=function(){return this.primary.find()};var uo=e.LineWidget=function(e,t,n){for(var r in n)n.hasOwnProperty(r)&&(this[r]=n[r]);this.cm=e,this.node=t};uo.prototype.clear=zn(function(){var e=this.line.widgets,t=mr(this.line);if(null!=t&&e){for(var n=0;n<e.length;++n)e[n]==this&&e.splice(n--,1);e.length||(this.line.widgets=null),pr(this.line,Math.max(0,this.line.height-Wn(this))),at(this.cm,t,t+1)}}),uo.prototype.changed=zn(function(){var e=this.height;this.height=null;var t=Wn(this)-e;if(t){pr(this.line,this.line.height+t);var n=mr(this.line);at(this.cm,n,n+1)}});var fo={},ho=/[\t\u0000-\u0019\u00ad\u200b\u2028\u2029\uFEFF]/g;ar.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var n=e,r=e+t;r>n;++n){var i=this.lines[n];this.height-=i.height,Kn(i),Rr(i,"delete")}this.lines.splice(e,t)},collapse:function(e){e.splice.apply(e,[e.length,0].concat(this.lines))},insertInner:function(e,t,n){this.height+=n,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var r=0,i=t.length;i>r;++r)t[r].parent=this},iterN:function(e,t,n){for(var r=e+t;r>e;++e)if(n(this.lines[e]))return!0}},lr.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var n=0;n<this.children.length;++n){var r=this.children[n],i=r.chunkSize();if(i>e){var o=Math.min(t,i-e),s=r.height;if(r.removeInner(e,o),this.height-=s-r.height,i==o&&(this.children.splice(n--,1),r.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25){var a=[];this.collapse(a),this.children=[new ar(a)],this.children[0].parent=this}},collapse:function(e){for(var t=0,n=this.children.length;n>t;++t)this.children[t].collapse(e)},insertInner:function(e,t,n){this.size+=t.length,this.height+=n;for(var r=0,i=this.children.length;i>r;++r){var o=this.children[r],s=o.chunkSize();if(s>=e){if(o.insertInner(e,t,n),o.lines&&o.lines.length>50){for(;o.lines.length>50;){var a=o.lines.splice(o.lines.length-25,25),l=new ar(a);o.height-=l.height,this.children.splice(r+1,0,l),l.parent=this}this.maybeSpill()}break}e-=s}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),n=new lr(t);if(e.parent){e.size-=n.size,e.height-=n.height;var r=Xr(e.parent.children,e);e.parent.children.splice(r+1,0,n)}else{var i=new lr(e.children);i.parent=e,e.children=[i,n],e=i}n.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,n){for(var r=0,i=this.children.length;i>r;++r){var o=this.children[r],s=o.chunkSize();if(s>e){var a=Math.min(t,s-e);if(o.iterN(e,a,n))return!0;if(0==(t-=a))break;e=0}else e-=s}}};var po=0,mo=e.Doc=function(e,t,n){if(!(this instanceof mo))return new mo(e,t,n);null==n&&(n=0),lr.call(this,[new ar([Un("",null)])]),this.first=n,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.history=yr(),this.cleanGeneration=1,this.frontier=n;var r=zt(n,0);this.sel={from:r,to:r,head:r,anchor:r,shift:!1,extend:!1,goalColumn:null},this.id=++po,this.modeOption=t,"string"==typeof e&&(e=No(e)),sr(this,{from:r,to:r,text:e},null,{head:r,anchor:r})};mo.prototype=Jr(lr.prototype,{constructor:mo,iter:function(e,t,n){n?this.iterN(e-this.first,t-e,n):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var n=0,r=0,i=t.length;i>r;++r)n+=t[r].height;this.insertInner(e-this.first,t,n)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=hr(this,this.first,this.first+this.size);return e===!1?t:t.join(e||"\n")},setValue:function(e){var t=zt(this.first,0),n=this.first+this.size-1;Ft(this,{from:t,to:zt(n,dr(this,n).text.length),text:No(e),origin:"setValue"},{head:t,anchor:t},!0)},replaceRange:function(e,t,n,r){t=Kt(this,t),n=n?Kt(this,n):t,Bt(this,e,t,n,r)},getRange:function(e,t,n){var r=fr(this,Kt(this,e),Kt(this,t));return n===!1?r:r.join(n||"\n")},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},setLine:function(e,t){Jt(this,e)&&Bt(this,t,zt(e,0),Kt(this,zt(e)))},removeLine:function(e){e?Bt(this,"",Kt(this,zt(e-1)),Kt(this,zt(e))):Bt(this,"",zt(0,0),Kt(this,zt(1,0)))},getLineHandle:function(e){return Jt(this,e)?dr(this,e):void 0},getLineNumber:function(e){return mr(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Kt(this,e)},getCursor:function(e){var t,n=this.sel;return t=null==e||"head"==e?n.head:"anchor"==e?n.anchor:"end"==e||e===!1?n.to:n.from,Ut(t)},somethingSelected:function(){return!Wt(this.sel.head,this.sel.anchor)},setCursor:ot(function(e,t,n){var r=Kt(this,"number"==typeof e?zt(e,t||0):e);n?Qt(this,r):Zt(this,r,r)}),setSelection:ot(function(e,t){Zt(this,Kt(this,e),Kt(this,t||e))}),extendSelection:ot(function(e,t){Qt(this,Kt(this,e),t&&Kt(this,t))}),getSelection:function(e){return this.getRange(this.sel.from,this.sel.to,e)},replaceSelection:function(e,t,n){Ft(this,{from:this.sel.from,to:this.sel.to,text:No(e),origin:n},t||"around")},undo:ot(function(){Ht(this,"undo")}),redo:ot(function(){Ht(this,"redo")}),setExtending:function(e){this.sel.extend=e},historySize:function(){var e=this.history;return{undo:e.done.length,redo:e.undone.length}},clearHistory:function(){this.history=yr(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration()},changeGeneration:function(){return this.history.lastOp=this.history.lastOrigin=null,this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Tr(this.history.done),undone:Tr(this.history.undone)}},setHistory:function(e){var t=this.history=yr(this.history.maxGeneration);t.done=e.done.slice(0),t.undone=e.undone.slice(0)},markText:function(e,t,n){return kn(this,Kt(this,e),Kt(this,t),n,"range")},setBookmark:function(e,t){var n={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft};return e=Kt(this,e),kn(this,e,e,n,"bookmark")},findMarksAt:function(e){e=Kt(this,e);var t=[],n=dr(this,e.line).markedSpans;if(n)for(var r=0;r<n.length;++r){var i=n[r];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},getAllMarks:function(){var e=[];return this.iter(function(t){var n=t.markedSpans;if(n)for(var r=0;r<n.length;++r)null!=n[r].from&&e.push(n[r].marker)}),e},posFromIndex:function(e){var t,n=this.first;return this.iter(function(r){var i=r.text.length+1;return i>e?(t=e,!0):(e-=i,++n,void 0)}),Kt(this,zt(n,t))},indexFromPos:function(e){e=Kt(this,e);var t=e.ch;return e.line<this.first||e.ch<0?0:(this.iter(this.first,e.line,function(e){t+=e.text.length+1}),t)},copy:function(e){var t=new mo(hr(this,this.first,this.first+this.size),this.modeOption,this.first);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel={from:this.sel.from,to:this.sel.to,head:this.sel.head,anchor:this.sel.anchor,shift:this.sel.shift,extend:!1,goalColumn:this.sel.goalColumn},e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,n=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<n&&(n=e.to);var r=new mo(hr(this,t,n),e.mode||this.modeOption,t);return e.sharedHist&&(r.history=this.history),(this.linked||(this.linked=[])).push({doc:r,sharedHist:e.sharedHist}),r.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],r},unlinkDoc:function(t){if(t instanceof e&&(t=t.doc),this.linked)for(var n=0;n<this.linked.length;++n){var r=this.linked[n];if(r.doc==t){this.linked.splice(n,1),t.unlinkDoc(this);break}}if(t.history==this.history){var i=[t.id];cr(t,function(e){i.push(e.id)},!0),t.history=yr(),t.history.done=Tr(this.history.done,i),t.history.undone=Tr(this.history.undone,i)}},iterLinkedDocs:function(e){cr(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm}}),mo.prototype.eachLine=mo.prototype.iter;var go="iter insert remove copy getEditor".split(" ");for(var vo in mo.prototype)mo.prototype.hasOwnProperty(vo)&&Xr(go,vo)<0&&(e.prototype[vo]=function(e){return function(){return e.apply(this.doc,arguments)}}(mo.prototype[vo]));e.e_stop=Or,e.e_preventDefault=Mr,e.e_stopPropagation=Ir;var bo,yo=0;e.on=Gr,e.off=Hr,e.signal=jr;var wo=30,xo=e.Pass={toString:function(){return"CodeMirror.Pass"}};Wr.prototype={set:function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)}},e.countColumn=Vr;var Co=[""],So=/[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,ko=/[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F\udc00-\udfff]/;e.replaceGetRect=function(e){si=e};var To=function(){if(Ti)return!1;var e=ni("div");return"draggable"in e||"dragDrop"in e}();Ci?ai=function(e,t){return 36==e.charCodeAt(t-1)&&39==e.charCodeAt(t)}:Di&&!/Version\/([6-9]|\d\d)\b/.test(navigator.userAgent)?ai=function(e,t){return/\-[^ \-?]|\?[^ !\'\"\),.\-\/:;\?\]\}]/.test(e.slice(t-1,t+1))}:Li&&(ai=function(e,t){return t>1&&45==e.charCodeAt(t-1)&&/\w/.test(e.charAt(t-2))&&/[^\-?\.]/.test(e.charAt(t))?!0:/[~!#%&*)=+}\]|\"\.>,:;][({[<]|-[^\-?\.\u2010-\u201f\u2026]|\?[\w~`@#$%\^&*(_=+{[|><]|\u2026[\w~`@#$%\^&*(_=+{[><]/.test(e.slice(t-1,t+1))});var Lo,Eo,No=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,n=[],r=e.length;r>=t;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),s=o.indexOf("\r");-1!=s?(n.push(o.slice(0,s)),t+=s+1):(n.push(o),t=i+1)}return n}:function(e){return e.split(/\r\n?|\n/)};e.splitLines=No;var Ao=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return t&&t.parentElement()==e?0!=t.compareEndPoints("StartToEnd",t):!1},Do=function(){var e=ni("div");return"oncopy"in e?!0:(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Mo={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",109:"-",107:"=",127:"Delete",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};e.keyNames=Mo,function(){for(var e=0;10>e;e++)Mo[e+48]=String(e);for(var e=65;90>=e;e++)Mo[e]=String.fromCharCode(e);for(var e=1;12>=e;e++)Mo[e+111]=Mo[e+63235]="F"+e}();var Io,$o=function(){function e(e){return 255>=e?t.charAt(e):e>=1424&&1524>=e?"R":e>=1536&&1791>=e?n.charAt(e-1536):e>=1792&&2220>=e?"r":"L"}var t="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL",n="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr",r=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,s=/[Lb1n]/,a=/[1n]/,l="L";return function(t){if(!r.test(t))return!1;for(var n,c=t.length,u=[],d=0;c>d;++d)u.push(n=e(t.charCodeAt(d)));for(var d=0,f=l;c>d;++d){var n=u[d];"m"==n?u[d]=f:f=n}for(var d=0,h=l;c>d;++d){var n=u[d];"1"==n&&"r"==h?u[d]="n":o.test(n)&&(h=n,"r"==n&&(u[d]="R"))}for(var d=1,f=u[0];c-1>d;++d){var n=u[d];"+"==n&&"1"==f&&"1"==u[d+1]?u[d]="1":","!=n||f!=u[d+1]||"1"!=f&&"n"!=f||(u[d]=f),f=n}for(var d=0;c>d;++d){var n=u[d];if(","==n)u[d]="N";else if("%"==n){for(var p=d+1;c>p&&"%"==u[p];++p);for(var m=d&&"!"==u[d-1]||c-1>p&&"1"==u[p]?"1":"N",g=d;p>g;++g)u[g]=m;d=p-1}}for(var d=0,h=l;c>d;++d){var n=u[d];"L"==h&&"1"==n?u[d]="L":o.test(n)&&(h=n)}for(var d=0;c>d;++d)if(i.test(u[d])){for(var p=d+1;c>p&&i.test(u[p]);++p);for(var v="L"==(d?u[d-1]:l),b="L"==(c-1>p?u[p]:l),m=v||b?"L":"R",g=d;p>g;++g)u[g]=m;d=p-1}for(var y,w=[],d=0;c>d;)if(s.test(u[d])){var x=d;for(++d;c>d&&s.test(u[d]);++d);w.push({from:x,to:d,level:0})}else{var C=d,S=w.length;for(++d;c>d&&"L"!=u[d];++d);for(var g=C;d>g;)if(a.test(u[g])){g>C&&w.splice(S,0,{from:C,to:g,level:1});var k=g;for(++g;d>g&&a.test(u[g]);++g);w.splice(S,0,{from:k,to:g,level:2}),C=g}else++g;d>C&&w.splice(S,0,{from:C,to:d,level:1})}return 1==w[0].level&&(y=t.match(/^\s+/))&&(w[0].from=y[0].length,w.unshift({from:0,to:y[0].length,level:0})),1==qr(w).level&&(y=t.match(/\s+$/))&&(qr(w).to-=y[0].length,w.push({from:c-y[0].length,to:c,level:0})),w[0].level!=qr(w).level&&w.push({from:c,to:c,level:w[0].level}),w}}();return e.version="3.14.0",e}(),function(){function e(e,t,n){function r(t,n,r){if(t.text){var s=f?0:t.text.length-1,l=f?t.text.length:-1;if(t.text.length>a)return null;for(null!=r&&(s=r+h);s!=l;s+=h){var c=t.text.charAt(s);if(v.test(c)&&e.getTokenTypeAt(i(n,s+1))==m){var u=o[c];if(">"==u.charAt(1)==f)g.push(c);else{if(g.pop()!=u.charAt(0))return{pos:s,match:!1};if(!g.length)return{pos:s,match:!0}}}}}}var s=e.state.matchBrackets,a=s&&s.maxScanLineLength||1e4,l=t||e.getCursor(),c=e.getLineHandle(l.line),u=l.ch-1,d=u>=0&&o[c.text.charAt(u)]||o[c.text.charAt(++u)];if(!d)return null;var f=">"==d.charAt(1),h=f?1:-1;if(n&&f!=(u==l.ch))return null;for(var p,m=e.getTokenTypeAt(i(l.line,u+1)),g=[c.text.charAt(u)],v=/[(){}[\]]/,b=l.line,y=f?Math.min(b+100,e.lineCount()):Math.max(-1,b-100);b!=y&&!(p=b==l.line?r(c,b,u):r(e.getLineHandle(b),b));b+=h);return{from:i(l.line,u),to:p&&i(b,p.pos),match:p&&p.match,forward:f}}function t(t,n){var o=t.state.matchBrackets.maxHighlightLineLength||1e3,s=e(t);if(!(!s||t.getLine(s.from.line).length>o||s.to&&t.getLine(s.to.line).length>o)){var a=s.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket",l=t.markText(s.from,i(s.from.line,s.from.ch+1),{className:a}),c=s.to&&t.markText(s.to,i(s.to.line,s.to.ch+1),{className:a});r&&t.state.focused&&t.display.input.focus();var u=function(){t.operation(function(){l.clear(),c&&c.clear()})};return n?(setTimeout(u,800),void 0):u}}function n(e){e.operation(function(){s&&(s(),s=null),e.somethingSelected()||(s=t(e,!1))})}var r=/MSIE \d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),i=CodeMirror.Pos,o={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},s=null;CodeMirror.defineOption("matchBrackets",!1,function(e,t,r){r&&r!=CodeMirror.Init&&e.off("cursorActivity",n),t&&(e.state.matchBrackets="object"==typeof t?t:{},e.on("cursorActivity",n))}),CodeMirror.defineExtension("matchBrackets",function(){t(this,!0)}),CodeMirror.defineExtension("findMatchingBracket",function(t,n){return e(this,t,n)})}(),CodeMirror.defineMode("javascript",function(e,t){function n(e,t,n){return t.tokenize=n,n(e,t)}function r(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t&&!r)return!1;r=!r&&"\\"==n}return r}function i(e,t,n){return W=e,V=n,t}function o(e,t){var o=e.next();if('"'==o||"'"==o)return n(e,t,s(o));if(/[\[\]{}\(\),;\:\.]/.test(o))return i(o);if("0"==o&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if(/\d/.test(o)||"-"==o&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==o)return e.eat("*")?n(e,t,a):e.eat("/")?(e.skipToEnd(),i("comment","comment")):"operator"==t.lastType||"keyword c"==t.lastType||/^[\[{}\(,;:]$/.test(t.lastType)?(r(e,"/"),e.eatWhile(/[gimy]/),i("regexp","string-2")):(e.eatWhile(Q),i("operator",null,e.current()));if("#"==o)return e.skipToEnd(),i("error","error");if(Q.test(o))return e.eatWhile(Q),i("operator",null,e.current());e.eatWhile(/[\w\$_]/);var l=e.current(),c=J.propertyIsEnumerable(l)&&J[l];return c&&"."!=t.lastType?i(c.type,c.style,l):i("variable","variable",l)}function s(e){return function(t,n){return r(t,e)||(n.tokenize=o),i("string","string")}}function a(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=o;break}r="*"==n}return i("comment","comment")}function l(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function c(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function u(e,t,n,r,i){var o=e.cc;for(Z.state=e,Z.stream=i,Z.marked=null,Z.cc=o,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var s=o.length?o.pop():K?w:y;if(s(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Z.marked?Z.marked:"variable"==n&&c(e,r)?"variable-2":t}}}function d(){for(var e=arguments.length-1;e>=0;e--)Z.cc.push(arguments[e])}function f(){return d.apply(null,arguments),!0}function h(e){function t(t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}var n=Z.state;if(n.context){if(Z.marked="def",t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;n.globalVars={name:e,next:n.globalVars}}}function p(){Z.state.context={prev:Z.state.context,vars:Z.state.localVars},Z.state.localVars=et}function m(){Z.state.localVars=Z.state.context.vars,Z.state.context=Z.state.context.prev}function g(e,t){var n=function(){var n=Z.state,r=n.indented;"stat"==n.lexical.type&&(r=n.lexical.indented),n.lexical=new l(r,Z.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function v(){var e=Z.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function b(e){return function(t){return t==e?f():";"==e?d():f(arguments.callee)}}function y(e){return"var"==e?f(g("vardef"),P,b(";"),v):"keyword a"==e?f(g("form"),w,y,v):"keyword b"==e?f(g("form"),y,v):"{"==e?f(g("}"),I,v):";"==e?f():"if"==e?f(g("form"),w,y,v,G(Z.state.indented)):"function"==e?f(B):"for"==e?f(g("form"),b("("),g(")"),H,b(")"),v,y,v):"variable"==e?f(g("stat"),E):"switch"==e?f(g("form"),w,g("}","switch"),b("{"),I,v,v):"case"==e?f(w,b(":")):"default"==e?f(b(":")):"catch"==e?f(g("form"),p,b("("),z,b(")"),y,v,m):d(g("stat"),w,b(";"),v)}function w(e){return C(e,!1)}function x(e){return C(e,!0)}function C(e,t){var n=t?L:T;return Y.hasOwnProperty(e)?f(n):"function"==e?f(B):"keyword c"==e?f(t?k:S):"("==e?f(g(")"),S,b(")"),v,n):"operator"==e?f(t?x:w):"["==e?f(g("]"),M(x,"]"),v,n):"{"==e?f(g("}"),M(A,"}"),v,n):f()}function S(e){return e.match(/[;\}\)\],]/)?d():d(w)}function k(e){return e.match(/[;\}\)\],]/)?d():d(x)}function T(e,t){return","==e?f(w):L(e,t,T)}function L(e,t,n){return n||(n=L),"operator"==e?/\+\+|--/.test(t)?f(n):"?"==t?f(w,b(":"),w):f(w):";"!=e?"("==e?f(g(")","call"),M(x,")"),v,n):"."==e?f(N,n):"["==e?f(g("]"),w,b("]"),v,n):void 0:void 0}function E(e){return":"==e?f(v,y):d(T,b(";"),v)}function N(e){return"variable"==e?(Z.marked="property",f()):void 0}function A(e,t){if("variable"==e){if(Z.marked="property","get"==t||"set"==t)return f(D)}else("number"==e||"string"==e)&&(Z.marked=e+" property");return Y.hasOwnProperty(e)?f(b(":"),x):void 0}function D(e){return":"==e?f(w):"variable"!=e?f(b(":"),w):(Z.marked="property",f(B))}function M(e,t){function n(r){if(","==r){var i=Z.state.lexical;return"call"==i.info&&(i.pos=(i.pos||0)+1),f(e,n)}return r==t?f():f(b(t))}return function(r){return r==t?f():d(e,n)}}function I(e){return"}"==e?f():d(y,I)}function $(e){return":"==e?f(O):d()}function O(e){return"variable"==e?(Z.marked="variable-3",f()):d()}function P(e,t){return"variable"==e?(h(t),X?f($,F):f(F)):d()}function F(e,t){return"="==t?f(x,F):","==e?f(P):void 0}function G(e){return function(t,n){return"keyword b"==t&&"else"==n?(Z.state.lexical=new l(e,0,"form",null,Z.state.lexical),f(y,v)):d()}}function H(e){return"var"==e?f(P,b(";"),R):";"==e?f(R):"variable"==e?f(j):d(w,b(";"),R)}function j(e,t){return"in"==t?f(w):f(T,R)}function R(e,t){return";"==e?f(_):"in"==t?f(w):d(w,b(";"),_)}function _(e){")"!=e&&f(w)}function B(e,t){return"variable"==e?(h(t),f(B)):"("==e?f(g(")"),p,M(z,")"),v,y,m):void 0}function z(e,t){return"variable"==e?(h(t),X?f($):f()):void 0}var W,V,U=e.indentUnit,q=t.statementIndent,K=t.json,X=t.typescript,J=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},s={"if":e("if"),"while":t,"with":t,"else":n,"do":n,"try":n,"finally":n,"return":r,"break":r,"continue":r,"new":r,"delete":r,"throw":r,"var":e("var"),"const":e("var"),let:e("var"),"function":e("function"),"catch":e("catch"),"for":e("for"),"switch":e("switch"),"case":e("case"),"default":e("default"),"in":i,"typeof":i,"instanceof":i,"true":o,"false":o,"null":o,undefined:o,NaN:o,Infinity:o,"this":e("this")};if(X){var a={type:"variable",style:"variable-3"},l={"interface":e("interface"),"class":e("class"),"extends":e("extends"),constructor:e("constructor"),"public":e("public"),"private":e("private"),"protected":e("protected"),"static":e("static"),"super":e("super"),string:a,number:a,bool:a,any:a};for(var c in l)s[c]=l[c]}return s}(),Q=/[+\-*&%=<>!?|~^]/,Y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0},Z={state:null,column:null,marked:null,cc:null},et={name:"this",next:{name:"arguments"}};return v.lex=!0,{startState:function(e){return{tokenize:o,lastType:null,cc:[],lexical:new l((e||0)-U,0,"block",!1),localVars:t.localVars,globalVars:t.globalVars,context:t.localVars&&{vars:t.localVars},indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),t.tokenize!=a&&e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==W?n:(t.lastType="operator"!=W||"++"!=V&&"--"!=V?W:"incdec",u(t,n,W,V,e))},indent:function(e,n){if(e.tokenize==a)return CodeMirror.Pass;if(e.tokenize!=o)return 0;var r=n&&n.charAt(0),i=e.lexical;"stat"==i.type&&"}"==r&&(i=i.prev),q&&")"==i.type&&"stat"==i.prev.type&&(i=i.prev);var s=i.type,l=r==s;return"vardef"==s?i.indented+("operator"==e.lastType||","==e.lastType?4:0):"form"==s&&"{"==r?i.indented:"form"==s?i.indented+U:"stat"==s?i.indented+("operator"==e.lastType||","==e.lastType?q||U:0):"switch"!=i.info||l||0==t.doubleIndentSwitch?i.align?i.column+(l?0:1):i.indented+(l?0:U):i.indented+(/^(?:case|default)\b/.test(n)?U:2*U)},electricChars:":{}",blockCommentStart:K?null:"/*",blockCommentEnd:K?null:"*/",lineComment:K?null:"//",jsonMode:K}}),CodeMirror.defineMIME("text/javascript","javascript"),CodeMirror.defineMIME("text/ecmascript","javascript"),CodeMirror.defineMIME("application/javascript","javascript"),CodeMirror.defineMIME("application/ecmascript","javascript"),CodeMirror.defineMIME("application/json",{name:"javascript",json:!0}),CodeMirror.defineMIME("application/x-json",{name:"javascript",json:!0}),CodeMirror.defineMIME("text/typescript",{name:"javascript",typescript:!0}),CodeMirror.defineMIME("application/typescript",{name:"javascript",typescript:!0}),!function(e){"use strict";function t(){e(".dropdown-backdrop").remove(),e(r).each(function(){n(e(this)).removeClass("open")})}function n(t){var n,r=t.attr("data-target");return r||(r=t.attr("href"),r=r&&/#/.test(r)&&r.replace(/.*(?=#[^\s]*$)/,"")),n=r&&e(r),n&&n.length||(n=t.parent()),n}var r="[data-toggle=dropdown]",i=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};i.prototype={constructor:i,toggle:function(){var r,i,o=e(this);if(!o.is(".disabled, :disabled"))return r=n(o),i=r.hasClass("open"),t(),i||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",t),r.toggleClass("open")),o.focus(),!1},keydown:function(t){var i,o,s,a,l;if(/(38|40|27)/.test(t.keyCode)&&(i=e(this),t.preventDefault(),t.stopPropagation(),!i.is(".disabled, :disabled"))){if(s=n(i),a=s.hasClass("open"),!a||a&&27==t.keyCode)return 27==t.which&&s.find(r).focus(),i.click();o=e("[role=menu] li:not(.divider):visible a",s),o.length&&(l=o.index(o.filter(":focus")),38==t.keyCode&&l>0&&l--,40==t.keyCode&&l<o.length-1&&l++,~l||(l=0),o.eq(l).focus())}}};var o=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var n=e(this),r=n.data("dropdown");r||n.data("dropdown",r=new i(this)),"string"==typeof t&&r[t].call(n)})},e.fn.dropdown.Constructor=i,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=o,this},e(document).on("click.dropdown.data-api",t).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",r,i.prototype.toggle).on("keydown.dropdown.data-api",r+", [role=menu]",i.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,o,s,a,l;for(this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,s=this.options.trigger.split(" "),l=s.length;l--;)a=s[l],"click"==a?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):"manual"!=a&&(i="hover"==a?"mouseenter":"focus",o="hover"==a?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(o+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n,r=e.fn[this.type].defaults,i={};return this._options&&e.each(this._options,function(e,t){r[e]!=t&&(i[e]=t)},this),n=e(t.currentTarget)[this.type](i).data(this.type),n.options.delay&&n.options.delay.show?(clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show),void 0):n.show()},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);return this.timeout&&clearTimeout(this.timeout),n.options.delay&&n.options.delay.hide?(n.hoverState="out",this.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide),void 0):n.hide()},show:function(){var t,n,r,i,o,s,a=e.Event("show");if(this.hasContent()&&this.enabled){if(this.$element.trigger(a),a.isDefaultPrevented())return;switch(t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),o="function"==typeof this.options.placement?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight,o){case"bottom":s={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":s={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":s={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":s={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(s,o),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n,r,i,o,s=this.tip(),a=s[0].offsetWidth,l=s[0].offsetHeight;s.offset(e).addClass(t).addClass("in"),n=s[0].offsetWidth,r=s[0].offsetHeight,"top"==t&&r!=l&&(e.top=e.top+l-r,o=!0),"bottom"==t||"top"==t?(i=0,e.left<0&&(i=-2*e.left,e.left=0,s.offset(e),n=s[0].offsetWidth,r=s[0].offsetHeight),this.replaceArrow(i-a+n,n,"left")):this.replaceArrow(r-l,r,"top"),o&&s.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function t(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var n=this.tip(),r=e.Event("hide");return this.$element.trigger(r),r.isDefaultPrevented()?void 0:(n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?t():n.detach(),this.$element.trigger("hidden"),this)},fixTitle:function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},"function"==typeof t.getBoundingClientRect?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)
1102
1105
  },tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),o="object"==typeof n&&n;i||r.data("tooltip",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=("function"==typeof n.content?n.content.call(t[0]):n.content)||t.attr("data-content")},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),o="object"==typeof n&&n;i||r.data("popover",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")}))},hide:function(t){t&&t.preventDefault();t=e.Event("hide"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal())},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]===e.target||t.$element.has(e.target).length||t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){27==t.which&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var r=e.support.transition&&n;if(this.$backdrop=e('<div class="modal-backdrop '+n+'" />').appendTo(document.body),this.$backdrop.click("static"==this.options.backdrop?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),r&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;r?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),o=e.extend({},e.fn.modal.defaults,r.data(),"object"==typeof n&&n);i||r.data("modal",i=new t(this,o)),"string"==typeof n?i[n]():o.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),o=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(o).one("hide",function(){n.focus()})})}(window.jQuery),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["exports"],t):"undefined"!=typeof exports?t(exports):t(e.esprima={})}(this,function(e){"use strict";function t(e,t){if(!e)throw new Error("ASSERT: "+t)}function n(e,t){return hn.slice(e,t)}function r(e){return"0123456789".indexOf(e)>=0}function i(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function o(e){return"01234567".indexOf(e)>=0}function s(e){return" "===e||" "===e||" "===e||"\f"===e||"\xa0"===e||e.charCodeAt(0)>=5760&&"\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(e)>=0}function a(e){return"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e}function l(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e.charCodeAt(0)>=128&&fn.NonAsciiIdentifierStart.test(e)}function c(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&"z">=e||e>="A"&&"Z">=e||e>="0"&&"9">=e||e.charCodeAt(0)>=128&&fn.NonAsciiIdentifierPart.test(e)}function u(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0}return!1}function d(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0}return!1}function f(e){return"eval"===e||"arguments"===e}function h(e){var t=!1;switch(e.length){case 2:t="if"===e||"in"===e||"do"===e;break;case 3:t="var"===e||"for"===e||"new"===e||"try"===e;break;case 4:t="this"===e||"else"===e||"case"===e||"void"===e||"with"===e;break;case 5:t="while"===e||"break"===e||"catch"===e||"throw"===e;break;case 6:t="return"===e||"typeof"===e||"delete"===e||"switch"===e;break;case 7:t="default"===e||"finally"===e;break;case 8:t="function"===e||"continue"===e||"debugger"===e;break;case 10:t="instanceof"===e}if(t)return!0;switch(e){case"const":return!0;case"yield":case"let":return!0}return pn&&d(e)?!0:u(e)}function p(){var e,t,n;for(t=!1,n=!1;bn>mn;)if(e=hn[mn],n)e=hn[mn++],a(e)&&(n=!1,"\r"===e&&"\n"===hn[mn]&&++mn,++gn,vn=mn);else if(t)a(e)?("\r"===e&&"\n"===hn[mn+1]&&++mn,++gn,++mn,vn=mn,mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")):(e=hn[mn++],mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL"),"*"===e&&(e=hn[mn],"/"===e&&(++mn,t=!1)));else if("/"===e)if(e=hn[mn+1],"/"===e)mn+=2,n=!0;else{if("*"!==e)break;mn+=2,t=!0,mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")}else if(s(e))++mn;else{if(!a(e))break;++mn,"\r"===e&&"\n"===hn[mn]&&++mn,++gn,vn=mn}}function m(e){var t,n,r,o=0;for(n="u"===e?4:2,t=0;n>t;++t){if(!(bn>mn&&i(hn[mn])))return"";r=hn[mn++],o=16*o+"0123456789abcdef".indexOf(r.toLowerCase())}return String.fromCharCode(o)}function g(){var e,t,n,r;if(e=hn[mn],l(e)){if(t=mn,"\\"===e){if(++mn,"u"!==hn[mn])return;if(++mn,r=mn,e=m("u")){if("\\"===e||!l(e))return;n=e}else mn=r,n="u"}else n=hn[mn++];for(;bn>mn&&(e=hn[mn],c(e));)if("\\"===e){if(++mn,"u"!==hn[mn])return;if(++mn,r=mn,e=m("u")){if("\\"===e||!c(e))return;n+=e}else mn=r,n+="u"}else n+=hn[mn++];return 1===n.length?{type:an.Identifier,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:h(n)?{type:an.Keyword,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:"null"===n?{type:an.NullLiteral,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:"true"===n||"false"===n?{type:an.BooleanLiteral,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}:{type:an.Identifier,value:n,lineNumber:gn,lineStart:vn,range:[t,mn]}}}function v(){var e,t,n,i=mn,o=hn[mn];return";"===o||"{"===o||"}"===o?(++mn,{type:an.Punctuator,value:o,lineNumber:gn,lineStart:vn,range:[i,mn]}):","===o||"("===o||")"===o?(++mn,{type:an.Punctuator,value:o,lineNumber:gn,lineStart:vn,range:[i,mn]}):(e=hn[mn+1],"."!==o||r(e)?(t=hn[mn+2],n=hn[mn+3],">"===o&&">"===e&&">"===t&&"="===n?(mn+=4,{type:an.Punctuator,value:">>>=",lineNumber:gn,lineStart:vn,range:[i,mn]}):"="===o&&"="===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"===",lineNumber:gn,lineStart:vn,range:[i,mn]}):"!"===o&&"="===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"!==",lineNumber:gn,lineStart:vn,range:[i,mn]}):">"===o&&">"===e&&">"===t?(mn+=3,{type:an.Punctuator,value:">>>",lineNumber:gn,lineStart:vn,range:[i,mn]}):"<"===o&&"<"===e&&"="===t?(mn+=3,{type:an.Punctuator,value:"<<=",lineNumber:gn,lineStart:vn,range:[i,mn]}):">"===o&&">"===e&&"="===t?(mn+=3,{type:an.Punctuator,value:">>=",lineNumber:gn,lineStart:vn,range:[i,mn]}):"="===e&&"<>=!+-*%&|^/".indexOf(o)>=0?(mn+=2,{type:an.Punctuator,value:o+e,lineNumber:gn,lineStart:vn,range:[i,mn]}):o===e&&"+-<>&|".indexOf(o)>=0&&"+-<>&|".indexOf(e)>=0?(mn+=2,{type:an.Punctuator,value:o+e,lineNumber:gn,lineStart:vn,range:[i,mn]}):"[]<>+-*%&|^!~?:=/".indexOf(o)>=0?{type:an.Punctuator,value:hn[mn++],lineNumber:gn,lineStart:vn,range:[i,mn]}:void 0):{type:an.Punctuator,value:hn[mn++],lineNumber:gn,lineStart:vn,range:[i,mn]})}function b(){var e,n,s;if(s=hn[mn],t(r(s)||"."===s,"Numeric literal must start with a decimal digit or a decimal point"),n=mn,e="","."!==s){if(e=hn[mn++],s=hn[mn],"0"===e){if("x"===s||"X"===s){for(e+=hn[mn++];bn>mn&&(s=hn[mn],i(s));)e+=hn[mn++];return e.length<=2&&L({},dn.UnexpectedToken,"ILLEGAL"),bn>mn&&(s=hn[mn],l(s)&&L({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseInt(e,16),lineNumber:gn,lineStart:vn,range:[n,mn]}}if(o(s)){for(e+=hn[mn++];bn>mn&&(s=hn[mn],o(s));)e+=hn[mn++];return bn>mn&&(s=hn[mn],(l(s)||r(s))&&L({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseInt(e,8),octal:!0,lineNumber:gn,lineStart:vn,range:[n,mn]}}r(s)&&L({},dn.UnexpectedToken,"ILLEGAL")}for(;bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++]}if("."===s)for(e+=hn[mn++];bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++];if("e"===s||"E"===s)if(e+=hn[mn++],s=hn[mn],("+"===s||"-"===s)&&(e+=hn[mn++]),s=hn[mn],r(s))for(e+=hn[mn++];bn>mn&&(s=hn[mn],r(s));)e+=hn[mn++];else s="character "+s,mn>=bn&&(s="<end>"),L({},dn.UnexpectedToken,"ILLEGAL");return bn>mn&&(s=hn[mn],l(s)&&L({},dn.UnexpectedToken,"ILLEGAL")),{type:an.NumericLiteral,value:parseFloat(e),lineNumber:gn,lineStart:vn,range:[n,mn]}}function y(){var e,n,r,i,s,l,c="",u=!1;for(e=hn[mn],t("'"===e||'"'===e,"String literal must starts with a quote"),n=mn,++mn;bn>mn;){if(r=hn[mn++],r===e){e="";break}if("\\"===r)if(r=hn[mn++],a(r))++gn,"\r"===r&&"\n"===hn[mn]&&++mn;else switch(r){case"n":c+="\n";break;case"r":c+="\r";break;case"t":c+=" ";break;case"u":case"x":l=mn,s=m(r),s?c+=s:(mn=l,c+=r);break;case"b":c+="\b";break;case"f":c+="\f";break;case"v":c+=" ";break;default:o(r)?(i="01234567".indexOf(r),0!==i&&(u=!0),bn>mn&&o(hn[mn])&&(u=!0,i=8*i+"01234567".indexOf(hn[mn++]),"0123".indexOf(r)>=0&&bn>mn&&o(hn[mn])&&(i=8*i+"01234567".indexOf(hn[mn++]))),c+=String.fromCharCode(i)):c+=r}else{if(a(r))break;c+=r}}return""!==e&&L({},dn.UnexpectedToken,"ILLEGAL"),{type:an.StringLiteral,value:c,octal:u,lineNumber:gn,lineStart:vn,range:[n,mn]}}function w(){var e,n,r,i,o,s,l,u=!1,d=!1;for(yn=null,p(),r=mn,n=hn[mn],t("/"===n,"Regular expression literal must start with a slash"),e=hn[mn++];bn>mn;)if(n=hn[mn++],e+=n,u)"]"===n&&(u=!1);else if("\\"===n)n=hn[mn++],a(n)&&L({},dn.UnterminatedRegExp),e+=n;else{if("/"===n){d=!0;break}"["===n?u=!0:a(n)&&L({},dn.UnterminatedRegExp)}for(d||L({},dn.UnterminatedRegExp),i=e.substr(1,e.length-2),o="";bn>mn&&(n=hn[mn],c(n));)if(++mn,"\\"===n&&bn>mn)if(n=hn[mn],"u"===n)if(++mn,l=mn,n=m("u"))for(o+=n,e+="\\u";mn>l;++l)e+=hn[l];else mn=l,o+="u",e+="\\u";else e+="\\";else o+=n,e+=n;try{s=new RegExp(i,o)}catch(f){L({},dn.InvalidRegExp)}return{literal:e,value:s,range:[r,mn]}}function x(e){return e.type===an.Identifier||e.type===an.Keyword||e.type===an.BooleanLiteral||e.type===an.NullLiteral}function C(){var e,t;return p(),mn>=bn?{type:an.EOF,lineNumber:gn,lineStart:vn,range:[mn,mn]}:(t=v(),"undefined"!=typeof t?t:(e=hn[mn],"'"===e||'"'===e?y():"."===e||r(e)?b():(t=g(),"undefined"!=typeof t?t:(L({},dn.UnexpectedToken,"ILLEGAL"),void 0))))}function S(){var e;return yn?(mn=yn.range[1],gn=yn.lineNumber,vn=yn.lineStart,e=yn,yn=null,e):(yn=null,C())}function k(){var e,t,n;return null!==yn?yn:(e=mn,t=gn,n=vn,yn=C(),mn=e,gn=t,vn=n,yn)}function T(){var e,t,n,r;return e=mn,t=gn,n=vn,p(),r=gn!==t,mn=e,gn=t,vn=n,r}function L(e,t){var n,r=Array.prototype.slice.call(arguments,2),i=t.replace(/%(\d)/g,function(e,t){return r[t]||""});throw"number"==typeof e.lineNumber?(n=new Error("Line "+e.lineNumber+": "+i),n.index=e.range[0],n.lineNumber=e.lineNumber,n.column=e.range[0]-vn+1):(n=new Error("Line "+gn+": "+i),n.index=mn,n.lineNumber=gn,n.column=mn-vn+1),n}function E(){try{L.apply(null,arguments)}catch(e){if(!xn.errors)throw e;xn.errors.push(e)}}function N(e){if(e.type===an.EOF&&L(e,dn.UnexpectedEOS),e.type===an.NumericLiteral&&L(e,dn.UnexpectedNumber),e.type===an.StringLiteral&&L(e,dn.UnexpectedString),e.type===an.Identifier&&L(e,dn.UnexpectedIdentifier),e.type===an.Keyword){if(u(e.value))L(e,dn.UnexpectedReserved);else if(pn&&d(e.value))return E(e,dn.StrictReservedWord),void 0;L(e,dn.UnexpectedToken,e.value)}L(e,dn.UnexpectedToken,e.value)}function A(e){var t=S();(t.type!==an.Punctuator||t.value!==e)&&N(t)}function D(e){var t=S();(t.type!==an.Keyword||t.value!==e)&&N(t)}function M(e){var t=k();return t.type===an.Punctuator&&t.value===e}function I(e){var t=k();return t.type===an.Keyword&&t.value===e}function $(){var e=k(),t=e.value;return e.type!==an.Punctuator?!1:"="===t||"*="===t||"/="===t||"%="===t||"+="===t||"-="===t||"<<="===t||">>="===t||">>>="===t||"&="===t||"^="===t||"|="===t}function O(){var e,t;if(";"===hn[mn])return S(),void 0;if(t=gn,p(),gn===t){if(M(";"))return S(),void 0;e=k(),e.type===an.EOF||M("}")||N(e)}}function P(e){return e.type===cn.Identifier||e.type===cn.MemberExpression}function F(){var e=[];for(A("[");!M("]");)M(",")?(S(),e.push(null)):(e.push(ct()),M("]")||A(","));return A("]"),{type:cn.ArrayExpression,elements:e}}function G(e,t){var n,r;return n=pn,r=Ft(),t&&pn&&f(e[0].name)&&E(t,dn.StrictParamName),pn=n,{type:cn.FunctionExpression,id:null,params:e,defaults:[],body:r,rest:null,generator:!1,expression:!1}}function H(){var e=S();return e.type===an.StringLiteral||e.type===an.NumericLiteral?(pn&&e.octal&&E(e,dn.StrictOctalLiteral),Kt(e)):{type:cn.Identifier,name:e.value}}function j(){var e,t,n,r;return e=k(),e.type===an.Identifier?(n=H(),"get"!==e.value||M(":")?"set"!==e.value||M(":")?(A(":"),{type:cn.Property,key:n,value:ct(),kind:"init"}):(t=H(),A("("),e=k(),e.type!==an.Identifier?(A(")"),E(e,dn.UnexpectedToken,e.value),{type:cn.Property,key:t,value:G([]),kind:"set"}):(r=[ht()],A(")"),{type:cn.Property,key:t,value:G(r,e),kind:"set"})):(t=H(),A("("),A(")"),{type:cn.Property,key:t,value:G([]),kind:"get"})):e.type!==an.EOF&&e.type!==an.Punctuator?(t=H(),A(":"),{type:cn.Property,key:t,value:ct(),kind:"init"}):(N(e),void 0)}function R(){var e,t,n,r=[],i={},o=String;for(A("{");!M("}");)e=j(),t=e.key.type===cn.Identifier?e.key.name:o(e.key.value),n="init"===e.kind?un.Data:"get"===e.kind?un.Get:un.Set,Object.prototype.hasOwnProperty.call(i,t)?(i[t]===un.Data?pn&&n===un.Data?E({},dn.StrictDuplicateProperty):n!==un.Data&&E({},dn.AccessorDataProperty):n===un.Data?E({},dn.AccessorDataProperty):i[t]&n&&E({},dn.AccessorGetSet),i[t]|=n):i[t]=n,r.push(e),M("}")||A(",");return A("}"),{type:cn.ObjectExpression,properties:r}}function _(){var e;return A("("),e=ut(),A(")"),e}function B(){var e=k(),t=e.type;if(t===an.Identifier)return{type:cn.Identifier,name:S().value};if(t===an.StringLiteral||t===an.NumericLiteral)return pn&&e.octal&&E(e,dn.StrictOctalLiteral),Kt(S());if(t===an.Keyword){if(I("this"))return S(),{type:cn.ThisExpression};if(I("function"))return Ht()}return t===an.BooleanLiteral?(S(),e.value="true"===e.value,Kt(e)):t===an.NullLiteral?(S(),e.value=null,Kt(e)):M("[")?F():M("{")?R():M("(")?_():M("/")||M("/=")?Kt(w()):N(S())}function z(){var e=[];if(A("("),!M(")"))for(;bn>mn&&(e.push(ct()),!M(")"));)A(",");return A(")"),e}function W(){var e=S();return x(e)||N(e),{type:cn.Identifier,name:e.value}}function V(){return A("."),W()}function U(){var e;return A("["),e=ut(),A("]"),e}function q(){var e;return D("new"),e={type:cn.NewExpression,callee:X(),arguments:[]},M("(")&&(e.arguments=z()),e}function K(){var e;for(e=I("new")?q():B();M(".")||M("[")||M("(");)e=M("(")?{type:cn.CallExpression,callee:e,arguments:z()}:M("[")?{type:cn.MemberExpression,computed:!0,object:e,property:U()}:{type:cn.MemberExpression,computed:!1,object:e,property:V()};return e}function X(){var e;for(e=I("new")?q():B();M(".")||M("[");)e=M("[")?{type:cn.MemberExpression,computed:!0,object:e,property:U()}:{type:cn.MemberExpression,computed:!1,object:e,property:V()};return e}function J(){var e,t=K();return e=k(),e.type!==an.Punctuator?t:(!M("++")&&!M("--")||T()||(pn&&t.type===cn.Identifier&&f(t.name)&&E({},dn.StrictLHSPostfix),P(t)||L({},dn.InvalidLHSInAssignment),t={type:cn.UpdateExpression,operator:S().value,argument:t,prefix:!1}),t)}function Q(){var e,t;return e=k(),e.type!==an.Punctuator&&e.type!==an.Keyword?J():M("++")||M("--")?(e=S(),t=Q(),pn&&t.type===cn.Identifier&&f(t.name)&&E({},dn.StrictLHSPrefix),P(t)||L({},dn.InvalidLHSInAssignment),t={type:cn.UpdateExpression,operator:e.value,argument:t,prefix:!0}):M("+")||M("-")||M("~")||M("!")?t={type:cn.UnaryExpression,operator:S().value,argument:Q(),prefix:!0}:I("delete")||I("void")||I("typeof")?(t={type:cn.UnaryExpression,operator:S().value,argument:Q(),prefix:!0},pn&&"delete"===t.operator&&t.argument.type===cn.Identifier&&E({},dn.StrictDelete),t):J()}function Y(){for(var e=Q();M("*")||M("/")||M("%");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Q()};return e}function Z(){for(var e=Y();M("+")||M("-");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Y()};return e}function et(){for(var e=Z();M("<<")||M(">>")||M(">>>");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:Z()};return e}function tt(){var e,t;for(t=wn.allowIn,wn.allowIn=!0,e=et();M("<")||M(">")||M("<=")||M(">=")||t&&I("in")||I("instanceof");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:et()};return wn.allowIn=t,e}function nt(){for(var e=tt();M("==")||M("!=")||M("===")||M("!==");)e={type:cn.BinaryExpression,operator:S().value,left:e,right:tt()};return e}function rt(){for(var e=nt();M("&");)S(),e={type:cn.BinaryExpression,operator:"&",left:e,right:nt()};return e}function it(){for(var e=rt();M("^");)S(),e={type:cn.BinaryExpression,operator:"^",left:e,right:rt()};return e}function ot(){for(var e=it();M("|");)S(),e={type:cn.BinaryExpression,operator:"|",left:e,right:it()};return e}function st(){for(var e=ot();M("&&");)S(),e={type:cn.LogicalExpression,operator:"&&",left:e,right:ot()};return e}function at(){for(var e=st();M("||");)S(),e={type:cn.LogicalExpression,operator:"||",left:e,right:st()};return e}function lt(){var e,t,n;return e=at(),M("?")&&(S(),t=wn.allowIn,wn.allowIn=!0,n=ct(),wn.allowIn=t,A(":"),e={type:cn.ConditionalExpression,test:e,consequent:n,alternate:ct()}),e}function ct(){var e,t;return e=k(),t=lt(),$()&&(P(t)||L({},dn.InvalidLHSInAssignment),pn&&t.type===cn.Identifier&&f(t.name)&&E(e,dn.StrictLHSAssignment),t={type:cn.AssignmentExpression,operator:S().value,left:t,right:ct()}),t}function ut(){var e=ct();if(M(","))for(e={type:cn.SequenceExpression,expressions:[e]};bn>mn&&M(",");)S(),e.expressions.push(ct());return e}function dt(){for(var e,t=[];bn>mn&&!M("}")&&(e=jt(),"undefined"!=typeof e);)t.push(e);return t}function ft(){var e;return A("{"),e=dt(),A("}"),{type:cn.BlockStatement,body:e}}function ht(){var e=S();return e.type!==an.Identifier&&N(e),{type:cn.Identifier,name:e.value}}function pt(e){var t=ht(),n=null;return pn&&f(t.name)&&E({},dn.StrictVarName),"const"===e?(A("="),n=ct()):M("=")&&(S(),n=ct()),{type:cn.VariableDeclarator,id:t,init:n}}function mt(e){var t=[];do{if(t.push(pt(e)),!M(","))break;S()}while(bn>mn);return t}function gt(){var e;return D("var"),e=mt(),O(),{type:cn.VariableDeclaration,declarations:e,kind:"var"}}function vt(e){var t;return D(e),t=mt(e),O(),{type:cn.VariableDeclaration,declarations:t,kind:e}}function bt(){return A(";"),{type:cn.EmptyStatement}}function yt(){var e=ut();return O(),{type:cn.ExpressionStatement,expression:e}}function wt(){var e,t,n;return D("if"),A("("),e=ut(),A(")"),t=Pt(),I("else")?(S(),n=Pt()):n=null,{type:cn.IfStatement,test:e,consequent:t,alternate:n}}function xt(){var e,t,n;return D("do"),n=wn.inIteration,wn.inIteration=!0,e=Pt(),wn.inIteration=n,D("while"),A("("),t=ut(),A(")"),M(";")&&S(),{type:cn.DoWhileStatement,body:e,test:t}}function Ct(){var e,t,n;return D("while"),A("("),e=ut(),A(")"),n=wn.inIteration,wn.inIteration=!0,t=Pt(),wn.inIteration=n,{type:cn.WhileStatement,test:e,body:t}}function St(){var e=S();return{type:cn.VariableDeclaration,declarations:mt(),kind:e.value}}function kt(){var e,t,n,r,i,o,s;return e=t=n=null,D("for"),A("("),M(";")?S():(I("var")||I("let")?(wn.allowIn=!1,e=St(),wn.allowIn=!0,1===e.declarations.length&&I("in")&&(S(),r=e,i=ut(),e=null)):(wn.allowIn=!1,e=ut(),wn.allowIn=!0,I("in")&&(P(e)||L({},dn.InvalidLHSInForIn),S(),r=e,i=ut(),e=null)),"undefined"==typeof r&&A(";")),"undefined"==typeof r&&(M(";")||(t=ut()),A(";"),M(")")||(n=ut())),A(")"),s=wn.inIteration,wn.inIteration=!0,o=Pt(),wn.inIteration=s,"undefined"==typeof r?{type:cn.ForStatement,init:e,test:t,update:n,body:o}:{type:cn.ForInStatement,left:r,right:i,body:o,each:!1}}function Tt(){var e,t=null;return D("continue"),";"===hn[mn]?(S(),wn.inIteration||L({},dn.IllegalContinue),{type:cn.ContinueStatement,label:null}):T()?(wn.inIteration||L({},dn.IllegalContinue),{type:cn.ContinueStatement,label:null}):(e=k(),e.type===an.Identifier&&(t=ht(),Object.prototype.hasOwnProperty.call(wn.labelSet,t.name)||L({},dn.UnknownLabel,t.name)),O(),null!==t||wn.inIteration||L({},dn.IllegalContinue),{type:cn.ContinueStatement,label:t})}function Lt(){var e,t=null;return D("break"),";"===hn[mn]?(S(),wn.inIteration||wn.inSwitch||L({},dn.IllegalBreak),{type:cn.BreakStatement,label:null}):T()?(wn.inIteration||wn.inSwitch||L({},dn.IllegalBreak),{type:cn.BreakStatement,label:null}):(e=k(),e.type===an.Identifier&&(t=ht(),Object.prototype.hasOwnProperty.call(wn.labelSet,t.name)||L({},dn.UnknownLabel,t.name)),O(),null!==t||wn.inIteration||wn.inSwitch||L({},dn.IllegalBreak),{type:cn.BreakStatement,label:t})}function Et(){var e,t=null;return D("return"),wn.inFunctionBody||E({},dn.IllegalReturn)," "===hn[mn]&&l(hn[mn+1])?(t=ut(),O(),{type:cn.ReturnStatement,argument:t}):T()?{type:cn.ReturnStatement,argument:null}:(M(";")||(e=k(),M("}")||e.type===an.EOF||(t=ut())),O(),{type:cn.ReturnStatement,argument:t})}function Nt(){var e,t;return pn&&E({},dn.StrictModeWith),D("with"),A("("),e=ut(),A(")"),t=Pt(),{type:cn.WithStatement,object:e,body:t}}function At(){var e,t,n=[];for(I("default")?(S(),e=null):(D("case"),e=ut()),A(":");bn>mn&&!(M("}")||I("default")||I("case"))&&(t=Pt(),"undefined"!=typeof t);)n.push(t);return{type:cn.SwitchCase,test:e,consequent:n}}function Dt(){var e,t,n,r,i;if(D("switch"),A("("),e=ut(),A(")"),A("{"),M("}"))return S(),{type:cn.SwitchStatement,discriminant:e};for(t=[],r=wn.inSwitch,wn.inSwitch=!0,i=!1;bn>mn&&!M("}");)n=At(),null===n.test&&(i&&L({},dn.MultipleDefaultsInSwitch),i=!0),t.push(n);return wn.inSwitch=r,A("}"),{type:cn.SwitchStatement,discriminant:e,cases:t}}function Mt(){var e;return D("throw"),T()&&L({},dn.NewlineAfterThrow),e=ut(),O(),{type:cn.ThrowStatement,argument:e}}function It(){var e;return D("catch"),A("("),M(")")&&N(k()),e=ht(),pn&&f(e.name)&&E({},dn.StrictCatchVariable),A(")"),{type:cn.CatchClause,param:e,body:ft()}}function $t(){var e,t=[],n=null;return D("try"),e=ft(),I("catch")&&t.push(It()),I("finally")&&(S(),n=ft()),0!==t.length||n||L({},dn.NoCatchOrFinally),{type:cn.TryStatement,block:e,guardedHandlers:[],handlers:t,finalizer:n}}function Ot(){return D("debugger"),O(),{type:cn.DebuggerStatement}}function Pt(){var e,t,n=k();if(n.type===an.EOF&&N(n),n.type===an.Punctuator)switch(n.value){case";":return bt();case"{":return ft();case"(":return yt()}if(n.type===an.Keyword)switch(n.value){case"break":return Lt();case"continue":return Tt();case"debugger":return Ot();case"do":return xt();case"for":return kt();case"function":return Gt();case"if":return wt();case"return":return Et();case"switch":return Dt();case"throw":return Mt();case"try":return $t();case"var":return gt();case"while":return Ct();case"with":return Nt()}return e=ut(),e.type===cn.Identifier&&M(":")?(S(),Object.prototype.hasOwnProperty.call(wn.labelSet,e.name)&&L({},dn.Redeclaration,"Label",e.name),wn.labelSet[e.name]=!0,t=Pt(),delete wn.labelSet[e.name],{type:cn.LabeledStatement,label:e,body:t}):(O(),{type:cn.ExpressionStatement,expression:e})}function Ft(){var e,t,r,i,o,s,a,l,c=[];for(A("{");bn>mn&&(t=k(),t.type===an.StringLiteral)&&(e=jt(),c.push(e),e.expression.type===cn.Literal);)r=n(t.range[0]+1,t.range[1]-1),"use strict"===r?(pn=!0,i&&E(i,dn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(o=wn.labelSet,s=wn.inIteration,a=wn.inSwitch,l=wn.inFunctionBody,wn.labelSet={},wn.inIteration=!1,wn.inSwitch=!1,wn.inFunctionBody=!0;bn>mn&&!M("}")&&(e=jt(),"undefined"!=typeof e);)c.push(e);return A("}"),wn.labelSet=o,wn.inIteration=s,wn.inSwitch=a,wn.inFunctionBody=l,{type:cn.BlockStatement,body:c}}function Gt(){var e,t,n,r,i,o,s,a,l,c=[];if(D("function"),r=k(),e=ht(),pn?f(r.value)&&E(r,dn.StrictFunctionName):f(r.value)?(o=r,s=dn.StrictFunctionName):d(r.value)&&(o=r,s=dn.StrictReservedWord),A("("),!M(")"))for(l={};bn>mn&&(r=k(),t=ht(),pn?(f(r.value)&&(i=r,s=dn.StrictParamName),Object.prototype.hasOwnProperty.call(l,r.value)&&(i=r,s=dn.StrictParamDupe)):o||(f(r.value)?(o=r,s=dn.StrictParamName):d(r.value)?(o=r,s=dn.StrictReservedWord):Object.prototype.hasOwnProperty.call(l,r.value)&&(o=r,s=dn.StrictParamDupe)),c.push(t),l[t.name]=!0,!M(")"));)A(",");return A(")"),a=pn,n=Ft(),pn&&o&&L(o,s),pn&&i&&E(i,s),pn=a,{type:cn.FunctionDeclaration,id:e,params:c,defaults:[],body:n,rest:null,generator:!1,expression:!1}}function Ht(){var e,t,n,r,i,o,s,a,l=null,c=[];if(D("function"),M("(")||(e=k(),l=ht(),pn?f(e.value)&&E(e,dn.StrictFunctionName):f(e.value)?(n=e,r=dn.StrictFunctionName):d(e.value)&&(n=e,r=dn.StrictReservedWord)),A("("),!M(")"))for(a={};bn>mn&&(e=k(),i=ht(),pn?(f(e.value)&&(t=e,r=dn.StrictParamName),Object.prototype.hasOwnProperty.call(a,e.value)&&(t=e,r=dn.StrictParamDupe)):n||(f(e.value)?(n=e,r=dn.StrictParamName):d(e.value)?(n=e,r=dn.StrictReservedWord):Object.prototype.hasOwnProperty.call(a,e.value)&&(n=e,r=dn.StrictParamDupe)),c.push(i),a[i.name]=!0,!M(")"));)A(",");return A(")"),s=pn,o=Ft(),pn&&n&&L(n,r),pn&&t&&E(t,r),pn=s,{type:cn.FunctionExpression,id:l,params:c,defaults:[],body:o,rest:null,generator:!1,expression:!1}}function jt(){var e=k();if(e.type===an.Keyword)switch(e.value){case"const":case"let":return vt(e.value);case"function":return Gt();default:return Pt()}return e.type!==an.EOF?Pt():void 0}function Rt(){for(var e,t,r,i,o=[];bn>mn&&(t=k(),t.type===an.StringLiteral)&&(e=jt(),o.push(e),e.expression.type===cn.Literal);)r=n(t.range[0]+1,t.range[1]-1),"use strict"===r?(pn=!0,i&&E(i,dn.StrictOctalLiteral)):!i&&t.octal&&(i=t);for(;bn>mn&&(e=jt(),"undefined"!=typeof e);)o.push(e);return o}function _t(){var e;return pn=!1,e={type:cn.Program,body:Rt()}}function Bt(e,n,r,i,o){t("number"==typeof r,"Comment must have valid position"),xn.comments.length>0&&xn.comments[xn.comments.length-1].range[1]>r||xn.comments.push({type:e,value:n,range:[r,i],loc:o})}function zt(){var e,t,n,r,i,o;for(e="",i=!1,o=!1;bn>mn;)if(t=hn[mn],o)t=hn[mn++],a(t)?(n.end={line:gn,column:mn-vn-1},o=!1,Bt("Line",e,r,mn-1,n),"\r"===t&&"\n"===hn[mn]&&++mn,++gn,vn=mn,e=""):mn>=bn?(o=!1,e+=t,n.end={line:gn,column:bn-vn},Bt("Line",e,r,bn,n)):e+=t;else if(i)a(t)?("\r"===t&&"\n"===hn[mn+1]?(++mn,e+="\r\n"):e+=t,++gn,++mn,vn=mn,mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")):(t=hn[mn++],mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL"),e+=t,"*"===t&&(t=hn[mn],"/"===t&&(e=e.substr(0,e.length-1),i=!1,++mn,n.end={line:gn,column:mn-vn},Bt("Block",e,r,mn,n),e="")));else if("/"===t)if(t=hn[mn+1],"/"===t)n={start:{line:gn,column:mn-vn}},r=mn,mn+=2,o=!0,mn>=bn&&(n.end={line:gn,column:mn-vn},o=!1,Bt("Line",e,r,mn,n));else{if("*"!==t)break;r=mn,mn+=2,i=!0,n={start:{line:gn,column:mn-vn-2}},mn>=bn&&L({},dn.UnexpectedToken,"ILLEGAL")}else if(s(t))++mn;else{if(!a(t))break;++mn,"\r"===t&&"\n"===hn[mn]&&++mn,++gn,vn=mn}}function Wt(){var e,t,n,r=[];for(e=0;e<xn.comments.length;++e)t=xn.comments[e],n={type:t.type,value:t.value},xn.range&&(n.range=t.range),xn.loc&&(n.loc=t.loc),r.push(n);xn.comments=r}function Vt(){var e,t,r,i,o;return p(),e=mn,t={start:{line:gn,column:mn-vn}},r=xn.advance(),t.end={line:gn,column:mn-vn},r.type!==an.EOF&&(i=[r.range[0],r.range[1]],o=n(r.range[0],r.range[1]),xn.tokens.push({type:ln[r.type],value:o,range:i,loc:t})),r}function Ut(){var e,t,n,r;return p(),e=mn,t={start:{line:gn,column:mn-vn}},n=xn.scanRegExp(),t.end={line:gn,column:mn-vn},xn.tokens.length>0&&(r=xn.tokens[xn.tokens.length-1],r.range[0]===e&&"Punctuator"===r.type&&("/"===r.value||"/="===r.value)&&xn.tokens.pop()),xn.tokens.push({type:"RegularExpression",value:n.literal,range:[e,mn],loc:t}),n}function qt(){var e,t,n,r=[];for(e=0;e<xn.tokens.length;++e)t=xn.tokens[e],n={type:t.type,value:t.value},xn.range&&(n.range=t.range),xn.loc&&(n.loc=t.loc),r.push(n);xn.tokens=r}function Kt(e){return{type:cn.Literal,value:e.value}}function Xt(e){return{type:cn.Literal,value:e.value,raw:n(e.range[0],e.range[1])}}function Jt(){var e={};return e.range=[mn,mn],e.loc={start:{line:gn,column:mn-vn},end:{line:gn,column:mn-vn}},e.end=function(){this.range[1]=mn,this.loc.end.line=gn,this.loc.end.column=mn-vn},e.applyGroup=function(e){xn.range&&(e.groupRange=[this.range[0],this.range[1]]),xn.loc&&(e.groupLoc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e.apply=function(e){xn.range&&(e.range=[this.range[0],this.range[1]]),xn.loc&&(e.loc={start:{line:this.loc.start.line,column:this.loc.start.column},end:{line:this.loc.end.line,column:this.loc.end.column}})},e}function Qt(){var e,t;return p(),e=Jt(),A("("),t=ut(),A(")"),e.end(),e.applyGroup(t),t}function Yt(){var e,t;for(p(),e=Jt(),t=I("new")?q():B();M(".")||M("[");)M("[")?(t={type:cn.MemberExpression,computed:!0,object:t,property:U()},e.end(),e.apply(t)):(t={type:cn.MemberExpression,computed:!1,object:t,property:V()},e.end(),e.apply(t));return t}function Zt(){var e,t;for(p(),e=Jt(),t=I("new")?q():B();M(".")||M("[")||M("(");)M("(")?(t={type:cn.CallExpression,callee:t,arguments:z()},e.end(),e.apply(t)):M("[")?(t={type:cn.MemberExpression,computed:!0,object:t,property:U()},e.end(),e.apply(t)):(t={type:cn.MemberExpression,computed:!1,object:t,property:V()},e.end(),e.apply(t));return t}function en(e){var t,n,r;t="[object Array]"===Object.prototype.toString.apply(e)?[]:{};for(n in e)e.hasOwnProperty(n)&&"groupRange"!==n&&"groupLoc"!==n&&(r=e[n],t[n]=null===r||"object"!=typeof r||r instanceof RegExp?r:en(r));return t}function tn(e,t){return function(n){function r(e){return e.type===cn.LogicalExpression||e.type===cn.BinaryExpression}function i(n){var o,s;r(n.left)&&i(n.left),r(n.right)&&i(n.right),e&&(n.left.groupRange||n.right.groupRange?(o=n.left.groupRange?n.left.groupRange[0]:n.left.range[0],s=n.right.groupRange?n.right.groupRange[1]:n.right.range[1],n.range=[o,s]):"undefined"==typeof n.range&&(o=n.left.range[0],s=n.right.range[1],n.range=[o,s])),t&&(n.left.groupLoc||n.right.groupLoc?(o=n.left.groupLoc?n.left.groupLoc.start:n.left.loc.start,s=n.right.groupLoc?n.right.groupLoc.end:n.right.loc.end,n.loc={start:o,end:s}):"undefined"==typeof n.loc&&(n.loc={start:n.left.loc.start,end:n.right.loc.end}))
1103
- }return function(){var o,s;return p(),o=Jt(),s=n.apply(null,arguments),o.end(),e&&"undefined"==typeof s.range&&o.apply(s),t&&"undefined"==typeof s.loc&&o.apply(s),r(s)&&i(s),s}}}function nn(){var e;xn.comments&&(xn.skipComment=p,p=zt),xn.raw&&(xn.createLiteral=Kt,Kt=Xt),(xn.range||xn.loc)&&(xn.parseGroupExpression=_,xn.parseLeftHandSideExpression=X,xn.parseLeftHandSideExpressionAllowCall=K,_=Qt,X=Yt,K=Zt,e=tn(xn.range,xn.loc),xn.parseAdditiveExpression=Z,xn.parseAssignmentExpression=ct,xn.parseBitwiseANDExpression=rt,xn.parseBitwiseORExpression=ot,xn.parseBitwiseXORExpression=it,xn.parseBlock=ft,xn.parseFunctionSourceElements=Ft,xn.parseCatchClause=It,xn.parseComputedMember=U,xn.parseConditionalExpression=lt,xn.parseConstLetDeclaration=vt,xn.parseEqualityExpression=nt,xn.parseExpression=ut,xn.parseForVariableDeclaration=St,xn.parseFunctionDeclaration=Gt,xn.parseFunctionExpression=Ht,xn.parseLogicalANDExpression=st,xn.parseLogicalORExpression=at,xn.parseMultiplicativeExpression=Y,xn.parseNewExpression=q,xn.parseNonComputedProperty=W,xn.parseObjectProperty=j,xn.parseObjectPropertyKey=H,xn.parsePostfixExpression=J,xn.parsePrimaryExpression=B,xn.parseProgram=_t,xn.parsePropertyFunction=G,xn.parseRelationalExpression=tt,xn.parseStatement=Pt,xn.parseShiftExpression=et,xn.parseSwitchCase=At,xn.parseUnaryExpression=Q,xn.parseVariableDeclaration=pt,xn.parseVariableIdentifier=ht,Z=e(xn.parseAdditiveExpression),ct=e(xn.parseAssignmentExpression),rt=e(xn.parseBitwiseANDExpression),ot=e(xn.parseBitwiseORExpression),it=e(xn.parseBitwiseXORExpression),ft=e(xn.parseBlock),Ft=e(xn.parseFunctionSourceElements),It=e(xn.parseCatchClause),U=e(xn.parseComputedMember),lt=e(xn.parseConditionalExpression),vt=e(xn.parseConstLetDeclaration),nt=e(xn.parseEqualityExpression),ut=e(xn.parseExpression),St=e(xn.parseForVariableDeclaration),Gt=e(xn.parseFunctionDeclaration),Ht=e(xn.parseFunctionExpression),X=e(X),st=e(xn.parseLogicalANDExpression),at=e(xn.parseLogicalORExpression),Y=e(xn.parseMultiplicativeExpression),q=e(xn.parseNewExpression),W=e(xn.parseNonComputedProperty),j=e(xn.parseObjectProperty),H=e(xn.parseObjectPropertyKey),J=e(xn.parsePostfixExpression),B=e(xn.parsePrimaryExpression),_t=e(xn.parseProgram),G=e(xn.parsePropertyFunction),tt=e(xn.parseRelationalExpression),Pt=e(xn.parseStatement),et=e(xn.parseShiftExpression),At=e(xn.parseSwitchCase),Q=e(xn.parseUnaryExpression),pt=e(xn.parseVariableDeclaration),ht=e(xn.parseVariableIdentifier)),"undefined"!=typeof xn.tokens&&(xn.advance=C,xn.scanRegExp=w,C=Vt,w=Ut)}function rn(){"function"==typeof xn.skipComment&&(p=xn.skipComment),xn.raw&&(Kt=xn.createLiteral),(xn.range||xn.loc)&&(Z=xn.parseAdditiveExpression,ct=xn.parseAssignmentExpression,rt=xn.parseBitwiseANDExpression,ot=xn.parseBitwiseORExpression,it=xn.parseBitwiseXORExpression,ft=xn.parseBlock,Ft=xn.parseFunctionSourceElements,It=xn.parseCatchClause,U=xn.parseComputedMember,lt=xn.parseConditionalExpression,vt=xn.parseConstLetDeclaration,nt=xn.parseEqualityExpression,ut=xn.parseExpression,St=xn.parseForVariableDeclaration,Gt=xn.parseFunctionDeclaration,Ht=xn.parseFunctionExpression,_=xn.parseGroupExpression,X=xn.parseLeftHandSideExpression,K=xn.parseLeftHandSideExpressionAllowCall,st=xn.parseLogicalANDExpression,at=xn.parseLogicalORExpression,Y=xn.parseMultiplicativeExpression,q=xn.parseNewExpression,W=xn.parseNonComputedProperty,j=xn.parseObjectProperty,H=xn.parseObjectPropertyKey,B=xn.parsePrimaryExpression,J=xn.parsePostfixExpression,_t=xn.parseProgram,G=xn.parsePropertyFunction,tt=xn.parseRelationalExpression,Pt=xn.parseStatement,et=xn.parseShiftExpression,At=xn.parseSwitchCase,Q=xn.parseUnaryExpression,pt=xn.parseVariableDeclaration,ht=xn.parseVariableIdentifier),"function"==typeof xn.scanRegExp&&(C=xn.advance,w=xn.scanRegExp)}function on(e){var t,n=e.length,r=[];for(t=0;n>t;++t)r[t]=e.charAt(t);return r}function sn(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),hn=e,mn=0,gn=hn.length>0?1:0,vn=0,bn=hn.length,yn=null,wn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xn={},"undefined"!=typeof t&&(xn.range="boolean"==typeof t.range&&t.range,xn.loc="boolean"==typeof t.loc&&t.loc,xn.raw="boolean"==typeof t.raw&&t.raw,"boolean"==typeof t.tokens&&t.tokens&&(xn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(xn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(xn.errors=[])),bn>0&&"undefined"==typeof hn[0]&&(e instanceof String&&(hn=e.valueOf()),"undefined"==typeof hn[0]&&(hn=on(e))),nn();try{n=_t(),"undefined"!=typeof xn.comments&&(Wt(),n.comments=xn.comments),"undefined"!=typeof xn.tokens&&(qt(),n.tokens=xn.tokens),"undefined"!=typeof xn.errors&&(n.errors=xn.errors),(xn.range||xn.loc)&&(n.body=en(n.body))}catch(i){throw i}finally{rn(),xn={}}return n}var an,ln,cn,un,dn,fn,hn,pn,mn,gn,vn,bn,yn,wn,xn;an={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},ln={},ln[an.BooleanLiteral]="Boolean",ln[an.EOF]="<end>",ln[an.Identifier]="Identifier",ln[an.Keyword]="Keyword",ln[an.NullLiteral]="Null",ln[an.NumericLiteral]="Numeric",ln[an.Punctuator]="Punctuator",ln[an.StringLiteral]="String",cn={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},un={Data:1,Get:2,Set:4},dn={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},fn={NonAsciiIdentifierStart:new RegExp("[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),NonAsciiIdentifierPart:new RegExp("[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]")},"undefined"==typeof"esprima"[0]&&(n=function(e,t){return hn.slice(e,t).join("")}),e.version="1.0.3",e.parse=sn,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in cn)cn.hasOwnProperty(e)&&(t[e]=cn[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}),function(){function e(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),void 0):(e.attachEvent("on"+t,n),void 0)}function t(e){if("keypress"==e.type){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return w[e.which]?w[e.which]:x[e.which]?x[e.which]:String.fromCharCode(e.which).toLowerCase()}function n(e,t){return e.sort().join(",")===t.sort().join(",")}function r(e){e=e||{};var t,n=!1;for(t in L)e[t]?n=!0:L[t]=0;n||(N=!1)}function i(e,t,r,i,o,s){var a,l,u=[],d=r.type;if(!k[e])return[];for("keyup"==d&&c(e)&&(t=[e]),a=0;a<k[e].length;++a)if(l=k[e][a],(i||!l.seq||L[l.seq]==l.level)&&d==l.action&&("keypress"==d&&!r.metaKey&&!r.ctrlKey||n(t,l.modifiers))){var f=!i&&l.combo==o,h=i&&l.seq==i&&l.level==s;(f||h)&&k[e].splice(a,1),u.push(l)}return u}function o(e){var t=[];return e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),e.ctrlKey&&t.push("ctrl"),e.metaKey&&t.push("meta"),t}function s(e,t,n){D.stopCallback(t,t.target||t.srcElement,n)||e(t,n)===!1&&(t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.returnValue=!1,t.cancelBubble=!0)}function a(e,t,n){var o,a=i(e,t,n),l={},u=0,d=!1;for(o=0;o<a.length;++o)a[o].seq&&(u=Math.max(u,a[o].level));for(o=0;o<a.length;++o)if(a[o].seq){if(a[o].level!=u)continue;d=!0,l[a[o].seq]=1,s(a[o].callback,n,a[o].combo)}else d||s(a[o].callback,n,a[o].combo);n.type!=N||c(e)||r(l)}function l(e){"number"!=typeof e.which&&(e.which=e.keyCode);var n=t(e);if(n)return"keyup"==e.type&&E===n?(E=!1,void 0):(D.handleKey(n,o(e),e),void 0)}function c(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}function u(){clearTimeout(y),y=setTimeout(r,1e3)}function d(){if(!b){b={};for(var e in w)e>95&&112>e||w.hasOwnProperty(e)&&(b[w[e]]=e)}return b}function f(e,t,n){return n||(n=d()[e]?"keydown":"keypress"),"keypress"==n&&t.length&&(n="keydown"),n}function h(e,n,i,o){function a(t){return function(){N=t,++L[e],u()}}function l(n){s(i,n,e),"keyup"!==o&&(E=t(n)),setTimeout(r,10)}L[e]=0;for(var c=0;c<n.length;++c){var d=c+1===n.length,f=d?l:a(o||m(n[c+1]).action);g(n[c],f,o,e,c)}}function p(e){return"+"===e?["+"]:e.split("+")}function m(e,t){var n,r,i,o=[];for(n=p(e),i=0;i<n.length;++i)r=n[i],S[r]&&(r=S[r]),t&&"keypress"!=t&&C[r]&&(r=C[r],o.push("shift")),c(r)&&o.push(r);return t=f(r,o,t),{key:r,modifiers:o,action:t}}function g(e,t,n,r,o){T[e+":"+n]=t,e=e.replace(/\s+/g," ");var s,a=e.split(" ");return a.length>1?(h(e,a,t,n),void 0):(s=m(e,n),k[s.key]=k[s.key]||[],i(s.key,s.modifiers,{type:s.action},r,e,o),k[s.key][r?"unshift":"push"]({callback:t,modifiers:s.modifiers,action:s.action,seq:r,level:o,combo:e}),void 0)}function v(e,t,n){for(var r=0;r<e.length;++r)g(e[r],t,n)}for(var b,y,w={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},x={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},C={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},S={option:"alt",command:"meta","return":"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},k={},T={},L={},E=!1,N=!1,A=1;20>A;++A)w[111+A]="f"+A;for(A=0;9>=A;++A)w[A+96]=A;e(document,"keypress",l),e(document,"keydown",l),e(document,"keyup",l);var D={bind:function(e,t,n){return e=e instanceof Array?e:[e],v(e,t,n),this},unbind:function(e,t){return D.bind(e,function(){},t)},trigger:function(e,t){return T[e+":"+t]&&T[e+":"+t]({},e),this},reset:function(){return k={},T={},this},stopCallback:function(e,t){return(" "+t.className+" ").indexOf(" mousetrap ")>-1?!1:"INPUT"==t.tagName||"SELECT"==t.tagName||"TEXTAREA"==t.tagName||t.contentEditable&&"true"==t.contentEditable},handleKey:a};window.Mousetrap=D,"function"==typeof define&&define.amd&&define(D)}();var Hogan={};!function(e,t){function n(e,t,n){var r;return t&&"object"==typeof t&&(null!=t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function r(e,t,n,r){function i(){}function o(){}i.prototype=e,o.prototype=e.subs;var s,a=new i;a.subs=new o,a.subsText={},a.ib();for(s in t)a.subs[s]=t[s],a.subsText[s]=r;for(s in n)a.partials[s]=n[s];return a}function i(e){return String(null===e||void 0===e?"":e)}function o(e){return e=i(e),d.test(e)?e.replace(s,"&amp;").replace(a,"&lt;").replace(l,"&gt;").replace(c,"&#39;").replace(u,"&quot;"):e}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.ib()},e.Template.prototype={r:function(){return""},v:o,t:i,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}return i?(this.partials[e].base=i,n.subs&&(void 0===this.activeSub&&(t.stackText=this.text),i=r(i,n.subs,n.partials,t.stackText||this.text)),this.partials[e].instance=i,i):null},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(!f(r))return n(e,t,this),void 0;for(var i=0;i<r.length;i++)e.push(r[i]),n(e,t,this),e.pop()},s:function(e,t,n,r,i,o,s){var a;return f(e)&&0===e.length?!1:("function"==typeof e&&(e=this.ms(e,t,n,r,i,o,s)),a=!!e,!r&&a&&t&&t.push("object"==typeof e?e:t[t.length-1]),a)},d:function(e,t,r,i){var o,s=e.split("."),a=this.f(s[0],t,r,i),l=this.options.modelGet,c=null;if("."===e&&f(t[t.length-2]))a=t[t.length-1];else for(var u=1;u<s.length;u++)o=n(s[u],a,l),null!=o?(c=a,a=o):a="";return i&&!a?!1:(i||"function"!=typeof a||(t.push(c),a=this.mv(a,t,r),t.pop()),a)},f:function(e,t,r,i){for(var o=!1,s=null,a=!1,l=this.options.modelGet,c=t.length-1;c>=0;c--)if(s=t[c],o=n(e,s,l),null!=o){a=!0;break}return a?(i||"function"!=typeof o||(o=this.mv(o,t,r)),o):i?!1:""},ls:function(e,t,n,r,o){var s=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(i(e.call(t,r)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:t?function(e){this.buf.push(e)}:function(e){this.buf+=e},fl:t?function(){var e=this.buf.join("");return this.buf=[],e}:function(){var e=this.buf;return this.buf="",e},ib:function(){this.buf=t?[]:""},ms:function(e,t,n,r,i,o,s){var a,l=t[t.length-1],c=e.call(l);return"function"==typeof c?r?!0:(a=this.activeSub&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,l,n,a.substring(i,o),s)):c},mv:function(e,t,n){var r=t[t.length-1],o=e.call(r);return"function"==typeof o?this.ct(i(o.call(r)),r,n):o},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var s=/&/g,a=/</g,l=/>/g,c=/\'/g,u=/\"/g,d=/[&<>\"\']/,f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}("undefined"!=typeof exports?exports:Hogan),jQuery.tablesorter.addParser({id:"size",is:function(e){return e.trim().match(/^\d+(\.\d+)? (Bytes|KB|MB|GB|TB|PB)$/)},format:function(e){var t=["Bytes","KB","MB","GB","TB","PB"],n=e.trim().split(" ");return parseFloat(n.shift())*Math.pow(1024,_.indexOf(t,n.shift()))},type:"numeric"}),window.Genghis={Models:{},Collections:{},Views:{},Templates:{},defaults:{codeMirror:{mode:"application/json",lineNumbers:!0,tabSize:4,indentUnit:4,matchBrackets:!0}},boot:function(e){e+="/"==e.charAt(e.length-1)?"":"/",window.app=new Genghis.Views.App({baseUrl:e}),Backbone.history.start({pushState:!0,root:e})}},Genghis.version="2.3.9",Genghis.Templates.Alert=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="alert'),r.s(r.f("block",e,t,1),e,t,0,29,41,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" alert-block")}),e.pop()),r.b(" alert-"),r.b(r.v(r.f("level",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <a class="close" href="#">&times;</a>'),r.b("\n"+n),r.s(r.f("block",e,t,1),e,t,0,132,164,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <p>"),n.b(n.t(n.f("msg",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("block",e,t,1),e,t,1,0,0,"")||(r.b(" "),r.b(r.t(r.f("msg",e,t,0))),r.b("\n")),r.b("</div>"),r.fl()}}),Genghis.Templates.CollectionRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<td>"),r.b("\n"+n),r.b(' <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b(' <span class="documents value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b(' <span class="indexes has-details value">'),r.b(r.v(r.f("indexCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="'),r.b(r.v(r.f("indexCount",e,t,0))),r.b(" Index"),r.s(r.f("indexesIsPlural",e,t,1),e,t,0,282,284,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("es")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("indexCount",e,t,1),e,t,0,334,501,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <ul class="index-details">'),r.b("\n"+n),r.s(r.f("indexes",e,t,1),e,t,0,404,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li>"),n.b(n.t(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.b(" </ul>"),r.b("\n")}),e.pop()),r.s(r.f("indexCount",e,t,1),e,t,1,0,0,"")||(r.b(" <em>None.</em>"),r.b("\n")),r.b(" </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b(' <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="Collection Stats">'),r.b("\n"+n),r.b(' <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,794,881,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b(" <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b(" </dl>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b('<td class="action-column">'),r.b("\n"+n),r.b(' <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Collections=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b(" <table>"),r.b("\n"+n),r.b(" <thead>"),r.b("\n"+n),r.b(" <tr>"),r.b("\n"+n),r.b(" <th>name</th>"),r.b("\n"+n),r.b(" <th>documents</th>"),r.b("\n"+n),r.b(" <th>indexes</th>"),r.b("\n"+n),r.b(" <th>size</th>"),r.b("\n"+n),r.b(' <th data-sorter="false"></th>'),r.b("\n"+n),r.b(" </tr>"),r.b("\n"+n),r.b(" </thead>"),r.b("\n"+n),r.b(" <tbody>"),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b(' <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b(' <div class="btn-group">'),r.b("\n"+n),r.b(' <button class="show btn">Add collection</button>'),r.b("\n"+n),r.b(' <button class="btn dropdown-toggle" data-toggle="dropdown">'),r.b("\n"+n),r.b(' <span class="caret"></span>'),r.b("\n"+n),r.b(" </button>"),r.b("\n"+n),r.b(' <ul class="dropdown-menu">'),r.b("\n"+n),r.b(' <li><a class="show" href="#">Add collection</a></li>'),r.b("\n"+n),r.b(' <li><a class="show show-gridfs" href="#">Add GridFS collection</a></li>'),r.b("\n"+n),r.b(" </ul>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("\n"+n),r.b(' <button class="add btn btn-primary">Add collection</button>'),r.b("\n"+n),r.b(' <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Confirm=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("header",e,t,1),e,t,0,13,148,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <div class="modal-header">'),r.b("\n"+n),r.b(' <button class="dismiss close" aria-hidden="true">&times;</button>'),r.b("\n"+n),r.b(" <h3>"),r.b(r.v(r.f("header",e,t,0))),r.b("</h3>"),r.b("\n"+n),r.b(" </div>"),r.b("\n")}),e.pop()),r.b("\n"+n),r.b('<div class="modal-body">'),r.b("\n"+n),r.s(r.f("body",e,t,1),e,t,0,201,228,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <p>"),n.b(n.t(n.f("body",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("confirmInput",e,t,1),e,t,0,261,333,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <div>"),r.b("\n"+n),r.b(' <input type="text" class="confirm-input">'),r.b("\n"+n),r.b(" </div>"),r.b("\n")}),e.pop()),r.b("</div>"),r.b("\n"+n),r.b("\n"+n),r.b("\n"+n),r.b('<div class="modal-footer">'),r.b("\n"+n),r.b(' <button class="dismiss btn" aria-hidden="true">'),r.b(r.v(r.f("dismissText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b(' <button class="confirm btn btn-primary"'),r.s(r.f("confirmInput",e,t,1),e,t,0,525,534,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b(">"),r.b(r.t(r.f("confirmText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.DatabaseRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <td colspan="4">'),r.b("\n"+n),r.b(' <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b(" </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b(" <td>"),r.b("\n"+n),r.b(' <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(" <td>"),r.b("\n"+n),r.b(' <span class="collections has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Collection"),r.s(r.f("isPlural",e,t,1),e,t,0,427,428,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")
1106
+ }return function(){var o,s;return p(),o=Jt(),s=n.apply(null,arguments),o.end(),e&&"undefined"==typeof s.range&&o.apply(s),t&&"undefined"==typeof s.loc&&o.apply(s),r(s)&&i(s),s}}}function nn(){var e;xn.comments&&(xn.skipComment=p,p=zt),xn.raw&&(xn.createLiteral=Kt,Kt=Xt),(xn.range||xn.loc)&&(xn.parseGroupExpression=_,xn.parseLeftHandSideExpression=X,xn.parseLeftHandSideExpressionAllowCall=K,_=Qt,X=Yt,K=Zt,e=tn(xn.range,xn.loc),xn.parseAdditiveExpression=Z,xn.parseAssignmentExpression=ct,xn.parseBitwiseANDExpression=rt,xn.parseBitwiseORExpression=ot,xn.parseBitwiseXORExpression=it,xn.parseBlock=ft,xn.parseFunctionSourceElements=Ft,xn.parseCatchClause=It,xn.parseComputedMember=U,xn.parseConditionalExpression=lt,xn.parseConstLetDeclaration=vt,xn.parseEqualityExpression=nt,xn.parseExpression=ut,xn.parseForVariableDeclaration=St,xn.parseFunctionDeclaration=Gt,xn.parseFunctionExpression=Ht,xn.parseLogicalANDExpression=st,xn.parseLogicalORExpression=at,xn.parseMultiplicativeExpression=Y,xn.parseNewExpression=q,xn.parseNonComputedProperty=W,xn.parseObjectProperty=j,xn.parseObjectPropertyKey=H,xn.parsePostfixExpression=J,xn.parsePrimaryExpression=B,xn.parseProgram=_t,xn.parsePropertyFunction=G,xn.parseRelationalExpression=tt,xn.parseStatement=Pt,xn.parseShiftExpression=et,xn.parseSwitchCase=At,xn.parseUnaryExpression=Q,xn.parseVariableDeclaration=pt,xn.parseVariableIdentifier=ht,Z=e(xn.parseAdditiveExpression),ct=e(xn.parseAssignmentExpression),rt=e(xn.parseBitwiseANDExpression),ot=e(xn.parseBitwiseORExpression),it=e(xn.parseBitwiseXORExpression),ft=e(xn.parseBlock),Ft=e(xn.parseFunctionSourceElements),It=e(xn.parseCatchClause),U=e(xn.parseComputedMember),lt=e(xn.parseConditionalExpression),vt=e(xn.parseConstLetDeclaration),nt=e(xn.parseEqualityExpression),ut=e(xn.parseExpression),St=e(xn.parseForVariableDeclaration),Gt=e(xn.parseFunctionDeclaration),Ht=e(xn.parseFunctionExpression),X=e(X),st=e(xn.parseLogicalANDExpression),at=e(xn.parseLogicalORExpression),Y=e(xn.parseMultiplicativeExpression),q=e(xn.parseNewExpression),W=e(xn.parseNonComputedProperty),j=e(xn.parseObjectProperty),H=e(xn.parseObjectPropertyKey),J=e(xn.parsePostfixExpression),B=e(xn.parsePrimaryExpression),_t=e(xn.parseProgram),G=e(xn.parsePropertyFunction),tt=e(xn.parseRelationalExpression),Pt=e(xn.parseStatement),et=e(xn.parseShiftExpression),At=e(xn.parseSwitchCase),Q=e(xn.parseUnaryExpression),pt=e(xn.parseVariableDeclaration),ht=e(xn.parseVariableIdentifier)),"undefined"!=typeof xn.tokens&&(xn.advance=C,xn.scanRegExp=w,C=Vt,w=Ut)}function rn(){"function"==typeof xn.skipComment&&(p=xn.skipComment),xn.raw&&(Kt=xn.createLiteral),(xn.range||xn.loc)&&(Z=xn.parseAdditiveExpression,ct=xn.parseAssignmentExpression,rt=xn.parseBitwiseANDExpression,ot=xn.parseBitwiseORExpression,it=xn.parseBitwiseXORExpression,ft=xn.parseBlock,Ft=xn.parseFunctionSourceElements,It=xn.parseCatchClause,U=xn.parseComputedMember,lt=xn.parseConditionalExpression,vt=xn.parseConstLetDeclaration,nt=xn.parseEqualityExpression,ut=xn.parseExpression,St=xn.parseForVariableDeclaration,Gt=xn.parseFunctionDeclaration,Ht=xn.parseFunctionExpression,_=xn.parseGroupExpression,X=xn.parseLeftHandSideExpression,K=xn.parseLeftHandSideExpressionAllowCall,st=xn.parseLogicalANDExpression,at=xn.parseLogicalORExpression,Y=xn.parseMultiplicativeExpression,q=xn.parseNewExpression,W=xn.parseNonComputedProperty,j=xn.parseObjectProperty,H=xn.parseObjectPropertyKey,B=xn.parsePrimaryExpression,J=xn.parsePostfixExpression,_t=xn.parseProgram,G=xn.parsePropertyFunction,tt=xn.parseRelationalExpression,Pt=xn.parseStatement,et=xn.parseShiftExpression,At=xn.parseSwitchCase,Q=xn.parseUnaryExpression,pt=xn.parseVariableDeclaration,ht=xn.parseVariableIdentifier),"function"==typeof xn.scanRegExp&&(C=xn.advance,w=xn.scanRegExp)}function on(e){var t,n=e.length,r=[];for(t=0;n>t;++t)r[t]=e.charAt(t);return r}function sn(e,t){var n,r;r=String,"string"==typeof e||e instanceof String||(e=r(e)),hn=e,mn=0,gn=hn.length>0?1:0,vn=0,bn=hn.length,yn=null,wn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1},xn={},"undefined"!=typeof t&&(xn.range="boolean"==typeof t.range&&t.range,xn.loc="boolean"==typeof t.loc&&t.loc,xn.raw="boolean"==typeof t.raw&&t.raw,"boolean"==typeof t.tokens&&t.tokens&&(xn.tokens=[]),"boolean"==typeof t.comment&&t.comment&&(xn.comments=[]),"boolean"==typeof t.tolerant&&t.tolerant&&(xn.errors=[])),bn>0&&"undefined"==typeof hn[0]&&(e instanceof String&&(hn=e.valueOf()),"undefined"==typeof hn[0]&&(hn=on(e))),nn();try{n=_t(),"undefined"!=typeof xn.comments&&(Wt(),n.comments=xn.comments),"undefined"!=typeof xn.tokens&&(qt(),n.tokens=xn.tokens),"undefined"!=typeof xn.errors&&(n.errors=xn.errors),(xn.range||xn.loc)&&(n.body=en(n.body))}catch(i){throw i}finally{rn(),xn={}}return n}var an,ln,cn,un,dn,fn,hn,pn,mn,gn,vn,bn,yn,wn,xn;an={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8},ln={},ln[an.BooleanLiteral]="Boolean",ln[an.EOF]="<end>",ln[an.Identifier]="Identifier",ln[an.Keyword]="Keyword",ln[an.NullLiteral]="Null",ln[an.NumericLiteral]="Numeric",ln[an.Punctuator]="Punctuator",ln[an.StringLiteral]="String",cn={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},un={Data:1,Get:2,Set:4},dn={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},fn={NonAsciiIdentifierStart:new RegExp("[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),NonAsciiIdentifierPart:new RegExp("[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]")},"undefined"==typeof"esprima"[0]&&(n=function(e,t){return hn.slice(e,t).join("")}),e.version="1.0.3",e.parse=sn,e.Syntax=function(){var e,t={};"function"==typeof Object.create&&(t=Object.create(null));for(e in cn)cn.hasOwnProperty(e)&&(t[e]=cn[e]);return"function"==typeof Object.freeze&&Object.freeze(t),t}()}),function(){function e(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),void 0):(e.attachEvent("on"+t,n),void 0)}function t(e){if("keypress"==e.type){var t=String.fromCharCode(e.which);return e.shiftKey||(t=t.toLowerCase()),t}return w[e.which]?w[e.which]:x[e.which]?x[e.which]:String.fromCharCode(e.which).toLowerCase()}function n(e,t){return e.sort().join(",")===t.sort().join(",")}function r(e){e=e||{};var t,n=!1;for(t in L)e[t]?n=!0:L[t]=0;n||(N=!1)}function i(e,t,r,i,o,s){var a,l,u=[],d=r.type;if(!k[e])return[];for("keyup"==d&&c(e)&&(t=[e]),a=0;a<k[e].length;++a)if(l=k[e][a],(i||!l.seq||L[l.seq]==l.level)&&d==l.action&&("keypress"==d&&!r.metaKey&&!r.ctrlKey||n(t,l.modifiers))){var f=!i&&l.combo==o,h=i&&l.seq==i&&l.level==s;(f||h)&&k[e].splice(a,1),u.push(l)}return u}function o(e){var t=[];return e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),e.ctrlKey&&t.push("ctrl"),e.metaKey&&t.push("meta"),t}function s(e,t,n){D.stopCallback(t,t.target||t.srcElement,n)||e(t,n)===!1&&(t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.returnValue=!1,t.cancelBubble=!0)}function a(e,t,n){var o,a=i(e,t,n),l={},u=0,d=!1;for(o=0;o<a.length;++o)a[o].seq&&(u=Math.max(u,a[o].level));for(o=0;o<a.length;++o)if(a[o].seq){if(a[o].level!=u)continue;d=!0,l[a[o].seq]=1,s(a[o].callback,n,a[o].combo)}else d||s(a[o].callback,n,a[o].combo);n.type!=N||c(e)||r(l)}function l(e){"number"!=typeof e.which&&(e.which=e.keyCode);var n=t(e);if(n)return"keyup"==e.type&&E===n?(E=!1,void 0):(D.handleKey(n,o(e),e),void 0)}function c(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}function u(){clearTimeout(y),y=setTimeout(r,1e3)}function d(){if(!b){b={};for(var e in w)e>95&&112>e||w.hasOwnProperty(e)&&(b[w[e]]=e)}return b}function f(e,t,n){return n||(n=d()[e]?"keydown":"keypress"),"keypress"==n&&t.length&&(n="keydown"),n}function h(e,n,i,o){function a(t){return function(){N=t,++L[e],u()}}function l(n){s(i,n,e),"keyup"!==o&&(E=t(n)),setTimeout(r,10)}L[e]=0;for(var c=0;c<n.length;++c){var d=c+1===n.length,f=d?l:a(o||m(n[c+1]).action);g(n[c],f,o,e,c)}}function p(e){return"+"===e?["+"]:e.split("+")}function m(e,t){var n,r,i,o=[];for(n=p(e),i=0;i<n.length;++i)r=n[i],S[r]&&(r=S[r]),t&&"keypress"!=t&&C[r]&&(r=C[r],o.push("shift")),c(r)&&o.push(r);return t=f(r,o,t),{key:r,modifiers:o,action:t}}function g(e,t,n,r,o){T[e+":"+n]=t,e=e.replace(/\s+/g," ");var s,a=e.split(" ");return a.length>1?(h(e,a,t,n),void 0):(s=m(e,n),k[s.key]=k[s.key]||[],i(s.key,s.modifiers,{type:s.action},r,e,o),k[s.key][r?"unshift":"push"]({callback:t,modifiers:s.modifiers,action:s.action,seq:r,level:o,combo:e}),void 0)}function v(e,t,n){for(var r=0;r<e.length;++r)g(e[r],t,n)}for(var b,y,w={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},x={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},C={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},S={option:"alt",command:"meta","return":"enter",escape:"esc",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},k={},T={},L={},E=!1,N=!1,A=1;20>A;++A)w[111+A]="f"+A;for(A=0;9>=A;++A)w[A+96]=A;e(document,"keypress",l),e(document,"keydown",l),e(document,"keyup",l);var D={bind:function(e,t,n){return e=e instanceof Array?e:[e],v(e,t,n),this},unbind:function(e,t){return D.bind(e,function(){},t)},trigger:function(e,t){return T[e+":"+t]&&T[e+":"+t]({},e),this},reset:function(){return k={},T={},this},stopCallback:function(e,t){return(" "+t.className+" ").indexOf(" mousetrap ")>-1?!1:"INPUT"==t.tagName||"SELECT"==t.tagName||"TEXTAREA"==t.tagName||t.contentEditable&&"true"==t.contentEditable},handleKey:a};window.Mousetrap=D,"function"==typeof define&&define.amd&&define(D)}();var Hogan={};!function(e,t){function n(e,t,n){var r;return t&&"object"==typeof t&&(null!=t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function r(e,t,n,r){function i(){}function o(){}i.prototype=e,o.prototype=e.subs;var s,a=new i;a.subs=new o,a.subsText={},a.ib();for(s in t)a.subs[s]=t[s],a.subsText[s]=r;for(s in n)a.partials[s]=n[s];return a}function i(e){return String(null===e||void 0===e?"":e)}function o(e){return e=i(e),d.test(e)?e.replace(s,"&amp;").replace(a,"&lt;").replace(l,"&gt;").replace(c,"&#39;").replace(u,"&quot;"):e}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.ib()},e.Template.prototype={r:function(){return""},v:o,t:i,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var n=this.partials[e],i=t[n.name];if(n.instance&&n.base==i)return n.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}return i?(this.partials[e].base=i,n.subs&&(void 0===this.activeSub&&(t.stackText=this.text),i=r(i,n.subs,n.partials,t.stackText||this.text)),this.partials[e].instance=i,i):null},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(!f(r))return n(e,t,this),void 0;for(var i=0;i<r.length;i++)e.push(r[i]),n(e,t,this),e.pop()},s:function(e,t,n,r,i,o,s){var a;return f(e)&&0===e.length?!1:("function"==typeof e&&(e=this.ms(e,t,n,r,i,o,s)),a=!!e,!r&&a&&t&&t.push("object"==typeof e?e:t[t.length-1]),a)},d:function(e,t,r,i){var o,s=e.split("."),a=this.f(s[0],t,r,i),l=this.options.modelGet,c=null;if("."===e&&f(t[t.length-2]))a=t[t.length-1];else for(var u=1;u<s.length;u++)o=n(s[u],a,l),null!=o?(c=a,a=o):a="";return i&&!a?!1:(i||"function"!=typeof a||(t.push(c),a=this.mv(a,t,r),t.pop()),a)},f:function(e,t,r,i){for(var o=!1,s=null,a=!1,l=this.options.modelGet,c=t.length-1;c>=0;c--)if(s=t[c],o=n(e,s,l),null!=o){a=!0;break}return a?(i||"function"!=typeof o||(o=this.mv(o,t,r)),o):i?!1:""},ls:function(e,t,n,r,o){var s=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(i(e.call(t,r)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:t?function(e){this.buf.push(e)}:function(e){this.buf+=e},fl:t?function(){var e=this.buf.join("");return this.buf=[],e}:function(){var e=this.buf;return this.buf="",e},ib:function(){this.buf=t?[]:""},ms:function(e,t,n,r,i,o,s){var a,l=t[t.length-1],c=e.call(l);return"function"==typeof c?r?!0:(a=this.activeSub&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,l,n,a.substring(i,o),s)):c},mv:function(e,t,n){var r=t[t.length-1],o=e.call(r);return"function"==typeof o?this.ct(i(o.call(r)),r,n):o},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var s=/&/g,a=/</g,l=/>/g,c=/\'/g,u=/\"/g,d=/[&<>\"\']/,f=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}("undefined"!=typeof exports?exports:Hogan),jQuery.tablesorter.addParser({id:"size",is:function(e){return e.trim().match(/^\d+(\.\d+)? (Bytes|KB|MB|GB|TB|PB)$/)},format:function(e){var t=["Bytes","KB","MB","GB","TB","PB"],n=e.trim().split(" ");return parseFloat(n.shift())*Math.pow(1024,_.indexOf(t,n.shift()))},type:"numeric"}),window.Genghis={Models:{},Collections:{},Views:{},Templates:{},defaults:{codeMirror:{mode:"application/json",lineNumbers:!0,tabSize:4,indentUnit:4,matchBrackets:!0}},boot:function(e){e+="/"==e.charAt(e.length-1)?"":"/",window.app=new Genghis.Views.App({baseUrl:e}),Backbone.history.start({pushState:!0,root:e})}},Genghis.version="2.3.10",Genghis.Templates.Alert=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="alert'),r.s(r.f("block",e,t,1),e,t,0,29,41,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" alert-block")}),e.pop()),r.b(" alert-"),r.b(r.v(r.f("level",e,t,0))),r.b('">'),r.b("\n"+n),r.b(' <a class="close" href="#">&times;</a>'),r.b("\n"+n),r.s(r.f("block",e,t,1),e,t,0,132,164,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <p>"),n.b(n.t(n.f("msg",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("block",e,t,1),e,t,1,0,0,"")||(r.b(" "),r.b(r.t(r.f("msg",e,t,0))),r.b("\n")),r.b("</div>"),r.fl()}}),Genghis.Templates.CollectionRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<td>"),r.b("\n"+n),r.b(' <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b(' <span class="documents value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b(' <span class="indexes has-details value">'),r.b(r.v(r.f("indexCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="'),r.b(r.v(r.f("indexCount",e,t,0))),r.b(" Index"),r.s(r.f("indexesIsPlural",e,t,1),e,t,0,282,284,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("es")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("indexCount",e,t,1),e,t,0,334,501,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <ul class="index-details">'),r.b("\n"+n),r.s(r.f("indexes",e,t,1),e,t,0,404,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li>"),n.b(n.t(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.b(" </ul>"),r.b("\n")}),e.pop()),r.s(r.f("indexCount",e,t,1),e,t,1,0,0,"")||(r.b(" <em>None.</em>"),r.b("\n")),r.b(" </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b("<td>"),r.b("\n"+n),r.b(' <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="Collection Stats">'),r.b("\n"+n),r.b(' <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,794,881,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b(" <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b(" </dl>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</td>"),r.b("\n"+n),r.b('<td class="action-column">'),r.b("\n"+n),r.b(' <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Collections=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b(" <table>"),r.b("\n"+n),r.b(" <thead>"),r.b("\n"+n),r.b(" <tr>"),r.b("\n"+n),r.b(" <th>name</th>"),r.b("\n"+n),r.b(" <th>documents</th>"),r.b("\n"+n),r.b(" <th>indexes</th>"),r.b("\n"+n),r.b(" <th>size</th>"),r.b("\n"+n),r.b(' <th data-sorter="false"></th>'),r.b("\n"+n),r.b(" </tr>"),r.b("\n"+n),r.b(" </thead>"),r.b("\n"+n),r.b(" <tbody>"),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b(' <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b(' <div class="btn-group">'),r.b("\n"+n),r.b(' <button class="show btn">Add collection</button>'),r.b("\n"+n),r.b(' <button class="btn dropdown-toggle" data-toggle="dropdown">'),r.b("\n"+n),r.b(' <span class="caret"></span>'),r.b("\n"+n),r.b(" </button>"),r.b("\n"+n),r.b(' <ul class="dropdown-menu">'),r.b("\n"+n),r.b(' <li><a class="show" href="#">Add collection</a></li>'),r.b("\n"+n),r.b(' <li><a class="show show-gridfs" href="#">Add GridFS collection</a></li>'),r.b("\n"+n),r.b(" </ul>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("\n"+n),r.b(' <button class="add btn btn-primary">Add collection</button>'),r.b("\n"+n),r.b(' <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Confirm=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("header",e,t,1),e,t,0,13,148,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <div class="modal-header">'),r.b("\n"+n),r.b(' <button class="dismiss close" aria-hidden="true">&times;</button>'),r.b("\n"+n),r.b(" <h3>"),r.b(r.v(r.f("header",e,t,0))),r.b("</h3>"),r.b("\n"+n),r.b(" </div>"),r.b("\n")}),e.pop()),r.b("\n"+n),r.b('<div class="modal-body">'),r.b("\n"+n),r.s(r.f("body",e,t,1),e,t,0,201,228,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <p>"),n.b(n.t(n.f("body",e,t,0))),n.b("</p>"),n.b("\n")}),e.pop()),r.s(r.f("confirmInput",e,t,1),e,t,0,261,333,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <div>"),r.b("\n"+n),r.b(' <input type="text" class="confirm-input">'),r.b("\n"+n),r.b(" </div>"),r.b("\n")}),e.pop()),r.b("</div>"),r.b("\n"+n),r.b("\n"+n),r.b("\n"+n),r.b('<div class="modal-footer">'),r.b("\n"+n),r.b(' <button class="dismiss btn" aria-hidden="true">'),r.b(r.v(r.f("dismissText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b(' <button class="confirm btn btn-primary"'),r.s(r.f("confirmInput",e,t,1),e,t,0,525,534,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b(">"),r.b(r.t(r.f("confirmText",e,t,0))),r.b("</button>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.DatabaseRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <td colspan="4">'),r.b("\n"+n),r.b(' <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b(" </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b(" <td>"),r.b("\n"+n),r.b(' <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(" <td>"),r.b("\n"+n),r.b(' <span class="collections has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Collection"),r.s(r.f("isPlural",e,t,1),e,t,0,427,428,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")
1104
1107
  }),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("count",e,t,1),e,t,0,470,777,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <ul>"),r.b("\n"+n),r.s(r.f("firstChildren",e,t,1),e,t,0,532,594,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li>"),n.b(n.v(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.s(r.f("hasMoreChildren",e,t,1),e,t,0,657,720,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li>&hellip;</li>"),n.b("\n")}),e.pop()),r.b(" </ul>"),r.b("\n")}),e.pop()),r.s(r.f("count",e,t,1),e,t,1,0,0,"")||(r.b(" <em>None.</em>"),r.b("\n")),r.b(" </div>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(" <td>"),r.b("\n"+n),r.b(' <span class="size has-details value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="Database Stats">'),r.b("\n"+n),r.b(' <dl class="stats-details">'),r.b("\n"+n),r.s(r.f("stats",e,t,1),e,t,0,1093,1192,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <dt>"),r.b(r.v(r.f("name",e,t,0))),r.b("</dt>"),r.b("\n"+n),r.b(" <dd>"),r.b(r.v(r.f("value",e,t,0))),r.b("</dd>"),r.b("\n")}),e.pop()),r.b(" </dl>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(' <td class="action-column">'),r.b("\n"+n),r.b(' <button class="btn btn-mini btn-danger destroy">Remove</button>'),r.b("\n"+n),r.b(" </td>"),r.b("\n")),r.fl()}}),Genghis.Templates.Databases=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>"),r.b(r.v(r.f("title",e,t,0))),r.b("</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b(" <table>"),r.b("\n"+n),r.b(" <thead>"),r.b("\n"+n),r.b(" <tr>"),r.b("\n"+n),r.b(" <th>name</th>"),r.b("\n"+n),r.b(" <th>collections</th>"),r.b("\n"+n),r.b(" <th>size</th>"),r.b("\n"+n),r.b(' <th data-sorter="false"></th>'),r.b("\n"+n),r.b(" </tr>"),r.b("\n"+n),r.b(" </thead>"),r.b("\n"+n),r.b(" <tbody>"),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b(' <input class="name span4" type="text" size="30">'),r.b("\n"+n),r.b(' <button class="show btn">Add database</button>'),r.b("\n"+n),r.b(' <button class="add btn btn-primary">Add database</button>'),r.b("\n"+n),r.b(' <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Document=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header>"),r.b("\n"+n),r.b(" <h2>"),r.b("\n"+n),r.b(" "),r.b(r.v(r.d("model.prettyId",e,t,0))),r.b("\n"+n),r.s(r.d("model.prettyTime",e,t,1),e,t,0,78,184,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(' <small><time datetime="'),n.b(n.v(n.d("model.prettyTime",e,t,0))),n.b('">'),n.b(n.v(n.d("model.prettyTime",e,t,0))),n.b("</time></small>"),n.b("\n")}),e.pop()),r.b(" </h2>"),r.b("\n"+n),r.b("</header>"),r.b("\n"+n),r.b('<div class="content document-wrapper"></div>'),r.fl()}}),Genghis.Templates.DocumentView=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="well">'),r.b("\n"+n),r.b(' <div class="document-actions">'),r.b("\n"+n),r.s(r.f("isGridFile",e,t,1),e,t,0,79,189,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(' <a class="btn btn-small btn-primary grid-download" href="'),n.b(n.v(n.f("downloadUrl",e,t,0))),n.b('">Download</a>'),n.b("\n")}),e.pop()),r.s(r.f("isGridChunk",e,t,1),e,t,0,233,324,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(' <a class="btn btn-small grid-file" href="'),n.b(n.v(n.f("fileUrl",e,t,0))),n.b('">Grid File</a>'),n.b("\n")}),e.pop()),r.b(' <button class="btn btn-small btn-primary save">Save</button>'),r.b("\n"+n),r.b(' <button class="btn btn-small cancel">Cancel</button>'),r.b("\n"+n),r.b(' <button class="btn btn-small edit">Edit</button>'),r.b("\n"+n),r.b(' <button class="btn btn-small btn-danger destroy">Delete</button>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("\n"+n),r.b(" <h3>"),r.b("\n"+n),r.b(' <a class="id" href="'),r.b(r.v(r.f("url",e,t,0))),r.b('">'),r.b(r.v(r.f("prettyId",e,t,0))),r.b("</a>"),r.b("\n"+n),r.s(r.f("prettyTime",e,t,1),e,t,0,707,801,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(' <small><time datetime="'),n.b(n.v(n.f("prettyTime",e,t,0))),n.b('">'),n.b(n.v(n.f("prettyTime",e,t,0))),n.b("</time></small>"),n.b("\n")}),e.pop()),r.b(" </h3>"),r.b("\n"+n),r.b("\n"+n),r.b(' <div class="document"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Documents=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>Documents</h2></header>"),r.b("\n"+n),r.b('<div class="controls">'),r.b("\n"+n),r.b(' <button class="add-document btn btn-large">Add document</button>'),r.b("\n"+n),r.b(' <div class="pagination-wrapper top"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="content document-wrapper"></div>'),r.b("\n"+n),r.b('<div class="controls">'),r.b("\n"+n),r.b(' <button class="add-document btn btn-large">Add document</button>'),r.b("\n"+n),r.b(' <div class="pagination-wrapper top"></div>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.KeyboardShortcuts=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="keyboard-shortcuts" class="modal">'),r.b("\n"+n),r.b(' <div class="modal-header">'),r.b("\n"+n),r.b(' <a href="#" class="close">&times;</a>'),r.b("\n"+n),r.b(" <h3>Keyboard shortcuts</h3>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="modal-body">'),r.b("\n"+n),r.b(" <ul>"),r.b("\n"+n),r.b(" <li>"),r.b("\n"+n),r.b(" <h4>Global</h4>"),r.b("\n"+n),r.b(" <dl>"),r.b("\n"+n),r.b(" <dt><kbd>?</kbd></dt>"),r.b("\n"+n),r.b(" <dd>This cheat sheet</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>s</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Go to servers</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>u</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Go up one level</dd>"),r.b("\n"+n),r.b(" </dl>"),r.b("\n"+n),r.b("\n"+n),r.b(" <h4>Servers</h4>"),r.b("\n"+n),r.b(" <dl>"),r.b("\n"+n),r.b(" <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b(" <dd>New server</dd>"),r.b("\n"+n),r.b(" </dl>"),r.b("\n"+n),r.b("\n"+n),r.b(" <h4>Databases</h4>"),r.b("\n"+n),r.b(" <dl>"),r.b("\n"+n),r.b(" <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b(" <dd>New database</dd>"),r.b("\n"+n),r.b(" </dl>"),r.b("\n"+n),r.b(" </li>"),r.b("\n"+n),r.b(" <li>"),r.b("\n"+n),r.b(" <h4>Collections</h4>"),r.b("\n"+n),r.b(" <dl>"),r.b("\n"+n),r.b(" <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b(" <dd>New collection</dd>"),r.b("\n"+n),r.b(" <dt><kbd>shift</kbd> + <kbd>c</kbd></dt>"),r.b("\n"+n),r.b(" <dd>New GridFS collection</dd>"),r.b("\n"+n),r.b(" </dl>"),r.b("\n"+n),r.b("\n"+n),r.b(" <h4>Documents</h4>"),r.b("\n"+n),r.b(" <dl>"),r.b("\n"+n),r.b(" <dt><kbd>/</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Search</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>c</kbd></dt>"),r.b("\n"+n),r.b(" <dd>New document</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>n</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Next page</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>p</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Previous page</dd>"),r.b("\n"+n),r.b("\n"+n),r.b("<!--"),r.b("\n"+n),r.b(" <dt><kbd>-</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Collapse all</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>+</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Expand all</dd>"),r.b("\n"+n),r.b("\n"+n),r.b(" <dt><kbd>Alt+1</kbd> &ndash; <kbd>Alt+9</kbd></dt>"),r.b("\n"+n),r.b(" <dd>Expand to depth</dd>"),r.b("\n"+n),r.b("-->"),r.b("\n"+n),r.b(" </dl>"),r.b("\n"+n),r.b(" </li>"),r.b("\n"+n),r.b(" </ul>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Masthead=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="container">'),r.b("\n"+n),r.b(" "),r.s(r.f("heading",e,t,1),e,t,0,42,64,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("<h1>"),n.b(n.v(n.f("heading",e,t,0))),n.b("</h1>")}),e.pop()),r.b("\n"+n),r.b(" "),r.b(r.t(r.f("content",e,t,0))),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Nav=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<ul class="nav">'),r.b("\n"+n),r.b(' <li class="nav-section servers"><a class="btn-servers" href="'),r.b(r.v(r.f("baseUrl",e,t,0))),r.b('">Servers</a></li>'),r.b("\n"+n),r.b(' <li class="nav-section dropdown server"></li>'),r.b("\n"+n),r.b(' <li class="nav-section dropdown database"></li>'),r.b("\n"+n),r.b(' <li class="nav-section dropdown collection"></li>'),r.b("\n"+n),r.b("</ul>"),r.b("\n"),r.fl()}}),Genghis.Templates.NavSection=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<a href="#" class="dropdown-toggle" data-toggle="dropdown">'),r.b(r.v(r.f("id",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b('<ul class="dropdown-menu"></ul>'),r.b("\n"),r.fl()}}),Genghis.Templates.NavSectionMenu=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.d("collection.firstChildren",e,t,1),e,t,0,31,130,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <li><a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('">'),r.b("\n"+n),r.b(" "),r.b(r.v(r.f("id",e,t,0))),r.b("\n"+n),r.b(" <span>"),r.b(r.v(r.f("humanCount",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(" </a></li>"),r.b("\n")}),e.pop()),r.s(r.d("collection.hasMoreChildren",e,t,1),e,t,0,195,287,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <li class="divider"></li>'),r.b("\n"+n),r.b(' <li><a href="'),r.b(r.v(r.d("collection.url",e,t,0))),r.b('">More &raquo;</a></li>'),r.b("\n")}),e.pop()),r.fl()}}),Genghis.Templates.NewDocument=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="new-document" class="modal modal-editor">'),r.b("\n"+n),r.b(' <div class="modal-header">'),r.b("\n"+n),r.b(' <a class="close" data-dismiss="modal">&times;</a>'),r.b("\n"+n),r.b(" <h3>New Document</h3>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="modal-body">'),r.b("\n"+n),r.b(' <div class="wrapper">'),r.b("\n"+n),r.b(' <textarea id="editor-new" class="genghis-document-editor"></textarea>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="modal-footer">'),r.b("\n"+n),r.b(' <button class="btn cancel">Cancel</button>'),r.b("\n"+n),r.b(' <button class="btn btn-primary save">Save</button>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.NewGridFile=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div id="new-grid-file" class="modal modal-file-upload">'),r.b("\n"+n),r.b(' <div class="modal-header">'),r.b("\n"+n),r.b(' <a class="close" data-dismiss="modal">&times;</a>'),r.b("\n"+n),r.b(" <h3>Upload File</h3>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="modal-body">'),r.b("\n"+n),r.b(' <div class="wrapper">'),r.b("\n"+n),r.b(' <textarea id="editor-upload" class="genghis-document-editor"></textarea>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b(' <div class="modal-footer">'),r.b("\n"+n),r.b(' <button class="btn cancel">Cancel</button>'),r.b("\n"+n),r.b(' <button class="btn btn-primary save">Upload</button>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Pagination=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<div class="pagination pagination-right">'),r.b("\n"+n),r.b(" <ul>"),r.b("\n"+n),r.b(' <li class="prev'),r.s(r.f("isFirst",e,t,1),e,t,0,82,91,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b('">'),r.b("\n"+n),r.b(" <a"),r.s(r.f("isFirst",e,t,1),e,t,1,0,0,"")||(r.b(' href="'),r.b(r.v(r.f("prevUrl",e,t,0))),r.b('"')),r.b(">&larr;</a>"),r.b("\n"+n),r.b(" </li>"),r.b("\n"+n),r.b("\n"+n),r.s(r.f("isStart",e,t,1),e,t,1,0,0,"")||(r.b(' <li class="first"><a href="'),r.b(r.v(r.f("firstUrl",e,t,0))),r.b('">1</a></li>'),r.b("\n"+n),r.b(' <li class="disabled"><a>&hellip;</a></li>'),r.b("\n")),r.b("\n"+n),r.b("\n"+n),r.s(r.f("pageUrls",e,t,1),e,t,0,361,460,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li"),n.s(n.f("active",e,t,1),e,t,0,386,401,"{{ }}")&&(n.rs(e,t,function(e,t,n){n.b(' class="active"')}),e.pop()),n.b('><a href="'),n.b(n.v(n.f("url",e,t,0))),n.b('">'),n.b(n.v(n.f("index",e,t,0))),n.b("</a></li>"),n.b("\n")}),e.pop()),r.b("\n"+n),r.s(r.f("isEnd",e,t,1),e,t,1,0,0,"")||(r.b(' <li class="disabled"><a>&hellip;</a></li>'),r.b("\n"+n),r.b(' <li class="last"><a href="'),r.b(r.v(r.f("lastUrl",e,t,0))),r.b('">'),r.b(r.v(r.f("last",e,t,0))),r.b("</a></li>"),r.b("\n")),r.b("\n"+n),r.b(' <li class="next'),r.s(r.f("isLast",e,t,1),e,t,0,663,672,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" disabled")}),e.pop()),r.b('">'),r.b("\n"+n),r.b(" <a"),r.s(r.f("isLast",e,t,1),e,t,1,0,0,"")||(r.b(' href="'),r.b(r.v(r.f("nextUrl",e,t,0))),r.b('"')),r.b(">&rarr;</a>"),r.b("\n"+n),r.b(" </li>"),r.b("\n"+n),r.b(" </ul>"),r.b("\n"+n),r.b("</div>"),r.fl()}}),Genghis.Templates.Search=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b('<input id="navbar-query" class="search-query" name="q" type="text" value="'),r.b(r.v(r.f("query",e,t,0))),r.b('" />'),r.b("\n"+n),r.b('<div class="search-advanced">'),r.b("\n"+n),r.b(' <div class="well"></div>'),r.b("\n"+n),r.b(' <div class="form-actions">'),r.b("\n"+n),r.b(' <button class="search btn btn-primary">Search</button>'),r.b("\n"+n),r.b(' <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b(" </div>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<span class="grippie"></span>'),r.b("\n"),r.fl()}}),Genghis.Templates.ServerRow=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.s(r.f("error",e,t,1),e,t,0,12,167,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(' <td colspan="3">'),r.b("\n"+n),r.b(' <span class="value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <span class="label label-important" title="'),r.b(r.v(r.f("error",e,t,0))),r.b('">Error</span>'),r.b("\n"+n),r.b(" </td>"),r.b("\n")}),e.pop()),r.s(r.f("error",e,t,1),e,t,1,0,0,"")||(r.b(" <td>"),r.b("\n"+n),r.b(' <a href="'),r.b(r.v(r.f("url",e,t,0))),r.b('" class="name value">'),r.b(r.v(r.f("name",e,t,0))),r.b("</a>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(" <td>"),r.b("\n"+n),r.b(' <span class="databases has-details value">'),r.b(r.v(r.f("count",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(' <div class="details" title="'),r.b(r.v(r.f("count",e,t,0))),r.b(" Database"),r.s(r.f("isPlural",e,t,1),e,t,0,423,424,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b("s")}),e.pop()),r.b('">'),r.b("\n"+n),r.s(r.f("count",e,t,1),e,t,0,466,773,"{{ }}")&&(r.rs(e,t,function(e,t,r){r.b(" <ul>"),r.b("\n"+n),r.s(r.f("firstChildren",e,t,1),e,t,0,528,590,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li>"),n.b(n.v(n.d(".",e,t,0))),n.b("</li>"),n.b("\n")}),e.pop()),r.s(r.f("hasMoreChildren",e,t,1),e,t,0,653,716,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b(" <li>&hellip;</li>"),n.b("\n")}),e.pop()),r.b(" </ul>"),r.b("\n")}),e.pop()),r.s(r.f("count",e,t,1),e,t,1,0,0,"")||(r.b(" <em>None.</em>"),r.b("\n")),r.b(" </div>"),r.b("\n"+n),r.b(" </td>"),r.b("\n"+n),r.b(" <td>"),r.b("\n"+n),r.b(' <span class="size value">'),r.b(r.v(r.f("humanSize",e,t,0))),r.b("</span>"),r.b("\n"+n),r.b(" </td>"),r.b("\n")),r.b('<td class="action-column">'),r.b("\n"+n),r.b(" "),r.s(r.f("editable",e,t,1),e,t,0,1026,1099,"{{ }}")&&(r.rs(e,t,function(e,t,n){n.b('<button class="btn btn-mini btn-danger destroy">Remove from list</button>')}),e.pop()),r.b("\n"+n),r.b("</td>"),r.b("\n"),r.fl()}}),Genghis.Templates.Servers=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<header><h2>Servers</h2></header>"),r.b("\n"+n),r.b('<div class="content">'),r.b("\n"+n),r.b(" <table>"),r.b("\n"+n),r.b(" <thead>"),r.b("\n"+n),r.b(" <tr>"),r.b("\n"+n),r.b(" <th>name</th>"),r.b("\n"+n),r.b(" <th>databases</th>"),r.b("\n"+n),r.b(" <th>size</th>"),r.b("\n"+n),r.b(' <th data-sorter="false"></th>'),r.b("\n"+n),r.b(" </tr>"),r.b("\n"+n),r.b(" </thead>"),r.b("\n"+n),r.b(" <tbody>"),r.b("\n"+n),r.b(" </tbody>"),r.b("\n"+n),r.b(" </table>"),r.b("\n"+n),r.b("</div>"),r.b("\n"+n),r.b('<div class="add-form inactive form-horizontal">'),r.b("\n"+n),r.b(' <span class="input-append">'),r.b("\n"+n),r.b(' <input class="name span4" type="text" size="30"><span class="add-on help" title="user:pass@localhost:27017/db">?</span>'),r.b("\n"+n),r.b(" </span>"),r.b("\n"+n),r.b(' <button class="show btn">Add server</button>'),r.b("\n"+n),r.b(' <button class="add btn btn-primary">Add server</button>'),r.b("\n"+n),r.b(' <button class="cancel btn">Cancel</button>'),r.b("\n"+n),r.b("</div>"),r.b("\n"),r.fl()}}),Genghis.Templates.Welcome=new Hogan.Template({code:function(e,t,n){var r=this;return r.b(n=n||""),r.b("<h2>Welcome to</h2>"),r.b("\n"+n),r.b("<h1>Genghis</h1>"),r.b("\n"+n),r.b("<p>The single-file MongoDB admin app.</p>"),r.b("\n"+n),r.b('<ul class="welcome-links">'),r.b("\n"+n),r.b(' <li><a href="http://genghisapp.com">Homepage</a></li>'),r.b("\n"+n),r.b(' <li><a href="https://github.com/bobthecow/genghis/issues">Issues</a></li>'),r.b("\n"+n),r.b(" <li>Version "),r.b(r.v(r.f("version",e,t,0))),r.b("</li>"),r.b("\n"+n),r.b("</ul>"),r.fl()}}),Genghis.Util={route:function(e){return e.replace(app.baseUrl,"").replace(/^\//,"")},parseQuery:function(e){var t={};return e.length&&_.each(e.split("&"),function(e){var n=e.split("="),r=n.shift();t[r]=decodeURIComponent(n.join("="))}),t},buildQuery:function(e){return _.map(e,function(e,t){return t+"="+e}).join("&")},humanizeSize:function(e){if(e==-0)return"n/a";var t=["Bytes","KB","MB","GB","TB","PB"],n=parseInt(Math.floor(Math.log(e)/Math.log(1024)),10),r=0===n?e/Math.pow(1024,n):(e/Math.pow(1024,n)).toFixed(1);return r=Genghis.Util.round(r,2).toString().replace(/\.0+/,""),r+" "+t[n]},humanizeCount:function(e){var t="";return e=e||0,e>1e3&&(e=Math.floor(e/1e3),t=" k"),e>1e3&&(e=Math.floor(e/1e3),t=" M"),e>1e3?"...":e+t},round:function(e,t){if("undefined"==typeof t||0===+t)return Math.round(e);e=+e;var n=-1*+t;return isNaN(e)||"number"!=typeof n||n%1!==0?0/0:(e=e.toString().split("e"),e=Math.round(+(e[0]+"e"+(e[1]?+e[1]-n:-n))),e=e.toString().split("e"),+(e[0]+"e"+(e[1]?+e[1]+n:n)))},escape:function(e){return e?String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):void 0},attachCollapsers:function(e){$(".document",e).on("click","button,span.e",function(e){var t,n,r=$(this).parent(),i=r.children(".v"),o=/^\s*(name|title)\s*/i,s=i.hasClass("o"),a="";r.children(".e").length||(s&&(n=$(_.detect(i.find("> span.p > var"),function(e){return o.test($(e).text())})).siblings("span.v"),0===n.length&&(n=$(_.detect(i.find("> span.p > span.v"),function(e){var t=$(e);return t.hasClass("n")||t.hasClass("b")||t.hasClass("q")&&t.text().length<64}))),n&&n.length&&(t=n.siblings("var").text(),a=(t?t+": ":"")+Genghis.Util.escape(n.text()))),r.append('<span class="e">'+(s?"{":"[")+" <q>"+a+" &hellip;</q> "+(s?"}":"]")+"</span>")),r.toggleClass("collapsed"),e.preventDefault()})},base64Encode:function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",n=e.length,r="",i=0;n>i;i+=3){var o=[e.charCodeAt(i),e.charCodeAt(i+1),e.charCodeAt(i+2)],s=[o[0]>>2,(3&o[0])<<4|o[1]>>4,(15&o[1])<<2|o[2]>>6,63&o[2]];isNaN(o[1])&&(s[2]=64),isNaN(o[2])&&(s[3]=64),r+=t[s[0]]+t[s[1]]+t[s[2]]+t[s[3]]}return r},base64Decode:function(e){var t,n,r,i,o,s,a,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=e.length,u="";e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var d=0;c>d;)i=l.indexOf(e.charAt(d++)),o=l.indexOf(e.charAt(d++)),s=l.indexOf(e.charAt(d++)),a=l.indexOf(e.charAt(d++)),t=i<<2|o>>4,n=(15&o)<<4|s>>2,r=(3&s)<<6|a,u+=String.fromCharCode(t),64!=s&&(u+=String.fromCharCode(n)),64!=a&&(u+=String.fromCharCode(r));return u},base64ToHex:function(e){for(var t=[],n=atob(e.replace(/[=\s]+$/,"")),r=n.length,i=0;r>i;++i){var o=n.charCodeAt(i).toString(16);t.push(1===o.length?"0"+o:o)}return t.join("")},encodeDocumentId:function(e){return _.isObject(e)&&e.hasOwnProperty("$genghisType")&&"ObjectId"==e.$genghisType?e.$value:_.isUndefined(e)?void 0:"~"+this.base64Encode(JSON.stringify(e))},decodeDocumentId:function(e){return _.isString(e)&&"~"===e[0]?this.base64Decode(e.substr(1)):e},download:function(){var e;return function(t){e||(e=$("<iframe>",{id:"genghis-util-download"}).hide().appendTo("body")),e.attr("src",t)}}()},Genghis.JSON={parse:function(src){function addError(e,t){t.error||(error=new Error(e),error.loc=t.loc,error.node=t,t.error=error,errors.push(error))}function throwErrors(e){var t=new Error(""+e.length+" parse error"+(1===e.length?"":"s"));throw t.errors=e,t}function replaceCallExpression(src){function ObjectId(e){return{$genghisType:"ObjectId",$value:e?e.toString():null}}function GenghisDate(e){return new ISODate(e)}function ISODate(e){function t(e){function t(e,t){return t=t||2,(new Array(t+1).join("0")+e).substr(0-t)}function n(e){return e?"."+t(e,3):""}return e=new Date(e),"function"==typeof e.toISOString?e.toISOString():t(e.getUTCFullYear(),4)+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+n(e.getUTCMilliseconds())+"Z"}return{$genghisType:"ISODate",$value:e?t(e):null}}function DBRef(e,t){return{$ref:e,$id:t}}function GenghisRegExp(e,t){return{$genghisType:"RegExp",$value:{$pattern:e?e.toString():null,$flags:t?t.toString():null}}}function BinData(e,t){return{$genghisType:"BinData",$value:{$subtype:e,$binary:t}}}return src=src.replace(/^\s*(new\s+)?(Date|RegExp)(\b)/,"$1Genghis$2$3"),JSON.stringify(eval(src))}function replaceRegExpLiteral(e){var t="";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),replaceCallExpression("GenghisRegExp("+JSON.stringify(e.source)+', "'+t+'")')}function insertHelpers(e){function t(t){chunks[e.range[0]]=t;for(var n=e.range[0]+1;n<e.range[1];n++)chunks[n]=""}if(e.range)if(e.source=function(){return chunks.slice(e.range[0],e.range[1]).join("")},e.update&&_.isObject(e.update)){var n=e.update;Object.keys(n).forEach(function(e){t[e]=n[e]}),e.update=t}else e.update=t}function assertType(e,t){t.type!==e&&addError("Expecting "+e+" but found "+t.type,t)}"string"!=typeof src&&(src=String(src)),src="var __genghis_json__ = "+src;var opts={loc:!0,raw:!0,tokens:!0,tolerant:!0,range:!0},allowedCalls={ObjectId:!0,Date:!0,ISODate:!0,DBRef:!0,RegExp:!0,BinData:!0},allowedPropertyValues={Literal:!0,ObjectExpression:!0,ArrayExpression:!0,NewExpression:!0,CallExpression:!0,UnaryExpression:!0},errors=[],chunks=src.split(""),ast;try{ast=esprima.parse(src,opts)}catch(e){throwErrors([e])}ast.errors.length&&throwErrors(ast.errors);var node;return node=ast,assertType("Program",node),node=node.body,1!==node.length&&addError("Unexpected statement "+node[1].type,node[1]),node=node[0],assertType("VariableDeclaration",node),node=node.declarations,1!==node.length&&addError("Unexpected variable declarations "+node.length,node[1]),node=node[0],assertType("VariableDeclarator",node),node=node.init,"ObjectExpression"!==node.type&&addError("Expected an object expression, found "+node.type,node),errors.length&&throwErrors(errors),function t(e){switch(insertHelpers(e),Object.keys(e).forEach(function(n){var r=e[n];if(Array.isArray(r)){r.forEach(function(e){e&&"string"==typeof e.type&&t(e)})}else r&&"string"==typeof r.type&&(insertHelpers(e),t(r))}),e.type){case"NewExpression":case"CallExpression":e.callee&&!allowedCalls[e.callee.name]?addError("Bad call, bro: "+e.callee.name,e):e.update(replaceCallExpression(e.source()));break;case"Property":e.value&&!allowedPropertyValues[e.value.type]&&addError("Unexpected value: "+e.value.source(),e.value);break;case"Identifier":case"ArrayExpression":case"ObjectExpression":case"UnaryExpression":break;case"Literal":_.isRegExp(e.value)&&e.update(replaceRegExpLiteral(e.value));break;default:addError("Unexpected "+e.type,e)}}(node),errors.length&&throwErrors(errors),function(node){var __genghis_json__;return eval("__genghis_json__ = "+node.source()),__genghis_json__}(node)},stringify:function(e,t){return jQuery("<div>"+this.prettyPrint(e,t,!1)+"</div>").text()},prettyPrint:function(e,t,n){function r(e){function r(e,t){return i("SPAN",e,t)}function i(e,t,n){var r=document.createElement(e);return t&&(r.className=t),n&&("string"==typeof n&&(n=o(n)),r.appendChild(n)),r}function o(e){return document.createTextNode(e)}function s(e){var t,n=r("v q");return n.appendChild(o('"')),u.lastIndex=0,u.test(e)&&(e=e.replace(u,function(e){var t=y[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})),d.test(e)?(t=i("A","s"),t.href=e):t=r("s"),t.appendChild(o(e)),n.appendChild(t),n.appendChild(o('"')),n}function a(e){return(m.test(e)||!p.test(e))&&(e='"'+e.replace(u,function(e){var t=y[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"'),i("VAR",!1,e)}function l(e,t,n){var i=r("call "+n);return i.appendChild(o(e+"(")),_.each(t,function(e,n){i.appendChild(e),n<t.length-1&&i.appendChild(o(", "))}),i.appendChild(o(")")),i}function c(e,t){var u,d,f,h,p,m,v,y,w=g,x="",C=t[e];switch(_.isObject(C)&&"function"==typeof C.toJSON&&(C=C.toJSON(e)),typeof C){case"string":return s(C);case"number":return r("v n",isFinite(C)?String(C):"null");case"boolean":return r("v b",String(C));case"object":if(_.isNull(C))return r("v z","null");if(Object.hasOwnProperty.call(C,"$genghisType"))switch(C.$genghisType){case"ObjectId":return l("ObjectId",[s(C.$value)],"oid");case"ISODate":return l("ISODate",[s(C.$value)],"date");case"RegExp":var S=C.$value.$pattern,k=C.$value.$flags||"";return r("v re","/"+S+"/"+k);case"BinData":return l("BinData",[r("n",String(C.$value.$subtype)),s(C.$value.$binary)],"bindata")}if(g+=b,_.isArray(C)){if(0===C.length)return g=w,r("v a","[]");for(m=r("v a"),n&&g&&(m.collapsible=!0,C.length>10&&(m.collapsed=!0)),m.appendChild(o(g?"[\n"+g:"[")),x=o(g?",\n"+g:","),h=C.length,u=0;h>u;u+=1)u>0&&m.appendChild(x.cloneNode(!1)),m.appendChild(c(u,C)||r("v z","null"));return m.appendChild(o(g?"\n"+w+"]":"]")),g=w,m}p=[];var T=o(g?": ":":"),L=!(!C.$ref||!C.$id);for(d in C)Object.hasOwnProperty.call(C,d)&&(f=c(d,C),f&&(y="p"+(f.collapsed?" collapsed":""),L&&("$ref"==d||"$id"==d||"$db"==d)&&(y=y+" ref-"+d.substr(1)),v=r(y),L&&"$id"==d&&v.setAttribute("data-document-id",Genghis.Util.encodeDocumentId(C[d])),f.collapsible&&v.appendChild(i("button")),v.appendChild(a(d)),v.appendChild(T.cloneNode(!1)),v.appendChild(f),f.collapsed&&(child=r("e"),child.appendChild(o("[ ")),child.appendChild(i("Q",!1,o(" \u2026"))),child.appendChild(o(" ]")),v.appendChild(child)),p.push(v)));if(y="v o",0===p.length)return g=w,r(y,o("{}"));for(L&&(y+=" ref"),m=r(y),m.collapsible=!!n,m.appendChild(o(g?"{\n"+g:"{")),x=o(g?",\n"+g:","),h=p.length,u=0;u<p.length;u++)u>0&&m.appendChild(x.cloneNode(!0)),m.appendChild(p[u]);return m.appendChild(o(g?"\n"+w+"}":"}")),g=w,m}}var u=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,d=/^https?:\/\/[^\s]+$/,f="$A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",h="0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f",p=RegExp("^["+f+"]["+f+h+"]*$"),m=/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/,g="",b=t===!1?"":" ",y={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};
1105
1108
  return g="",v=c("_",{_:e}).innerHTML}return n=n!==!1,r(e)},normalize:function(e,t){return Genghis.JSON.stringify(Genghis.JSON.parse(e),t)}},Genghis.Collections.BaseCollection=Backbone.Collection.extend({firstChildren:function(){return this.collection.toArray().slice(0,10)},hasMoreChildren:function(){return this.collection.length>10}}),Genghis.Models.BaseModel=Backbone.Model.extend({name:function(){return this.get("name")},count:function(){return this.get("count")},humanCount:function(){return Genghis.Util.humanizeCount(this.get("count")||0)},isPlural:function(){return 1!==this.get("count")},humanSize:function(){var e=this.get("size");return e?Genghis.Util.humanizeSize(e):void 0},hasMoreChildren:function(){return this.get("count")>15}}),Genghis.Views.BaseDocument=Backbone.View.extend({errorLines:[],clearErrors:function(){var e=this.editor;this.getErrorBlock().html(""),_.each(this.errorLines,function(t){e.removeLineClass(t,"background","error-line")}),this.errorLines=[]},getEditorValue:function(){this.clearErrors();var e=this.getErrorBlock(),t=this.editor,n=this.errorLines;try{return Genghis.JSON.parse(t.getValue())}catch(r){_.each(r.errors||[r],function(r){var i=r.message;r.lineNumber&&!/Line \d+/i.test(i)&&(i="Line "+r.lineNumber+": "+r.message);var o=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:i,block:!0})});e.append(o.render().el),r.lineNumber&&n.push(t.addLineClass(r.lineNumber-1,"background","error-line"))})}return!1}}),Genghis.Views.BaseNewDocument=Genghis.Views.BaseDocument.extend({initialize:function(){_.bindAll(this,"render","getTextArea","show","refreshEditor","closeModal","cancelEdit","saveDocument","showServerError"),this.render()},render:function(){this.$el=$(this.template.render()).hide().appendTo("body"),this.el=this.$el[0],this.modal=this.$el.modal({backdrop:"static",show:!1,keyboard:!1});var e=this.$(".wrapper");return this.editor=CodeMirror.fromTextArea(this.getTextArea(),_.extend({},Genghis.defaults.codeMirror,{extraKeys:{"Ctrl-Enter":this.saveDocument,"Cmd-Enter":this.saveDocument}})),this.editor.on("focus",function(){e.addClass("focused")}),this.editor.on("blur",function(){e.removeClass("focused")}),$(window).resize(_.throttle(this.refreshEditor,100)),this.modal.bind("hide",this.cancelEdit),this.modal.bind("shown",this.refreshEditor),this.modal.find("button.cancel").bind("click",this.closeModal),this.modal.find("button.save").bind("click",this.saveDocument),this},refreshEditor:function(){this.editor.refresh(),this.editor.focus()},closeModal:function(){this.modal.modal("hide")},cancelEdit:function(){this.editor.setValue("")},getErrorBlock:function(){var e=this.$("div.errors");return 0===e.length&&(e=$('<div class="errors"></div>').prependTo(this.$(".modal-body"))),e},showServerError:function(e){var t=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:e,block:!0})});this.getErrorBlock().append(t.render().el)}}),Genghis.Views.BaseRow=Backbone.View.extend({tagName:"tr",events:{"click a.name":"navigate","click button.destroy":"destroy"},initialize:function(){_.bindAll(this,"render","navigate","remove","destroy"),this.model.bind("change",this.render),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)).toggleClass("error",!!this.model.get("error")).find(".label[title]").tooltip({placement:"bottom"}),this.$(".has-details").popover({html:!0,content:function(){return $(this).siblings(".details").html()},title:function(){return $(this).siblings(".details").attr("title")},trigger:"manual"}).hoverIntent(function(){$(this).popover("show")},function(){$(this).popover("hide")}),this},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},remove:function(){this.$el.remove()},isParanoid:!1,destroy:function(){var e=this.model,t=e.has("name")?e.get("name"):"";if(this.isParanoid){if(!t)throw"Unable to confirm destruction without a confirmation string.";new Genghis.Views.Confirm({header:"Deleting is forever.",body:"Type <strong>"+t+"</strong> to continue:",confirmInput:t,confirmText:"Delete "+t+" forever",confirm:function(){e.destroy()}})}else{var n={confirmText:this.destroyConfirmButton(t),confirm:function(){e.destroy()}};this.destroyConfirmText&&(n.body=this.destroyConfirmText(t)),new Genghis.Views.Confirm(n)}},destroyConfirmButton:function(e){return"<strong>Yes</strong>, delete "+e+" forever"}}),Genghis.Views.BaseSection=Backbone.View.extend({events:{"click .add-form button.show":"showAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"render","updateTitle","showAddForm","submitAddForm","closeAddForm","updateOnKeyup","addModel","addModelAndUpdate","addAll"),this.model&&this.model.bind("change",this.updateTitle),this.collection&&(this.collection.bind("reset",this.render),this.collection.bind("add",this.addModelAndUpdate)),this.render()},render:function(){return this.$el.html(this.template.render({title:this.formatTitle(this.model)})),this.addForm=this.$(".add-form"),this.addButton=this.$(".add-form button.add"),this.addInput=this.$(".add-form input"),this.cancelButton=this.$(".add-form button.cancel"),this.addAll(),this.$("table").tablesorter({textExtraction:function(e){return $(".value",e).text()||$(e).text()}}),this.collection.size()&&this.$("table").trigger("sorton",[[[0,0]]]),this},updateTitle:function(){this.$("> header h2").text(this.formatTitle(this.model))},showAddForm:function(e){e&&e.preventDefault()&&e.preventDefault(),this.addForm.removeClass("inactive"),this.addInput.select().focus()},submitAddForm:function(){this.collection.create({name:this.addInput.val()},{wait:!0,success:this.closeAddForm,error:function(e,t){window.app.alerts.handleError(t)}})},closeAddForm:function(){this.addForm.addClass("inactive"),this.addInput.val("")},updateOnKeyup:function(e){13==e.keyCode&&this.submitAddForm(),27==e.keyCode&&this.closeAddForm()},addModel:function(e){var t=new this.rowView({model:e});this.$("table tbody").append(t.render().el)},addModelAndUpdate:function(e){this.addModel(e),this.$("table").trigger("update")},addAll:function(){this.$("table tbody").html(""),this.collection.each(this.addModel),this.$el.removeClass("spinning")},show:function(){Mousetrap.bind("c",this.showAddForm),$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){Mousetrap.unbind("c"),$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Models.Alert=Backbone.Model.extend({defaults:{level:"warning",block:!1},block:function(){return!!this.get("block")},level:function(){return this.get("level")},msg:function(){return this.get("msg")}}),Genghis.Models.Collection=Genghis.Models.BaseModel.extend({indexesIsPlural:function(){return 1!==this.indexCount()},indexCount:function(){return(this.get("indexes")||[]).length},indexes:function(){return _.map(this.get("indexes"),function(e){return Genghis.JSON.prettyPrint(e.key)})},isGridCollection:function(){return/\.files$/.test(this.get("name"))},humanSize:function(){var e=this.get("stats");return e?Genghis.Util.humanizeSize((e.storageSize||0)+(e.totalIndexSize||0)):void 0},stats:function(){var e=Genghis.Util.humanizeSize,t=this.get("stats");return t?[{name:"Avg. object size",value:e(t.avgObjSize||0)},{name:"Padding factor",value:t.paddingFactor||"n/a"},{name:"Data size",value:e(t.size||0)},{name:"Index size",value:e(t.totalIndexSize||0)},{name:"Storage size",value:e(t.storageSize||0)}]:void 0}}),Genghis.Models.Database=Genghis.Models.BaseModel.extend({firstChildren:function(){return _.first(this.get("collections")||[],15)},humanSize:function(){var e=this.get("stats");return e?Genghis.Util.humanizeSize((e.fileSize||0)+(e.indexSize||0)):void 0},stats:function(){var e=Genghis.Util.humanizeSize,t=this.get("stats");return t?[{name:"Avg. object size",value:e(t.avgObjSize||0)},{name:"Data size",value:e(t.dataSize||0)},{name:"Index size",value:e(t.indexSize||0)},{name:"Storage size",value:e(t.fileSize||0)}]:void 0},error:function(){return this.get("error")}}),Genghis.Models.Document=Backbone.Model.extend({idAttribute:null,initialize:function(){_.bindAll(this,"prettyId","prettyTime","prettyPrint","JSONish","isGridFile","isGridChunk","downloadUrl","fileUrl")},parse:function(e){var t=Genghis.Util.encodeDocumentId(e._id);return t&&(this.id=t),e},url:function(){var e=function(e){return e&&e.url?_.isFunction(e.url)?e.url():e.url:null},t=e(this.collection)||this.urlRoot||urlError();return t=t.split("?").shift(),this.isNew()?t:t+("/"==t.charAt(t.length-1)?"":"/")+encodeURIComponent(this.id)},prettyId:function(){var e=this.get("_id");if(_.isObject(e)&&e.hasOwnProperty("$genghisType"))switch(e.$genghisType){case"ObjectId":return e.$value;case"BinData":if(3==e.$value.$subtype){var t=/^([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$/i,n=Genghis.Util.base64ToHex(e.$value.$binary);if(t.test(n))return n.replace(t,"$1-$2-$3-$4-$5")}return e.$value.$binary.replace(/\=+$/,"")}return Genghis.JSON.stringify(e,!1)},prettyTime:function(){if(!this.collection||this.collection.guessCreationTime){if("undefined"==typeof this._prettyTime){var e=this.get("_id");if(_.isObject(e)&&e.hasOwnProperty("$genghisType")&&"ObjectId"===e.$genghisType&&24==e.$value.length){var t=new Date;t.setTime(1e3*parseInt(e.$value.substring(0,8),16)),this._prettyTime=t.toUTCString()}}return this._prettyTime}},prettyPrint:function(){return Genghis.JSON.prettyPrint(this.toJSON())},JSONish:function(){return Genghis.JSON.stringify(this.toJSON())},isGridFile:function(){return this.get("chunkSize")&&/\.files\/documents\//.test(this.url())},isGridChunk:function(){return this.get("files_id")&&/\.chunks\/documents\//.test(this.url())},downloadUrl:function(){if(!this.isGridFile())throw"Not a GridFS file.";return this.url().replace(/\.files\/documents\//,".files/files/")},fileUrl:function(){if(!this.isGridChunk())throw"Not a GridFS chunk.";return this.url().replace(/\.chunks\/documents\//,".files/documents/").replace(this.id,Genghis.Util.encodeDocumentId(this.get("files_id")))}}),Genghis.Models.Pagination=Backbone.Model.extend({defaults:{page:1,pages:1,limit:50,count:0,total:0},initialize:function(){_.bindAll(this,"decrementTotal")},decrementTotal:function(){this.set({total:this.get("total")-1,count:this.get("count")-1})}}),Genghis.Models.Selection=Backbone.Model.extend({defaults:{server:null,database:null,collection:null,query:null,page:null},initialize:function(){_.bindAll(this,"select","update","nextPage","previousPage"),this.bind("change",this.update),this.pagination=new Genghis.Models.Pagination,this.servers=new Genghis.Collections.Servers,this.currentServer=new Genghis.Models.Server,this.databases=new Genghis.Collections.Databases,this.currentDatabase=new Genghis.Models.Database,this.collections=new Genghis.Collections.Collections,this.currentCollection=new Genghis.Models.Collection,this.documents=new Genghis.Collections.Documents,this.currentDocument=new Genghis.Models.Document},select:function(e,t,n,r,i,o){this.set({server:e||null,database:t||null,collection:n||null,document:r||null,query:i||null,page:o||null})},update:function(){function e(e,t){if(404!==t.status){try{data=JSON.parse(t.responseText)}catch(n){data={}}app.alerts.create({msg:data.error||"Unknown error",level:"error",block:!0})}}function t(t,n,r){return n=n||"Not Found",r=r||"Please try again.",function(t,i){switch(i.status){case 404:app.showSection(),app.showMasthead("404: "+n,"<p>"+r+"</p>",{error:!0});break;default:e(t,i)}}}var n=this.get("server"),r=this.get("database"),i=this.get("collection"),o=this.get("document"),s=this.get("query"),a=this.get("page"),l=app.baseUrl,c={};if(l+="servers",this.servers.url=l,this.servers.fetch({reset:!0,error:e}),n?(l=l+"/"+encodeURIComponent(n),this.currentServer.url=l,this.currentServer.fetch({reset:!0,error:t("databases","Server Not Found")}),l+="/databases",this.databases.url=l,this.databases.fetch({reset:!0,error:e})):(this.currentServer.clear(),this.databases.reset()),r?(l=l+"/"+encodeURIComponent(r),this.currentDatabase.url=l,this.currentDatabase.fetch({reset:!0,error:t("collections","Database Not Found")}),l+="/collections",this.collections.url=l,this.collections.fetch({reset:!0,error:e})):(this.currentDatabase.clear(),this.collections.reset()),i){l=l+"/"+encodeURIComponent(i),this.currentCollection.url=l,this.currentCollection.fetch({reset:!0,error:t("documents","Collection Not Found")}),l+="/documents";var u="";(s||a)&&(s&&(c.q=encodeURIComponent(JSON.stringify(Genghis.JSON.parse(s)))),a&&(c.page=encodeURIComponent(a)),u="?"+Genghis.Util.buildQuery(c)),this.documents.url=l+u,this.documents.fetch({reset:!0,error:e})}else this.currentCollection.clear(),this.documents.reset();o&&(this.currentDocument.clear({silent:!0}),this.currentDocument.id=o,this.currentDocument.urlRoot=l,this.currentDocument.fetch({reset:!0,error:t("document","Document Not Found","But I&#146;m sure there are plenty of other nice documents out there&hellip;")}))},nextPage:function(){return 1+(this.get("page")||1)},previousPage:function(){return Math.max(1,(this.get("page")||1)-1)}}),Genghis.Models.Server=Genghis.Models.BaseModel.extend({editable:function(){return!!this.get("editable")},firstChildren:function(){return _.first(this.get("databases")||[],15)},error:function(){return this.get("error")}}),Genghis.Collections.Alerts=Backbone.Collection.extend({model:Genghis.Models.Alert,initialize:function(){_.bindAll(this,"handleError")},handleError:function(e){if(0!==e.readyState){try{data=JSON.parse(e.responseText)}catch(t){data={error:e.responseText}}msg=data.error||"<strong>FAIL</strong> An unexpected server error has occurred.",this.add({level:"error",msg:msg,block:!msg.search(/<(p|ul|ol|div)[ >]/)})}}}),Genghis.Collections.Collections=Genghis.Collections.BaseCollection.extend({model:Genghis.Models.Collection}),Genghis.Collections.Databases=Genghis.Collections.BaseCollection.extend({model:Genghis.Models.Database}),Genghis.Collections.Documents=Backbone.Collection.extend({model:Genghis.Models.Document,parse:function(e){return app.selection.pagination.set({page:e.page,pages:e.pages,count:e.documents.length,total:e.count}),this.guessCreationTime=_.all(e.documents,function(e){var t=e._id||null;if(!_.isObject(t)||"ObjectId"!=t.$genghisType)return!0;if(24!=t.$value.length)return!1;var n=1e3*parseInt(t.$value.substring(0,8),16);return n>this.start&&n<this.end},{start:1251388342e3,end:(new Date).getTime()+1728e5}),e.documents}}),Genghis.Collections.Servers=Backbone.Collection.extend({model:Genghis.Models.Server,firstChildren:function(){return this.collection.reject(function(e){return e.has("error")}).slice(0,10)},hasMoreChildren:function(){return this.collection.length>10||this.collection.detect(function(e){return e.has("error")})}}),Genghis.Views.Alert=Backbone.View.extend({tagName:"div",template:Genghis.Templates.Alert,events:{"click a.close":"destroy"},initialize:function(){_.bindAll(this,"render","remove","destroy"),this.model.bind("change",this.render),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)),this},destroy:function(){this.model.destroy()},remove:function(){this.$el.remove()}}),Genghis.Views.Alerts=Backbone.View.extend({el:"aside#alerts",initialize:function(){_.bindAll(this,"render","addModel"),this.collection.bind("reset",this.render),this.collection.bind("add",this.addModel)},render:function(){return this.$el.html(""),this},addModel:function(e){var t=new Genghis.Views.Alert({model:e});this.$el.append(t.render().el)}}),Genghis.Views.App=Backbone.View.extend({el:"section#genghis",initialize:function(){_.bindAll(this,"showMasthead","removeMasthead","showSection");var e=this.baseUrl=this.options.baseUrl,t=this.selection=new Genghis.Models.Selection,n=this.alerts=new Genghis.Collections.Alerts,r=this.router=new Genghis.Router;this.navbarView=new Genghis.Views.Navbar({model:t,baseUrl:e,router:r}),this.alertsView=new Genghis.Views.Alerts({collection:n}),this.keyboardShortcutsView=new Genghis.Views.KeyboardShortcuts,this.serversView=new Genghis.Views.Servers({collection:t.servers}),this.databasesView=new Genghis.Views.Databases({model:t.currentServer,collection:t.databases}),this.collectionsView=new Genghis.Views.Collections({model:t.currentDatabase,collection:t.collections}),this.documentsView=new Genghis.Views.Documents({model:t.currentCollection,collection:t.documents,pagination:t.pagination}),this.documentView=new Genghis.Views.Document({model:t.currentDocument}),this.sections={servers:this.serversView,databases:this.databasesView,collections:this.collectionsView,documents:this.documentsView,document:this.documentView},$.getJSON(this.baseUrl+"check-status").error(n.handleError).success(function(e){_.each(e.alerts,function(e){n.add(_.extend({block:!e.msg.search(/<(p|ul|ol|div)[ >]/i)},e))})}),_.defer(function(){t.trigger("change")})},showMasthead:function(e,t,n){this.removeMasthead(!0),mastheadView=new Genghis.Views.Masthead(_.extend(n||{},{heading:e,content:t||""}))},removeMasthead:function(e){var t=$("header.masthead");e||(t=t.not(".sticky")),t.remove()},showSection:function(e){var t=e&&_.has(this.sections,e);this.removeMasthead(),"servers"==e&&this.showWelcome(),$("body").toggleClass("has-section",t),_.each(this.sections,function(t,n){n!=e&&t.hide()}),t&&this.sections[e].show()},showWelcome:_.once(function(){this.showMasthead("",Genghis.Templates.Welcome.render({version:Genghis.version}),{epic:!0,className:"masthead welcome"})})}),Genghis.Views.CollectionRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.CollectionRow,isParanoid:!0}),Genghis.Views.Collections=Genghis.Views.BaseSection.extend({el:"section#collections",template:Genghis.Templates.Collections,rowView:Genghis.Views.CollectionRow,events:{"click .add-form button.show":"showAddForm","click .add-form a.show":"showAddForm","click .add-form a.show-gridfs":"showGridFSAddForm","click .add-form button.add":"submitAddForm","click .add-form button.cancel":"closeAddForm","keyup .add-form input.name":"updateOnKeyup"},initialize:function(){_.bindAll(this,"showGridFSAddForm"),Genghis.Views.BaseSection.prototype.initialize.apply(this,arguments)},render:function(){return Genghis.Views.BaseSection.prototype.render.apply(this,arguments),this.$(".dropdown-toggle").dropdown(),this},formatTitle:function(e){return e.id?e.id+" Collections":"Collections"},submitAddForm:function(){var e=this.addInput.val().replace(/^\s+/,"").replace(/\s+$/,"");if(""===e)return window.app.alerts.add({msg:"Please enter a valid collection name."}),void 0;if(this.addButton.hasClass("add-gridfs")){e=e.replace(/\.(files|chunks)$/,"");var t=_.after(2,this.closeAddForm);this.collection.create({name:e+".files"},{wait:!0,success:t,error:function(e,t){window.app.alerts.handleError(t)}}),this.collection.create({name:e+".chunks"},{wait:!0,success:t,error:function(e,t){window.app.alerts.handleError(t)}})}else this.collection.create({name:e},{wait:!0,success:this.closeAddForm,error:function(e,t){window.app.alerts.handleError(t)}})},showAddForm:function(){var e=this.$(".input-wrapper");e.length&&e.replaceWith(e.find("input")),this.addButton.removeClass("add-gridfs").text("Add collection"),Genghis.Views.BaseSection.prototype.showAddForm.apply(this,arguments)},showGridFSAddForm:function(e){e&&e.preventDefault&&e.preventDefault(),0===this.$(".input-wrapper").length&&(this.addInput.wrap('<div class="input-wrapper input-append">'),$('<span class="add-on">.files</span>').insertAfter(this.addInput)),this.addButton.addClass("add-gridfs").text("Add GridFS collection"),this.addForm.removeClass("inactive"),""===this.addInput.val()&&this.addInput.val("fs"),this.addInput.select().focus()},show:function(){Mousetrap.bind("shift+c",this.showGridFSAddForm),Genghis.Views.BaseSection.prototype.show.apply(this,arguments)},hide:function(){Mousetrap.unbind("shift+c"),Genghis.Views.BaseSection.prototype.hide.apply(this,arguments)}}),Genghis.Views.Confirm=Backbone.View.extend({className:"modal confirm-modal",template:Genghis.Templates.Confirm,events:{"click button.dismiss":"dismiss","click button.confirm":"confirm","keyup .confirm-input":"validateInput"},defaults:{header:null,body:"Really? There is no undo.",confirmText:"Okay",dismissText:"Cancel"},initialize:function(){_.bindAll(this,"render","confirm","validateInput","dismiss","remove"),this.onConfirm=this.options.confirm||function(){},this.confirmInput=this.options.confirmInput,this.modalOptions=_.pick(this.options,"backdrop","keyboard"),this.renderContext=_.defaults(_.pick(this.options,"header","body","confirmText","confirmInput","dismissText"),this.defaults),this.options.show!==!1&&this.render()},render:function(){var e=this.$el.html(this.template.render(this.renderContext));return this.confirmInput&&e.on("shown",function(){e.find(".confirm-input").focus()}),e.modal(this.modalOptions),this},confirm:function(){this.onConfirm(),this.dismiss()},validateInput:function(e){var t=this.$("button.confirm");$(e.target).val()==this.confirmInput?(t.removeAttr("disabled"),13==e.keyCode&&(e.preventDefault(),t.click())):t.attr("disabled",!0)},dismiss:function(){this.$el.on("hidden",this.remove).modal("hide")},remove:function(){this.$el.remove()}}),Genghis.Views.DatabaseRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.DatabaseRow,isParanoid:!0}),Genghis.Views.Databases=Genghis.Views.BaseSection.extend({el:"section#databases",template:Genghis.Templates.Databases,rowView:Genghis.Views.DatabaseRow,formatTitle:function(e){return e.id?e.id+" Databases":"Databases"}}),Genghis.Views.Document=Backbone.View.extend({el:"section#document",template:Genghis.Templates.Document,initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.render)},render:function(){var e=new Genghis.Views.DocumentView({model:this.model});return this.$el.removeClass("spinning").html(this.template.render({model:this.model})),this.$(".content").html(e.render().el),this},show:function(){$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Views.DocumentView=Genghis.Views.BaseDocument.extend({tagName:"article",template:Genghis.Templates.DocumentView,events:{"click a.id":"navigate","click button.edit":"openEditDialog","click button.save":"saveDocument","click button.cancel":"cancelEdit","click button.destroy":"destroy","click a.grid-download":"download","click a.grid-file":"navigate","click .ref .ref-ref .v .s":"navigateColl","click .ref .ref-db .v .s":"navigateDb","click .ref .ref-id .v .s, .ref .ref-id .v.n":"navigateId"},initialize:function(){_.bindAll(this,"render","updateDocument","navigate","openEditDialog","cancelEdit","saveDocument","destroy","remove","download","navigateColl","navigateDb","navigateId","showServerError"),this.model.bind("change",this.updateDocument),this.model.bind("destroy",this.remove)},render:function(){return this.$el.html(this.template.render(this.model)),Genghis.Util.attachCollapsers(this.el),setTimeout(this.updateDocument,1),this},updateDocument:function(){this.$(".document").html("").append(this.model.prettyPrint()).show()},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},navigateDb:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db .v .s").text();app.router.redirectToDatabase(app.selection.currentServer.id,n)},navigateColl:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db .v .s").text()||app.selection.currentDatabase.id,r=t.find(".ref-ref .v .s").text();app.router.redirectToCollection(app.selection.currentServer.id,n,r)},navigateId:function(e){var t=$(e.target).parents(".ref"),n=t.find(".ref-db .v .s").text()||app.selection.currentDatabase.id,r=t.find(".ref-ref .v .s").text()||app.selection.currentCollection.id,i=t.find(".ref-id").attr("data-document-id");app.router.redirectToDocument(app.selection.currentServer.id,n,r,encodeURIComponent(i))},openEditDialog:function(){var e=this.$(".well"),t=Math.max(180,Math.min(600,e.height()+40)),n="editor-"+this.model.id.replace("~","-"),r=$('<textarea id="'+n+'"></textarea>').text(this.model.JSONish()).appendTo(e);this.$(".document").hide();var i=this.$el.addClass("edit");this.editor=CodeMirror.fromTextArea(r[0],_.extend({},Genghis.defaults.codeMirror,{autofocus:!0,extraKeys:{"Ctrl-Enter":this.saveDocument,"Cmd-Enter":this.saveDocument}})),this.editor.on("focus",function(){i.addClass("focused")}),this.editor.on("blur",function(){i.removeClass("focused")}),this.editor.setSize(null,t),r.resize(_.throttle(this.editor.refresh,100))},cancelEdit:function(){this.$el.removeClass("edit focused"),this.editor.toTextArea(),this.$("textarea").remove(),this.updateDocument(),this.$(".well").height("auto")},getErrorBlock:function(){var e=this.$("div.errors");return 0===e.length&&(e=$('<div class="errors"></div>').prependTo(this.el)),e},showServerError:function(e){var t=new Genghis.Views.Alert({model:new Genghis.Models.Alert({level:"error",msg:e,block:!0})});this.getErrorBlock().append(t.render().el)},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){var t=this.showServerError;this.model.clear({silent:!0}),this.model.save(e,{wait:!0,success:this.cancelEdit,error:function(e,n){var r;try{r=JSON.parse(n.responseText).error}catch(i){}t(r||"Error updating document.")}})}},destroy:function(){var e=this.model,t=this.model.isGridFile(),n=t?"file":"document";t&&(this.model.url=this.model.url().replace(".files/documents/",".files/files/")),new Genghis.Views.Confirm({body:"<strong>Really?</strong> "+(t?"This will delete all GridFS chunks as well. <br><br>":"")+"There is no undo.",confirmText:"<strong>Yes</strong>, delete "+n+" forever",confirm:function(){var t=app.selection;e.destroy({wait:!0,error:function(e,t){var r;try{r=JSON.parse(t.responseText).error}catch(i){}app.alerts.create({level:"error",msg:r||"Error deleting "+n+"."})},success:function(){t.pagination.decrementTotal(),t.get("document")&&app.router.redirectTo(t.get("server"),t.get("database"),t.get("collection"),null,t.get("query"))}})}})},remove:function(){this.$el.remove()},download:function(e){Genghis.Util.download(this.model.downloadUrl()),e.preventDefault()}}),Genghis.Views.Documents=Backbone.View.extend({el:"section#documents",template:Genghis.Templates.Documents,events:{"click button.add-document":"createDocument","dragover button.file-upload":"dragGridFile","dragleave button.file-upload":"dragLeave","drop button.file-upload":"dropGridFile"},initialize:function(){_.bindAll(this,"render","addAll","addDocument","createDocument","dragGridFile","dragLeave","dropGridFile"),this.pagination=this.options.pagination,this.collection.bind("reset",this.addAll,this),this.collection.bind("add",this.addDocument,this),this.render()},render:function(){return this.$el.html(this.template.render({})),this.headerView=new Genghis.Views.DocumentsHeader({model:this.pagination}),this.paginationView=new Genghis.Views.Pagination({el:this.$(".pagination-wrapper"),model:this.pagination,collection:this.collection}),this.addAll(),this},addAll:function(){this.$(".content").html(""),this.$("button.add-document").text(this.model.isGridCollection()?"Upload file":"Add document").toggleClass("file-upload",this.model.isGridCollection()),this.collection.each(this.addDocument),this.$el.removeClass("spinning")},addDocument:function(e){var t=new Genghis.Views.DocumentView({model:e});this.$(".content").append(t.render().el)},createDocument:function(e){if(e&&e.preventDefault&&e.preventDefault(),this.model.isGridCollection()){if(!Modernizr.filereader)return app.alerts.create({msg:"<h2>Unable to upload file.</h2> Your browser does not support the File API. Please use a modern browser.",level:"error",block:!0}),void 0;this.getNewGridFileView().show()}else this.getNewDocumentView().show()},dragGridFile:function(e){e.stopPropagation(),e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="copy",$(e.target).addClass("active")},dragLeave:function(e){$(e.target).removeClass("active")},dropGridFile:function(e){return e.stopPropagation(),e.preventDefault(),$(e.target).removeClass("active"),Modernizr.filereader?(this.getNewGridFileView().showMetadata(e.originalEvent.dataTransfer.files[0]),void 0):(app.alerts.create({msg:"<h2>Unable to upload file.</h2> Your browser does not support the File API. Please use a modern browser.",level:"error",block:!0}),void 0)},getNewDocumentView:function(){return this.newDocumentView||(this.newDocumentView=new Genghis.Views.NewDocument({collection:this.collection})),this.newDocumentView},getNewGridFileView:function(){return this.newGridFileView||(this.newGridFileView=new Genghis.Views.NewGridFile({collection:this.collection})),this.newGridFileView},show:function(){Mousetrap.bind("c",this.createDocument),$("body").addClass("section-"+this.$el.attr("id")),this.$el.addClass("spinning").show(),$(document).scrollTop(0)},hide:function(){Mousetrap.unbind("c"),$("body").removeClass("section-"+this.$el.attr("id")),this.$el.hide()}}),Genghis.Views.DocumentsHeader=Backbone.View.extend({el:"section#documents > header h2",initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.render)},render:function(){var e,t=this.model.get("count"),n=this.model.get("page"),r=(this.model.get("pages"),this.model.get("limit")),i=this.model.get("total");if(e=""+i+" Document"+(1!=i?"s":""),i!=t){var o=(n-1)*r+1,s=Math.min((n-1)*r+t,i);e=""+o+" - "+s+" of "+e}return this.$el.html(e),this}}),Genghis.Views.KeyboardShortcuts=Backbone.View.extend({tagName:"div",template:Genghis.Templates.KeyboardShortcuts,events:{"click a.close":"hide"},initialize:function(){_.bindAll(this,"render","show","hide","toggle"),Mousetrap.bind("?",this.toggle),$("footer a.keyboard-shortcuts").click(this.show),this.render()},render:function(){return this.$el.html(this.template.render()).modal({backdrop:!0,keyboard:!0,show:!1}),this},show:function(e){e.preventDefault(),this.$el.modal("show")},hide:function(e){e.preventDefault(),this.$el.modal("hide")},toggle:function(){this.$el.modal("toggle")}}),Genghis.Views.Masthead=Backbone.View.extend({tagName:"header",attributes:{"class":"masthead"},template:Genghis.Templates.Masthead,initialize:function(){this.heading=this.options.heading,this.content=this.options.content||"",this.error=this.options.error||!1,this.epic=this.options.epic||!1,this.sticky=this.options.sticky||!1,this.render()},render:function(){return this.$el.html(this.template.render({heading:this.heading,content:this.content})).toggleClass("error",this.error).toggleClass("epic",this.epic).toggleClass("sticky",this.sticky).insertAfter("header.navbar"),this}}),Genghis.Views.Nav=Backbone.View.extend({el:".navbar nav",template:Genghis.Templates.Nav,events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","navigate","navigateToServers","navigateUp"),this.baseUrl=this.options.baseUrl,this.model.bind("change",this.updateQuery),$("body").bind("click",function(){$(".dropdown-toggle, .menu").parent("li").removeClass("open")}),Mousetrap.bind("s",this.navigateToServers),Mousetrap.bind("u",this.navigateUp),this.render()},render:function(){return this.$el.html(this.template.render({baseUrl:this.baseUrl})),this.serverNavView=new Genghis.Views.NavSection({el:this.$("li.server"),model:this.model.currentServer,collection:this.model.servers}),this.databaseNavView=new Genghis.Views.NavSection({el:this.$("li.database"),model:this.model.currentDatabase,collection:this.model.databases}),this.collectionNavView=new Genghis.Views.NavSection({el:this.$("li.collection"),model:this.model.currentCollection,collection:this.model.collections}),this.searchView=new Genghis.Views.Search({model:this.model}),this.$el.append(this.searchView.render().el),this},navigate:function(e){e.preventDefault(),app.router.navigate(Genghis.Util.route($(e.target).attr("href")),!0)},navigateToServers:function(e){e.preventDefault(),app.router.redirectToIndex()},navigateUp:function(e){e.preventDefault(),app.router.redirectTo(this.model.has("database")&&this.model.get("server"),this.model.has("collection")&&this.model.get("database"),(this.model.has("document")||this.model.has("query"))&&this.model.get("collection"))}}),Genghis.Views.NavSection=Backbone.View.extend({template:Genghis.Templates.NavSection,menuTemplate:Genghis.Templates.NavSectionMenu,initialize:function(){_.bindAll(this,"render"),this.model.bind("change",this.updateLink,this),this.collection.bind("reset",this.renderMenu,this),this.render()},render:function(){return this.$el.html(this.template.render(this.model)),this.$(".dropdown-toggle").hoverIntent(function(e){$(e.target).parent("li").addClass("open").siblings("li").removeClass("open")
1106
1109
  },$.noop),this},updateLink:function(){this.$("a.dropdown-toggle").text(this.model.id?this.model.id:"").attr("href",this.model.id?this.model.url:"")},renderMenu:function(){this.$("ul.dropdown-menu").html(this.menuTemplate.render({model:this.model,collection:this.collection})),this.$("ul.dropdown-menu a span").each(function(e,t){var n=$(t),r=n.text().length;r>3&&n.parent().css("padding-right",""+(r+.5)+"em")})}}),Genghis.Views.Navbar=Backbone.View.extend({el:".navbar",events:{"click a.brand":"onClickBrand"},initialize:function(){this.router=this.options.router,this.navView=new Genghis.Views.Nav({model:this.model,baseUrl:this.options.baseUrl})},onClickBrand:function(e){e.preventDefault(),this.router.navigate("",!0)}}),Genghis.Views.NewDocument=Genghis.Views.BaseNewDocument.extend({el:"#new-document",template:Genghis.Templates.NewDocument,getTextArea:function(){return this.$("#editor-new")[0]},show:function(){this.editor.setValue("{\n \n}\n"),this.editor.setCursor({line:1,ch:4}),this.modal.modal("show")},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){var t=this.closeModal,n=this.showServerError;this.collection.create(e,{wait:!0,success:function(e){t(),app.router.navigate(Genghis.Util.route(e.url()),!0)},error:function(e,t){var r;try{r=JSON.parse(t.responseText).error}catch(i){}n(r||"Error creating document.")}})}}}),Genghis.Views.NewGridFile=Genghis.Views.BaseNewDocument.extend({el:"#new-grid-file",template:Genghis.Templates.NewGridFile,initialize:function(){_.bindAll(this,"handleFileInputChange","showMetadata"),Genghis.Views.BaseNewDocument.prototype.initialize.apply(this,arguments)},render:function(){return Genghis.Views.BaseNewDocument.prototype.render.apply(this,arguments),this.fileInput=$('<input id="new-grid-file-input" type="file">').hide().appendTo("body"),this.currentFile=null,this.fileInput.bind("change",this.handleFileInputChange),this},getTextArea:function(){return this.$("#editor-upload")[0]},show:function(){this.fileInput.click()},handleFileInputChange:function(e){this.showMetadata(e.target.files[0])},showMetadata:function(e){this.currentFile=e,e&&(this.fileInput.val(""),this.editor.setValue(Genghis.JSON.stringify({filename:e.name,contentType:e.type||"binary/octet-stream",metadata:{}})),this.editor.setCursor({line:3,ch:15}),this.modal.modal("show"))},saveDocument:function(){var e=this.getEditorValue();if(e!==!1){if(e.file)return this.showServerError("Unexpected property: 'file'"),void 0;var t=this.closeModal,n=this.showServerError,r=this.collection,i=this.collection.url.replace(".files/documents",".files/files"),o=new FileReader;o.onload=function(o){e.file=o.target.result,$.ajax({type:"POST",url:i,data:JSON.stringify(e),contentType:"application/json"}).success(function(e){r.add(e),t();var n=new Genghis.Models.Document(e).prettyId();app.router.navigate(Genghis.Util.route(r.url+"/"+n),!0)}).error(function(e){var t;try{t=JSON.parse(e.responseText).error}catch(r){}n(t||"Error uploading file.")})},o.readAsDataURL(this.currentFile)}}}),Genghis.Views.Pagination=Backbone.View.extend({template:Genghis.Templates.Pagination,events:{"click a":"navigate"},initialize:function(){_.bindAll(this,"render","urlTemplate","navigate","nextPage","prevPage"),this.model.bind("change",this.render),Mousetrap.bind("n",this.nextPage),Mousetrap.bind("p",this.prevPage)},render:function(){if(1==this.model.get("pages"))this.$el.hide();else{var e=9,t=Math.ceil(e/2),n=this.model.get("page"),r=this.model.get("pages"),i=n>t?Math.max(n-(t-3),1):1,o=r-n>t?Math.min(n+(t-3),r):r,s=o==r?Math.max(r-(e-3),1):i,a=1==i?Math.min(s+(e-3),r):o;a>=r-2&&(a=r),3>=s&&(s=1);var l=this.urlTemplate;this.$el.html(this.template.render({page:n,last:r,firstUrl:l(1),prevUrl:l(Math.max(1,n-1)),nextUrl:l(Math.min(n+1,r)),lastUrl:l(r),pageUrls:_.range(s,a+1).map(function(e){return{index:e,url:l(e),active:e===n}}),isFirst:1===n,isStart:1===s,isEnd:a>=r,isLast:n===r})).show()}return this},urlTemplate:function(e){var t=this.collection.url,n=t.split("?"),r=n.shift(),i=Genghis.Util.parseQuery(n.join("?")),o={page:e};return i.q&&(o.q=encodeURIComponent(app.selection.get("query"))),r+"?"+Genghis.Util.buildQuery(_.extend(i,o))},navigate:function(e){e.preventDefault();var t=$(e.target).attr("href");t&&app.router.navigate(Genghis.Util.route(t),!0)},nextPage:function(e){this.$el.is(":visible")&&(e.preventDefault(),this.$("li.next a[href]").click())},prevPage:function(e){this.$el.is(":visible")&&(e.preventDefault(),this.$("li.prev a[href]").click())}}),Genghis.Views.Search=Backbone.View.extend({tagName:"form",className:"navbar-search form-search control-group",template:Genghis.Templates.Search,events:{"keyup input#navbar-query":"handleSearchKeyup","click span.grippie":"toggleExpanded","dragmove span.grippie":"handleGrippieDrag","click button.cancel":"collapseSearch","click button.search":"findDocumentsAdvanced"},initialize:function(){_.bindAll(this,"render","updateQuery","handleSearchKeyup","findDocuments","findDocumentsAdvanced","focusSearch","blurSearch","advancedSearchToQuery","queryToAdvancedSearch","expandSearch","collapseSearch","collapseNoFocus","toggleExpanded","handleGrippieDrag"),this.model.bind("change",this.updateQuery),this.model.bind("change:collection",this.collapseNoFocus)},render:function(){this.$el.html(this.template.render({query:this.model.get("query")})),this.$el.submit(function(e){e.preventDefault()}),Mousetrap.bind("/",this.focusSearch);var e=this.$el,t=(e.find(".well"),this.expandSearch),n=this.collapseSearch;return this.$(".grippie").bind("mousedown",function(r){function i(r){var i=r.clientY+document.documentElement.scrollTop-e.offset().top;return i>=s&&a>=i&&e.height(i+"px"),e.hasClass("expanded")?s>i&&n():i>100&&t(),!1}function o(t){$(document).unbind("mousemove",i).unbind("mouseup",o),e.hasClass("expanded")||n(),t.preventDefault()}r.preventDefault();var s=30,a=Math.min($(window).height()/2,350);$(document).mousemove(i).mouseup(o)}),this},updateQuery:function(){var e=this.normalizeQuery(this.model.get("query")||this.getDocumentQuery()||"");this.$("input#navbar-query").val(e)},getDocumentQuery:function(){var e=this.model.get("document");return _.isString(e)&&"~"===e[0]&&(e=Genghis.JSON.normalize('{"_id":'+Genghis.Util.decodeDocumentId(e)+"}")),e},handleSearchKeyup:function(e){this.$el.removeClass("error"),13==e.keyCode?(e.preventDefault(),this.findDocuments($(e.target).val())):27==e.keyCode&&this.blurSearch()},findDocuments:function(e){var t=Genghis.Util.route(this.model.currentCollection.url+"/documents");if(e=e.trim(),e.match(/^([a-z\d]+)$/i))t=t+"/"+e;else{try{e=Genghis.JSON.normalize(e,!1)}catch(n){return this.$el.addClass("error"),void 0}t=t+"?"+Genghis.Util.buildQuery({q:encodeURIComponent(e)})}app.router.navigate(t,!0)},findDocumentsAdvanced:function(){this.findDocuments(this.editor.getValue()),this.collapseSearch()},focusSearch:function(e){this.$("input#navbar-query").is(":visible")?(e&&e.preventDefault(),this.$("input#navbar-query").focus()):this.editor&&this.$(".well").is(":visible")&&(e&&e.preventDefault(),this.editor.focus())},blurSearch:function(){this.$("input#navbar-query").blur(),this.updateQuery()},normalizeQuery:function(e){if(e=e.trim(),""!==e)try{e=Genghis.JSON.normalize(e,!1)}catch(t){}return e.replace(/^\{\s*\}$/,"").replace(/^\{\s*(['"]?)_id\1\s*:\s*\{\s*(['"]?)\$id\2\s*:\s*(["'])([a-z\d]+)\3\s*\}\s*\}$/,"$4").replace(/^\{\s*(['"]?)_id\1\s*:\s*(new\s+)?ObjectId\s*\(\s*(["'])([a-z\d]+)\3\s*\)\s*\}$/,"$4")},advancedSearchToQuery:function(){this.$("input#navbar-query").val(this.normalizeQuery(this.editor.getValue()))},queryToAdvancedSearch:function(){var e=this.$("input#navbar-query").val().trim();if(e.match(/^[a-z\d]+$/i)&&(e='{_id:ObjectId("'+e+'")}'),""!==e)try{e=Genghis.JSON.normalize(e,!0)}catch(t){}this.editor.setValue(e)},expandSearch:function(){if(!this.editor){var e=this.$(".search-advanced");this.editor=CodeMirror(this.$(".well")[0],_.extend({},Genghis.defaults.codeMirror,{lineNumbers:!1,extraKeys:{"Ctrl-Enter":this.findDocumentsAdvanced,"Cmd-Enter":this.findDocumentsAdvanced,Esc:this.findDocumentsAdvanced}})),this.editor.on("focus",function(){e.addClass("focused")}),this.editor.on("blur",function(){e.removeClass("focused")}),this.editor.on("change",this.advancedSearchToQuery)}this.queryToAdvancedSearch(),this.$el.addClass("expanded");var t=this.editor,n=this.focusSearch;_.defer(function(){t.refresh(),n()})},collapseSearch:function(){this.collapseNoFocus(),this.focusSearch()},collapseNoFocus:function(){this.$el.removeClass("expanded").css("height","auto")},toggleExpanded:function(){this.$el.hasClass("expanded")?this.collapseSearch():(this.expandSearch(),this.$el.height(Math.floor($(window).height()/4)+"px"))},handleGrippieDrag:function(e){console.log(e)}}),Genghis.Views.ServerRow=Genghis.Views.BaseRow.extend({template:Genghis.Templates.ServerRow,destroyConfirmText:function(e){return"Remove "+e+" from the server list?<br><br>This will not affect any data, and you can add it back at any time."},destroyConfirmButton:function(e){return"<strong>Yes</strong>, remove "+e+" from server list"}}),Genghis.Views.Servers=Genghis.Views.BaseSection.extend({el:"section#servers",template:Genghis.Templates.Servers,rowView:Genghis.Views.ServerRow,render:function(){return Genghis.Views.BaseSection.prototype.render.apply(this,arguments),$(".help",this.addForm).tooltip(),this},updateTitle:function(){},formatTitle:function(){return"Servers"}}),Genghis.Router=function(){function e(){var e=Array.prototype.slice.call(arguments);document.title=e.length?"Genghis \u2014 "+e.join(" \u203a "):"Genghis"}var t=encodeURIComponent;return Backbone.Router.extend({routes:{"":"index",servers:"redirectToIndex","servers/:server":"server","servers/:server/databases":"redirectToServer","servers/:server/databases/:database":"database","servers/:server/databases/:database/collections":"redirectToDatabase","servers/:server/databases/:database/collections/:collection":"collection","servers/:server/databases/:database/collections/:collection/documents":"collectionQueryOrRedirect","servers/:server/databases/:database/collections/:collection/documents?*query":"collectionQueryOrRedirect","servers/:server/databases/:database/collections/:collection/documents/:documentId":"document","*path":"notFound"},index:function(){e(),app.selection.select(),app.showSection("servers")},redirectToIndex:function(){this.navigate("",!0)},server:function(t){e(t),app.selection.select(t),app.showSection("databases")},redirectToServer:function(e){this.navigate("servers/"+t(e),!0)},database:function(t,n){e(t,n),app.selection.select(t,n),app.showSection("collections")},redirectToDatabase:function(e,n){this.navigate("servers/"+t(e)+"/databases/"+t(n),!0)},collection:function(t,n,r){return window.location.search?this.collectionQueryOrRedirect(t,n,r):(e(t,n,r),app.selection.select(t,n,r),app.showSection("documents"),void 0)},redirectToCollection:function(e,n,r){this.navigate("servers/"+t(e)+"/databases/"+t(n)+"/collections/"+t(r),!0)},collectionQueryOrRedirect:function(e,t,n){return window.location.search?this.collectionQuery(e,t,n,window.location.search.substr(1)):(this.redirectToCollection(e,t,n),void 0)},collectionQuery:function(t,n,r,i){e(t,n,r,"Query results");var o=Genghis.Util.parseQuery(i);app.selection.select(t,n,r,null,o.q,o.page),app.showSection("documents")},redirectToQuery:function(e,n,r,i){this.navigate("servers/"+t(e)+"/databases/"+t(n)+"/collections/"+t(r)+"/documents?"+Genghis.Util.buildQuery({q:t(i)}),!0)},document:function(t,n,r,i){e(t,n,r,Genghis.Util.decodeDocumentId(i)),app.selection.select(t,n,r,i),app.showSection("document")},redirectToDocument:function(e,t,n,r){var i=encodeURIComponent;this.navigate("servers/"+i(e)+"/databases/"+i(t)+"/collections/"+i(n)+"/documents/"+i(r),!0)},redirectTo:function(e,t,n,r,i){return e?t?n?r||i?i?this.redirectToQuery(e,t,n,i):this.redirectToDocument(e,t,n,r):this.redirectToCollection(e,t,n):this.redirectToDatabase(e,t):this.redirectToServer(e):this.redirectToIndex()},notFound:function(){e("404: Not Found"),app.showSection(),app.showMasthead("404: Not Found","<p>If you think you've reached this message in error, please press <strong>0</strong> to speak with an operator. Otherwise, hang up and try again.</p>",{error:!0,epic:!0})}})}();
@@ -462,19 +462,16 @@ genghis_backends.each do |backend|
462
462
 
463
463
  describe 'GET /servers/:server/databases/:db/collections/:coll' do
464
464
  before :all do
465
- # TODO: fix path chunks with encoded slashes in them
466
- # so this test can work under rack-protect v1.5.1+
467
- # @db.create_collection 'foo bar.baz/qux\\quux…'
468
- @db.create_collection 'foo bar.baz:qux\\quux…'
465
+ @db.create_collection 'foo bar.baz/qux\\quux…'
469
466
  end
470
467
 
471
468
  it 'returns collection info' do
472
- res = @api.get '/servers/localhost/databases/__genghis_spec_test__/collections/foo%20bar.baz:qux%5Cquux%E2%80%A6'
469
+ res = @api.get '/servers/localhost/databases/__genghis_spec_test__/collections/foo%20bar.baz%2Fqux%5Cquux%E2%80%A6'
473
470
 
474
471
  res.status.should eq 200
475
472
  res.body.should match_json_expression \
476
- id: 'foo bar.baz:qux\\quux…',
477
- name: 'foo bar.baz:qux\\quux…',
473
+ id: 'foo bar.baz/qux\\quux…',
474
+ name: 'foo bar.baz/qux\\quux…',
478
475
  count: 0,
479
476
  indexes: Array,
480
477
  stats: Hash
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: genghisapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.9
4
+ version: 2.3.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -281,7 +281,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
281
281
  version: '0'
282
282
  segments:
283
283
  - 0
284
- hash: -2772733858669943943
284
+ hash: -302669545722259547
285
285
  required_rubygems_version: !ruby/object:Gem::Requirement
286
286
  none: false
287
287
  requirements: