2015-10-15 13:01:16 +03:00
/ * *
2016-01-12 08:15:54 -09:00
* simplemde v1 . 9.1
2015-10-15 13:01:16 +03:00
* Copyright Next Step Webs , Inc .
* @ link https : //github.com/NextStepWebs/simplemde-markdown-editor
* @ license MIT
* /
2016-01-12 08:15:54 -09:00
! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , e ) ; else { var t ; t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , t . SimpleMDE = e ( ) } } ( function ( ) { var e ; return function t ( e , n , r ) { function i ( l , a ) { if ( ! n [ l ] ) { if ( ! e [ l ] ) { var s = "function" == typeof require && require ; if ( ! a && s ) return s ( l , ! 0 ) ; if ( o ) return o ( l , ! 0 ) ; var c = new Error ( "Cannot find module '" + l + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var u = n [ l ] = { exports : { } } ; e [ l ] [ 0 ] . call ( u . exports , function ( t ) { var n = e [ l ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , u , u . exports , t , e , n , r ) } return n [ l ] . exports } for ( var o = "function" == typeof require && require , l = 0 ; l < r . length ; l ++ ) i ( r [ l ] ) ; return i } ( { 1 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { var t = e . getWrapperElement ( ) ; e . state . fullScreenRestore = { scrollTop : window . pageYOffset , scrollLeft : window . pageXOffset , width : t . style . width , height : t . style . height } , t . style . width = "" , t . style . height = "auto" , t . className += " CodeMirror-fullscreen" , document . documentElement . style . overflow = "hidden" , e . refresh ( ) } function n ( e ) { var t = e . getWrapperElement ( ) ; t . className = t . className . replace ( /\s*CodeMirror-fullscreen\b/ , "" ) , document . documentElement . style . overflow = "" ; var n = e . state . fullScreenRestore ; t . style . width = n . width , t . style . height = n . height , window . scrollTo ( n . scrollLeft , n . scrollTop ) , e . refresh ( ) } e . defineOption ( "fullScreen" , ! 1 , function ( r , i , o ) { o == e . Init && ( o = ! 1 ) , ! o != ! i && ( i ? t ( r ) : n ( r ) ) } ) } ) } , { "../../lib/codemirror" : 4 } ] , 2 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = /^(\s*)(>[> ]*|[*+-]\s|(\d+)([.)]))(\s*)/ , n = /^(\s*)(>[> ]*|[*+-]|(\d+)[.)])(\s*)$/ , r = /[*+-]\s/ ; e . commands . newlineAndIndentContinueMarkdownList = function ( i ) { if ( i . getOption ( "disableInput" ) ) return e . Pass ; for ( var o = i . listSelections ( ) , l = [ ] , a = 0 ; a < o . length ; a ++ ) { var s = o [ a ] . head , c = i . getStateAfter ( s . line ) , u = c . list !== ! 1 , d = 0 !== c . quote , h = i . getLine ( s . line ) , f = t . exec ( h ) ; if ( ! o [ a ] . empty ( ) || ! u && ! d || ! f ) return void i . execCommand ( "newlineAndIndent" ) ; if ( n . test ( h ) ) i . replaceRange ( "" , { line : s . line , ch : 0 } , { line : s . line , ch : s . ch + 1 } ) , l [ a ] = "\n" ; else { var p = f [ 1 ] , m = f [ 5 ] , g = r . test ( f [ 2 ] ) || f [ 2 ] . indexOf ( ">" ) >= 0 ? f [ 2 ] : parseInt ( f [ 3 ] , 10 ) + 1 + f [ 4 ] ; l [ a ] = "\n" + p + g + m } } i . replaceSelections ( l ) } } ) } , { "../../lib/codemirror" : 4 } ] , 3 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . overlayMode = function ( t , n , r ) { return { startState : function ( ) { return { base : e . startState ( t ) , overlay : e . startState ( n ) , basePos : 0 , baseCur : null , overlayPos : 0 , overlayCur : null , streamSeen : null } } , copyState : function ( r ) { return { base : e . copyState ( t , r . base ) , overlay : e . copyState ( n , r . overlay ) , basePos : r . basePos , baseCur : null , overlayPos : r . overlayPos , overlayCur : null } } , token : function ( e , i ) { return ( e != i . streamSeen || Math . min ( i . basePos , i . overlayPos ) < e . start ) && ( i . streamSeen = e , i . basePos = i . overlayPos = e . start ) , e . start == i . basePos && ( i . baseCur = t . token ( e , i . base ) , i . basePos = e . pos ) , e . start == i . overlayPos && ( e . pos = e . start , i . overlayCur = n . token ( e , i . overlay ) , i . overlayPos = e . pos ) , e . pos = Math . min ( i . basePos , i . overlayPos ) , null == i . overlayCur ? i . baseCur : null != i . baseCur && i . overlay . combineTokens || r && null == i . overlay . combineTokens ? i . baseCur + " " + i . overlayCur : i . overlayCur } , indent : t . indent && function ( e , n ) { return t . indent ( e . base , n ) } , electricChars : t . electricChars , innerMode : function ( e ) { return { state : e . base , mode : t } } , blankLine : function ( e ) { t . blankLine && t . blankLine ( e . base ) , n . blankLine && n . blankLine ( e . overlay ) } } } } ) } , { "../../lib/codemirror" : 4 } ] , 4 : [ function ( t , n , r ) { ! function ( t ) { if ( "object" == typeof r && "object" == typeof n ) n . exports = t ( ) ; else { if ( "function" == typeof e && e . amd ) return e ( [ ] , t ) ; ( this || window ) . CodeMirror = t ( ) } } ( function ( ) { "use strict" ; function e ( n , r ) { if ( ! ( this instanceof e ) ) return new e ( n , r ) ; this . options = r = r ? zi ( r ) : { } ,
if ( t . frontier >= e . display . viewFrom ) { var l = o . styles , a = o . text . length > e . options . maxHighlightLength , s = Ir ( e , o , a ? al ( t . mode , r ) : r , ! 0 ) ; o . styles = s . styles ; var c = o . styleClasses , u = s . classes ; u ? o . styleClasses = u : c && ( o . styleClasses = null ) ; for ( var d = ! l || l . length != o . styles . length || c != u && ( ! c || ! u || c . bgClass != u . bgClass || c . textClass != u . textClass ) , h = 0 ; ! d && h < l . length ; ++ h ) d = l [ h ] != o . styles [ h ] ; d && i . push ( t . frontier ) , o . stateAfter = a ? r : al ( t . mode , r ) } else o . text . length <= e . options . maxHighlightLength && Pr ( e , o . text , r ) , o . stateAfter = t . frontier % 5 == 0 ? al ( t . mode , r ) : null ; return ++ t . frontier , + new Date > n ? ( Be ( e , e . options . workDelay ) , ! 0 ) : void 0 } ) , i . length && At ( e , function ( ) { for ( var t = 0 ; t < i . length ; t ++ ) Pt ( e , i [ t ] , "text" ) } ) } } function je ( e , t , n ) { for ( var r , i , o = e . doc , l = n ? - 1 : t - ( e . doc . mode . innerMode ? 1e3 : 100 ) , a = t ; a > l ; -- a ) { if ( a <= o . first ) return o . first ; var s = Zr ( o , a - 1 ) ; if ( s . stateAfter && ( ! n || a <= o . frontier ) ) return a ; var c = Bl ( s . text , null , e . options . tabSize ) ; ( null == i || r > c ) && ( i = a - 1 , r = c ) } return i } function qe ( e , t , n ) { var r = e . doc , i = e . display ; if ( ! r . mode . startState ) return ! 0 ; var o = je ( e , t , n ) , l = o > r . first && Zr ( r , o - 1 ) . stateAfter ; return l = l ? al ( r . mode , l ) : sl ( r . mode ) , r . iter ( o , t , function ( n ) { Pr ( e , n . text , l ) ; var a = o == t - 1 || o % 5 == 0 || o >= i . viewFrom && o < i . viewTo ; n . stateAfter = a ? al ( r . mode , l ) : null , ++ o } ) , n && ( r . frontier = o ) , l } function _e ( e ) { return e . lineSpace . offsetTop } function Ge ( e ) { return e . mover . offsetHeight - e . lineSpace . offsetHeight } function Ue ( e ) { if ( e . cachedPaddingH ) return e . cachedPaddingH ; var t = Gi ( e . measure , qi ( "pre" , "x" ) ) , n = window . getComputedStyle ? window . getComputedStyle ( t ) : t . currentStyle , r = { left : parseInt ( n . paddingLeft ) , right : parseInt ( n . paddingRight ) } ; return isNaN ( r . left ) || isNaN ( r . right ) || ( e . cachedPaddingH = r ) , r } function $e ( e ) { return Il - e . display . nativeBarWidth } function Ve ( e ) { return e . display . scroller . clientWidth - $e ( e ) - e . display . barWidth } function Ke ( e ) { return e . display . scroller . clientHeight - $e ( e ) - e . display . barHeight } function Xe ( e , t , n ) { var r = e . options . lineWrapping , i = r && Ve ( e ) ; if ( ! t . measure . heights || r && t . measure . width != i ) { var o = t . measure . heights = [ ] ; if ( r ) { t . measure . width = i ; for ( var l = t . text . firstChild . getClientRects ( ) , a = 0 ; a < l . length - 1 ; a ++ ) { var s = l [ a ] , c = l [ a + 1 ] ; Math . abs ( s . bottom - c . bottom ) > 2 && o . push ( ( s . bottom + c . top ) / 2 - n . top ) } } o . push ( n . bottom - n . top ) } } function Ye ( e , t , n ) { if ( e . line == t ) return { map : e . measure . map , cache : e . measure . cache } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( e . rest [ r ] == t ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] } ; for ( var r = 0 ; r < e . rest . length ; r ++ ) if ( ti ( e . rest [ r ] ) > n ) return { map : e . measure . maps [ r ] , cache : e . measure . caches [ r ] , before : ! 0 } } function Ze ( e , t ) { t = xr ( t ) ; var n = ti ( t ) , r = e . display . externalMeasured = new Dt ( e . doc , t , n ) ; r . lineN = n ; var i = r . built = Fr ( e , r ) ; return r . text = i . pre , Gi ( e . display . lineMeasure , i . pre ) , r } function Qe ( e , t , n , r ) { return tt ( e , et ( e , t ) , n , r ) } function Je ( e , t ) { if ( t >= e . display . viewFrom && t < e . display . viewTo ) return e . display . view [ Ft ( e , t ) ] ; var n = e . display . externalMeasured ; return n && t >= n . lineN && t < n . lineN + n . size ? n : void 0 } function et ( e , t ) { var n = ti ( t ) , r = Je ( e , n ) ; r && ! r . text ? r = null : r && r . changes && ( E ( e , r , n , D ( e ) ) , e . curOp . forceUpdate = ! 0 ) , r || ( r = Ze ( e , t ) ) ; var i = Ye ( r , t , n ) ; return { line : t , view : r , rect : null , map : i . map , cache : i . cache , before : i . before , hasHeights : ! 1 } } function tt ( e , t , n , r , i ) { t . before && ( n = - 1 ) ; var o , l = n + ( r || "" ) ; return t . cache . hasOwnProperty ( l ) ? o = t . cache [ l ] : ( t . rect || ( t . rect = t . view . text . getBoundingClientRect ( ) ) , t . hasHeights || ( Xe ( e , t . view , t . rect ) , t . hasHeights = ! 0 ) , o = rt ( e , t , n , r ) , o . bogus || ( t . cache [ l ] = o ) ) , { left : o . left , right : o . right , top : i ? o . rtop : o . top , bottom : i ? o . rbottom : o . bottom } } function nt ( e , t , n ) { for ( var r , i , o , l , a = 0 ; a < e . length ; a += 3 ) { var s = e [ a ] , c = e [ a + 1 ] ; if ( s > t ? ( i = 0 , o = 1 , l = "left" ) : c > t ? ( i = t - s , o = i + 1 ) : ( a == e . length - 3 || t == c && e [ a + 3 ] > t ) && ( o = c - s , i = o - 1 , t >= c && ( l = "right" ) ) , null != i ) { if ( r = e [ a + 2 ] , s == c && n == ( r . insertLeft ? "left" : "right" ) && ( l = n ) , "left" == n && 0 == i ) for ( ; a && e [ a - 2 ] == e [ a - 3 ] && e [ a - 1 ] . insertLeft ; ) r = e [ ( a -= 3 ) + 2 ] , l = "left" ; if ( "right" == n && i == c - s ) for ( ; a < e . length - 3 && e [ a + 3 ] == e [ a + 4 ] && ! e [ a + 5 ] . insertLeft ; ) r = e [ ( a += 3 ) + 2 ] , l = "right" ; break } } return { node : r , start : i , end : o , collapse : l , coverStart : s , coverEnd : c } } function rt ( e , t , n , r ) { var i , o = nt ( t . map , n , r ) , l = o . node , a = o . start , s = o . end , c = o . collapse ; if ( 3 == l . nodeType ) { for ( var u = 0 ; 4 > u ; u ++ ) { for ( ; a && ji ( t . line . text . charAt ( o . coverStart + a ) ) ;
e . cm ) ) { Et ( e . cm , e . first , e . first - t , t ) ; for ( var n = e . cm . display , r = n . viewFrom ; r < n . viewTo ; r ++ ) Pt ( e . cm , r , "gutter" ) } } function On ( e , t , n , r ) { if ( e . cm && ! e . cm . curOp ) return Ot ( e . cm , On ) ( e , t , n , r ) ; if ( t . to . line < e . first ) return void An ( e , t . text . length - 1 - ( t . to . line - t . from . line ) ) ; if ( ! ( t . from . line > e . lastLine ( ) ) ) { if ( t . from . line < e . first ) { var i = t . text . length - 1 - ( e . first - t . from . line ) ; An ( e , i ) , t = { from : zo ( e . first , 0 ) , to : zo ( t . to . line + i , t . to . ch ) , text : [ Hi ( t . text ) ] , origin : t . origin } } var o = e . lastLine ( ) ; t . to . line > o && ( t = { from : t . from , to : zo ( o , Zr ( e , o ) . text . length ) , text : [ t . text [ 0 ] ] , origin : t . origin } ) , t . removed = Qr ( e , t . from , t . to ) , n || ( n = kn ( e , t ) ) , e . cm ? Wn ( e . cm , t , r ) : $r ( e , t , r ) , Me ( e , n , Pl ) } } function Wn ( e , t , n ) { var r = e . doc , i = e . display , l = t . from , a = t . to , s = ! 1 , c = l . line ; e . options . lineWrapping || ( c = ti ( xr ( Zr ( r , l . line ) ) ) , r . iter ( c , a . line + 1 , function ( e ) { return e == i . maxLine ? ( s = ! 0 , ! 0 ) : void 0 } ) ) , r . sel . contains ( t . from , t . to ) > - 1 && Mi ( e ) , $r ( r , t , n , o ( e ) ) , e . options . lineWrapping || ( r . iter ( c , l . line + t . text . length , function ( e ) { var t = d ( e ) ; t > i . maxLineLength && ( i . maxLine = e , i . maxLineLength = t , i . maxLineChanged = ! 0 , s = ! 1 ) } ) , s && ( e . curOp . updateMaxLine = ! 0 ) ) , r . frontier = Math . min ( r . frontier , l . line ) , Be ( e , 400 ) ; var u = t . text . length - ( a . line - l . line ) - 1 ; t . full ? Et ( e ) : l . line != a . line || 1 != t . text . length || Ur ( e . doc , t ) ? Et ( e , l . line , a . line + 1 , u ) : Pt ( e , l . line , "text" ) ; var h = Ni ( e , "changes" ) , f = Ni ( e , "change" ) ; if ( f || h ) { var p = { from : l , to : a , text : t . text , removed : t . removed , origin : t . origin } ; f && Si ( e , "change" , e , p ) , h && ( e . curOp . changeObjs || ( e . curOp . changeObjs = [ ] ) ) . push ( p ) } e . display . selForContextMenu = null } function Hn ( e , t , n , r , i ) { if ( r || ( r = n ) , Fo ( r , n ) < 0 ) { var o = r ; r = n , n = o } "string" == typeof t && ( t = e . splitLines ( t ) ) , Tn ( e , { from : n , to : r , text : t , origin : i } ) } function Dn ( e , t ) { if ( ! Ti ( e , "scrollCursorIntoView" ) ) { var n = e . display , r = n . sizer . getBoundingClientRect ( ) , i = null ; if ( t . top + r . top < 0 ? i = ! 0 : t . bottom + r . top > ( window . innerHeight || document . documentElement . clientHeight ) && ( i = ! 1 ) , null != i && ! Mo ) { var o = qi ( "div" , " " , null , "position: absolute; top: " + ( t . top - n . viewOffset - _e ( e . display ) ) + "px; height: " + ( t . bottom - t . top + $e ( e ) + n . barHeight ) + "px; left: " + t . left + "px; width: 2px;" ) ; e . display . lineSpace . appendChild ( o ) , o . scrollIntoView ( i ) , e . display . lineSpace . removeChild ( o ) } } } function In ( e , t , n , r ) { null == r && ( r = 0 ) ; for ( var i = 0 ; 5 > i ; i ++ ) { var o = ! 1 , l = ft ( e , t ) , a = n && n != t ? ft ( e , n ) : l , s = Pn ( e , Math . min ( l . left , a . left ) , Math . min ( l . top , a . top ) - r , Math . max ( l . left , a . left ) , Math . max ( l . bottom , a . bottom ) + r ) , c = e . doc . scrollTop , u = e . doc . scrollLeft ; if ( null != s . scrollTop && ( rn ( e , s . scrollTop ) , Math . abs ( e . doc . scrollTop - c ) > 1 && ( o = ! 0 ) ) , null != s . scrollLeft && ( on ( e , s . scrollLeft ) , Math . abs ( e . doc . scrollLeft - u ) > 1 && ( o = ! 0 ) ) , ! o ) break } return l } function En ( e , t , n , r , i ) { var o = Pn ( e , t , n , r , i ) ; null != o . scrollTop && rn ( e , o . scrollTop ) , null != o . scrollLeft && on ( e , o . scrollLeft ) } function Pn ( e , t , n , r , i ) { var o = e . display , l = xt ( e . display ) ; 0 > n && ( n = 0 ) ; var a = e . curOp && null != e . curOp . scrollTop ? e . curOp . scrollTop : o . scroller . scrollTop , s = Ke ( e ) , c = { } ; i - n > s && ( i = n + s ) ; var u = e . doc . height + Ge ( o ) , d = l > n , h = i > u - l ; if ( a > n ) c . scrollTop = d ? 0 : n ; else if ( i > a + s ) { var f = Math . min ( n , ( h ? u : i ) - s ) ; f != a && ( c . scrollTop = f ) } var p = e . curOp && null != e . curOp . scrollLeft ? e . curOp . scrollLeft : o . scroller . scrollLeft , m = Ve ( e ) - ( e . options . fixedGutter ? o . gutters . offsetWidth : 0 ) , g = r - t > m ; return g && ( r = t + m ) , 10 > t ? c . scrollLeft = 0 : p > t ? c . scrollLeft = Math . max ( 0 , t - ( g ? 0 : 10 ) ) : r > m + p - 3 && ( c . scrollLeft = r + ( g ? 0 : 10 ) - m ) , c } function zn ( e , t , n ) { ( null != t || null != n ) && Bn ( e ) , null != t && ( e . curOp . scrollLeft = ( null == e . curOp . scrollLeft ? e . doc . scrollLeft : e . curOp . scrollLeft ) + t ) , null != n && ( e . curOp . scrollTop = ( null == e . curOp . scrollTop ? e . doc . scrollTop : e . curOp . scrollTop ) + n ) } function Fn ( e ) { Bn ( e ) ; var t = e . getCursor ( ) , n = t , r = t ; e . options . lineWrapping || ( n = t . ch ? zo ( t . line , t . ch - 1 ) : t , r = zo ( t . line , t . ch + 1 ) ) , e . curOp . scrollToPos = { from : n , to : r , margin : e . options . cursorScrollMargin , isCursor : ! 0 } } function Bn ( e ) { var t = e . curOp . scrollToPos ; if ( t ) { e . curOp . scrollToPos = null ; var n = pt ( e , t . from ) , r = pt ( e , t . to ) , i = Pn ( e , Math . min ( n . left , r . left ) , Math . min ( n . top , r . top ) - t . margin , Math . max ( n . right , r . right ) , Math . max ( n . bottom , r . bottom ) + t . margin ) ; e . scrollTo ( i . scrollLeft , i . scrollTop ) } } function Rn ( e , t , n , r ) { var i , o = e . doc ; null == n && ( n = "add" ) , "smart" == n && ( o . mode . indent ? i = qe ( e , t ) : n = "prev" ) ; var l = e . options . tabSize , a = Zr ( o , t ) , s = Bl ( a . text , null , l ) ; a . stateA
if ( ! i || 0 == i [ 0 ] . level ) { var o = Math . max ( 0 , r . text . search ( /\S/ ) ) , l = t . line == n . line && t . ch <= o && t . ch ; return zo ( n . line , l ? 0 : o ) } return n } function so ( e , t , n ) { var r = e [ 0 ] . level ; return t == r ? ! 0 : n == r ? ! 1 : n > t } function co ( e , t ) { oa = null ; for ( var n , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; if ( i . from < t && i . to > t ) return r ; if ( i . from == t || i . to == t ) { if ( null != n ) return so ( e , i . level , e [ n ] . level ) ? ( i . from != i . to && ( oa = n ) , r ) : ( i . from != i . to && ( oa = r ) , n ) ; n = r } } return n } function uo ( e , t , n , r ) { if ( ! r ) return t + n ; do t += n ; while ( t > 0 && ji ( e . text . charAt ( t ) ) ) ; return t } function ho ( e , t , n , r ) { var i = ii ( e ) ; if ( ! i ) return fo ( e , t , n , r ) ; for ( var o = co ( i , t ) , l = i [ o ] , a = uo ( e , t , l . level % 2 ? - n : n , r ) ; ; ) { if ( a > l . from && a < l . to ) return a ; if ( a == l . from || a == l . to ) return co ( i , a ) == o ? a : ( l = i [ o += n ] , n > 0 == l . level % 2 ? l . to : l . from ) ; if ( l = i [ o += n ] , ! l ) return null ; a = n > 0 == l . level % 2 ? uo ( e , l . to , - 1 , r ) : uo ( e , l . from , 1 , r ) } } function fo ( e , t , n , r ) { var i = t + n ; if ( r ) for ( ; i > 0 && ji ( e . text . charAt ( i ) ) ; ) i += n ; return 0 > i || i > e . text . length ? null : i } var po = navigator . userAgent , mo = navigator . platform , go = /gecko\/\d/i . test ( po ) , vo = /MSIE \d/ . test ( po ) , xo = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/ . exec ( po ) , yo = vo || xo , bo = yo && ( vo ? document . documentMode || 6 : xo [ 1 ] ) , wo = /WebKit\// . test ( po ) , ko = wo && /Qt\/\d+\.\d+/ . test ( po ) , Co = /Chrome\// . test ( po ) , So = /Opera\// . test ( po ) , Lo = /Apple Computer/ . test ( navigator . vendor ) , To = /Mac OS X 1\d\D([8-9]|\d\d)\D/ . test ( po ) , Mo = /PhantomJS/ . test ( po ) , No = /AppleWebKit/ . test ( po ) && /Mobile\/\w+/ . test ( po ) , Ao = No || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i . test ( po ) , Oo = No || /Mac/ . test ( mo ) , Wo = /win/i . test ( mo ) , Ho = So && po . match ( /Version\/(\d*\.\d*)/ ) ; Ho && ( Ho = Number ( Ho [ 1 ] ) ) , Ho && Ho >= 15 && ( So = ! 1 , wo = ! 0 ) ; var Do = Oo && ( ko || So && ( null == Ho || 12.11 > Ho ) ) , Io = go || yo && bo >= 9 , Eo = ! 1 , Po = ! 1 ; m . prototype = zi ( { update : function ( e ) { var t = e . scrollWidth > e . clientWidth + 1 , n = e . scrollHeight > e . clientHeight + 1 , r = e . nativeBarWidth ; if ( n ) { this . vert . style . display = "block" , this . vert . style . bottom = t ? r + "px" : "0" ; var i = e . viewHeight - ( t ? r : 0 ) ; this . vert . firstChild . style . height = Math . max ( 0 , e . scrollHeight - e . clientHeight + i ) + "px" } else this . vert . style . display = "" , this . vert . firstChild . style . height = "0" ; if ( t ) { this . horiz . style . display = "block" , this . horiz . style . right = n ? r + "px" : "0" , this . horiz . style . left = e . barLeft + "px" ; var o = e . viewWidth - e . barLeft - ( n ? r : 0 ) ; this . horiz . firstChild . style . width = e . scrollWidth - e . clientWidth + o + "px" } else this . horiz . style . display = "" , this . horiz . firstChild . style . width = "0" ; return ! this . checkedZeroWidth && e . clientHeight > 0 && ( 0 == r && this . zeroWidthHack ( ) , this . checkedZeroWidth = ! 0 ) , { right : n ? r : 0 , bottom : t ? r : 0 } } , setScrollLeft : function ( e ) { this . horiz . scrollLeft != e && ( this . horiz . scrollLeft = e ) , this . disableHoriz && this . enableZeroWidthBar ( this . horiz , this . disableHoriz ) } , setScrollTop : function ( e ) { this . vert . scrollTop != e && ( this . vert . scrollTop = e ) , this . disableVert && this . enableZeroWidthBar ( this . vert , this . disableVert ) } , zeroWidthHack : function ( ) { var e = Oo && ! To ? "12px" : "18px" ; this . horiz . style . height = this . vert . style . width = e , this . horiz . style . pointerEvents = this . vert . style . pointerEvents = "none" , this . disableHoriz = new Oi , this . disableVert = new Oi } , enableZeroWidthBar : function ( e , t ) { function n ( ) { var r = e . getBoundingClientRect ( ) , i = document . elementFromPoint ( r . left + 1 , r . bottom - 1 ) ; i != e ? e . style . pointerEvents = "none" : t . set ( 1e3 , n ) } e . style . pointerEvents = "auto" , t . set ( 1e3 , n ) } , clear : function ( ) { var e = this . horiz . parentNode ; e . removeChild ( this . horiz ) , e . removeChild ( this . vert ) } } , m . prototype ) , g . prototype = zi ( { update : function ( ) { return { bottom : 0 , right : 0 } } , setScrollLeft : function ( ) { } , setScrollTop : function ( ) { } , clear : function ( ) { } } , g . prototype ) , e . scrollbarModel = { "native" : m , "null" : g } , L . prototype . signal = function ( e , t ) { Ni ( e , t ) && this . events . push ( arguments ) } , L . prototype . finish = function ( ) { for ( var e = 0 ; e < this . events . length ; e ++ ) Hl . apply ( null , this . events [ e ] ) } ; var zo = e . Pos = function ( e , t ) { return this instanceof zo ? ( this . line = e , void ( this . ch = t ) ) : new zo ( e , t ) } , Fo = e . cmpPos = function ( e , t ) { return e . line - t . line || e . ch - t . ch } , Bo = null ; ne . prototype = zi ( { init : function ( e ) { function t ( e ) { if ( ! Ti ( r , e ) ) { if ( r . somethingSelected ( ) ) Bo = r . getSelections ( ) , n . inaccurateSelection && ( n . prevInput = "" , n . inaccurateSelection = ! 1 , o . value = Bo . join ( "\n" ) , ql ( o ) ) ; else { if ( ! r . options . lineWiseCopyCut ) return ; var t = ee ( r ) ; Bo = t . text , "cut" == e . type ? r . setSelections
e . redoSelection ( ) } , goDocStart : function ( e ) { e . extendSelection ( zo ( e . firstLine ( ) , 0 ) ) } , goDocEnd : function ( e ) { e . extendSelection ( zo ( e . lastLine ( ) ) ) } , goLineStart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return oo ( e , t . head . line ) } , { origin : "+move" , bias : 1 } ) } , goLineStartSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { return ao ( e , t . head ) } , { origin : "+move" , bias : 1 } ) } , goLineEnd : function ( e ) { e . extendSelectionsBy ( function ( t ) { return lo ( e , t . head . line ) } , { origin : "+move" , bias : - 1 } ) } , goLineRight : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : e . display . lineDiv . offsetWidth + 100 , top : n } , "div" ) } , Fl ) } , goLineLeft : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 ; return e . coordsChar ( { left : 0 , top : n } , "div" ) } , Fl ) } , goLineLeftSmart : function ( e ) { e . extendSelectionsBy ( function ( t ) { var n = e . charCoords ( t . head , "div" ) . top + 5 , r = e . coordsChar ( { left : 0 , top : n } , "div" ) ; return r . ch < e . getLine ( r . line ) . search ( /\S/ ) ? ao ( e , t . head ) : r } , Fl ) } , 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 ( " " ) } , insertSoftTab : function ( e ) { for ( var t = [ ] , n = e . listSelections ( ) , r = e . options . tabSize , i = 0 ; i < n . length ; i ++ ) { var o = n [ i ] . from ( ) , l = Bl ( e . getLine ( o . line ) , o . ch , r ) ; t . push ( new Array ( r - l % r + 1 ) . join ( " " ) ) } e . replaceSelections ( t ) } , defaultTab : function ( e ) { e . somethingSelected ( ) ? e . indentSelection ( "add" ) : e . execCommand ( "insertTab" ) } , transposeChars : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) , n = [ ] , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] . head , o = Zr ( e . doc , i . line ) . text ; if ( o ) if ( i . ch == o . length && ( i = new zo ( i . line , i . ch - 1 ) ) , i . ch > 0 ) i = new zo ( i . line , i . ch + 1 ) , e . replaceRange ( o . charAt ( i . ch - 1 ) + o . charAt ( i . ch - 2 ) , zo ( i . line , i . ch - 2 ) , i , "+transpose" ) ; else if ( i . line > e . doc . first ) { var l = Zr ( e . doc , i . line - 1 ) . text ; l && e . replaceRange ( o . charAt ( 0 ) + e . doc . lineSeparator ( ) + l . charAt ( l . length - 1 ) , zo ( i . line - 1 , l . length - 1 ) , zo ( i . line , 1 ) , "+transpose" ) } n . push ( new de ( i , i ) ) } e . setSelections ( n ) } ) } , newlineAndIndent : function ( e ) { At ( e , function ( ) { for ( var t = e . listSelections ( ) . length , n = 0 ; t > n ; n ++ ) { var r = e . listSelections ( ) [ n ] ; e . replaceRange ( e . doc . lineSeparator ( ) , r . anchor , r . head , "+input" ) , e . indentLine ( r . from ( ) . line + 1 , null , ! 0 ) } Fn ( e ) } ) } , toggleOverwrite : function ( e ) { e . toggleOverwrite ( ) } } , ul = e . keyMap = { } ; ul . basic = { Left : "goCharLeft" , Right : "goCharRight" , Up : "goLineUp" , Down : "goLineDown" , End : "goLineEnd" , Home : "goLineStartSmart" , PageUp : "goPageUp" , PageDown : "goPageDown" , Delete : "delCharAfter" , Backspace : "delCharBefore" , "Shift-Backspace" : "delCharBefore" , Tab : "defaultTab" , "Shift-Tab" : "indentAuto" , Enter : "newlineAndIndent" , Insert : "toggleOverwrite" , Esc : "singleSelection" } , ul . pcDefault = { "Ctrl-A" : "selectAll" , "Ctrl-D" : "deleteLine" , "Ctrl-Z" : "undo" , "Shift-Ctrl-Z" : "redo" , "Ctrl-Y" : "redo" , "Ctrl-Home" : "goDocStart" , "Ctrl-End" : "goDocEnd" , "Ctrl-Up" : "goLineUp" , "Ctrl-Down" : "goLineDown" , "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" , "Ctrl-U" : "undoSelection" , "Shift-Ctrl-U" : "redoSelection" , "Alt-U" : " re
e . defineMode ( "gfm" , function ( n , r ) { function i ( e ) { return e . code = ! 1 , null } var o = 0 , l = { startState : function ( ) { return { code : ! 1 , codeBlock : ! 1 , ateSpace : ! 1 } } , copyState : function ( e ) { return { code : e . code , codeBlock : e . codeBlock , ateSpace : e . ateSpace } } , token : function ( e , n ) { if ( n . combineTokens = null , n . codeBlock ) return e . match ( /^```+/ ) ? ( n . codeBlock = ! 1 , null ) : ( e . skipToEnd ( ) , null ) ; if ( e . sol ( ) && ( n . code = ! 1 ) , e . sol ( ) && e . match ( /^```+/ ) ) return e . skipToEnd ( ) , n . codeBlock = ! 0 , null ; if ( "`" === e . peek ( ) ) { e . next ( ) ; var i = e . pos ; e . eatWhile ( "`" ) ; var l = 1 + e . pos - i ; return n . code ? l === o && ( n . code = ! 1 ) : ( o = l , n . code = ! 0 ) , null } if ( n . code ) return e . next ( ) , null ; if ( e . eatSpace ( ) ) return n . ateSpace = ! 0 , null ; if ( ( e . sol ( ) || n . ateSpace ) && ( n . ateSpace = ! 1 , r . gitHubSpice !== ! 1 ) ) { if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+@)?(?:[a-f0-9]{7,40}\b)/ ) ) return n . combineTokens = ! 0 , "link" ; if ( e . match ( /^(?:[a-zA-Z0-9\-_]+\/)?(?:[a-zA-Z0-9\-_]+)?#[0-9]+\b/ ) ) return n . combineTokens = ! 0 , "link" } return e . match ( t ) && "](" != e . string . slice ( e . start - 2 , e . start ) && ( 0 == e . start || /\W/ . test ( e . string . charAt ( e . start - 1 ) ) ) ? ( n . combineTokens = ! 0 , "link" ) : ( e . next ( ) , null ) } , blankLine : i } , a = { underscoresBreakWords : ! 1 , taskLists : ! 0 , fencedCodeBlocks : "```" , strikethrough : ! 0 } ; for ( var s in r ) a [ s ] = r [ s ] ; return a . name = "markdown" , e . overlayMode ( e . getMode ( n , a ) , l ) } , "markdown" ) , e . defineMIME ( "text/x-gfm" , "gfm" ) } ) } , { "../../addon/mode/overlay" : 3 , "../../lib/codemirror" : 4 , "../markdown/markdown" : 6 } ] , 6 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../xml/xml" ) , t ( "../meta" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../xml/xml" , "../meta" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; e . defineMode ( "markdown" , function ( t , n ) { function r ( n ) { if ( e . findModeByName ) { var r = e . findModeByName ( n ) ; r && ( n = r . mime || r . mimes [ 0 ] ) } var i = e . getMode ( t , n ) ; return "null" == i . name ? null : i } function i ( e , t , n ) { return t . f = t . inline = n , n ( e , t ) } function o ( e , t , n ) { return t . f = t . block = n , n ( e , t ) } function l ( e ) { return ! e || ! /\S/ . test ( e . string ) } function a ( e ) { return e . linkTitle = ! 1 , e . em = ! 1 , e . strong = ! 1 , e . strikethrough = ! 1 , e . quote = 0 , e . indentedCode = ! 1 , k || e . f != c || ( e . f = p , e . block = s ) , e . trailingSpace = 0 , e . trailingSpaceNewLine = ! 1 , e . prevLine = e . thisLine , e . thisLine = null , null } function s ( e , t ) { var o = e . sol ( ) , a = t . list !== ! 1 , s = t . indentedCode ; t . indentedCode = ! 1 , a && ( t . indentationDiff >= 0 ? ( t . indentationDiff < 4 && ( t . indentation -= t . indentationDiff ) , t . list = null ) : t . indentation > 0 ? ( t . list = null , t . listDepth = Math . floor ( t . indentation / 4 ) ) : ( t . list = ! 1 , t . listDepth = 0 ) ) ; var c = null ; if ( t . indentationDiff >= 4 ) return e . skipToEnd ( ) , s || l ( t . prevLine ) ? ( t . indentation -= 4 , t . indentedCode = ! 0 , L . code ) : null ; if ( e . eatSpace ( ) ) return null ; if ( ( c = e . match ( W ) ) && c [ 1 ] . length <= 6 ) return t . header = c [ 1 ] . length , n . highlightFormatting && ( t . formatting = "header" ) , t . f = t . inline , h ( t ) ; if ( ! ( l ( t . prevLine ) || t . quote || a || s ) && ( c = e . match ( H ) ) ) return t . header = "=" == c [ 0 ] . charAt ( 0 ) ? 1 : 2 , n . highlightFormatting && ( t . formatting = "header" ) , t . f = t . inline , h ( t ) ; if ( e . eat ( ">" ) ) return t . quote = o ? 1 : t . quote + 1 , n . highlightFormatting && ( t . formatting = "quote" ) , e . eatSpace ( ) , h ( t ) ; if ( "[" === e . peek ( ) ) return i ( e , t , x ) ; if ( e . match ( M , ! 0 ) ) return t . hr = ! 0 , L . hr ; if ( ( l ( t . prevLine ) || a ) && ( e . match ( N , ! 1 ) || e . match ( A , ! 1 ) ) ) { var d = null ; return e . match ( N , ! 0 ) ? d = "ul" : ( e . match ( A , ! 0 ) , d = "ol" ) , t . indentation = e . column ( ) + e . current ( ) . length , t . list = ! 0 , t . listDepth ++ , n . taskLists && e . match ( O , ! 1 ) && ( t . taskList = ! 0 ) , t . f = t . inline , n . highlightFormatting && ( t . formatting = [ "list" , "list-" + d ] ) , h ( t ) } return n . fencedCodeBlocks && ( c = e . match ( I , ! 0 ) ) ? ( t . fencedChars = c [ 1 ] , t . localMode = r ( c [ 2 ] ) , t . localMode && ( t . localState = t . localMode . startState ( ) ) , t . f = t . block = u , n . highlightFormatting && ( t . formatting = "code-block" ) , t . code = ! 0 , h ( t ) ) : i ( e , t , t . inline ) } function c ( e , t ) { var n = C . token ( e , t . htmlState ) ; return ( k && null === t . htmlState . tagStart && ! t . htmlState . context && t . htmlState . tokenize . isInText || t . md _inside && e . current ( ) . indexOf ( ">" ) > - 1 ) && ( t . f = p , t . block = s , t . htmlState = null ) , n } function u ( e , t ) { return e . sol ( ) && t . fencedChars && e . match ( t . fencedChars , ! 1 ) ? ( t . localMode = t . localState = null , t . f = t . block = d , null ) : t . localMode ? t . localMode . token ( e , t . localState ) : ( e . skipToEnd ( ) , L . code ) } function d ( e , t ) { e . match ( t . fencedChars ) , t . block = s , t . f = p , t . fencedChars = null , n . highlightFormatting && ( t . fo
text : /^[^\n]+/ } ; f . bullet = /(?:[*+-]|\d+\.)/ , f . item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/ , f . item = c ( f . item , "gm" ) ( /bull/g , f . bullet ) ( ) , f . list = c ( f . list ) ( /bull/g , f . bullet ) ( "hr" , "\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))" ) ( "def" , "\\n+(?=" + f . def . source + ")" ) ( ) , f . blockquote = c ( f . blockquote ) ( "def" , f . def ) ( ) , f . _tag = "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b" , f . html = c ( f . html ) ( "comment" , /<!--[\s\S]*?-->/ ) ( "closed" , /<(tag)[\s\S]+?<\/\1>/ ) ( "closing" , /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/ ) ( /tag/g , f . _tag ) ( ) , f . paragraph = c ( f . paragraph ) ( "hr" , f . hr ) ( "heading" , f . heading ) ( "lheading" , f . lheading ) ( "blockquote" , f . blockquote ) ( "tag" , "<" + f . _tag ) ( "def" , f . def ) ( ) , f . normal = d ( { } , f ) , f . gfm = d ( { } , f . normal , { fences : /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/ , paragraph : /^/ , heading : /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/ } ) , f . gfm . paragraph = c ( f . paragraph ) ( "(?!" , "(?!" + f . gfm . fences . source . replace ( "\\1" , "\\2" ) + "|" + f . list . source . replace ( "\\1" , "\\3" ) + "|" ) ( ) , f . tables = d ( { } , f . gfm , { nptable : /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/ , table : /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/ } ) , t . rules = f , t . lex = function ( e , n ) { var r = new t ( n ) ; return r . lex ( e ) } , t . prototype . lex = function ( e ) { return e = e . replace ( /\r\n|\r/g , "\n" ) . replace ( /\t/g , " " ) . replace ( /\u00a0/g , " " ) . replace ( /\u2424/g , "\n" ) , this . token ( e , ! 0 ) } , t . prototype . token = function ( e , t , n ) { for ( var r , i , o , l , a , s , c , u , d , e = e . replace ( /^ +$/gm , "" ) ; e ; ) if ( ( o = this . rules . newline . exec ( e ) ) && ( e = e . substring ( o [ 0 ] . length ) , o [ 0 ] . length > 1 && this . tokens . push ( { type : "space" } ) ) , o = this . rules . code . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , o = o [ 0 ] . replace ( /^ {4}/gm , "" ) , this . tokens . push ( { type : "code" , text : this . options . pedantic ? o : o . replace ( /\n+$/ , "" ) } ) ; else if ( o = this . rules . fences . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "code" , lang : o [ 2 ] , text : o [ 3 ] || "" } ) ; else if ( o = this . rules . heading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : o [ 1 ] . length , text : o [ 2 ] } ) ; else if ( t && ( o = this . rules . nptable . exec ( e ) ) ) { for ( e = e . substring ( o [ 0 ] . length ) , s = { type : "table" , header : o [ 1 ] . replace ( /^ *| *\| *$/g , "" ) . split ( / *\| */ ) , align : o [ 2 ] . replace ( /^ *|\| *$/g , "" ) . split ( / *\| */ ) , cells : o [ 3 ] . replace ( /\n$/ , "" ) . split ( "\n" ) } , u = 0 ; u < s . align . length ; u ++ ) / ^ * - + : * $ / . test ( s . align [ u ] ) ? s . align [ u ] = "right" : /^ *:-+: *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "center" : /^ *:-+ *$/ . test ( s . align [ u ] ) ? s . align [ u ] = "left" : s . align [ u ] = null ; for ( u = 0 ; u < s . cells . length ; u ++ ) s . cells [ u ] = s . cells [ u ] . split ( / *\| */ ) ; this . tokens . push ( s ) } else if ( o = this . rules . lheading . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "heading" , depth : "=" === o [ 2 ] ? 1 : 2 , text : o [ 1 ] } ) ; else if ( o = this . rules . hr . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "hr" } ) ; else if ( o = this . rules . blockquote . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : "blockquote_start" } ) , o = o [ 0 ] . replace ( /^ *> ?/gm , "" ) , this . token ( o , t , ! 0 ) , this . tokens . push ( { type : "blockquote_end" } ) ; else if ( o = this . rules . list . exec ( e ) ) { for ( e = e . substring ( o [ 0 ] . length ) , l = o [ 2 ] , this . tokens . push ( { type : "list_start" , ordered : l . length > 1 } ) , o = o [ 0 ] . match ( this . rules . item ) , r = ! 1 , d = o . length , u = 0 ; d > u ; u ++ ) s = o [ u ] , c = s . length , s = s . replace ( /^ *([*+-]|\d+\.) +/ , "" ) , ~ s . indexOf ( "\n " ) && ( c -= s . length , s = this . options . pedantic ? s . replace ( /^ {1,4}/gm , "" ) : s . replace ( new RegExp ( "^ {1," + c + "}" , "gm" ) , "" ) ) , this . options . smartLists && u !== d - 1 && ( a = f . bullet . exec ( o [ u + 1 ] ) [ 0 ] , l === a || l . length > 1 && a . length > 1 || ( e = o . slice ( u + 1 ) . join ( "\n" ) + e , u = d - 1 ) ) , i = r || /\n\n(?!\s*$)/ . test ( s ) , u !== d - 1 && ( r = "\n" === s . charAt ( s . length - 1 ) , i || ( i = r ) ) , this . tokens . push ( { type : i ? "loose_item_start" : "list_item_start" } ) , this . token ( s , ! 1 , n ) , this . tokens . push ( { type : "list_item_end" } ) ; this . tokens . push ( { type : "list_end" } ) } else if ( o = this . rules . html . exec ( e ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . push ( { type : this . options . sanitize ? "paragraph" : "html" , pre : ! this . options . sanitizer && ( "pre" === o [ 1 ] || "script" === o [ 1 ] || "style" === o [ 1 ] ) , text : o [ 0 ] } ) ; else if ( ! n && t && ( o = this . rules . def . exec ( e ) ) ) e = e . substring ( o [ 0 ] . length ) , this . tokens . links [ o [ 1 ] . toLowerCase ( ) ] = { href : o [ 2 ] , title : o [ 3 ] } ; else if ( t && ( o = this . rules . table . exec ( e ) )
e . action && ( "function" == typeof e . action ? t . onclick = function ( ) { e . action ( r ) } : "string" == typeof e . action && ( t . href = e . action , t . target = "_blank" ) ) , a [ e . name || e ] = t , n . appendChild ( t ) } ( e [ t ] ) ) ; r . toolbarElements = a ; var s = this . codemirror ; s . on ( "cursorActivity" , function ( ) { var e = l ( s ) ; for ( var t in a ) ! function ( t ) { var n = a [ t ] ; e [ t ] ? n . className += " active" : "fullscreen" != t && "side-by-side" != t && ( n . className = n . className . replace ( /\s*active\s*/g , "" ) ) } ( t ) } ) ; var c = s . getWrapperElement ( ) ; return c . parentNode . insertBefore ( n , c ) , n } } , E . prototype . createStatusbar = function ( e ) { e = e || this . options . status ; var t = this . options ; if ( e && 0 !== e . length ) { var n = document . createElement ( "div" ) ; n . className = "editor-statusbar" ; for ( var r , i = this . codemirror , o = 0 ; o < e . length ; o ++ ) ! function ( e ) { var o = document . createElement ( "span" ) ; o . className = e , "words" === e ? ( o . innerHTML = "0" , i . on ( "update" , function ( ) { o . innerHTML = I ( i . getValue ( ) ) } ) ) : "lines" === e ? ( o . innerHTML = "0" , i . on ( "update" , function ( ) { o . innerHTML = i . lineCount ( ) } ) ) : "cursor" === e ? ( o . innerHTML = "0:0" , i . on ( "cursorActivity" , function ( ) { r = i . getCursor ( ) , o . innerHTML = r . line + ":" + r . ch } ) ) : "autosave" === e && void 0 != t . autosave && t . autosave . enabled === ! 0 && o . setAttribute ( "id" , "autosaved" ) , n . appendChild ( o ) } ( e [ o ] ) ; var l = this . codemirror . getWrapperElement ( ) ; return l . parentNode . insertBefore ( n , l . nextSibling ) , n } } , E . prototype . value = function ( e ) { return void 0 === e ? this . codemirror . getValue ( ) : ( this . codemirror . getDoc ( ) . setValue ( e ) , this ) } , E . toggleBold = s , E . toggleItalic = c , E . toggleStrikethrough = u , E . toggleBlockquote = h , E . toggleHeadingSmaller = f , E . toggleHeadingBigger = p , E . toggleHeading1 = m , E . toggleHeading2 = g , E . toggleHeading3 = v , E . toggleCodeBlock = d , E . toggleUnorderedList = x , E . toggleOrderedList = y , E . drawLink = b , E . drawImage = w , E . drawTable = k , E . drawHorizontalRule = C , E . undo = S , E . redo = L , E . togglePreview = M , E . toggleSideBySide = T , E . toggleFullScreen = a , E . prototype . toggleBold = function ( ) { s ( this ) } , E . prototype . toggleItalic = function ( ) { c ( this ) } , E . prototype . toggleStrikethrough = function ( ) { u ( this ) } , E . prototype . toggleBlockquote = function ( ) { h ( this ) } , E . prototype . toggleHeadingSmaller = function ( ) { f ( this ) } , E . prototype . toggleHeadingBigger = function ( ) { p ( this ) } , E . prototype . toggleHeading1 = function ( ) { m ( this ) } , E . prototype . toggleHeading2 = function ( ) { g ( this ) } , E . prototype . toggleHeading3 = function ( ) { v ( this ) } , E . prototype . toggleCodeBlock = function ( ) { d ( this ) } , E . prototype . toggleUnorderedList = function ( ) { x ( this ) } , E . prototype . toggleOrderedList = function ( ) { y ( this ) } , E . prototype . drawLink = function ( ) { b ( this ) } , E . prototype . drawImage = function ( ) { w ( this ) } , E . prototype . drawTable = function ( ) { k ( this ) } , E . prototype . drawHorizontalRule = function ( ) { C ( this ) } , E . prototype . undo = function ( ) { S ( this ) } , E . prototype . redo = function ( ) { L ( this ) } , E . prototype . togglePreview = function ( ) { M ( this ) } , E . prototype . toggleSideBySide = function ( ) { T ( this ) } , E . prototype . toggleFullScreen = function ( ) { a ( this ) } , E . prototype . isPreviewActive = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . lastChild ; return /editor-preview-active/ . test ( n . className ) } , E . prototype . isSideBySideActive = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . nextSibling ; return /editor-preview-active-side/ . test ( n . className ) } , E . prototype . isFullscreenActive = function ( ) { var e = this . codemirror ; return e . getOption ( "fullScreen" ) } , t . exports = E } , { "./codemirror/tablist" : 10 , codemirror : 4 , "codemirror/addon/display/fullscreen.js" : 1 , "codemirror/addon/edit/continuelist.js" : 2 , "codemirror/addon/mode/overlay.js" : 3 , "codemirror/mode/gfm/gfm.js" : 5 , "codemirror/mode/markdown/markdown.js" : 6 , "codemirror/mode/xml/xml.js" : 8 , marked : 9 } ] } , { } , [ 11 ] ) ( 11 ) } ) ;