CodeMirror.multiplexingMode=function(e){function n(e,n,r){if("string"==typeof n)return e.indexOf(n,r);var t=n.exec(r?e.slice(r):e);return t?t.index+r:-1}var r=Array.prototype.slice.call(arguments,1),t=r.length;return{startState:function(){return{outer:CodeMirror.startState(e),innerActive:null,inner:null}},copyState:function(n){return{outer:CodeMirror.copyState(e,n.outer),innerActive:n.innerActive,inner:n.innerActive&&CodeMirror.copyState(n.innerActive.mode,n.inner)}},token:function(i,o){if(o.innerActive){var c=o.innerActive;if((s=n(v=i.string,c.close,i.pos))==i.pos)return i.match(c.close),o.innerActive=o.inner=null,c.delimStyle;s>-1&&(i.string=v.slice(0,s));var a=c.mode.token(i,o.inner);s>-1&&(i.string=v);var u=i.current();return(s=u.indexOf(c.close))>-1&&i.backUp(u.length-s),a}for(var l=1/0,v=i.string,d=0;d<t;++d){var s,A=r[d];if((s=n(v,A.open,i.pos))==i.pos)return i.match(A.open),o.innerActive=A,o.inner=CodeMirror.startState(A.mode,e.indent?e.indent(o.outer,""):0),A.delimStyle;-1!=s&&s<l&&(l=s)}l!=1/0&&(i.string=v.slice(0,l));var f=e.token(i,o.outer);return l!=1/0&&(i.string=v),f},indent:function(n,r){var t=n.innerActive?n.innerActive.mode:e;return t.indent?t.indent(n.innerActive?n.inner:n.outer,r):CodeMirror.Pass},blankLine:function(n){var i=n.innerActive?n.innerActive.mode:e;if(i.blankLine&&i.blankLine(n.innerActive?n.inner:n.outer),n.innerActive)"\n"===i.close&&(n.innerActive=n.inner=null);else for(var o=0;o<t;++o){var c=r[o];"\n"===c.open&&(n.innerActive=c,n.inner=CodeMirror.startState(c.mode,i.indent?i.indent(n.outer,""):0))}},electricChars:e.electricChars,innerMode:function(n){return n.inner?{state:n.inner,mode:n.innerActive.mode}:{state:n.outer,mode:e}}}};