2017-01-30 19:43:37 -05:00
function simpleUpload ( e , l , n ) { function t ( ) { if ( "object" == typeof n && null !== n ) { if ( "boolean" == typeof n . forceIframe && ( U = n . forceIframe ) , "function" == typeof n . init && ( I = n . init ) , "function" == typeof n . start && ( L = n . start ) , "function" == typeof n . progress && ( q = n . progress ) , "function" == typeof n . success && ( W = n . success ) , "function" == typeof n . error && ( _ = n . error ) , "function" == typeof n . cancel && ( M = n . cancel ) , "function" == typeof n . complete && ( D = n . complete ) , "function" == typeof n . finish && ( N = n . finish ) , "string" == typeof n . hashWorker && "" != n . hashWorker && ( S = n . hashWorker ) , "function" == typeof n . hashComplete && ( z = n . hashComplete ) , "object" == typeof n . data && null !== n . data ) for ( var e in n . data ) F [ e ] = n . data [ e ] ; if ( "number" == typeof n . limit && y ( n . limit ) && n . limit > 0 && ( w = n . limit ) , "number" == typeof n . maxFileSize && y ( n . maxFileSize ) && n . maxFileSize > 0 && ( x = n . maxFileSize ) , "object" == typeof n . allowedExts && null !== n . allowedExts ) for ( var e in n . allowedExts ) j . push ( n . allowedExts [ e ] ) ; if ( "object" == typeof n . allowedTypes && null !== n . allowedTypes ) for ( var e in n . allowedTypes ) k . push ( n . allowedTypes [ e ] ) ; if ( "string" == typeof n . expect && "" != n . expect ) { var t = n . expect . toLowerCase ( ) , o = [ "auto" , "json" , "xml" , "html" , "script" , "text" ] ; for ( var e in o ) if ( o [ e ] == t ) { E = t ; break } } if ( "object" == typeof n . xhrFields && null !== n . xhrFields ) for ( var e in n . xhrFields ) T [ e ] = n . xhrFields [ e ] } if ( "object" == typeof l && null !== l && l instanceof jQuery ) { if ( ! ( l . length > 0 ) ) return ! 1 ; l = l . get ( 0 ) } if ( ! U && window . File && window . FileReader && window . FileList && window . Blob && ( "object" == typeof n && null !== n && "object" == typeof n . files && null !== n . files ? b = n . files : "object" == typeof l && null !== l && "object" == typeof l . files && null !== l . files && ( b = l . files ) ) , ( "object" != typeof l || null === l ) && null == b ) return ! 1 ; "object" == typeof n && null !== n && "string" == typeof n . name && "" != n . name ? C = n . name . replace ( /\[\s*\]/g , "[0]" ) : "object" == typeof l && null !== l && "string" == typeof l . name && "" != l . name && ( C = l . name . replace ( /\[\s*\]/g , "[0]" ) ) ; var r = 0 ; if ( null != b ? b . length > 0 && ( r = b . length > 1 && window . FormData && $ . ajaxSettings . xhr ( ) . upload ? w > 0 && b . length > w ? w : b . length : 1 ) : "" != l . value && ( r = 1 ) , r > 0 ) { if ( "object" == typeof l && null !== l ) { var i = $ ( l ) ; J = $ ( "<form>" ) . hide ( ) . attr ( "enctype" , "multipart/form-data" ) . attr ( "method" , "post" ) . appendTo ( "body" ) , i . after ( i . clone ( ! 0 ) . val ( "" ) ) . removeAttr ( "onchange" ) . off ( ) . removeAttr ( "id" ) . attr ( "name" , C ) . appendTo ( J ) } for ( var s = 0 ; r > s ; s ++ ) ! function ( e ) { R [ e ] = { state : 0 , hashWorker : null , xhr : null , iframe : null } , A [ e ] = { upload : { index : e , state : "init" , file : null != b ? b [ e ] : { name : l . value . split ( /(\\|\/)/g ) . pop ( ) } , cancel : function ( ) { if ( 0 == u ( e ) ) d ( e , 4 ) ; else { if ( 1 != u ( e ) ) return ! 1 ; d ( e , 4 ) , null != R [ e ] . hashWorker && ( R [ e ] . hashWorker . terminate ( ) , R [ e ] . hashWorker = null ) , null != R [ e ] . xhr && ( R [ e ] . xhr . abort ( ) , R [ e ] . xhr = null ) , null != R [ e ] . iframe && ( $ ( "iframe[name=simpleUpload_iframe_" + R [ e ] . iframe + "]" ) . attr ( "src" , "javascript:false;" ) , simpleUpload . dequeueIframe ( R [ e ] . iframe ) , R [ e ] . iframe = null ) , P ( e ) } return ! 0 } } } } ( s ) ; var p = H ( r ) ; if ( p !== ! 1 ) { var f = r ; if ( "number" == typeof p && y ( p ) && p >= 0 && r > p ) { f = p ; for ( var m = f ; r > m ; m ++ ) d ( m , 4 ) } for ( var c = [ ] , v = 0 ; f > v ; v ++ ) X ( v , A [ v ] . upload . file ) !== ! 1 && ( c [ c . length ] = v ) ; c . length > 0 ? ( B = c . length , simpleUpload . queueUpload ( c , function ( e ) { a ( e ) } ) , simpleUpload . uploadNext ( ) ) : Z ( ) } else { for ( var m in A ) d ( m , 4 ) ; Z ( ) } } } function a ( e ) { if ( 1 == u ( e ) ) { var n = null ; if ( null != b ) { if ( void 0 == b [ e ] || null == b [ e ] ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; n = b [ e ] } else if ( "" == l . value ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; return j . length > 0 && ! c ( j , n ) ? void K ( e , { name : "InvalidFileExtensionError" , message : "That file format is not allowed" } ) : k . length > 0 && ! v ( k , n ) ? void K ( e , { name : "InvalidFileTypeError" , message : "That file format is not allowed" } ) : x > 0 && ! h ( x , n ) ? void K ( e , { name : "MaxFileSizeError" , message : "That file is too big" } ) : void ( null != S && null != z ? o ( e ) : i ( e ) ) } } function o ( e ) { if ( null != b && void 0 != b [ e ] && null != b [ e ] && window . Worker ) { var l = b [ e ] ; if ( void 0 != l . size && null != l . size && "" != l . size && y ( l . size ) && ( l . slice || l . webkitSlice || l . mozSlice ) ) try { var n = new Worker ( S ) ; n . addEventListener ( "error" , function ( ) { n . terminate ( ) , R [ e ] . hashWorker = null , i ( e ) } , ! 1 ) , n . addEventListener ( "message" , function ( l ) { if ( l . data . result ) { var t = l . data . result ; n . terminate ( ) , R [ e ] . h
} ) } ) . call ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t ) { return t . webpackPolyfill || ( t . deprecate = function ( ) { } , t . paths = [ ] , t . children = [ ] , t . webpackPolyfill = 1 ) , t } } , function ( t , e ) { function r ( t ) { if ( t ) return n ( t ) } function n ( t ) { for ( var e in r . prototype ) t [ e ] = r . prototype [ e ] ; return t } t . exports = r , r . prototype . on = r . prototype . addEventListener = function ( t , e ) { return this . _callbacks = this . _callbacks || { } , ( this . _callbacks [ t ] = this . _callbacks [ t ] || [ ] ) . push ( e ) , this } , r . prototype . once = function ( t , e ) { function r ( ) { n . off ( t , r ) , e . apply ( this , arguments ) } var n = this ; return this . _callbacks = this . _callbacks || { } , r . fn = e , this . on ( t , r ) , this } , r . prototype . off = r . prototype . removeListener = r . prototype . removeAllListeners = r . prototype . removeEventListener = function ( t , e ) { if ( this . _callbacks = this . _callbacks || { } , 0 == arguments . length ) return this . _callbacks = { } , this ; var r = this . _callbacks [ t ] ; if ( ! r ) return this ; if ( 1 == arguments . length ) return delete this . _callbacks [ t ] , this ; for ( var n , o = 0 ; o < r . length ; o ++ ) if ( n = r [ o ] , n === e || n . fn === e ) { r . splice ( o , 1 ) ; break } return this } , r . prototype . emit = function ( t ) { this . _callbacks = this . _callbacks || { } ; var e = [ ] . slice . call ( arguments , 1 ) , r = this . _callbacks [ t ] ; if ( r ) { r = r . slice ( 0 ) ; for ( var n = 0 , o = r . length ; n < o ; ++ n ) r [ n ] . apply ( this , e ) } return this } , r . prototype . listeners = function ( t ) { return this . _callbacks = this . _callbacks || { } , this . _callbacks [ t ] || [ ] } , r . prototype . hasListeners = function ( t ) { return ! ! this . listeners ( t ) . length } } , function ( t , e , r ) { ( function ( t ) { var n = r ( 15 ) , o = r ( 16 ) ; e . deconstructPacket = function ( t ) { function e ( t ) { if ( ! t ) return t ; if ( o ( t ) ) { var i = { _placeholder : ! 0 , num : r . length } ; return r . push ( t ) , i } if ( n ( t ) ) { for ( var s = new Array ( t . length ) , a = 0 ; a < t . length ; a ++ ) s [ a ] = e ( t [ a ] ) ; return s } if ( "object" == typeof t && ! ( t instanceof Date ) ) { var s = { } ; for ( var c in t ) s [ c ] = e ( t [ c ] ) ; return s } return t } var r = [ ] , i = t . data , s = t ; return s . data = e ( i ) , s . attachments = r . length , { packet : s , buffers : r } } , e . reconstructPacket = function ( t , e ) { function r ( t ) { if ( t && t . _placeholder ) { var o = e [ t . num ] ; return o } if ( n ( t ) ) { for ( var i = 0 ; i < t . length ; i ++ ) t [ i ] = r ( t [ i ] ) ; return t } if ( t && "object" == typeof t ) { for ( var s in t ) t [ s ] = r ( t [ s ] ) ; return t } return t } return t . data = r ( t . data ) , t . attachments = void 0 , t } , e . removeBlobs = function ( e , r ) { function i ( e , c , u ) { if ( ! e ) return e ; if ( t . Blob && e instanceof Blob || t . File && e instanceof File ) { s ++ ; var h = new FileReader ; h . onload = function ( ) { u ? u [ c ] = this . result : a = this . result , -- s || r ( a ) } , h . readAsArrayBuffer ( e ) } else if ( n ( e ) ) for ( var p = 0 ; p < e . length ; p ++ ) i ( e [ p ] , p , e ) ; else if ( e && "object" == typeof e && ! o ( e ) ) for ( var f in e ) i ( e [ f ] , f , e ) } var s = 0 , a = e ; i ( a ) , s || r ( a ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Array . isArray || function ( t ) { return "[object Array]" == Object . prototype . toString . call ( t ) } } , function ( t , e ) { ( function ( e ) { function r ( t ) { return e . Buffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer } t . exports = r } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e , r ) { "use strict" ; function n ( t , e ) { return this instanceof n ? ( t && "object" === ( "undefined" == typeof t ? "undefined" : o ( t ) ) && ( e = t , t = void 0 ) , e = e || { } , e . path = e . path || "/socket.io" , this . nsps = { } , this . subs = [ ] , this . opts = e , this . reconnection ( e . reconnection !== ! 1 ) , this . reconnectionAttempts ( e . reconnectionAttempts || 1 / 0 ) , this . reconnectionDelay ( e . reconnectionDelay || 1e3 ) , this . reconnectionDelayMax ( e . reconnectionDelayMax || 5e3 ) , this . randomizationFactor ( e . randomizationFactor || . 5 ) , this . backoff = new l ( { min : this . reconnectionDelay ( ) , max : this . reconnectionDelayMax ( ) , jitter : this . randomizationFactor ( ) } ) , this . timeout ( null == e . timeout ? 2e4 : e . timeout ) , this . readyState = "closed" , this . uri = t , this . connecting = [ ] , this . lastPing = null , this . encoding = ! 1 , this . packetBuffer = [ ] , this . encoder = new c . Encoder , this . decoder = new c . Decoder , this . autoConnect = e . autoConnect !== ! 1 , void ( this . autoConnect && this . open ( ) ) ) : new n ( t , e ) } var o = "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( t ) { return typeof t } : function ( t ) { return t && "function" == typeof Symbol && t . constructor === Symbol && t !== Symbol . prototype ? "symbol" : typeof t } , i = r ( 18 ) , s = r ( 44 ) , a = r ( 35 ) , c = r ( 7 ) , u = r ( 46 ) , h = r ( 47 ) , p = r ( 3 ) ( "socket.io-client:manager" ) , f = r ( 42 ) , l = r ( 48 ) , d = Object . prototype . hasOwnProperty ; t . exports = n , n . prototype . emitAll = function ( ) { this . emit . app
2016-12-21 20:38:12 -05:00
if ( a [ s . length ] = 255 , k ) { var c = new k ( [ e . buffer , a . buffer , t ] ) ; r ( null , c ) } } ) } c ( t , n , function ( t , e ) { return r ( new k ( e ) ) } ) } , e . decodePayloadAsBinary = function ( t , r , n ) { "function" == typeof r && ( n = r , r = null ) ; for ( var o = t , i = [ ] , s = ! 1 ; o . byteLength > 0 ; ) { for ( var a = new Uint8Array ( o ) , c = 0 === a [ 0 ] , u = "" , h = 1 ; 255 != a [ h ] ; h ++ ) { if ( u . length > 310 ) { s = ! 0 ; break } u += a [ h ] } if ( s ) return n ( w , 0 , 1 ) ; o = f ( o , 2 + u . length ) , u = parseInt ( u ) ; var p = f ( o , 0 , u ) ; if ( c ) try { p = String . fromCharCode . apply ( null , new Uint8Array ( p ) ) } catch ( t ) { var l = new Uint8Array ( p ) ; p = "" ; for ( var h = 0 ; h < l . length ; h ++ ) p += String . fromCharCode ( l [ h ] ) } i . push ( p ) , o = f ( o , u ) } var d = i . length ; i . forEach ( function ( t , o ) { n ( e . decodePacket ( t , r , ! 0 ) , o , d ) } ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Object . keys || function ( t ) { var e = [ ] , r = Object . prototype . hasOwnProperty ; for ( var n in t ) r . call ( t , n ) && e . push ( n ) ; return e } } , function ( t , e , r ) { ( function ( e ) { function n ( t ) { function r ( t ) { if ( ! t ) return ! 1 ; if ( e . Buffer && e . Buffer . isBuffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer || e . Blob && t instanceof Blob || e . File && t instanceof File ) return ! 0 ; if ( o ( t ) ) { for ( var n = 0 ; n < t . length ; n ++ ) if ( r ( t [ n ] ) ) return ! 0 } else if ( t && "object" == typeof t ) { t . toJSON && "function" == typeof t . toJSON && ( t = t . toJSON ( ) ) ; for ( var i in t ) if ( Object . prototype . hasOwnProperty . call ( t , i ) && r ( t [ i ] ) ) return ! 0 } return ! 1 } return r ( t ) } var o = r ( 15 ) ; t . exports = n } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t , e , r ) { var n = t . byteLength ; if ( e = e || 0 , r = r || n , t . slice ) return t . slice ( e , r ) ; if ( e < 0 && ( e += n ) , r < 0 && ( r += n ) , r > n && ( r = n ) , e >= n || e >= r || 0 === n ) return new ArrayBuffer ( 0 ) ; for ( var o = new Uint8Array ( t ) , i = new Uint8Array ( r - e ) , s = e , a = 0 ; s < r ; s ++ , a ++ ) i [ a ] = o [ s ] ; return i . buffer } } , function ( t , e ) { function r ( t , e , r ) { function o ( t , n ) { if ( o . count <= 0 ) throw new Error ( "after called too many times" ) ; -- o . count , t ? ( i = ! 0 , e ( t ) , e = r ) : 0 !== o . count || i || e ( null , n ) } var i = ! 1 ; return r = r || n , o . count = t , 0 === t ? e ( ) : o } function n ( ) { } t . exports = r } , function ( t , e , r ) { var n ; ( function ( t , o ) { ! function ( i ) { function s ( t ) { for ( var e , r , n = [ ] , o = 0 , i = t . length ; o < i ; ) e = t . charCodeAt ( o ++ ) , e >= 55296 && e <= 56319 && o < i ? ( r = t . charCodeAt ( o ++ ) , 56320 == ( 64512 & r ) ? n . push ( ( ( 1023 & e ) << 10 ) + ( 1023 & r ) + 65536 ) : ( n . push ( e ) , o -- ) ) : n . push ( e ) ; return n } function a ( t ) { for ( var e , r = t . length , n = - 1 , o = "" ; ++ n < r ; ) e = t [ n ] , e > 65535 && ( e -= 65536 , o += b ( e >>> 10 & 1023 | 55296 ) , e = 56320 | 1023 & e ) , o += b ( e ) ; return o } function c ( t , e ) { return b ( t >> e & 63 | 128 ) } function u ( t ) { if ( 0 == ( 4294967168 & t ) ) return b ( t ) ; var e = "" ; return 0 == ( 4294965248 & t ) ? e = b ( t >> 6 & 31 | 192 ) : 0 == ( 4294901760 & t ) ? ( e = b ( t >> 12 & 15 | 224 ) , e += c ( t , 6 ) ) : 0 == ( 4292870144 & t ) && ( e = b ( t >> 18 & 7 | 240 ) , e += c ( t , 12 ) , e += c ( t , 6 ) ) , e += b ( 63 & t | 128 ) } function h ( t ) { for ( var e , r = s ( t ) , n = r . length , o = - 1 , i = "" ; ++ o < n ; ) e = r [ o ] , i += u ( e ) ; return i } function p ( ) { if ( v >= m ) throw Error ( "Invalid byte index" ) ; var t = 255 & g [ v ] ; if ( v ++ , 128 == ( 192 & t ) ) return 63 & t ; throw Error ( "Invalid continuation byte" ) } function f ( ) { var t , e , r , n , o ; if ( v > m ) throw Error ( "Invalid byte index" ) ; if ( v == m ) return ! 1 ; if ( t = 255 & g [ v ] , v ++ , 0 == ( 128 & t ) ) return t ; if ( 192 == ( 224 & t ) ) { var e = p ( ) ; if ( o = ( 31 & t ) << 6 | e , o >= 128 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 224 == ( 240 & t ) ) { if ( e = p ( ) , r = p ( ) , o = ( 15 & t ) << 12 | e << 6 | r , o >= 2048 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 240 == ( 248 & t ) && ( e = p ( ) , r = p ( ) , n = p ( ) , o = ( 15 & t ) << 18 | e << 12 | r << 6 | n , o >= 65536 && o <= 1114111 ) ) return o ; throw Error ( "Invalid WTF-8 detected" ) } function l ( t ) { g = s ( t ) , m = g . length , v = 0 ; for ( var e , r = [ ] ; ( e = f ( ) ) !== ! 1 ; ) r . push ( e ) ; return a ( r ) } var d = "object" == typeof e && e , y = ( "object" == typeof t && t && t . exports == d && t , "object" == typeof o && o ) ; y . global !== y && y . window !== y || ( i = y ) ; var g , m , v , b = String . fromCharCode , w = { version : "1.0.0" , encode : h , decode : l } ; n = function ( ) { return w } . call ( e , r , e , t ) , ! ( void 0 !== n && ( t . exports = n ) ) } ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { ! function ( ) { "use strict" ; for ( var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , r = new Uint8Array ( 256 ) , n = 0 ; n < t . length ; n ++ ) r [ t . charCodeAt ( n ) ] = n ; e . encode = function ( e ) { var r , n = new Uint8Array ( e ) , o = n . length , i = "" ; for ( r = 0 ; r < o ; r += 3 ) i += t [ n [ r ] >> 2 ] , i += t [ ( 3 & n [ r ] ) << 4 | n [ r + 1 ] >> 4 ] , i += t [ ( 15 & n [ r + 1 ] ) << 2 | n [ r + 2 ] >> 6 ] , i += t [ 63 & n [ r + 2 ] ] ; return o % 3 === 2 ? i = i . substring ( 0 , i . length - 1 ) + "=" : o % 3 === 1 && ( i = i . substring ( 0 , i . length - 2 ) + "==" ) , i } , e . decode = function ( t ) { var e , n , o , i , s , a = . 75 * t . l
var b ; for ( b in a ) return ! 1 ; return ! 0 } , type : function ( a ) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j [ k . call ( a ) ] || "object" : typeof a } , globalEval : function ( a ) { p ( a ) } , camelCase : function ( a ) { return a . replace ( t , "ms-" ) . replace ( u , v ) } , nodeName : function ( a , b ) { return a . nodeName && a . nodeName . toLowerCase ( ) === b . toLowerCase ( ) } , each : function ( a , b ) { var c , d = 0 ; if ( w ( a ) ) for ( c = a . length ; d < c && b . call ( a [ d ] , d , a [ d ] ) !== ! 1 ; d ++ ) ; else for ( d in a ) if ( b . call ( a [ d ] , d , a [ d ] ) === ! 1 ) break ; return a } , trim : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( s , "" ) } , makeArray : function ( a , b ) { var c = b || [ ] ; return null != a && ( w ( Object ( a ) ) ? r . merge ( c , "string" == typeof a ? [ a ] : a ) : h . call ( c , a ) ) , c } , inArray : function ( a , b , c ) { return null == b ? - 1 : i . call ( b , a , c ) } , merge : function ( a , b ) { for ( var c = + b . length , d = 0 , e = a . length ; d < c ; d ++ ) a [ e ++ ] = b [ d ] ; return a . length = e , a } , grep : function ( a , b , c ) { for ( var d , e = [ ] , f = 0 , g = a . length , h = ! c ; f < g ; f ++ ) d = ! b ( a [ f ] , f ) , d !== h && e . push ( a [ f ] ) ; return e } , map : function ( a , b , c ) { var d , e , f = 0 , h = [ ] ; if ( w ( a ) ) for ( d = a . length ; f < d ; f ++ ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; else for ( f in a ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; return g . apply ( [ ] , h ) } , guid : 1 , proxy : function ( a , b ) { var c , d , e ; if ( "string" == typeof b && ( c = a [ b ] , b = a , a = c ) , r . isFunction ( a ) ) return d = f . call ( arguments , 2 ) , e = function ( ) { return a . apply ( b || this , d . concat ( f . call ( arguments ) ) ) } , e . guid = a . guid = a . guid || r . guid ++ , e } , now : Date . now , support : o } ) , "function" == typeof Symbol && ( r . fn [ Symbol . iterator ] = c [ Symbol . iterator ] ) , r . each ( "Boolean Number String Function Array Date RegExp Object Error Symbol" . split ( " " ) , function ( a , b ) { j [ "[object " + b + "]" ] = b . toLowerCase ( ) } ) ; var x = function ( a ) { function ga ( a , b , d , e ) { var f , h , j , k , l , o , r , s = b && b . ownerDocument , w = b ? b . nodeType : 9 ; if ( d = d || [ ] , "string" != typeof a || ! a || 1 !== w && 9 !== w && 11 !== w ) return d ; if ( ! e && ( ( b ? b . ownerDocument || b : v ) !== n && m ( b ) , b = b || n , p ) ) { if ( 11 !== w && ( l = Z . exec ( a ) ) ) if ( f = l [ 1 ] ) { if ( 9 === w ) { if ( ! ( j = b . getElementById ( f ) ) ) return d ; if ( j . id === f ) return d . push ( j ) , d } else if ( s && ( j = s . getElementById ( f ) ) && t ( b , j ) && j . id === f ) return d . push ( j ) , d } else { if ( l [ 2 ] ) return G . apply ( d , b . getElementsByTagName ( a ) ) , d ; if ( ( f = l [ 3 ] ) && c . getElementsByClassName && b . getElementsByClassName ) return G . apply ( d , b . getElementsByClassName ( f ) ) , d } if ( c . qsa && ! A [ a + " " ] && ( ! q || ! q . test ( a ) ) ) { if ( 1 !== w ) s = b , r = a ; else if ( "object" !== b . nodeName . toLowerCase ( ) ) { for ( ( k = b . getAttribute ( "id" ) ) ? k = k . replace ( ba , ca ) : b . setAttribute ( "id" , k = u ) , o = g ( a ) , h = o . length ; h -- ; ) o [ h ] = "#" + k + " " + sa ( o [ h ] ) ; r = o . join ( "," ) , s = $ . test ( a ) && qa ( b . parentNode ) || b } if ( r ) try { return G . apply ( d , s . querySelectorAll ( r ) ) , d } catch ( x ) { } finally { k === u && b . removeAttribute ( "id" ) } } } return i ( a . replace ( P , "$1" ) , b , d , e ) } function ha ( ) { function b ( c , e ) { return a . push ( c + " " ) > d . cacheLength && delete b [ a . shift ( ) ] , b [ c + " " ] = e } var a = [ ] ; return b } function ia ( a ) { return a [ u ] = ! 0 , a } function ja ( a ) { var b = n . createElement ( "fieldset" ) ; try { return ! ! a ( b ) } catch ( c ) { return ! 1 } finally { b . parentNode && b . parentNode . removeChild ( b ) , b = null } } function ka ( a , b ) { for ( var c = a . split ( "|" ) , e = c . length ; e -- ; ) d . attrHandle [ c [ e ] ] = b } function la ( a , b ) { var c = b && a , d = c && 1 === a . nodeType && 1 === b . nodeType && a . sourceIndex - b . sourceIndex ; if ( d ) return d ; if ( c ) for ( ; c = c . nextSibling ; ) if ( c === b ) return - 1 ; return a ? 1 : - 1 } function ma ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return "input" === c && b . type === a } } function na ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return ( "input" === c || "button" === c ) && b . type === a } } function oa ( a ) { return function ( b ) { return "form" in b ? b . parentNode && b . disabled === ! 1 ? "label" in b ? "label" in b . parentNode ? b . parentNode . disabled === a : b . disabled === a : b . isDisabled === a || b . isDisabled !== ! a && ea ( b ) === a : b . disabled === a : "label" in b && b . disabled === a } } function pa ( a ) { return ia ( function ( b ) { return b = + b , ia ( function ( c , d ) { for ( var e , f = a ( [ ] , c . length , b ) , g = f . length ; g -- ; ) c [ e = f [ g ] ] && ( c [ e ] = ! ( d [ e ] = c [ e ] ) ) } ) } ) } function qa ( a ) { return a && "undefined" != typeof a . getElementsByTagName && a } function ra ( ) { } function sa ( a ) { for ( var b = 0 , c = a . length , d = "" ; b < c ; b ++ ) d += a [ b ] . value ; return d } function ta ( a , b , c ) { var d = b . dir , e = b . next , f = e || d , g = c && "parentNode" === f , h = x ++ ; return b . first ? function ( b , c , e ) { for ( ; b = b [ d ] ; ) if ( 1 === b . nodeType || g ) return a ( b , c , e ) ; return ! 1 } : function ( b , c , i ) { var j , k , l , m = [ w , h ] ; if ( i ) { for ( ; b = b [ d ] ; ) if ( ( 1 === b . nodeType || g ) && a ( b , c , i ) ) return ! 0 } else for ( ; b = b [ d ] ; ) if ( 1 === b . no
} , promise : function ( a , b ) { var c , d = 1 , e = r . Deferred ( ) , f = this , g = this . length , h = function ( ) { -- d || e . resolveWith ( f , [ f ] ) } ; for ( "string" != typeof a && ( b = a , a = void 0 ) , a = a || "fx" ; g -- ; ) c = V . get ( f [ g ] , a + "queueHooks" ) , c && c . empty && ( d ++ , c . empty . add ( h ) ) ; return h ( ) , e . promise ( b ) } } ) ; var _ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , aa = new RegExp ( "^(?:([+-])=|)(" + _ + ")([a-z%]*)$" , "i" ) , ba = [ "Top" , "Right" , "Bottom" , "Left" ] , ca = function ( a , b ) { return a = b || a , "none" === a . style . display || "" === a . style . display && r . contains ( a . ownerDocument , a ) && "none" === r . css ( a , "display" ) } , da = function ( a , b , c , d ) { var e , f , g = { } ; for ( f in b ) g [ f ] = a . style [ f ] , a . style [ f ] = b [ f ] ; e = c . apply ( a , d || [ ] ) ; for ( f in b ) a . style [ f ] = g [ f ] ; return e } , fa = { } ; r . fn . extend ( { show : function ( ) { return ha ( this , ! 0 ) } , hide : function ( ) { return ha ( this ) } , toggle : function ( a ) { return "boolean" == typeof a ? a ? this . show ( ) : this . hide ( ) : this . each ( function ( ) { ca ( this ) ? r ( this ) . show ( ) : r ( this ) . hide ( ) } ) } } ) ; var ia = /^(?:checkbox|radio)$/i , ja = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i , ka = /^$|\/(?:java|ecma)script/i , la = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , thead : [ 1 , "<table>" , "</table>" ] , col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : [ 0 , "" , "" ] } ; la . optgroup = la . option , la . tbody = la . tfoot = la . colgroup = la . caption = la . thead , la . th = la . td ; var oa = /<|&#?\w+;/ ; ! function ( ) { var a = d . createDocumentFragment ( ) , b = a . appendChild ( d . createElement ( "div" ) ) , c = d . createElement ( "input" ) ; c . setAttribute ( "type" , "radio" ) , c . setAttribute ( "checked" , "checked" ) , c . setAttribute ( "name" , "t" ) , b . appendChild ( c ) , o . checkClone = b . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked , b . innerHTML = "<textarea>x</textarea>" , o . noCloneChecked = ! ! b . cloneNode ( ! 0 ) . lastChild . defaultValue } ( ) ; var qa = d . documentElement , ra = /^key/ , sa = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ , ta = /^([^.]*)(?:\.(.+)|)/ ; r . event = { global : { } , add : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . get ( a ) ; if ( q ) for ( c . handler && ( f = c , c = f . handler , e = f . selector ) , e && r . find . matchesSelector ( qa , e ) , c . guid || ( c . guid = r . guid ++ ) , ( i = q . events ) || ( i = q . events = { } ) , ( g = q . handle ) || ( g = q . handle = function ( b ) { return "undefined" != typeof r && r . event . triggered !== b . type ? r . event . dispatch . apply ( a , arguments ) : void 0 } ) , b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n && ( l = r . event . special [ n ] || { } , n = ( e ? l . delegateType : l . bindType ) || n , l = r . event . special [ n ] || { } , k = r . extend ( { type : n , origType : p , data : d , handler : c , guid : c . guid , selector : e , needsContext : e && r . expr . match . needsContext . test ( e ) , namespace : o . join ( "." ) } , f ) , ( m = i [ n ] ) || ( m = i [ n ] = [ ] , m . delegateCount = 0 , l . setup && l . setup . call ( a , d , o , g ) !== ! 1 || a . addEventListener && a . addEventListener ( n , g ) ) , l . add && ( l . add . call ( a , k ) , k . handler . guid || ( k . handler . guid = c . guid ) ) , e ? m . splice ( m . delegateCount ++ , 0 , k ) : m . push ( k ) , r . event . global [ n ] = ! 0 ) } , remove : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . hasData ( a ) && V . get ( a ) ; if ( q && ( i = q . events ) ) { for ( b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) if ( h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n ) { for ( l = r . event . special [ n ] || { } , n = ( d ? l . delegateType : l . bindType ) || n , m = i [ n ] || [ ] , h = h [ 2 ] && new RegExp ( "(^|\\.)" + o . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , g = f = m . length ; f -- ; ) k = m [ f ] , ! e && p !== k . origType || c && c . guid !== k . guid || h && ! h . test ( k . namespace ) || d && d !== k . selector && ( "**" !== d || ! k . selector ) || ( m . splice ( f , 1 ) , k . selector && m . delegateCount -- , l . remove && l . remove . call ( a , k ) ) ; g && ! m . length && ( l . teardown && l . teardown . call ( a , o , q . handle ) !== ! 1 || r . removeEvent ( a , n , q . handle ) , delete i [ n ] ) } else for ( n in i ) r . event . remove ( a , n + b [ j ] , c , d , ! 0 ) ; r . isEmptyObject ( i ) && V . remove ( a , "handle events" ) } } , dispatch : function ( a ) { var c , d , e , f , g , h , b = r . event . fix ( a ) , i = new Array ( arguments . length ) , j = ( V . get ( this , "events" ) || { } ) [ b . type ] || [ ] , k = r . event . special [ b . type ] || { } ; for ( i [ 0 ] = b , c = 1 ; c < arguments . length ; c ++ ) i [ c ] = arguments [ c ] ; if ( b . delegateTarget = this , ! k . preDispatch || k . preDispatch . call ( this , b ) !== ! 1 ) { for ( h = r . event . handlers . call ( this , b , j ) , c = 0 ; ( f = h [ c ++ ] ) && ! b . isPropagationStopped ( ) ; ) for ( b . currentTarget = f . elem , d = 0 ; ( g = f . handlers [ d ++ ] ) && ! b . isImmediatePropagationStopped ( ) ; ) b . rnamespace && ! b . rnamespace . test ( g . namespace ) || ( b . handleObj = g , b . data = g . data , e = ( ( r . event . special [ g . o
2017-03-04 11:23:34 -05:00
return y } , getJSON : function ( a , b , c ) { return r . get ( a , b , c , "json" ) } , getScript : function ( a , b ) { return r . get ( a , void 0 , b , "script" ) } } ) , r . each ( [ "get" , "post" ] , function ( a , b ) { r [ b ] = function ( a , c , d , e ) { return r . isFunction ( c ) && ( e = e || d , d = c , c = void 0 ) , r . ajax ( r . extend ( { url : a , type : b , dataType : e , data : c , success : d } , r . isPlainObject ( a ) && a ) ) } } ) , r . _evalUrl = function ( a ) { return r . ajax ( { url : a , type : "GET" , dataType : "script" , cache : ! 0 , async : ! 1 , global : ! 1 , throws : ! 0 } ) } , r . fn . extend ( { wrapAll : function ( a ) { var b ; return this [ 0 ] && ( r . isFunction ( a ) && ( a = a . call ( this [ 0 ] ) ) , b = r ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) , this [ 0 ] . parentNode && b . insertBefore ( this [ 0 ] ) , b . map ( function ( ) { for ( var a = this ; a . firstElementChild ; ) a = a . firstElementChild ; return a } ) . append ( this ) ) , this } , wrapInner : function ( a ) { return r . isFunction ( a ) ? this . each ( function ( b ) { r ( this ) . wrapInner ( a . call ( this , b ) ) } ) : this . each ( function ( ) { var b = r ( this ) , c = b . contents ( ) ; c . length ? c . wrapAll ( a ) : b . append ( a ) } ) } , wrap : function ( a ) { var b = r . isFunction ( a ) ; return this . each ( function ( c ) { r ( this ) . wrapAll ( b ? a . call ( this , c ) : a ) } ) } , unwrap : function ( a ) { return this . parent ( a ) . not ( "body" ) . each ( function ( ) { r ( this ) . replaceWith ( this . childNodes ) } ) , this } } ) , r . expr . pseudos . hidden = function ( a ) { return ! r . expr . pseudos . visible ( a ) } , r . expr . pseudos . visible = function ( a ) { return ! ! ( a . offsetWidth || a . offsetHeight || a . getClientRects ( ) . length ) } , r . ajaxSettings . xhr = function ( ) { try { return new a . XMLHttpRequest } catch ( b ) { } } ; var Ob = { 0 : 200 , 1223 : 204 } , Pb = r . ajaxSettings . xhr ( ) ; o . cors = ! ! Pb && "withCredentials" in Pb , o . ajax = Pb = ! ! Pb , r . ajaxTransport ( function ( b ) { var c , d ; if ( o . cors || Pb && ! b . crossDomain ) return { send : function ( e , f ) { var g , h = b . xhr ( ) ; if ( h . open ( b . type , b . url , b . async , b . username , b . password ) , b . xhrFields ) for ( g in b . xhrFields ) h [ g ] = b . xhrFields [ g ] ; b . mimeType && h . overrideMimeType && h . overrideMimeType ( b . mimeType ) , b . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ) ; for ( g in e ) h . setRequestHeader ( g , e [ g ] ) ; c = function ( a ) { return function ( ) { c && ( c = d = h . onload = h . onerror = h . onabort = h . onreadystatechange = null , "abort" === a ? h . abort ( ) : "error" === a ? "number" != typeof h . status ? f ( 0 , "error" ) : f ( h . status , h . statusText ) : f ( Ob [ h . status ] || h . status , h . statusText , "text" !== ( h . responseType || "text" ) || "string" != typeof h . responseText ? { binary : h . response } : { text : h . responseText } , h . getAllResponseHeaders ( ) ) ) } } , h . onload = c ( ) , d = h . onerror = c ( "error" ) , void 0 !== h . onabort ? h . onabort = d : h . onreadystatechange = function ( ) { 4 === h . readyState && a . setTimeout ( function ( ) { c && d ( ) } ) } , c = c ( "abort" ) ; try { h . send ( b . hasContent && b . data || null ) } catch ( i ) { if ( c ) throw i } } , abort : function ( ) { c && c ( ) } } } ) , r . ajaxPrefilter ( function ( a ) { a . crossDomain && ( a . contents . script = ! 1 ) } ) , r . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /\b(?:java|ecma)script\b/ } , converters : { "text script" : function ( a ) { return r . globalEval ( a ) , a } } } ) , r . ajaxPrefilter ( "script" , function ( a ) { void 0 === a . cache && ( a . cache = ! 1 ) , a . crossDomain && ( a . type = "GET" ) } ) , r . ajaxTransport ( "script" , function ( a ) { if ( a . crossDomain ) { var b , c ; return { send : function ( e , f ) { b = r ( "<script>" ) . prop ( { charset : a . scriptCharset , src : a . url } ) . on ( "load error" , c = function ( a ) { b . remove ( ) , c = null , a && f ( "error" === a . type ? 404 : 200 , a . type ) } ) , d . head . appendChild ( b [ 0 ] ) } , abort : function ( ) { c && c ( ) } } } } ) ; var Qb = [ ] , Rb = /(=)\?(?=&|$)|\?\?/ ; r . ajaxSetup ( { jsonp : "callback" , jsonpCallback : function ( ) { var a = Qb . pop ( ) || r . expando + "_" + rb ++ ; return this [ a ] = ! 0 , a } } ) , r . ajaxPrefilter ( "json jsonp" , function ( b , c , d ) { var e , f , g , h = b . jsonp !== ! 1 && ( Rb . test ( b . url ) ? "url" : "string" == typeof b . data && 0 === ( b . contentType || "" ) . indexOf ( "application/x-www-form-urlencoded" ) && Rb . test ( b . data ) && "data" ) ; if ( h || "jsonp" === b . dataTypes [ 0 ] ) return e = b . jsonpCallback = r . isFunction ( b . jsonpCallback ) ? b . jsonpCallback ( ) : b . jsonpCallback , h ? b [ h ] = b [ h ] . replace ( Rb , "$1" + e ) : b . jsonp !== ! 1 && ( b . url += ( sb . test ( b . url ) ? "&" : "?" ) + b . jsonp + "=" + e ) , b . converters [ "script json" ] = function ( ) { return g || r . error ( e + " was not called" ) , g [ 0 ] } , b . dataTypes [ 0 ] = "json" , f = a [ e ] , a [ e ] = function ( ) { g = arguments } , d . always ( function ( ) { void 0 === f ? r ( a ) . removeProp ( e ) : a [ e ] = f , b [ e ] && ( b . jsonpCallback = c . jsonpCallback , Qb . push ( e ) ) , g && r . isFunction ( f ) && f ( g [ 0 ] ) , g = f = void 0 } ) , "script" } ) , o . createHTMLDocument = function ( ) { var a
} function Ft ( e , t ) { e . textContent = t } function Ht ( e , t , n ) { e . setAttribute ( t , n ) } function Ut ( e , t ) { var n = e . data . ref ; if ( n ) { var i = e . context , o = e . componentInstance || e . elm , a = i . $refs ; t ? Array . isArray ( a [ n ] ) ? r ( a [ n ] , o ) : a [ n ] === o && ( a [ n ] = void 0 ) : e . data . refInFor ? Array . isArray ( a [ n ] ) && a [ n ] . indexOf ( o ) < 0 ? a [ n ] . push ( o ) : a [ n ] = [ o ] : a [ n ] = o } } function Bt ( e ) { return null == e } function Vt ( e ) { return null != e } function zt ( e , t ) { return e . key === t . key && e . tag === t . tag && e . isComment === t . isComment && ! e . data == ! t . data } function Jt ( e , t , n ) { var r , i , o = { } ; for ( r = t ; r <= n ; ++ r ) i = e [ r ] . key , Vt ( i ) && ( o [ i ] = r ) ; return o } function Kt ( e ) { function t ( e ) { return new vo ( O . tagName ( e ) . toLowerCase ( ) , { } , [ ] , void 0 , e ) } function r ( e , t ) { function n ( ) { 0 === -- n . listeners && i ( e ) } return n . listeners = t , n } function i ( e ) { var t = O . parentNode ( e ) ; t && O . removeChild ( t , e ) } function a ( e , t , n , r , i ) { if ( e . isRootInsert = ! i , ! s ( e , t , n , r ) ) { var o = e . data , a = e . children , c = e . tag ; Vt ( c ) ? ( e . elm = e . ns ? O . createElementNS ( e . ns , c ) : O . createElement ( c , e ) , v ( e ) , f ( e , a , t ) , Vt ( o ) && d ( e , t ) , l ( n , e . elm , r ) ) : e . isComment ? ( e . elm = O . createComment ( e . text ) , l ( n , e . elm , r ) ) : ( e . elm = O . createTextNode ( e . text ) , l ( n , e . elm , r ) ) } } function s ( e , t , n , r ) { var i = e . data ; if ( Vt ( i ) ) { var o = Vt ( e . componentInstance ) && i . keepAlive ; if ( Vt ( i = i . hook ) && Vt ( i = i . init ) && i ( e , ! 1 , n , r ) , Vt ( e . componentInstance ) ) return c ( e , t ) , o && u ( e , t , n , r ) , ! 0 } } function c ( e , t ) { e . data . pendingInsert && t . push . apply ( t , e . data . pendingInsert ) , e . elm = e . componentInstance . $el , p ( e ) ? ( d ( e , t ) , v ( e ) ) : ( Ut ( e ) , t . push ( e ) ) } function u ( e , t , n , r ) { for ( var i , o = e ; o . componentInstance ; ) if ( o = o . componentInstance . _vnode , Vt ( i = o . data ) && Vt ( i = i . transition ) ) { for ( i = 0 ; i < k . activate . length ; ++ i ) k . activate [ i ] ( ua , o ) ; t . push ( o ) ; break } l ( n , e . elm , r ) } function l ( e , t , n ) { e && ( n ? O . insertBefore ( e , t , n ) : O . appendChild ( e , t ) ) } function f ( e , t , n ) { if ( Array . isArray ( t ) ) for ( var r = 0 ; r < t . length ; ++ r ) a ( t [ r ] , n , e . elm , null , ! 0 ) ; else o ( e . text ) && O . appendChild ( e . elm , O . createTextNode ( e . text ) ) } function p ( e ) { for ( ; e . componentInstance ; ) e = e . componentInstance . _vnode ; return Vt ( e . tag ) } function d ( e , t ) { for ( var n = 0 ; n < k . create . length ; ++ n ) k . create [ n ] ( ua , e ) ; C = e . data . hook , Vt ( C ) && ( C . create && C . create ( ua , e ) , C . insert && t . push ( e ) ) } function v ( e ) { for ( var t , n = e ; n ; ) Vt ( t = n . context ) && Vt ( t = t . $options . _scopeId ) && O . setAttribute ( e . elm , t , "" ) , n = n . parent ; Vt ( t = _o ) && t !== e . context && Vt ( t = t . $options . _scopeId ) && O . setAttribute ( e . elm , t , "" ) } function h ( e , t , n , r , i , o ) { for ( ; r <= i ; ++ r ) a ( n [ r ] , o , e , t ) } function m ( e ) { var t , n , r = e . data ; if ( Vt ( r ) ) for ( Vt ( t = r . hook ) && Vt ( t = t . destroy ) && t ( e ) , t = 0 ; t < k . destroy . length ; ++ t ) k . destroy [ t ] ( e ) ; if ( Vt ( t = e . children ) ) for ( n = 0 ; n < e . children . length ; ++ n ) m ( e . children [ n ] ) } function g ( e , t , n , r ) { for ( ; n <= r ; ++ n ) { var o = t [ n ] ; Vt ( o ) && ( Vt ( o . tag ) ? ( y ( o ) , m ( o ) ) : i ( o . elm ) ) } } function y ( e , t ) { if ( t || Vt ( e . data ) ) { var n = k . remove . length + 1 ; for ( t ? t . listeners += n : t = r ( e . elm , n ) , Vt ( C = e . componentInstance ) && Vt ( C = C . _vnode ) && Vt ( C . data ) && y ( C , t ) , C = 0 ; C < k . remove . length ; ++ C ) k . remove [ C ] ( e , t ) ; Vt ( C = e . data . hook ) && Vt ( C = C . remove ) ? C ( e , t ) : t ( ) } else i ( e . elm ) } function _ ( e , t , n , r , i ) { for ( var o , s , c , u , l = 0 , f = 0 , p = t . length - 1 , d = t [ 0 ] , v = t [ p ] , m = n . length - 1 , y = n [ 0 ] , _ = n [ m ] , $ = ! i ; l <= p && f <= m ; ) Bt ( d ) ? d = t [ ++ l ] : Bt ( v ) ? v = t [ -- p ] : zt ( d , y ) ? ( b ( d , y , r ) , d = t [ ++ l ] , y = n [ ++ f ] ) : zt ( v , _ ) ? ( b ( v , _ , r ) , v = t [ -- p ] , _ = n [ -- m ] ) : zt ( d , _ ) ? ( b ( d , _ , r ) , $ && O . insertBefore ( e , d . elm , O . nextSibling ( v . elm ) ) , d = t [ ++ l ] , _ = n [ -- m ] ) : zt ( v , y ) ? ( b ( v , y , r ) , $ && O . insertBefore ( e , v . elm , d . elm ) , v = t [ -- p ] , y = n [ ++ f ] ) : ( Bt ( o ) && ( o = Jt ( t , l , p ) ) , s = Vt ( y . key ) ? o [ y . key ] : null , Bt ( s ) ? ( a ( y , r , e , d . elm ) , y = n [ ++ f ] ) : ( c = t [ s ] , zt ( c , y ) ? ( b ( c , y , r ) , t [ s ] = void 0 , $ && O . insertBefore ( e , y . elm , d . elm ) , y = n [ ++ f ] ) : ( a ( y , r , e , d . elm ) , y = n [ ++ f ] ) ) ) ; l > p ? ( u = Bt ( n [ m + 1 ] ) ? null : n [ m + 1 ] . elm , h ( e , u , n , f , m , r ) ) : f > m && g ( e , t , l , p ) } function b ( e , t , n , r ) { if ( e !== t ) { if ( t . isStatic && e . isStatic && t . key === e . key && ( t . isCloned || t . isOnce ) ) return t . elm = e . elm , void ( t . componentInstance = e . componentInstance ) ; var i , o = t . data , a = Vt ( o ) ; a && Vt ( i = o . hook ) && Vt ( i = i . prepatch ) && i ( e , t ) ; var s = t . elm = e . elm , c = e . children , u = t . children ; if ( a && p ( t ) ) { for ( i = 0 ; i < k . update . length ; ++ i ) k . update [ i ] ( e , t ) ; Vt ( i = o . hook ) && Vt ( i = i . update ) && i ( e , t ) } Bt ( t . text ) ? Vt ( c ) && Vt ( u ) ? c !== u && _ ( s , c , u , n , r ) : Vt ( u ) ? ( Vt ( e . text ) && O . setTextContent ( s , "" ) , h ( s , null , u , 0 , u . length - 1 , n ) ) : Vt ( c ) ? g ( s , c , 0 , c . length - 1 ) : Vt ( e . text ) && O . setTextContent ( s , "" ) : e . text !== t . text && O . setTextContent ( s , t . text ) , a && Vt ( i = o . hook ) && Vt ( i = i . postpatch ) && i ( e , t ) } } function $ ( e , t , n
s . render = yi ( a . render , c ) ; var u = a . staticRenderFns . length ; s . staticRenderFns = new Array ( u ) ; for ( var l = 0 ; l < u ; l ++ ) s . staticRenderFns [ l ] = yi ( a . staticRenderFns [ l ] , c ) ; return r [ o ] = s } var r = Object . create ( null ) ; return { compile : t , compileToFunctions : n } } function bi ( e , t ) { var n = ( t . warn || rn , fn ( e , "class" ) ) ; n && ( e . staticClass = JSON . stringify ( n ) ) ; var r = ln ( e , "class" , ! 1 ) ; r && ( e . classBinding = r ) } function $i ( e ) { var t = "" ; return e . staticClass && ( t += "staticClass:" + e . staticClass + "," ) , e . classBinding && ( t += "class:" + e . classBinding + "," ) , t } function wi ( e , t ) { var n = ( t . warn || rn , fn ( e , "style" ) ) ; n && ( e . staticStyle = JSON . stringify ( $a ( n ) ) ) ; var r = ln ( e , "style" , ! 1 ) ; r && ( e . styleBinding = r ) } function Ci ( e ) { var t = "" ; return e . staticStyle && ( t += "staticStyle:" + e . staticStyle + "," ) , e . styleBinding && ( t += "style:(" + e . styleBinding + ")," ) , t } function xi ( e , t ) { t . value && an ( e , "textContent" , "_s(" + t . value + ")" ) } function ki ( e , t ) { t . value && an ( e , "innerHTML" , "_s(" + t . value + ")" ) } function Ai ( e ) { if ( e . outerHTML ) return e . outerHTML ; var t = document . createElement ( "div" ) ; return t . appendChild ( e . cloneNode ( ! 0 ) ) , t . innerHTML } var Oi , Si , Ti = n ( "slot,component" , ! 0 ) , Ei = Object . prototype . hasOwnProperty , ji = /-(\w)/g , Ni = a ( function ( e ) { return e . replace ( ji , function ( e , t ) { return t ? t . toUpperCase ( ) : "" } ) } ) , Ii = a ( function ( e ) { return e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) } ) , Li = /([^-])([A-Z])/g , Di = a ( function ( e ) { return e . replace ( Li , "$1-$2" ) . replace ( Li , "$1-$2" ) . toLowerCase ( ) } ) , Mi = Object . prototype . toString , Pi = "[object Object]" , Ri = function ( ) { return ! 1 } , Fi = function ( e ) { return e } , Hi = { optionMergeStrategies : Object . create ( null ) , silent : ! 1 , productionTip : ! 1 , devtools : ! 1 , performance : ! 1 , errorHandler : null , ignoredElements : [ ] , keyCodes : Object . create ( null ) , isReservedTag : Ri , isUnknownElement : Ri , getTagNamespace : d , parsePlatformTagName : Fi , mustUseProp : Ri , _assetTypes : [ "component" , "directive" , "filter" ] , _lifecycleHooks : [ "beforeCreate" , "created" , "beforeMount" , "mounted" , "beforeUpdate" , "updated" , "beforeDestroy" , "destroyed" , "activated" , "deactivated" ] , _maxUpdateCount : 100 } , Ui = "__proto__" in { } , Bi = "undefined" != typeof window , Vi = Bi && window . navigator . userAgent . toLowerCase ( ) , zi = Vi && /msie|trident/ . test ( Vi ) , Ji = Vi && Vi . indexOf ( "msie 9.0" ) > 0 , Ki = Vi && Vi . indexOf ( "edge/" ) > 0 , qi = Vi && Vi . indexOf ( "android" ) > 0 , Wi = Vi && /iphone|ipad|ipod|ios/ . test ( Vi ) , Zi = Vi && /chrome\/\d+/ . test ( Vi ) && ! Ki , Gi = function ( ) { return void 0 === Oi && ( Oi = ! Bi && "undefined" != typeof global && "server" === global . process . env . VUE _ENV ) , Oi } , Yi = Bi && window . _ _VUE _DEVTOOLS _GLOBAL _HOOK _ _ , Qi = "undefined" != typeof Symbol && y ( Symbol ) && "undefined" != typeof Reflect && y ( Reflect . ownKeys ) , Xi = function ( ) { function e ( ) { r = ! 1 ; var e = n . slice ( 0 ) ; n . length = 0 ; for ( var t = 0 ; t < e . length ; t ++ ) e [ t ] ( ) } var t , n = [ ] , r = ! 1 ; if ( "undefined" != typeof Promise && y ( Promise ) ) { var i = Promise . resolve ( ) , o = function ( e ) { console . error ( e ) } ; t = function ( ) { i . then ( e ) . catch ( o ) , Wi && setTimeout ( d ) } } else if ( "undefined" == typeof MutationObserver || ! y ( MutationObserver ) && "[object MutationObserverConstructor]" !== MutationObserver . toString ( ) ) t = function ( ) { setTimeout ( e , 0 ) } ; else { var a = 1 , s = new MutationObserver ( e ) , c = document . createTextNode ( String ( a ) ) ; s . observe ( c , { characterData : ! 0 } ) , t = function ( ) { a = ( a + 1 ) % 2 , c . data = String ( a ) } } return function ( e , i ) { var o ; if ( n . push ( function ( ) { e && e . call ( i ) , o && o ( i ) } ) , r || ( r = ! 0 , t ( ) ) , ! e && "undefined" != typeof Promise ) return new Promise ( function ( e ) { o = e } ) } } ( ) ; Si = "undefined" != typeof Set && y ( Set ) ? Set : function ( ) { function e ( ) { this . set = Object . create ( null ) } return e . prototype . has = function ( e ) { return this . set [ e ] === ! 0 } , e . prototype . add = function ( e ) { this . set [ e ] = ! 0 } , e . prototype . clear = function ( ) { this . set = Object . create ( null ) } , e } ( ) ; var eo = Object . freeze ( { } ) , to = /[^\w.$]/ , no = d , ro = 0 , io = function ( ) { this . id = ro ++ , this . subs = [ ] } ; io . prototype . addSub = function ( e ) { this . subs . push ( e ) } , io . prototype . removeSub = function ( e ) { r ( this . subs , e ) } , io . prototype . depend = function ( ) { io . target && io . target . addDep ( this ) } , io . prototype . notify = function ( ) { for ( var e = this . subs . slice ( ) , t = 0 , n = e . length ; t < n ; t ++ ) e [ t ] . update ( ) } , io . target = null ; var oo = [ ] , ao = Array . prototype , so = Object . create ( ao ) ; [ "push" , "pop" , "shift" , "unshift" , "splice" , "sort" , "reverse" ] . forEach ( function ( e ) { var t = ao [ e ] ; b ( so , e , function ( ) { for ( var n = arguments , r = arguments . length , i = new Array ( r ) ; r -- ; ) i [ r ] = n [ r ] ; var o , a = t . apply ( this , i ) ,
c && ( s = ! 0 ) } s && h . show . call ( n , t . data , t . pageX , t . pageY ) } } , click : function ( t ) { t . preventDefault ( ) , t . stopImmediatePropagation ( ) , e ( this ) . trigger ( e . Event ( "contextmenu" , { data : t . data , pageX : t . pageX , pageY : t . pageY } ) ) } , mousedown : function ( t ) { var n = e ( this ) ; o && o . length && ! o . is ( n ) && o . data ( "contextMenu" ) . $menu . trigger ( "contextmenu:hide" ) , 2 === t . button && ( o = n . data ( "contextMenuActive" , ! 0 ) ) } , mouseup : function ( t ) { var n = e ( this ) ; n . data ( "contextMenuActive" ) && o && o . length && o . is ( n ) && ! n . hasClass ( "context-menu-disabled" ) && ( t . preventDefault ( ) , t . stopImmediatePropagation ( ) , o = n , n . trigger ( e . Event ( "contextmenu" , { data : t . data , pageX : t . pageX , pageY : t . pageY } ) ) ) , n . removeData ( "contextMenuActive" ) } , mouseenter : function ( t ) { var n = e ( this ) , a = e ( t . relatedTarget ) , s = e ( document ) ; a . is ( ".context-menu-list" ) || a . closest ( ".context-menu-list" ) . length || o && o . length || ( m . pageX = t . pageX , m . pageY = t . pageY , m . data = t . data , s . on ( "mousemove.contextMenuShow" , f . mousemove ) , m . timer = setTimeout ( function ( ) { m . timer = null , s . off ( "mousemove.contextMenuShow" ) , o = n , n . trigger ( e . Event ( "contextmenu" , { data : m . data , pageX : m . pageX , pageY : m . pageY } ) ) } , t . data . delay ) ) } , mousemove : function ( e ) { m . pageX = e . pageX , m . pageY = e . pageY } , mouseleave : function ( t ) { var n = e ( t . relatedTarget ) ; if ( ! n . is ( ".context-menu-list" ) && ! n . closest ( ".context-menu-list" ) . length ) { try { clearTimeout ( m . timer ) } catch ( e ) { } m . timer = null } } , layerClick : function ( t ) { var n , a , o = e ( this ) , s = o . data ( "contextMenuRoot" ) , c = t . button , r = t . pageX , l = t . pageY ; t . preventDefault ( ) , t . stopImmediatePropagation ( ) , setTimeout ( function ( ) { var o , u = "left" === s . trigger && 0 === c || "right" === s . trigger && 2 === c ; if ( document . elementFromPoint && s . $layer ) { if ( s . $layer . hide ( ) , n = document . elementFromPoint ( r - i . scrollLeft ( ) , l - i . scrollTop ( ) ) , n . isContentEditable ) { var d = document . createRange ( ) , m = window . getSelection ( ) ; d . selectNode ( n ) , d . collapse ( ! 0 ) , m . removeAllRanges ( ) , m . addRange ( d ) } s . $layer . show ( ) } if ( s . reposition && u ) if ( document . elementFromPoint ) { if ( s . $trigger . is ( n ) || s . $trigger . has ( n ) . length ) return void s . position . call ( s . $trigger , s , r , l ) } else if ( a = s . $trigger . offset ( ) , o = e ( window ) , a . top += o . scrollTop ( ) , a . top <= t . pageY && ( a . left += o . scrollLeft ( ) , a . left <= t . pageX && ( a . bottom = a . top + s . $trigger . outerHeight ( ) , a . bottom >= t . pageY && ( a . right = a . left + s . $trigger . outerWidth ( ) , a . right >= t . pageX ) ) ) ) return void s . position . call ( s . $trigger , s , r , l ) ; n && u && s . $trigger . one ( "contextmenu:hidden" , function ( ) { e ( n ) . contextMenu ( { x : r , y : l , button : c } ) } ) , null !== s && null !== s . $menu && s . $menu . trigger ( "contextmenu:hide" ) } , 50 ) } , keyStop : function ( e , t ) { t . isInput || e . preventDefault ( ) , e . stopPropagation ( ) } , key : function ( e ) { var t = { } ; o && ( t = o . data ( "contextMenu" ) || { } ) , void 0 === t . zIndex && ( t . zIndex = 0 ) ; var n = 0 , a = function ( e ) { "" !== e . style . zIndex ? n = e . style . zIndex : null !== e . offsetParent && void 0 !== e . offsetParent ? a ( e . offsetParent ) : null !== e . parentElement && void 0 !== e . parentElement && a ( e . parentElement ) } ; if ( a ( e . target ) , ! ( n > t . zIndex ) ) { switch ( e . keyCode ) { case 9 : case 38 : if ( f . keyStop ( e , t ) , t . isInput ) { if ( 9 === e . keyCode && e . shiftKey ) return e . preventDefault ( ) , t . $selected && t . $selected . find ( "input, textarea, select" ) . blur ( ) , void ( null !== t . $menu && t . $menu . trigger ( "prevcommand" ) ) ; if ( 38 === e . keyCode && "checkbox" === t . $selected . find ( "input, textarea, select" ) . prop ( "type" ) ) return void e . preventDefault ( ) } else if ( 9 !== e . keyCode || e . shiftKey ) return void ( null !== t . $menu && t . $menu . trigger ( "prevcommand" ) ) ; break ; case 40 : if ( f . keyStop ( e , t ) , ! t . isInput ) return void ( null !== t . $menu && t . $menu . trigger ( "nextcommand" ) ) ; if ( 9 === e . keyCode ) return e . preventDefault ( ) , t . $selected && t . $selected . find ( "input, textarea, select" ) . blur ( ) , void ( null !== t . $menu && t . $menu . trigger ( "nextcommand" ) ) ; if ( 40 === e . keyCode && "checkbox" === t . $selected . find ( "input, textarea, select" ) . prop ( "type" ) ) return void e . preventDefault ( ) ; break ; case 37 : if ( f . keyStop ( e , t ) , t . isInput || ! t . $selected || ! t . $selected . length ) break ; if ( ! t . $selected . parent ( ) . hasClass ( "context-menu-root" ) ) { var s = t . $selected . parent ( ) . parent ( ) ; return t . $selected . trigger ( "contextmenu:blur" ) , void ( t . $selected = s ) } break ; case 39 : if ( f . keyStop ( e , t ) , t . isInput || ! t . $selected || ! t . $selected . length ) break ; var i = t . $selected . data ( "contextMenu" ) || { } ; if ( i . $menu && t . $selected . hasClass ( "context-menu-submenu" ) ) return t . $selected = null , i . $selected = null , void i . $menu . t
"string" != typeof e && ( e = "" + e ) ; var n = e . length ; if ( 0 === n ) return 0 ; for ( var r = ! 1 ; ; ) switch ( t ) { case "ascii" : case "binary" : case "raw" : case "raws" : return n ; case "utf8" : case "utf-8" : case void 0 : return q ( e ) . length ; case "ucs2" : case "ucs-2" : case "utf16le" : case "utf-16le" : return 2 * n ; case "hex" : return n >>> 1 ; case "base64" : return $ ( e ) . length ; default : if ( r ) return q ( e ) . length ; t = ( "" + t ) . toLowerCase ( ) , r = ! 0 } } function y ( e , t , n ) { var r = ! 1 ; if ( ( void 0 === t || 0 > t ) && ( t = 0 ) , t > this . length ) return "" ; if ( ( void 0 === n || n > this . length ) && ( n = this . length ) , 0 >= n ) return "" ; if ( n >>>= 0 , t >>>= 0 , t >= n ) return "" ; for ( e || ( e = "utf8" ) ; ; ) switch ( e ) { case "hex" : return I ( this , t , n ) ; case "utf8" : case "utf-8" : return N ( this , t , n ) ; case "ascii" : return E ( this , t , n ) ; case "binary" : return O ( this , t , n ) ; case "base64" : return M ( this , t , n ) ; case "ucs2" : case "ucs-2" : case "utf16le" : case "utf-16le" : return P ( this , t , n ) ; default : if ( r ) throw new TypeError ( "Unknown encoding: " + e ) ; e = ( e + "" ) . toLowerCase ( ) , r = ! 0 } } function x ( e , t , n ) { var r = e [ t ] ; e [ t ] = e [ n ] , e [ n ] = r } function b ( e , t , n , r ) { function i ( e , t ) { return 1 === o ? e [ t ] : e . readUInt16BE ( t * o ) } var o = 1 , a = e . length , l = t . length ; if ( void 0 !== r && ( r = String ( r ) . toLowerCase ( ) , "ucs2" === r || "ucs-2" === r || "utf16le" === r || "utf-16le" === r ) ) { if ( e . length < 2 || t . length < 2 ) return - 1 ; o = 2 , a /= 2 , l /= 2 , n /= 2 } for ( var s = - 1 , c = 0 ; a > n + c ; c ++ ) if ( i ( e , n + c ) === i ( t , - 1 === s ? 0 : c - s ) ) { if ( - 1 === s && ( s = c ) , c - s + 1 === l ) return ( n + s ) * o } else - 1 !== s && ( c -= c - s ) , s = - 1 ; return - 1 } function w ( e , t , n , r ) { n = Number ( n ) || 0 ; var i = e . length - n ; r ? ( r = Number ( r ) , r > i && ( r = i ) ) : r = i ; var o = t . length ; if ( o % 2 !== 0 ) throw new Error ( "Invalid hex string" ) ; r > o / 2 && ( r = o / 2 ) ; for ( var a = 0 ; r > a ; a ++ ) { var l = parseInt ( t . substr ( 2 * a , 2 ) , 16 ) ; if ( isNaN ( l ) ) return a ; e [ n + a ] = l } return a } function k ( e , t , n , r ) { return V ( q ( t , e . length - n ) , e , n , r ) } function S ( e , t , n , r ) { return V ( G ( t ) , e , n , r ) } function C ( e , t , n , r ) { return S ( e , t , n , r ) } function L ( e , t , n , r ) { return V ( $ ( t ) , e , n , r ) } function T ( e , t , n , r ) { return V ( Y ( t , e . length - n ) , e , n , r ) } function M ( e , t , n ) { return 0 === t && n === e . length ? X . fromByteArray ( e ) : X . fromByteArray ( e . slice ( t , n ) ) } function N ( e , t , n ) { n = Math . min ( e . length , n ) ; for ( var r = [ ] , i = t ; n > i ; ) { var o = e [ i ] , a = null , l = o > 239 ? 4 : o > 223 ? 3 : o > 191 ? 2 : 1 ; if ( n >= i + l ) { var s , c , u , f ; switch ( l ) { case 1 : 128 > o && ( a = o ) ; break ; case 2 : s = e [ i + 1 ] , 128 === ( 192 & s ) && ( f = ( 31 & o ) << 6 | 63 & s , f > 127 && ( a = f ) ) ; break ; case 3 : s = e [ i + 1 ] , c = e [ i + 2 ] , 128 === ( 192 & s ) && 128 === ( 192 & c ) && ( f = ( 15 & o ) << 12 | ( 63 & s ) << 6 | 63 & c , f > 2047 && ( 55296 > f || f > 57343 ) && ( a = f ) ) ; break ; case 4 : s = e [ i + 1 ] , c = e [ i + 2 ] , u = e [ i + 3 ] , 128 === ( 192 & s ) && 128 === ( 192 & c ) && 128 === ( 192 & u ) && ( f = ( 15 & o ) << 18 | ( 63 & s ) << 12 | ( 63 & c ) << 6 | 63 & u , f > 65535 && 1114112 > f && ( a = f ) ) } } null === a ? ( a = 65533 , l = 1 ) : a > 65535 && ( a -= 65536 , r . push ( a >>> 10 & 1023 | 55296 ) , a = 56320 | 1023 & a ) , r . push ( a ) , i += l } return A ( r ) } function A ( e ) { var t = e . length ; if ( Q >= t ) return String . fromCharCode . apply ( String , e ) ; for ( var n = "" , r = 0 ; t > r ; ) n += String . fromCharCode . apply ( String , e . slice ( r , r += Q ) ) ; return n } function E ( e , t , n ) { var r = "" ; n = Math . min ( e . length , n ) ; for ( var i = t ; n > i ; i ++ ) r += String . fromCharCode ( 127 & e [ i ] ) ; return r } function O ( e , t , n ) { var r = "" ; n = Math . min ( e . length , n ) ; for ( var i = t ; n > i ; i ++ ) r += String . fromCharCode ( e [ i ] ) ; return r } function I ( e , t , n ) { var r = e . length ; ( ! t || 0 > t ) && ( t = 0 ) , ( ! n || 0 > n || n > r ) && ( n = r ) ; for ( var i = "" , o = t ; n > o ; o ++ ) i += U ( e [ o ] ) ; return i } function P ( e , t , n ) { for ( var r = e . slice ( t , n ) , i = "" , o = 0 ; o < r . length ; o += 2 ) i += String . fromCharCode ( r [ o ] + 256 * r [ o + 1 ] ) ; return i } function R ( e , t , n ) { if ( e % 1 !== 0 || 0 > e ) throw new RangeError ( "offset is not uint" ) ; if ( e + t > n ) throw new RangeError ( "Trying to access beyond buffer length" ) } function D ( e , t , n , r , i , o ) { if ( ! a . isBuffer ( e ) ) throw new TypeError ( '"buffer" argument must be a Buffer instance' ) ; if ( t > i || o > t ) throw new RangeError ( '"value" argument is out of bounds' ) ; if ( n + r > e . length ) throw new RangeError ( "Index out of range" ) } function H ( e , t , n , r ) { 0 > t && ( t = 65535 + t + 1 ) ; for ( var i = 0 , o = Math . min ( e . length - n , 2 ) ; o > i ; i ++ ) e [ n + i ] = ( t & 255 << 8 * ( r ? i : 1 - i ) ) >>> 8 * ( r ? i : 1 - i ) } function W ( e , t , n , r ) { 0 > t && ( t = 4294967295 + t + 1 ) ; for ( var i = 0 , o = Math . min ( e . length - n , 4 ) ; o > i ; i ++ ) e [ n + i ] = t >>> 8 * ( r ? i : 3 - i ) & 255 } function B ( e , t , n , r , i , o ) { if ( n + r > e . length ) throw new RangeError ( "Index out of range" ) ; if ( 0 > n ) throw new RangeError ( "Index out of range" ) } function _ ( e , t , n , r , i ) { return i || B ( e , t , n , 4 , 3.4028234663852886 e38 , - 3.4028234663852886 e38 ) , Z . write ( e , t , n , r , 23 , 4 ) , n + 4 } function F ( e , t , n , r , i ) { return i || B ( e , t , n , 8 , 1.7976931348623157 e308 , - 1.79
r = Math . floor ( r - Ue ( e ) ) ; var i = n && null != n . bottom ? n . bottom : r + e . wrapper . clientHeight , o = ni ( t , r ) , a = ni ( t , i ) ; if ( n && n . ensure ) { var l = n . ensure . from . line , s = n . ensure . to . line ; o > l ? ( o = l , a = ni ( t , ri ( Zr ( t , l ) ) + e . wrapper . clientHeight ) ) : Math . min ( s , t . lastLine ( ) ) >= a && ( o = ni ( t , ri ( Zr ( t , s ) ) - e . wrapper . clientHeight ) , a = s ) } return { from : o , to : Math . max ( a , o + 1 ) } } function w ( e ) { var t = e . display , n = t . view ; if ( t . alignWidgets || t . gutters . firstChild && e . options . fixedGutter ) { for ( var r = C ( t ) - t . scroller . scrollLeft + e . doc . scrollLeft , i = t . gutters . offsetWidth , o = r + "px" , a = 0 ; a < n . length ; a ++ ) if ( ! n [ a ] . hidden ) { e . options . fixedGutter && n [ a ] . gutter && ( n [ a ] . gutter . style . left = o ) ; var l = n [ a ] . alignable ; if ( l ) for ( var s = 0 ; s < l . length ; s ++ ) l [ s ] . style . left = o } e . options . fixedGutter && ( t . gutters . style . left = r + i + "px" ) } } function k ( e ) { if ( ! e . options . lineNumbers ) return ! 1 ; var t = e . doc , n = S ( e . options , t . first + t . size - 1 ) , r = e . display ; if ( n . length != r . lineNumChars ) { var i = r . measure . appendChild ( ji ( "div" , [ ji ( "div" , n ) ] , "CodeMirror-linenumber CodeMirror-gutter-elt" ) ) , o = i . firstChild . offsetWidth , a = i . offsetWidth - o ; return r . lineGutter . style . width = "" , r . lineNumInnerWidth = Math . max ( o , r . lineGutter . offsetWidth - a ) + 1 , r . lineNumWidth = r . lineNumInnerWidth + a , r . lineNumChars = r . lineNumInnerWidth ? n . length : - 1 , r . lineGutter . style . width = r . lineNumWidth + "px" , u ( e ) , ! 0 } return ! 1 } function S ( e , t ) { return String ( e . lineNumberFormatter ( t + e . firstLineNumber ) ) } function C ( e ) { return e . scroller . getBoundingClientRect ( ) . left - e . sizer . getBoundingClientRect ( ) . left } function L ( e , t , n ) { var r = e . display ; this . viewport = t , this . visible = b ( r , e . doc , t ) , this . editorIsHidden = ! r . wrapper . offsetWidth , this . wrapperHeight = r . wrapper . clientHeight , this . wrapperWidth = r . wrapper . clientWidth , this . oldDisplayWidth = $e ( e ) , this . force = n , this . dims = P ( e ) , this . events = [ ] } function T ( e ) { var t = e . display ; ! t . scrollbarsClipped && t . scroller . offsetWidth && ( t . nativeBarWidth = t . scroller . offsetWidth - t . scroller . clientWidth , t . heightForcer . style . height = Ye ( e ) + "px" , t . sizer . style . marginBottom = - t . nativeBarWidth + "px" , t . sizer . style . borderRightWidth = Ye ( e ) + "px" , t . scrollbarsClipped = ! 0 ) } function M ( e , t ) { var n = e . display , r = e . doc ; if ( t . editorIsHidden ) return Wt ( e ) , ! 1 ; if ( ! t . force && t . visible . from >= n . viewFrom && t . visible . to <= n . viewTo && ( null == n . updateLineNumbers || n . updateLineNumbers >= n . viewTo ) && n . renderedView == n . view && 0 == zt ( e ) ) return ! 1 ; k ( e ) && ( Wt ( e ) , t . dims = P ( e ) ) ; var i = r . first + r . size , o = Math . max ( t . visible . from - e . options . viewportMargin , r . first ) , a = Math . min ( i , t . visible . to + e . options . viewportMargin ) ; n . viewFrom < o && o - n . viewFrom < 20 && ( o = Math . max ( r . first , n . viewFrom ) ) , n . viewTo > a && n . viewTo - a < 20 && ( a = Math . min ( i , n . viewTo ) ) , Wo && ( o = br ( e . doc , o ) , a = wr ( e . doc , a ) ) ; var l = o != n . viewFrom || a != n . viewTo || n . lastWrapHeight != t . wrapperHeight || n . lastWrapWidth != t . wrapperWidth ; Ft ( e , o , a ) , n . viewOffset = ri ( Zr ( e . doc , n . viewFrom ) ) , e . display . mover . style . top = n . viewOffset + "px" ; var s = zt ( e ) ; if ( ! l && 0 == s && ! t . force && n . renderedView == n . view && ( null == n . updateLineNumbers || n . updateLineNumbers >= n . viewTo ) ) return ! 1 ; var c = Gi ( ) ; return s > 4 && ( n . lineDiv . style . display = "none" ) , R ( e , n . updateLineNumbers , t . dims ) , s > 4 && ( n . lineDiv . style . display = "" ) , n . renderedView = n . view , c && Gi ( ) != c && c . offsetHeight && c . focus ( ) , Ui ( n . cursorDiv ) , Ui ( n . selectionDiv ) , n . gutters . style . height = n . sizer . style . minHeight = 0 , l && ( n . lastWrapHeight = t . wrapperHeight , n . lastWrapWidth = t . wrapperWidth , _e ( e , 400 ) ) , n . updateLineNumbers = null , ! 0 } function N ( e , t ) { for ( var n = t . viewport , r = ! 0 ; ( r && e . options . lineWrapping && t . oldDisplayWidth != $e ( e ) || ( n && null != n . top && ( n = { top : Math . min ( e . doc . height + qe ( e . display ) - Ve ( e ) , n . top ) } ) , t . visible = b ( e . display , e . doc , n ) , ! ( t . visible . from >= e . display . viewFrom && t . visible . to <= e . display . viewTo ) ) ) && M ( e , t ) ; r = ! 1 ) { O ( e ) ; var i = p ( e ) ; Re ( e ) , y ( e , i ) , E ( e , i ) } t . signal ( e , "update" , e ) , e . display . viewFrom == e . display . reportedViewFrom && e . display . viewTo == e . display . reportedViewTo || ( t . signal ( e , "viewportChange" , e , e . display . viewFrom , e . display . viewTo ) , e . display . reportedViewFrom = e . display . viewFrom , e . display . reportedViewTo = e . display . viewTo ) } function A ( e , t ) { var n = new L ( e , t ) ; if ( M ( e , n ) ) { O ( e ) , N ( e , n ) ; var r = p ( e ) ; Re ( e ) , y ( e , r ) , E ( e , r ) , n . finish ( ) } } function E ( e , t ) { e . display . sizer . style . minHeight = t . docHeight + "px" , e . display . heightForcer . style . top = t . docHeight + "px" , e . display . gutters . style . height = t . docHeig
e . preparedSelection && t . display . input . showSelection ( e . preparedSelection , n ) , ( e . updatedDisplay || e . startHeight != t . doc . height ) && y ( t , e . barMeasure ) , e . updatedDisplay && E ( t , e . barMeasure ) , e . selectionChanged && Be ( t ) , t . state . focused && e . updateInput && t . display . input . reset ( e . typing ) , n && X ( e . cm ) } function Nt ( e ) { var t = e . cm , n = t . display , r = t . doc ; if ( e . updatedDisplay && N ( t , e . update ) , null == n . wheelStartX || null == e . scrollTop && null == e . scrollLeft && ! e . scrollToPos || ( n . wheelStartX = n . wheelStartY = null ) , null == e . scrollTop || n . scroller . scrollTop == e . scrollTop && ! e . forceScroll || ( r . scrollTop = Math . max ( 0 , Math . min ( n . scroller . scrollHeight - n . scroller . clientHeight , e . scrollTop ) ) , n . scrollbars . setScrollTop ( r . scrollTop ) , n . scroller . scrollTop = r . scrollTop ) , null == e . scrollLeft || n . scroller . scrollLeft == e . scrollLeft && ! e . forceScroll || ( r . scrollLeft = Math . max ( 0 , Math . min ( n . scroller . scrollWidth - n . scroller . clientWidth , e . scrollLeft ) ) , n . scrollbars . setScrollLeft ( r . scrollLeft ) , n . scroller . scrollLeft = r . scrollLeft , w ( t ) ) , e . scrollToPos ) { var i = Rn ( t , me ( r , e . scrollToPos . from ) , me ( r , e . scrollToPos . to ) , e . scrollToPos . margin ) ; e . scrollToPos . isCursor && t . state . focused && Pn ( t , i ) } var o = e . maybeHiddenMarkers , a = e . maybeUnhiddenMarkers ; if ( o ) for ( var l = 0 ; l < o . length ; ++ l ) o [ l ] . lines . length || Pa ( o [ l ] , "hide" ) ; if ( a ) for ( var l = 0 ; l < a . length ; ++ l ) a [ l ] . lines . length && Pa ( a [ l ] , "unhide" ) ; n . wrapper . offsetHeight && ( r . scrollTop = t . display . scroller . scrollTop ) , e . changeObjs && Pa ( t , "changes" , t , e . changeObjs ) , e . update && e . update . finish ( ) } function At ( e , t ) { if ( e . curOp ) return t ( ) ; bt ( e ) ; try { return t ( ) } finally { kt ( e ) } } function Et ( e , t ) { return function ( ) { if ( e . curOp ) return t . apply ( e , arguments ) ; bt ( e ) ; try { return t . apply ( e , arguments ) } finally { kt ( e ) } } } function Ot ( e ) { return function ( ) { if ( this . curOp ) return e . apply ( this , arguments ) ; bt ( this ) ; try { return e . apply ( this , arguments ) } finally { kt ( this ) } } } function It ( e ) { return function ( ) { var t = this . cm ; if ( ! t || t . curOp ) return e . apply ( this , arguments ) ; bt ( t ) ; try { return e . apply ( this , arguments ) } finally { kt ( t ) } } } function Pt ( e , t , n ) { this . line = t , this . rest = xr ( t ) , this . size = this . rest ? ti ( Ii ( this . rest ) ) - n + 1 : 1 , this . node = this . text = null , this . hidden = kr ( e , t ) } function Rt ( e , t , n ) { for ( var r , i = [ ] , o = t ; n > o ; o = r ) { var a = new Pt ( e . doc , Zr ( e . doc , o ) , o ) ; r = o + a . size , i . push ( a ) } return i } function Dt ( e , t , n , r ) { null == t && ( t = e . doc . first ) , null == n && ( n = e . doc . first + e . doc . size ) , r || ( r = 0 ) ; var i = e . display ; if ( r && n < i . viewTo && ( null == i . updateLineNumbers || i . updateLineNumbers > t ) && ( i . updateLineNumbers = t ) , e . curOp . viewChanged = ! 0 , t >= i . viewTo ) Wo && br ( e . doc , t ) < i . viewTo && Wt ( e ) ; else if ( n <= i . viewFrom ) Wo && wr ( e . doc , n + r ) > i . viewFrom ? Wt ( e ) : ( i . viewFrom += r , i . viewTo += r ) ; else if ( t <= i . viewFrom && n >= i . viewTo ) Wt ( e ) ; else if ( t <= i . viewFrom ) { var o = _t ( e , n , n + r , 1 ) ; o ? ( i . view = i . view . slice ( o . index ) , i . viewFrom = o . lineN , i . viewTo += r ) : Wt ( e ) } else if ( n >= i . viewTo ) { var o = _t ( e , t , t , - 1 ) ; o ? ( i . view = i . view . slice ( 0 , o . index ) , i . viewTo = o . lineN ) : Wt ( e ) } else { var a = _t ( e , t , t , - 1 ) , l = _t ( e , n , n + r , 1 ) ; a && l ? ( i . view = i . view . slice ( 0 , a . index ) . concat ( Rt ( e , a . lineN , l . lineN ) ) . concat ( i . view . slice ( l . index ) ) , i . viewTo += r ) : Wt ( e ) } var s = i . externalMeasured ; s && ( n < s . lineN ? s . lineN += r : t < s . lineN + s . size && ( i . externalMeasured = null ) ) } function Ht ( e , t , n ) { e . curOp . viewChanged = ! 0 ; var r = e . display , i = e . display . externalMeasured ; if ( i && t >= i . lineN && t < i . lineN + i . size && ( r . externalMeasured = null ) , ! ( t < r . viewFrom || t >= r . viewTo ) ) { var o = r . view [ Bt ( e , t ) ] ; if ( null != o . node ) { var a = o . changes || ( o . changes = [ ] ) ; - 1 == Pi ( a , n ) && a . push ( n ) } } } function Wt ( e ) { e . display . viewFrom = e . display . viewTo = e . doc . first , e . display . view = [ ] , e . display . viewOffset = 0 } function Bt ( e , t ) { if ( t >= e . display . viewTo ) return null ; if ( t -= e . display . viewFrom , 0 > t ) return null ; for ( var n = e . display . view , r = 0 ; r < n . length ; r ++ ) if ( t -= n [ r ] . size , 0 > t ) return r } function _t ( e , t , n , r ) { var i , o = Bt ( e , t ) , a = e . display . view ; if ( ! Wo || n == e . doc . first + e . doc . size ) return { index : o , lineN : n } ; for ( var l = 0 , s = e . display . viewFrom ; o > l ; l ++ ) s += a [ l ] . size ; if ( s != t ) { if ( r > 0 ) { if ( o == a . length - 1 ) return null ; i = s + a [ o ] . size - t , o ++ } else i = s - t ; t += i , n += i } for ( ; br ( e . doc , n ) != n ; ) { if ( o == ( 0 > r ? 0 : a . length - 1 ) ) return null ; n += r * a [ o - ( 0 > r ? 1 : 0 ) ] . size , o += r } return { index : o , lineN : n } } function Ft ( e , t , n ) { var r = e . display , i = r . view ; 0 == i . length || t >= r . viewTo || n <= r . viewFrom ? ( r . view = Rt ( e , t , n ) , r . viewFrom = t ) : ( r . viewFrom > t ? r . view = Rt ( e , t , r . viewFrom ) .
! n . readOnly || r && - 1 != Pi ( r , n ) || ( r || ( r = [ ] ) ) . push ( n ) } } ) , ! r ) return null ; for ( var i = [ { from : t , to : n } ] , o = 0 ; o < r . length ; ++ o ) for ( var a = r [ o ] , l = a . find ( 0 ) , s = 0 ; s < i . length ; ++ s ) { var c = i [ s ] ; if ( ! ( _o ( c . to , l . from ) < 0 || _o ( c . from , l . to ) > 0 ) ) { var u = [ s , 1 ] , f = _o ( c . from , l . from ) , h = _o ( c . to , l . to ) ; ( 0 > f || ! a . inclusiveLeft && ! f ) && u . push ( { from : c . from , to : l . from } ) , ( h > 0 || ! a . inclusiveRight && ! h ) && u . push ( { from : l . to , to : c . to } ) , i . splice . apply ( i , u ) , s += u . length - 1 } } return i } function cr ( e ) { var t = e . markedSpans ; if ( t ) { for ( var n = 0 ; n < t . length ; ++ n ) t [ n ] . marker . detachLine ( e ) ; e . markedSpans = null } } function ur ( e , t ) { if ( t ) { for ( var n = 0 ; n < t . length ; ++ n ) t [ n ] . marker . attachLine ( e ) ; e . markedSpans = t } } function fr ( e ) { return e . inclusiveLeft ? - 1 : 0 } function hr ( e ) { return e . inclusiveRight ? 1 : 0 } function dr ( e , t ) { var n = e . lines . length - t . lines . length ; if ( 0 != n ) return n ; var r = e . find ( ) , i = t . find ( ) , o = _o ( r . from , i . from ) || fr ( e ) - fr ( t ) ; if ( o ) return - o ; var a = _o ( r . to , i . to ) || hr ( e ) - hr ( t ) ; return a ? a : t . id - e . id } function pr ( e , t ) { var n , r = Wo && e . markedSpans ; if ( r ) for ( var i , o = 0 ; o < r . length ; ++ o ) i = r [ o ] , i . marker . collapsed && null == ( t ? i . from : i . to ) && ( ! n || dr ( n , i . marker ) < 0 ) && ( n = i . marker ) ; return n } function mr ( e ) { return pr ( e , ! 0 ) } function gr ( e ) { return pr ( e , ! 1 ) } function vr ( e , t , n , r , i ) { var o = Zr ( e , t ) , a = Wo && o . markedSpans ; if ( a ) for ( var l = 0 ; l < a . length ; ++ l ) { var s = a [ l ] ; if ( s . marker . collapsed ) { var c = s . marker . find ( 0 ) , u = _o ( c . from , n ) || fr ( s . marker ) - fr ( i ) , f = _o ( c . to , r ) || hr ( s . marker ) - hr ( i ) ; if ( ! ( u >= 0 && 0 >= f || 0 >= u && f >= 0 ) && ( 0 >= u && ( s . marker . inclusiveRight && i . inclusiveLeft ? _o ( c . to , n ) >= 0 : _o ( c . to , n ) > 0 ) || u >= 0 && ( s . marker . inclusiveRight && i . inclusiveLeft ? _o ( c . from , r ) <= 0 : _o ( c . from , r ) < 0 ) ) ) return ! 0 } } } function yr ( e ) { for ( var t ; t = mr ( e ) ; ) e = t . find ( - 1 , ! 0 ) . line ; return e } function xr ( e ) { for ( var t , n ; t = gr ( e ) ; ) e = t . find ( 1 , ! 0 ) . line , ( n || ( n = [ ] ) ) . push ( e ) ; return n } function br ( e , t ) { var n = Zr ( e , t ) , r = yr ( n ) ; return n == r ? t : ti ( r ) } function wr ( e , t ) { if ( t > e . lastLine ( ) ) return t ; var n , r = Zr ( e , t ) ; if ( ! kr ( e , r ) ) return t ; for ( ; n = gr ( r ) ; ) r = n . find ( 1 , ! 0 ) . line ; return ti ( r ) + 1 } function kr ( e , t ) { var n = Wo && 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 . widgetNode && 0 == r . from && r . marker . inclusiveLeft && Sr ( e , t , r ) ) return ! 0 } } function Sr ( e , t , n ) { if ( null == n . to ) { var r = n . marker . find ( 1 , ! 0 ) ; return Sr ( e , r . line , er ( r . line . markedSpans , n . marker ) ) } if ( n . marker . inclusiveRight && n . to == t . text . length ) return ! 0 ; for ( var i , o = 0 ; o < t . markedSpans . length ; ++ o ) if ( i = t . markedSpans [ o ] , i . marker . collapsed && ! i . marker . widgetNode && i . from == n . to && ( null == i . to || i . to != n . from ) && ( i . marker . inclusiveLeft || n . marker . inclusiveRight ) && Sr ( e , t , i ) ) return ! 0 } function Cr ( e , t , n ) { ri ( t ) < ( e . curOp && e . curOp . scrollTop || e . doc . scrollTop ) && Wn ( e , null , n ) } function Lr ( e ) { if ( null != e . height ) return e . height ; var t = e . doc . cm ; if ( ! t ) return 0 ; if ( ! Va ( document . body , e . node ) ) { var n = "position: relative;" ; e . coverGutter && ( n += "margin-left: -" + t . display . gutters . offsetWidth + "px;" ) , e . noHScroll && ( n += "width: " + t . display . wrapper . clientWidth + "px;" ) , qi ( t . display . measure , ji ( "div" , [ e . node ] , null , n ) ) } return e . height = e . node . parentNode . offsetHeight } function Tr ( e , t , n , r ) { var i = new xa ( e , n , r ) , o = e . cm ; return o && i . noHScroll && ( o . display . alignWidgets = ! 0 ) , zn ( e , t , "widget" , function ( t ) { var n = t . widgets || ( t . widgets = [ ] ) ; if ( null == i . insertAt ? n . push ( i ) : n . splice ( Math . min ( n . length - 1 , Math . max ( 0 , i . insertAt ) ) , 0 , i ) , i . line = t , o && ! kr ( e , t ) ) { var r = ri ( t ) < e . scrollTop ; ei ( t , t . height + Lr ( i ) ) , r && Wn ( o , null , i . height ) , o . curOp . forceUpdate = ! 0 } return ! 0 } ) , i } function Mr ( e , t , n , r ) { e . text = t , e . stateAfter && ( e . stateAfter = null ) , e . styles && ( e . styles = null ) , null != e . order && ( e . order = null ) , cr ( e ) , ur ( e , n ) ; var i = r ? r ( e ) : 1 ; i != e . height && ei ( e , i ) } function Nr ( e ) { e . parent = null , cr ( e ) } function Ar ( e , t ) { if ( e ) for ( ; ; ) { var n = e . match ( /(?:^|\s+)line-(background-)?(\S+)/ ) ; if ( ! n ) break ; e = e . slice ( 0 , n . index ) + e . slice ( n . index + n [ 0 ] . length ) ; var r = n [ 1 ] ? "bgClass" : "textClass" ; null == t [ r ] ? t [ r ] = n [ 2 ] : new RegExp ( "(?:^|s)" + n [ 2 ] + "(?:$|s)" ) . test ( t [ r ] ) || ( t [ r ] += " " + n [ 2 ] ) } return e } function Er ( t , n ) { if ( t . blankLine ) return t . blankLine ( n ) ; if ( t . innerMode ) { var r = e . innerMode ( t , n ) ; return r . mode . blankLine ? r . mode . blankLine ( r . state ) : void 0 } } function Or ( t , n , r , i ) { for ( var o = 0 ; 10 > o ; o ++ ) { i && ( i [ 0 ] = e . innerMode ( t , r ) . mode ) ; var a = t . token ( n , r ) ; if ( n . pos > n . start ) return a } throw new Error ( " Mode
Dt ( r ) } ) } ) , Ea ( i , "copy" , t ) , Ea ( i , "cut" , t ) } , prepareSelection : function ( ) { var e = De ( this . cm , ! 1 ) ; return e . focus = this . cm . state . focused , e } , showSelection : function ( e , t ) { e && this . cm . display . view . length && ( ( e . focus || t ) && this . showPrimarySelection ( ) , this . showMultipleSelections ( e ) ) } , showPrimarySelection : function ( ) { var e = window . getSelection ( ) , t = this . cm . doc . sel . primary ( ) , n = le ( this . cm , e . anchorNode , e . anchorOffset ) , r = le ( this . cm , e . focusNode , e . focusOffset ) ; if ( ! n || n . bad || ! r || r . bad || 0 != _o ( K ( n , r ) , t . from ( ) ) || 0 != _o ( V ( n , r ) , t . to ( ) ) ) { var i = oe ( this . cm , t . from ( ) ) , o = oe ( this . cm , t . to ( ) ) ; if ( i || o ) { var a = this . cm . display . view , l = e . rangeCount && e . getRangeAt ( 0 ) ; if ( i ) { if ( ! o ) { var s = a [ a . length - 1 ] . measure , c = s . maps ? s . maps [ s . maps . length - 1 ] : s . map ; o = { node : c [ c . length - 1 ] , offset : c [ c . length - 2 ] - c [ c . length - 3 ] } } } else i = { node : a [ 0 ] . measure . map [ 2 ] , offset : 0 } ; try { var u = qa ( i . node , i . offset , o . offset , o . node ) } catch ( f ) { } u && ( ! go && this . cm . state . focused ? ( e . collapse ( i . node , i . offset ) , u . collapsed || e . addRange ( u ) ) : ( e . removeAllRanges ( ) , e . addRange ( u ) ) , l && null == e . anchorNode ? e . addRange ( l ) : go && this . startGracePeriod ( ) ) , this . rememberSelection ( ) } } } , startGracePeriod : function ( ) { var e = this ; clearTimeout ( this . gracePeriod ) , this . gracePeriod = setTimeout ( function ( ) { e . gracePeriod = ! 1 , e . selectionChanged ( ) && e . cm . operation ( function ( ) { e . cm . curOp . selectionChanged = ! 0 } ) } , 20 ) } , showMultipleSelections : function ( e ) { qi ( this . cm . display . cursorDiv , e . cursors ) , qi ( this . cm . display . selectionDiv , e . selection ) } , rememberSelection : function ( ) { var e = window . getSelection ( ) ; this . lastAnchorNode = e . anchorNode , this . lastAnchorOffset = e . anchorOffset , this . lastFocusNode = e . focusNode , this . lastFocusOffset = e . focusOffset } , selectionInEditor : function ( ) { var e = window . getSelection ( ) ; if ( ! e . rangeCount ) return ! 1 ; var t = e . getRangeAt ( 0 ) . commonAncestorContainer ; return Va ( this . div , t ) } , focus : function ( ) { "nocursor" != this . cm . options . readOnly && this . div . focus ( ) } , blur : function ( ) { this . div . blur ( ) } , getField : function ( ) { return this . div } , supportsTouch : function ( ) { return ! 0 } , receivedFocus : function ( ) { function e ( ) { t . cm . state . focused && ( t . pollSelection ( ) , t . polling . set ( t . cm . options . pollInterval , e ) ) } var t = this ; this . selectionInEditor ( ) ? this . pollSelection ( ) : At ( this . cm , function ( ) { t . cm . curOp . selectionChanged = ! 0 } ) , this . polling . set ( this . cm . options . pollInterval , e ) } , selectionChanged : function ( ) { var e = window . getSelection ( ) ; return e . anchorNode != this . lastAnchorNode || e . anchorOffset != this . lastAnchorOffset || e . focusNode != this . lastFocusNode || e . focusOffset != this . lastFocusOffset } , pollSelection : function ( ) { if ( ! this . composing && ! this . gracePeriod && this . selectionChanged ( ) ) { var e = window . getSelection ( ) , t = this . cm ; this . rememberSelection ( ) ; var n = le ( t , e . anchorNode , e . anchorOffset ) , r = le ( t , e . focusNode , e . focusOffset ) ; n && r && At ( t , function ( ) { Te ( t . doc , de ( n , r ) , Wa ) , ( n . bad || r . bad ) && ( t . curOp . selectionChanged = ! 0 ) } ) } } , pollContent : function ( ) { var e = this . cm , t = e . display , n = e . doc . sel . primary ( ) , r = n . from ( ) , i = n . to ( ) ; if ( r . line < t . viewFrom || i . line > t . viewTo - 1 ) return ! 1 ; var o ; if ( r . line == t . viewFrom || 0 == ( o = Bt ( e , r . line ) ) ) var a = ti ( t . view [ 0 ] . line ) , l = t . view [ 0 ] . node ; else var a = ti ( t . view [ o ] . line ) , l = t . view [ o - 1 ] . node . nextSibling ; var s = Bt ( e , i . line ) ; if ( s == t . view . length - 1 ) var c = t . viewTo - 1 , u = t . lineDiv . lastChild ; else var c = ti ( t . view [ s + 1 ] . line ) - 1 , u = t . view [ s + 1 ] . node . previousSibling ; for ( var f = e . doc . splitLines ( ce ( e , l , u , a , c ) ) , h = Jr ( e . doc , Bo ( a , 0 ) , Bo ( c , Zr ( e . doc , c ) . text . length ) ) ; f . length > 1 && h . length > 1 ; ) if ( Ii ( f ) == Ii ( h ) ) f . pop ( ) , h . pop ( ) , c -- ; else { if ( f [ 0 ] != h [ 0 ] ) break ; f . shift ( ) , h . shift ( ) , a ++ } for ( var d = 0 , p = 0 , m = f [ 0 ] , g = h [ 0 ] , v = Math . min ( m . length , g . length ) ; v > d && m . charCodeAt ( d ) == g . charCodeAt ( d ) ; ) ++ d ; for ( var y = Ii ( f ) , x = Ii ( h ) , b = Math . min ( y . length - ( 1 == f . length ? d : 0 ) , x . length - ( 1 == h . length ? d : 0 ) ) ; b > p && y . charCodeAt ( y . length - p - 1 ) == x . charCodeAt ( x . length - p - 1 ) ; ) ++ p ; f [ f . length - 1 ] = y . slice ( 0 , y . length - p ) , f [ 0 ] = f [ 0 ] . slice ( d ) ; var w = Bo ( a , d ) , k = Bo ( c , h . length ? Ii ( h ) . length - p : 0 ) ; return f . length > 1 || f [ 0 ] || _o ( w , k ) ? ( In ( e . doc , f , w , k , "+input" ) , ! 0 ) : void 0 } , ensurePolled : function ( ) { this . forceCompositionEnd ( ) } , reset : function ( ) { this . forceCompositionEnd ( ) } , forceCompositionEnd : function ( ) { this . composing && ! this . composing . handled && ( this . applyComposition ( this . composing ) , this . composing . handled = ! 0 , this . div . blur ( ) , this . div . focus ( ) ) } , applyCom
} } ) } , va . prototype . attachLine = function ( e ) { if ( ! this . lines . length && this . doc . cm ) { var t = this . doc . cm . curOp ; t . maybeHiddenMarkers && - 1 != Pi ( t . maybeHiddenMarkers , this ) || ( t . maybeUnhiddenMarkers || ( t . maybeUnhiddenMarkers = [ ] ) ) . push ( this ) } this . lines . push ( e ) } , va . prototype . detachLine = function ( e ) { if ( this . lines . splice ( Pi ( this . lines , e ) , 1 ) , ! this . lines . length && this . doc . cm ) { var t = this . doc . cm . curOp ; ( t . maybeHiddenMarkers || ( t . maybeHiddenMarkers = [ ] ) ) . push ( this ) } } ; var ga = 0 , ya = e . SharedTextMarker = function ( e , t ) { this . markers = e , this . primary = t ; for ( var n = 0 ; n < e . length ; ++ n ) e [ n ] . parent = this } ; Ai ( ya ) , ya . prototype . clear = function ( ) { if ( ! this . explicitlyCleared ) { this . explicitlyCleared = ! 0 ; for ( var e = 0 ; e < this . markers . length ; ++ e ) this . markers [ e ] . clear ( ) ; Ci ( this , "clear" ) } } , ya . prototype . find = function ( e , t ) { return this . primary . find ( e , t ) } ; var xa = e . LineWidget = function ( e , t , n ) { if ( n ) for ( var r in n ) n . hasOwnProperty ( r ) && ( this [ r ] = n [ r ] ) ; this . doc = e , this . node = t } ; Ai ( xa ) , xa . prototype . clear = function ( ) { var e = this . doc . cm , t = this . line . widgets , n = this . line , r = ti ( n ) ; if ( null != r && t ) { for ( var i = 0 ; i < t . length ; ++ i ) t [ i ] == this && t . splice ( i -- , 1 ) ; t . length || ( n . widgets = null ) ; var o = Lr ( this ) ; ei ( n , Math . max ( 0 , n . height - o ) ) , e && At ( e , function ( ) { Cr ( e , n , - o ) , Ht ( e , r , "widget" ) } ) } } , xa . prototype . changed = function ( ) { var e = this . height , t = this . doc . cm , n = this . line ; this . height = null ; var r = Lr ( this ) - e ; r && ( ei ( n , n . height + r ) , t && At ( t , function ( ) { t . curOp . forceUpdate = ! 0 , Cr ( t , n , r ) } ) ) } ; var ba = e . Line = function ( e , t , n ) { this . text = e , ur ( this , t ) , this . height = n ? n ( this ) : 1 } ; Ai ( ba ) , ba . prototype . lineNo = function ( ) { return ti ( this ) } ; var wa = { } , ka = { } ; $r . 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 , Nr ( i ) , Ci ( i , "delete" ) } this . lines . splice ( e , t ) } , collapse : function ( e ) { e . push . apply ( e , 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 ; r < t . length ; ++ 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 } } , Vr . 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 ) , a = r . height ; if ( r . removeInner ( e , o ) , this . height -= a - 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 && ( this . children . length > 1 || ! ( this . children [ 0 ] instanceof $r ) ) ) { var l = [ ] ; this . collapse ( l ) , this . children = [ new $r ( l ) ] , this . children [ 0 ] . parent = this } } , collapse : function ( e ) { for ( var t = 0 ; t < this . children . length ; ++ t ) this . children [ t ] . collapse ( e ) } , insertInner : function ( e , t , n ) { this . size += t . length , this . height += n ; for ( var r = 0 ; r < this . children . length ; ++ r ) { var i = this . children [ r ] , o = i . chunkSize ( ) ; if ( o >= e ) { if ( i . insertInner ( e , t , n ) , i . lines && i . lines . length > 50 ) { for ( var a = i . lines . length % 25 + 25 , l = a ; l < i . lines . length ; ) { var s = new $r ( i . lines . slice ( l , l += 25 ) ) ; i . height -= s . height , this . children . splice ( ++ r , 0 , s ) , s . parent = this } i . lines = i . lines . slice ( 0 , a ) , this . maybeSpill ( ) } break } e -= o } } , maybeSpill : function ( ) { if ( ! ( this . children . length <= 10 ) ) { var e = this ; do { var t = e . children . splice ( e . children . length - 5 , 5 ) , n = new Vr ( t ) ; if ( e . parent ) { e . size -= n . size , e . height -= n . height ; var r = Pi ( e . parent . children , e ) ; e . parent . children . splice ( r + 1 , 0 , n ) } else { var i = new Vr ( 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 ; r < this . children . length ; ++ r ) { var i = this . children [ r ] , o = i . chunkSize ( ) ; if ( o > e ) { var a = Math . min ( t , o - e ) ; if ( i . iterN ( e , a , n ) ) return ! 0 ; if ( 0 == ( t -= a ) ) break ; e = 0 } else e -= o } } } ; var Sa = 0 , Ca = e . Doc = function ( e , t , n , r ) { if ( ! ( this instanceof Ca ) ) return new Ca ( e , t , n , r ) ; null == n && ( n = 0 ) , Vr . call ( this , [ new $r ( [ new ba ( "" , null ) ] ) ] ) , this . first = n , this . scrollTop = this . scrollLeft = 0 , this . cantEdit = ! 1 , this . cleanGeneration = 1 , this . frontier = n ; var i = Bo ( n , 0 ) ; this . sel = de ( i ) , this . history = new oi ( null ) , this . id = ++ Sa , this . modeOption = t , this . lineSep = r , this . extend = ! 1 , "string" == typeof e && ( e = this . splitLines ( e ) ) , Yr ( this , { from : i , to : i , text : e } ) , Te ( this , de ( i ) , Wa ) } ; Ca . prototype = Hi ( Vr . prototype , { constructor : Ca , iter : functio
")" : /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/ , "]" : /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\\]]|\\.)*\])*?(?=\])/ } , R = { startState : function ( ) { return { f : s , prevLine : null , thisLine : null , block : s , htmlState : null , indentation : 0 , inline : p , text : d , formatting : ! 1 , linkText : ! 1 , linkHref : ! 1 , linkTitle : ! 1 , code : 0 , em : ! 1 , strong : ! 1 , header : 0 , hr : ! 1 , taskList : ! 1 , list : ! 1 , listStack : [ ] , quote : 0 , trailingSpace : 0 , trailingSpaceNewLine : ! 1 , strikethrough : ! 1 , fencedChars : null } } , copyState : function ( t ) { return { f : t . f , prevLine : t . prevLine , thisLine : t . thisLine , block : t . block , htmlState : t . htmlState && e . copyState ( w , t . htmlState ) , indentation : t . indentation , localMode : t . localMode , localState : t . localMode ? e . copyState ( t . localMode , t . localState ) : null , inline : t . inline , text : t . text , formatting : ! 1 , linkTitle : t . linkTitle , code : t . code , em : t . em , strong : t . strong , strikethrough : t . strikethrough , header : t . header , hr : t . hr , taskList : t . taskList , list : t . list , listStack : t . listStack . slice ( 0 ) , quote : t . quote , indentedCode : t . indentedCode , trailingSpace : t . trailingSpace , trailingSpaceNewLine : t . trailingSpaceNewLine , md _inside : t . md _inside , fencedChars : t . fencedChars } } , token : function ( e , t ) { if ( t . formatting = ! 1 , e != t . thisLine ) { var n = t . header || t . hr ; if ( t . header = 0 , t . hr = ! 1 , e . match ( /^\s*$/ , ! 0 ) || n ) { if ( l ( t ) , ! n ) return null ; t . prevLine = null } t . prevLine = t . thisLine , t . thisLine = e , t . taskList = ! 1 , t . trailingSpace = 0 , t . trailingSpaceNewLine = ! 1 , t . f = t . block ; var r = e . match ( /^\s*/ , ! 0 ) [ 0 ] . replace ( /\t/g , " " ) . length ; if ( t . indentationDiff = Math . min ( r - t . indentation , 4 ) , t . indentation = t . indentation + t . indentationDiff , r > 0 ) return null } return t . f ( e , t ) } , innerMode : function ( e ) { return e . block == c ? { state : e . htmlState , mode : w } : e . localState ? { state : e . localState , mode : e . localMode } : { state : e , mode : R } } , blankLine : l , getType : h , fold : "markdown" } ; return R } , "xml" ) , e . defineMIME ( "text/x-markdown" , "markdown" ) } ) } , { "../../lib/codemirror" : 10 , "../meta" : 13 , "../xml/xml" : 14 } ] , 13 : [ 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 . modeInfo = [ { name : "APL" , mime : "text/apl" , mode : "apl" , ext : [ "dyalog" , "apl" ] } , { name : "PGP" , mimes : [ "application/pgp" , "application/pgp-keys" , "application/pgp-signature" ] , mode : "asciiarmor" , ext : [ "pgp" ] } , { name : "ASN.1" , mime : "text/x-ttcn-asn" , mode : "asn.1" , ext : [ "asn" , "asn1" ] } , { name : "Asterisk" , mime : "text/x-asterisk" , mode : "asterisk" , file : /^extensions\.conf$/i } , { name : "Brainfuck" , mime : "text/x-brainfuck" , mode : "brainfuck" , ext : [ "b" , "bf" ] } , { name : "C" , mime : "text/x-csrc" , mode : "clike" , ext : [ "c" , "h" ] } , { name : "C++" , mime : "text/x-c++src" , mode : "clike" , ext : [ "cpp" , "c++" , "cc" , "cxx" , "hpp" , "h++" , "hh" , "hxx" ] , alias : [ "cpp" ] } , { name : "Cobol" , mime : "text/x-cobol" , mode : "cobol" , ext : [ "cob" , "cpy" ] } , { name : "C#" , mime : "text/x-csharp" , mode : "clike" , ext : [ "cs" ] , alias : [ "csharp" ] } , { name : "Clojure" , mime : "text/x-clojure" , mode : "clojure" , ext : [ "clj" , "cljc" , "cljx" ] } , { name : "ClojureScript" , mime : "text/x-clojurescript" , mode : "clojure" , ext : [ "cljs" ] } , { name : "Closure Stylesheets (GSS)" , mime : "text/x-gss" , mode : "css" , ext : [ "gss" ] } , { name : "CMake" , mime : "text/x-cmake" , mode : "cmake" , ext : [ "cmake" , "cmake.in" ] , file : /^CMakeLists.txt$/ } , { name : "CoffeeScript" , mime : "text/x-coffeescript" , mode : "coffeescript" , ext : [ "coffee" ] , alias : [ "coffee" , "coffee-script" ] } , { name : "Common Lisp" , mime : "text/x-common-lisp" , mode : "commonlisp" , ext : [ "cl" , "lisp" , "el" ] , alias : [ "lisp" ] } , { name : "Cypher" , mime : "application/x-cypher-query" , mode : "cypher" , ext : [ "cyp" , "cypher" ] } , { name : "Cython" , mime : "text/x-cython" , mode : "python" , ext : [ "pyx" , "pxd" , "pxi" ] } , { name : "Crystal" , mime : "text/x-crystal" , mode : "crystal" , ext : [ "cr" ] } , { name : "CSS" , mime : "text/css" , mode : "css" , ext : [ "css" ] } , { name : "CQL" , mime : "text/x-cassandra" , mode : "sql" , ext : [ "cql" ] } , { name : "D" , mime : "text/x-d" , mode : "d" , ext : [ "d" ] } , { name : "Dart" , mimes : [ "application/dart" , "text/x-dart" ] , mode : "dart" , ext : [ "dart" ] } , { name : "diff" , mime : "text/x-diff" , mode : "diff" , ext : [ "diff" , "patch" ] } , { name : "Django" , mime : "text/x-django" , mode : "django" } , { name : "Dockerfile" , mime : "text/x-dockerfile" , mode : "dockerfile" , file : /^Dockerfile$/ } , { name : "DTD" , mime : "application/xml-dtd" , mode : "dtd" , ext : [ "dtd" ] } , { name : "Dylan" , mime : "text/x-dylan" , mode : "dylan" , ext : [ "dylan" , "dyl" , "intr" ]
return "<h" + t + ' id="' + this . options . headerPrefix + n . toLowerCase ( ) . replace ( /[^\w]+/g , "-" ) + '">' + e + "</h" + t + ">\n" } , o . prototype . hr = function ( ) { return this . options . xhtml ? "<hr/>\n" : "<hr>\n" } , o . prototype . list = function ( e , t ) { var n = t ? "ol" : "ul" ; return "<" + n + ">\n" + e + "</" + n + ">\n" } , o . prototype . listitem = function ( e ) { return "<li>" + e + "</li>\n" } , o . prototype . paragraph = function ( e ) { return "<p>" + e + "</p>\n" } , o . prototype . table = function ( e , t ) { return "<table>\n<thead>\n" + e + "</thead>\n<tbody>\n" + t + "</tbody>\n</table>\n" } , o . prototype . tablerow = function ( e ) { return "<tr>\n" + e + "</tr>\n" } , o . prototype . tablecell = function ( e , t ) { var n = t . header ? "th" : "td" , r = t . align ? "<" + n + ' style="text-align:' + t . align + '">' : "<" + n + ">" ; return r + e + "</" + n + ">\n" } , o . prototype . strong = function ( e ) { return "<strong>" + e + "</strong>" } , o . prototype . em = function ( e ) { return "<em>" + e + "</em>" } , o . prototype . codespan = function ( e ) { return "<code>" + e + "</code>" } , o . prototype . br = function ( ) { return this . options . xhtml ? "<br/>" : "<br>" } , o . prototype . del = function ( e ) { return "<del>" + e + "</del>" } , o . prototype . link = function ( e , t , n ) { if ( this . options . sanitize ) { try { var r = decodeURIComponent ( s ( e ) ) . replace ( /[^\w:]/g , "" ) . toLowerCase ( ) } catch ( i ) { return "" } if ( 0 === r . indexOf ( "javascript:" ) || 0 === r . indexOf ( "vbscript:" ) ) return "" } var o = '<a href="' + e + '"' ; return t && ( o += ' title="' + t + '"' ) , o += ">" + n + "</a>" } , o . prototype . image = function ( e , t , n ) { var r = '<img src="' + e + '" alt="' + n + '"' ; return t && ( r += ' title="' + t + '"' ) , r += this . options . xhtml ? "/>" : ">" } , o . prototype . text = function ( e ) { return e } , a . parse = function ( e , t , n ) { var r = new a ( t , n ) ; return r . parse ( e ) } , a . prototype . parse = function ( e ) { this . inline = new i ( e . links , this . options , this . renderer ) , this . tokens = e . reverse ( ) ; for ( var t = "" ; this . next ( ) ; ) t += this . tok ( ) ; return t } , a . prototype . next = function ( ) { return this . token = this . tokens . pop ( ) } , a . prototype . peek = function ( ) { return this . tokens [ this . tokens . length - 1 ] || 0 } , a . prototype . parseText = function ( ) { for ( var e = this . token . text ; "text" === this . peek ( ) . type ; ) e += "\n" + this . next ( ) . text ; return this . inline . output ( e ) } , a . prototype . tok = function ( ) { switch ( this . token . type ) { case "space" : return "" ; case "hr" : return this . renderer . hr ( ) ; case "heading" : return this . renderer . heading ( this . inline . output ( this . token . text ) , this . token . depth , this . token . text ) ; case "code" : return this . renderer . code ( this . token . text , this . token . lang , this . token . escaped ) ; case "table" : var e , t , n , r , i , o = "" , a = "" ; for ( n = "" , e = 0 ; e < this . token . header . length ; e ++ ) r = { header : ! 0 , align : this . token . align [ e ] } , n += this . renderer . tablecell ( this . inline . output ( this . token . header [ e ] ) , { header : ! 0 , align : this . token . align [ e ] } ) ; for ( o += this . renderer . tablerow ( n ) , e = 0 ; e < this . token . cells . length ; e ++ ) { for ( t = this . token . cells [ e ] , n = "" , i = 0 ; i < t . length ; i ++ ) n += this . renderer . tablecell ( this . inline . output ( t [ i ] ) , { header : ! 1 , align : this . token . align [ i ] } ) ; a += this . renderer . tablerow ( n ) } return this . renderer . table ( o , a ) ; case "blockquote_start" : for ( var a = "" ; "blockquote_end" !== this . next ( ) . type ; ) a += this . tok ( ) ; return this . renderer . blockquote ( a ) ; case "list_start" : for ( var a = "" , l = this . token . ordered ; "list_end" !== this . next ( ) . type ; ) a += this . tok ( ) ; return this . renderer . list ( a , l ) ; case "list_item_start" : for ( var a = "" ; "list_item_end" !== this . next ( ) . type ; ) a += "text" === this . token . type ? this . parseText ( ) : this . tok ( ) ; return this . renderer . listitem ( a ) ; case "loose_item_start" : for ( var a = "" ; "list_item_end" !== this . next ( ) . type ; ) a += this . tok ( ) ; return this . renderer . listitem ( a ) ; case "html" : var s = this . token . pre || this . options . pedantic ? this . token . text : this . inline . output ( this . token . text ) ; return this . renderer . html ( s ) ; case "paragraph" : return this . renderer . paragraph ( this . inline . output ( this . token . text ) ) ; case "text" : return this . renderer . paragraph ( this . parseText ( ) ) } } , u . exec = u , h . options = h . setOptions = function ( e ) { return f ( h . defaults , e ) , h } , h . defaults = { gfm : ! 0 , tables : ! 0 , breaks : ! 1 , pedantic : ! 1 , sanitize : ! 1 , sanitizer : null , mangle : ! 0 , smartLists : ! 1 , silent : ! 1 , highlight : null , langPrefix : "lang-" , smartypants : ! 1 , headerPrefix : "" , renderer : new o , xhtml : ! 1 } , h . Parser = a , h . parser = a . parse , h . Renderer = o , h . Lexer = t , h . lexer = t . lex , h . InlineLexer = i , h . inlineLexer = i . output , h . parse = h , "undefined" != typeof n && "object" == typeof r ? n . exports = h : "function" == typeof e && e . amd ? e ( function ( ) { return h } ) : this . marked = h } ) . call ( function ( ) {
} ) , t . forceSync === ! 0 ) { var c = this . codemirror ; c . on ( "change" , function ( ) { c . save ( ) } ) } this . gui = { } , t . toolbar !== ! 1 && ( this . gui . toolbar = this . createToolbar ( ) ) , t . status !== ! 1 && ( this . gui . statusbar = this . createStatusbar ( ) ) , void 0 != t . autosave && t . autosave . enabled === ! 0 && this . autosave ( ) , this . gui . sideBySide = this . createSideBySide ( ) , this . _rendered = this . element ; var u = this . codemirror ; setTimeout ( function ( ) { u . refresh ( ) } . bind ( u ) , 0 ) } } , B . prototype . autosave = function ( ) { if ( _ ( ) ) { var e = this ; if ( void 0 == this . options . autosave . uniqueId || "" == this . options . autosave . uniqueId ) return void console . log ( "SimpleMDE: You must set a uniqueId to use the autosave feature" ) ; null != e . element . form && void 0 != e . element . form && e . element . form . addEventListener ( "submit" , function ( ) { localStorage . removeItem ( "smde_" + e . options . autosave . uniqueId ) } ) , this . options . autosave . loaded !== ! 0 && ( "string" == typeof localStorage . getItem ( "smde_" + this . options . autosave . uniqueId ) && "" != localStorage . getItem ( "smde_" + this . options . autosave . uniqueId ) && ( this . codemirror . setValue ( localStorage . getItem ( "smde_" + this . options . autosave . uniqueId ) ) , this . options . autosave . foundSavedValue = ! 0 ) , this . options . autosave . loaded = ! 0 ) , localStorage . setItem ( "smde_" + this . options . autosave . uniqueId , e . value ( ) ) ; var t = document . getElementById ( "autosaved" ) ; if ( null != t && void 0 != t && "" != t ) { var n = new Date , r = n . getHours ( ) , i = n . getMinutes ( ) , o = "am" , a = r ; a >= 12 && ( a = r - 12 , o = "pm" ) , 0 == a && ( a = 12 ) , i = 10 > i ? "0" + i : i , t . innerHTML = "Autosaved: " + a + ":" + i + " " + o } this . autosaveTimeoutId = setTimeout ( function ( ) { e . autosave ( ) } , this . options . autosave . delay || 1e4 ) } else console . log ( "SimpleMDE: localStorage not available, cannot autosave" ) } , B . prototype . clearAutosavedValue = function ( ) { if ( _ ( ) ) { if ( void 0 == this . options . autosave || void 0 == this . options . autosave . uniqueId || "" == this . options . autosave . uniqueId ) return void console . log ( "SimpleMDE: You must set a uniqueId to clear the autosave value" ) ; localStorage . removeItem ( "smde_" + this . options . autosave . uniqueId ) } else console . log ( "SimpleMDE: localStorage not available, cannot autosave" ) } , B . prototype . createSideBySide = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . nextSibling ; n && /editor-preview-side/ . test ( n . className ) || ( n = document . createElement ( "div" ) , n . className = "editor-preview-side" , t . parentNode . insertBefore ( n , t . nextSibling ) ) ; var r = ! 1 , i = ! 1 ; return e . on ( "scroll" , function ( e ) { if ( r ) return void ( r = ! 1 ) ; i = ! 0 ; var t = e . getScrollInfo ( ) . height - e . getScrollInfo ( ) . clientHeight , o = parseFloat ( e . getScrollInfo ( ) . top ) / t , a = ( n . scrollHeight - n . clientHeight ) * o ; n . scrollTop = a } ) , n . onscroll = function ( ) { if ( i ) return void ( i = ! 1 ) ; r = ! 0 ; var t = n . scrollHeight - n . clientHeight , o = parseFloat ( n . scrollTop ) / t , a = ( e . getScrollInfo ( ) . height - e . getScrollInfo ( ) . clientHeight ) * o ; e . scrollTo ( 0 , a ) } , n } , B . prototype . createToolbar = function ( e ) { if ( e = e || this . options . toolbar , e && 0 !== e . length ) { var t ; for ( t = 0 ; t < e . length ; t ++ ) void 0 != K [ e [ t ] ] && ( e [ t ] = K [ e [ t ] ] ) ; var n = document . createElement ( "div" ) ; n . className = "editor-toolbar" ; var r = this , a = { } ; for ( r . toolbar = e , t = 0 ; t < e . length ; t ++ ) if ( ( "guide" != e [ t ] . name || r . options . toolbarGuideIcon !== ! 1 ) && ! ( r . options . hideIcons && - 1 != r . options . hideIcons . indexOf ( e [ t ] . name ) || ( "fullscreen" == e [ t ] . name || "side-by-side" == e [ t ] . name ) && $ ( ) ) ) { if ( "|" === e [ t ] ) { for ( var s = ! 1 , c = t + 1 ; c < e . length ; c ++ ) "|" === e [ c ] || r . options . hideIcons && - 1 != r . options . hideIcons . indexOf ( e [ c ] . name ) || ( s = ! 0 ) ; if ( ! s ) continue } ! function ( e ) { var t ; t = "|" === e ? o ( ) : i ( e , r . options . toolbarTips , r . options . shortcuts ) , e . action && ( "function" == typeof e . action ? t . onclick = function ( t ) { t . preventDefault ( ) , 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 u = this . codemirror ; u . on ( "cursorActivity" , function ( ) { var e = l ( u ) ; 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 f = u . getWrapperElement ( ) ; return f . parentNode . insertBefore ( n , f ) , n } } , B . prototype . createStatusbar = function ( e ) { e = e || this . options . status ; var t = this . options , n = this . codemirror ; if ( e && 0 !== e . length ) { var r , i , o , a = [ ] ; for ( r = 0 ; r < e . length ; r ++ ) if ( i = void 0 , o = void 0 , "object" == typeof e [ r ] ) a . push ( { className : e [ r ] . className , defau
if ( "object" != typeof e || ! e ) return e ; var t ; if ( Array . isArray ( e ) ) { t = [ ] ; for ( var n = 0 ; n < e . length ; n ++ ) t [ n ] = s ( e [ n ] ) ; return t } if ( "[object Object]" !== Object . prototype . toString . call ( e ) ) return e ; t = { } ; for ( var n in e ) t [ n ] = s ( e [ n ] ) ; return t } , t . arrayToMap = function ( e ) { for ( var t = { } , n = 0 ; n < e . length ; n ++ ) t [ e [ n ] ] = 1 ; return t } , t . createMap = function ( e ) { var t = Object . create ( null ) ; for ( var n in e ) t [ n ] = e [ n ] ; return t } , t . arrayRemove = function ( e , t ) { for ( var n = 0 ; n <= e . length ; n ++ ) t === e [ n ] && e . splice ( n , 1 ) } , t . escapeRegExp = function ( e ) { return e . replace ( /([.*+?^${}()|[\]\/\\])/g , "\\$1" ) } , t . escapeHTML = function ( e ) { return e . replace ( /&/g , "&" ) . replace ( /"/g , """ ) . replace ( /'/g , "'" ) . replace ( /</g , "<" ) } , t . getMatchOffsets = function ( e , t ) { var n = [ ] ; return e . replace ( t , function ( e ) { n . push ( { offset : arguments [ arguments . length - 2 ] , length : e . length } ) } ) , n } , t . deferredCall = function ( e ) { var t = null , n = function ( ) { t = null , e ( ) } , r = function ( e ) { return r . cancel ( ) , t = setTimeout ( n , e || 0 ) , r } ; return r . schedule = r , r . call = function ( ) { return this . cancel ( ) , e ( ) , r } , r . cancel = function ( ) { return clearTimeout ( t ) , t = null , r } , r . isPending = function ( ) { return t } , r } , t . delayedCall = function ( e , t ) { var n = null , r = function ( ) { n = null , e ( ) } , i = function ( e ) { null == n && ( n = setTimeout ( r , e || t ) ) } ; return i . delay = function ( e ) { n && clearTimeout ( n ) , n = setTimeout ( r , e || t ) } , i . schedule = i , i . call = function ( ) { this . cancel ( ) , e ( ) } , i . cancel = function ( ) { n && clearTimeout ( n ) , n = null } , i . isPending = function ( ) { return n } , i } } ) , ace . define ( "ace/keyboard/textinput" , [ "require" , "exports" , "module" , "ace/lib/event" , "ace/lib/useragent" , "ace/lib/dom" , "ace/lib/lang" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/event" ) , i = e ( "../lib/useragent" ) , s = e ( "../lib/dom" ) , o = e ( "../lib/lang" ) , u = i . isChrome < 18 , a = i . isIE , f = function ( e , t ) { function b ( e ) { if ( ! h ) { if ( h = ! 0 , k ) t = 0 , r = e ? 0 : n . value . length - 1 ; else var t = e ? 2 : 1 , r = 2 ; try { n . setSelectionRange ( t , r ) } catch ( i ) { } h = ! 1 } } function w ( ) { h || ( n . value = f , i . isWebKit && y . schedule ( ) ) } function R ( ) { clearTimeout ( q ) , q = setTimeout ( function ( ) { p && ( n . style . cssText = p , p = "" ) , null == t . renderer . $keepTextAreaAtCursor && ( t . renderer . $keepTextAreaAtCursor = ! 0 , t . renderer . $moveTextAreaToCursor ( ) ) } , i . isOldIE ? 200 : 0 ) } var n = s . createElement ( "textarea" ) ; n . className = "ace_text-input" , i . isTouchPad && n . setAttribute ( "x-palm-disable-auto-cap" , ! 0 ) , n . setAttribute ( "wrap" , "off" ) , n . setAttribute ( "autocorrect" , "off" ) , n . setAttribute ( "autocapitalize" , "off" ) , n . setAttribute ( "spellcheck" , ! 1 ) , n . style . opacity = "0" , i . isOldIE && ( n . style . top = "-1000px" ) , e . insertBefore ( n , e . firstChild ) ; var f = " " , l = ! 1 , c = ! 1 , h = ! 1 , p = "" , d = ! 0 ; try { var v = document . activeElement === n } catch ( m ) { } r . addListener ( n , "blur" , function ( e ) { t . onBlur ( e ) , v = ! 1 } ) , r . addListener ( n , "focus" , function ( e ) { v = ! 0 , t . onFocus ( e ) , b ( ) } ) , this . focus = function ( ) { if ( p ) return n . focus ( ) ; var e = n . style . top ; n . style . position = "fixed" , n . style . top = "0px" , n . focus ( ) , setTimeout ( function ( ) { n . style . position = "" , "0px" == n . style . top && ( n . style . top = e ) } , 0 ) } , this . blur = function ( ) { n . blur ( ) } , this . isFocused = function ( ) { return v } ; var g = o . delayedCall ( function ( ) { v && b ( d ) } ) , y = o . delayedCall ( function ( ) { h || ( n . value = f , v && b ( ) ) } ) ; i . isWebKit || t . addEventListener ( "changeSelection" , function ( ) { t . selection . isEmpty ( ) != d && ( d = ! d , g . schedule ( ) ) } ) , w ( ) , v && t . onFocus ( ) ; var E = function ( e ) { return 0 === e . selectionStart && e . selectionEnd === e . value . length } ; if ( ! n . setSelectionRange && n . createTextRange && ( n . setSelectionRange = function ( e , t ) { var n = this . createTextRange ( ) ; n . collapse ( ! 0 ) , n . moveStart ( "character" , e ) , n . moveEnd ( "character" , t ) , n . select ( ) } , E = function ( e ) { try { var t = e . ownerDocument . selection . createRange ( ) } catch ( n ) { } return ! ( ! t || t . parentElement ( ) != e ) && t . text == e . value } ) , i . isOldIE ) { var S = ! 1 , x = function ( e ) { if ( ! S ) { var t = n . value ; if ( ! h && t && t != f ) return e && t == f [ 0 ] ? T . schedule ( ) : ( A ( t ) , S = ! 0 , w ( ) , S = ! 1 , void 0 ) } } , T = o . delayedCall ( x ) ; r . addListener ( n , "propertychange" , x ) ; var N = { 13 : 1 , 27 : 1 } ; r . addListener ( n , "keyup" , function ( e ) { return h && ( ! n . value || N [ e . keyCode ] ) && setTimeout ( F , 0 ) , ( n . value . charCodeAt ( 0 ) || 0 ) < 129 ? T . call ( ) : void ( h ? j ( ) : B ( ) ) } ) , r . addListener ( n , "keydown" , function ( e ) { T . schedule ( 50 ) } ) } var C = function ( e ) { l ? l = ! 1 : E ( n ) ? ( t . selectAll ( ) , b ( ) ) : k && b ( t . selection . isEmpty ( ) ) } , k = null ; this . setInputHandler = function ( e ) { k = e } , this . getInputHandler = function ( ) { return k } ; var L = ! 1 , A = function ( e ) { k && ( e = k (
r . addMouseWheelListener ( e . container , this . onMouseWheel . bind ( this , "mousewheel" ) ) , r . addTouchMoveListener ( e . container , this . onTouchMove . bind ( this , "touchmove" ) ) ; var f = e . renderer . $gutter ; r . addListener ( f , "mousedown" , this . onMouseEvent . bind ( this , "guttermousedown" ) ) , r . addListener ( f , "click" , this . onMouseEvent . bind ( this , "gutterclick" ) ) , r . addListener ( f , "dblclick" , this . onMouseEvent . bind ( this , "gutterdblclick" ) ) , r . addListener ( f , "mousemove" , this . onMouseEvent . bind ( this , "guttermousemove" ) ) , r . addListener ( u , "mousedown" , n ) , r . addListener ( f , "mousedown" , n ) , i . isIE && e . renderer . scrollBarV && ( r . addListener ( e . renderer . scrollBarV . element , "mousedown" , n ) , r . addListener ( e . renderer . scrollBarH . element , "mousedown" , n ) ) , e . on ( "mousemove" , function ( n ) { if ( ! t . state && ! t . $dragDelay && t . $dragEnabled ) { var r = e . renderer . screenToTextCoordinates ( n . x , n . y ) , i = e . session . selection . getRange ( ) , s = e . renderer ; ! i . isEmpty ( ) && i . insideStart ( r . row , r . column ) ? s . setCursorStyle ( "default" ) : s . setCursorStyle ( "" ) } } ) } ; ( function ( ) { this . onMouseEvent = function ( e , t ) { this . editor . _emit ( e , new u ( t , this . editor ) ) } , this . onMouseMove = function ( e , t ) { var n = this . editor . _eventRegistry && this . editor . _eventRegistry . mousemove ; n && n . length && this . editor . _emit ( e , new u ( t , this . editor ) ) } , this . onMouseWheel = function ( e , t ) { var n = new u ( t , this . editor ) ; n . speed = 2 * this . $scrollSpeed , n . wheelX = t . wheelX , n . wheelY = t . wheelY , this . editor . _emit ( e , n ) } , this . onTouchMove = function ( e , t ) { var n = new u ( t , this . editor ) ; n . speed = 1 , n . wheelX = t . wheelX , n . wheelY = t . wheelY , this . editor . _emit ( e , n ) } , this . setState = function ( e ) { this . state = e } , this . captureMouse = function ( e , t ) { this . x = e . x , this . y = e . y , this . isMousePressed = ! 0 ; var n = this . editor . renderer ; n . $keepTextAreaAtCursor && ( n . $keepTextAreaAtCursor = null ) ; var s = this , o = function ( e ) { if ( e ) return i . isWebKit && ! e . which && s . releaseMouse ? s . releaseMouse ( ) : ( s . x = e . clientX , s . y = e . clientY , t && t ( e ) , s . mouseEvent = new u ( e , s . editor ) , s . $mouseMoved = ! 0 , void 0 ) } , a = function ( e ) { clearInterval ( l ) , f ( ) , s [ s . state + "End" ] && s [ s . state + "End" ] ( e ) , s . state = "" , null == n . $keepTextAreaAtCursor && ( n . $keepTextAreaAtCursor = ! 0 , n . $moveTextAreaToCursor ( ) ) , s . isMousePressed = ! 1 , s . $onCaptureMouseMove = s . releaseMouse = null , e && s . onMouseEvent ( "mouseup" , e ) } , f = function ( ) { s [ s . state ] && s [ s . state ] ( ) , s . $mouseMoved = ! 1 } ; if ( i . isOldIE && "dblclick" == e . domEvent . type ) return setTimeout ( function ( ) { a ( e ) } ) ; s . $onCaptureMouseMove = o , s . releaseMouse = r . capture ( this . editor . container , o , a ) ; var l = setInterval ( f , 20 ) } , this . releaseMouse = null , this . cancelContextMenu = function ( ) { var e = function ( t ) { t && t . domEvent && "contextmenu" != t . domEvent . type || ( this . editor . off ( "nativecontextmenu" , e ) , t && t . domEvent && r . stopEvent ( t . domEvent ) ) } . bind ( this ) ; setTimeout ( e , 10 ) , this . editor . on ( "nativecontextmenu" , e ) } } ) . call ( l . prototype ) , f . defineOptions ( l . prototype , "mouseHandler" , { scrollSpeed : { initialValue : 2 } , dragDelay : { initialValue : i . isMac ? 150 : 0 } , dragEnabled : { initialValue : ! 0 } , focusTimout : { initialValue : 0 } , tooltipFollowsMouse : { initialValue : ! 0 } } ) , t . MouseHandler = l } ) , ace . define ( "ace/mouse/fold_handler" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function r ( e ) { e . on ( "click" , function ( t ) { var n = t . getDocumentPosition ( ) , r = e . session , i = r . getFoldAt ( n . row , n . column , 1 ) ; i && ( t . getAccelKey ( ) ? r . removeFold ( i ) : r . expandFold ( i ) , t . stop ( ) ) } ) , e . on ( "gutterclick" , function ( t ) { var n = e . renderer . $gutterLayer . getRegion ( t ) ; if ( "foldWidgets" == n ) { var r = t . getDocumentPosition ( ) . row , i = e . session ; i . foldWidgets && i . foldWidgets [ r ] && e . session . onFoldWidgetClick ( r , t ) , e . isFocused ( ) || e . focus ( ) , t . stop ( ) } } ) , e . on ( "gutterdblclick" , function ( t ) { var n = e . renderer . $gutterLayer . getRegion ( t ) ; if ( "foldWidgets" == n ) { var r = t . getDocumentPosition ( ) . row , i = e . session , s = i . getParentFoldRangeData ( r , ! 0 ) , o = s . range || s . firstRange ; if ( o ) { r = o . start . row ; var u = i . getFoldAt ( r , i . getLine ( r ) . length , 1 ) ; u ? i . removeFold ( u ) : ( i . addFold ( "..." , o ) , e . renderer . scrollCursorIntoView ( { row : o . start . row , column : 0 } ) ) } t . stop ( ) } } ) } t . FoldHandler = r } ) , ace . define ( "ace/keyboard/keybinding" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/event" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/keys" ) , i = e ( "../lib/event" ) , s = function ( e ) { this . $editor = e , this . $data = { editor : e } , this . $handlers = [ ] , this . setDefaultHandler ( e . commands ) } ; ( function ( ) { this . setDefaultHandl
if ( ! i . isMultiLine ( ) && "(" == s ) { c ( n ) ; var o = r . doc . getLine ( i . start . row ) , u = o . substring ( i . start . column + 1 , i . start . column + 2 ) ; if ( ")" == u ) return i . end . column ++ , i } } ) , this . add ( "brackets" , "insertion" , function ( e , t , n , r , i ) { if ( "[" == i ) { c ( n ) ; var s = n . getSelectionRange ( ) , o = r . doc . getTextRange ( s ) ; if ( "" !== o && n . getWrapBehavioursEnabled ( ) ) return h ( s , o , "[" , "]" ) ; if ( p . isSaneInsertion ( n , r ) ) return p . recordAutoInsert ( n , r , "]" ) , { text : "[]" , selection : [ 1 , 1 ] } } else if ( "]" == i ) { c ( n ) ; var u = n . getCursorPosition ( ) , a = r . doc . getLine ( u . row ) , f = a . substring ( u . column , u . column + 1 ) ; if ( "]" == f ) { var l = r . $findOpeningBracket ( "]" , { column : u . column + 1 , row : u . row } ) ; if ( null !== l && p . isAutoInsertedClosing ( u , a , i ) ) return p . popAutoInsertedClosing ( ) , { text : "" , selection : [ 1 , 1 ] } } } } ) , this . add ( "brackets" , "deletion" , function ( e , t , n , r , i ) { var s = r . doc . getTextRange ( i ) ; if ( ! i . isMultiLine ( ) && "[" == s ) { c ( n ) ; var o = r . doc . getLine ( i . start . row ) , u = o . substring ( i . start . column + 1 , i . start . column + 2 ) ; if ( "]" == u ) return i . end . column ++ , i } } ) , this . add ( "string_dquotes" , "insertion" , function ( e , t , n , r , i ) { if ( '"' == i || "'" == i ) { if ( this . lineCommentStart && this . lineCommentStart . indexOf ( i ) != - 1 ) return ; c ( n ) ; var s = i , o = n . getSelectionRange ( ) , u = r . doc . getTextRange ( o ) ; if ( "" !== u && "'" !== u && '"' != u && n . getWrapBehavioursEnabled ( ) ) return h ( o , u , s , s ) ; if ( ! u ) { var a = n . getCursorPosition ( ) , f = r . doc . getLine ( a . row ) , l = f . substring ( a . column - 1 , a . column ) , p = f . substring ( a . column , a . column + 1 ) , d = r . getTokenAt ( a . row , a . column ) , v = r . getTokenAt ( a . row , a . column + 1 ) ; if ( "\\" == l && d && /escape/ . test ( d . type ) ) return null ; var y , m = d && /string|escape/ . test ( d . type ) , g = ! v || /string|escape/ . test ( v . type ) ; if ( p == s ) y = m !== g , y && /string\.end/ . test ( v . type ) && ( y = ! 1 ) ; else { if ( m && ! g ) return null ; if ( m && g ) return null ; var b = r . $mode . tokenRe ; b . lastIndex = 0 ; var w = b . test ( l ) ; b . lastIndex = 0 ; var E = b . test ( l ) ; if ( w || E ) return null ; if ( p && ! /[\s;,.})\]\\]/ . test ( p ) ) return null ; y = ! 0 } return { text : y ? s + s : "" , selection : [ 1 , 1 ] } } } } ) , this . add ( "string_dquotes" , "deletion" , function ( e , t , n , r , i ) { var s = r . doc . getTextRange ( i ) ; if ( ! i . isMultiLine ( ) && ( '"' == s || "'" == s ) ) { c ( n ) ; var o = r . doc . getLine ( i . start . row ) , u = o . substring ( i . start . column + 1 , i . start . column + 2 ) ; if ( u == s ) return i . end . column ++ , i } } ) } ; p . isSaneInsertion = function ( e , t ) { var n = e . getCursorPosition ( ) , r = new s ( t , n . row , n . column ) ; if ( ! this . $matchTokenType ( r . getCurrentToken ( ) || "text" , u ) ) { var i = new s ( t , n . row , n . column + 1 ) ; if ( ! this . $matchTokenType ( i . getCurrentToken ( ) || "text" , u ) ) return ! 1 } return r . stepForward ( ) , r . getCurrentTokenRow ( ) !== n . row || this . $matchTokenType ( r . getCurrentToken ( ) || "text" , a ) } , p . $matchTokenType = function ( e , t ) { return t . indexOf ( e . type || e ) > - 1 } , p . recordAutoInsert = function ( e , t , n ) { var r = e . getCursorPosition ( ) , i = t . doc . getLine ( r . row ) ; this . isAutoInsertedClosing ( r , i , f . autoInsertedLineEnd [ 0 ] ) || ( f . autoInsertedBrackets = 0 ) , f . autoInsertedRow = r . row , f . autoInsertedLineEnd = n + i . substr ( r . column ) , f . autoInsertedBrackets ++ } , p . recordMaybeInsert = function ( e , t , n ) { var r = e . getCursorPosition ( ) , i = t . doc . getLine ( r . row ) ; this . isMaybeInsertedClosing ( r , i ) || ( f . maybeInsertedBrackets = 0 ) , f . maybeInsertedRow = r . row , f . maybeInsertedLineStart = i . substr ( 0 , r . column ) + n , f . maybeInsertedLineEnd = i . substr ( r . column ) , f . maybeInsertedBrackets ++ } , p . isAutoInsertedClosing = function ( e , t , n ) { return f . autoInsertedBrackets > 0 && e . row === f . autoInsertedRow && n === f . autoInsertedLineEnd [ 0 ] && t . substr ( e . column ) === f . autoInsertedLineEnd } , p . isMaybeInsertedClosing = function ( e , t ) { return f . maybeInsertedBrackets > 0 && e . row === f . maybeInsertedRow && t . substr ( e . column ) === f . maybeInsertedLineEnd && t . substr ( 0 , e . column ) == f . maybeInsertedLineStart } , p . popAutoInsertedClosing = function ( ) { f . autoInsertedLineEnd = f . autoInsertedLineEnd . substr ( 1 ) , f . autoInsertedBrackets -- } , p . clearMaybeInsertedClosing = function ( ) { f && ( f . maybeInsertedBrackets = 0 , f . maybeInsertedRow = - 1 ) } , r . inherits ( p , i ) , t . CstyleBehaviour = p } ) , ace . define ( "ace/unicode" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function r ( e ) { var n = /\w{4}/g ; for ( var r in e ) t . packages [ r ] = e [ r ] . replace ( n , "\\u$&" ) } t . packages = { } , r ( { L : " 0041 - 005 A0061 - 007 A00AA00B500BA00C0 - 00 D600D8 - 00 F600F8 - 02 C102C6 - 02 D102E0 - 02E402 EC02EE0370 - 037403760377037 A - 037 D03860388 - 038 A038C038E - 03 A103A3 - 03 F503F7 - 0481048 A - 05250531 - 055605590561 - 058705 D0 - 05 EA05F0 - 05 F20621 - 064 A066E066F0671 - 06 D306D506E506E606E
var c , h , s = new a ( t , r . row , r . column ) , o = s . getCurrentToken ( ) , l = ( t . selection , t . selection . toOrientedRange ( ) ) ; if ( o && /comment/ . test ( o . type ) ) { for ( var p , d ; o && /comment/ . test ( o . type ) ; ) { var v = o . value . indexOf ( i . start ) ; if ( v != - 1 ) { var m = s . getCurrentTokenRow ( ) , g = s . getCurrentTokenColumn ( ) + v ; p = new f ( m , g , m , g + i . start . length ) ; break } o = s . stepBackward ( ) } for ( var s = new a ( t , r . row , r . column ) , o = s . getCurrentToken ( ) ; o && /comment/ . test ( o . type ) ; ) { var v = o . value . indexOf ( i . end ) ; if ( v != - 1 ) { var m = s . getCurrentTokenRow ( ) , g = s . getCurrentTokenColumn ( ) + v ; d = new f ( m , g , m , g + i . end . length ) ; break } o = s . stepForward ( ) } d && t . remove ( d ) , p && ( t . remove ( p ) , c = p . start . row , h = - i . start . length ) } else h = i . start . length , c = n . start . row , t . insert ( n . end , i . end ) , t . insert ( n . start , i . start ) ; l . start . row == c && ( l . start . column += h ) , l . end . row == c && ( l . end . column += h ) , t . selection . fromOrientedRange ( l ) } } , this . getNextLineIndent = function ( e , t , n ) { return this . $getIndent ( t ) } , this . checkOutdent = function ( e , t , n ) { return ! 1 } , this . autoOutdent = function ( e , t , n ) { } , this . $getIndent = function ( e ) { return e . match ( /^\s*/ ) [ 0 ] } , this . createWorker = function ( e ) { return null } , this . createModeDelegates = function ( e ) { this . $embeds = [ ] , this . $modes = { } ; for ( var t in e ) e [ t ] && ( this . $embeds . push ( t ) , this . $modes [ t ] = new e [ t ] ) ; for ( var n = [ "toggleBlockComment" , "toggleCommentLines" , "getNextLineIndent" , "checkOutdent" , "autoOutdent" , "transformAction" , "getCompletions" ] , t = 0 ; t < n . length ; t ++ ) ( function ( e ) { var r = n [ t ] , i = e [ r ] ; e [ n [ t ] ] = function ( ) { return this . $delegator ( r , arguments , i ) } } ) ( this ) } , this . $delegator = function ( e , t , n ) { var r = t [ 0 ] ; "string" != typeof r && ( r = r [ 0 ] ) ; for ( var i = 0 ; i < this . $embeds . length ; i ++ ) if ( this . $modes [ this . $embeds [ i ] ] ) { var s = r . split ( this . $embeds [ i ] ) ; if ( ! s [ 0 ] && s [ 1 ] ) { t [ 0 ] = s [ 1 ] ; var o = this . $modes [ this . $embeds [ i ] ] ; return o [ e ] . apply ( o , t ) } } var u = n . apply ( this , t ) ; return n ? u : void 0 } , this . transformAction = function ( e , t , n , r , i ) { if ( this . $behaviour ) { var s = this . $behaviour . getBehaviours ( ) ; for ( var o in s ) if ( s [ o ] [ t ] ) { var u = s [ o ] [ t ] . apply ( this , arguments ) ; if ( u ) return u } } } , this . getKeywords = function ( e ) { if ( ! this . completionKeywords ) { var t = this . $tokenizer . rules , n = [ ] ; for ( var r in t ) for ( var i = t [ r ] , s = 0 , o = i . length ; s < o ; s ++ ) if ( "string" == typeof i [ s ] . token ) / keyword | support | storage / . test ( i [ s ] . token ) && n . push ( i [ s ] . regex ) ; else if ( "object" == typeof i [ s ] . token ) for ( var u = 0 , a = i [ s ] . token . length ; u < a ; u ++ ) if ( /keyword|support|storage/ . test ( i [ s ] . token [ u ] ) ) { var r = i [ s ] . regex . match ( /\(.+?\)/g ) [ u ] ; n . push ( r . substr ( 1 , r . length - 2 ) ) } this . completionKeywords = n } return e ? n . concat ( this . $keywordList || [ ] ) : this . $keywordList } , this . $createKeywordList = function ( ) { return this . $highlightRules || this . getTokenizer ( ) , this . $keywordList = this . $highlightRules . $keywordList || [ ] } , this . getCompletions = function ( e , t , n , r ) { var i = this . $keywordList || this . $createKeywordList ( ) ; return i . map ( function ( e ) { return { name : e , value : e , score : 0 , meta : "keyword" } } ) } , this . $id = "ace/mode/text" } ) . call ( l . prototype ) , t . Mode = l } ) , ace . define ( "ace/apply_delta" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function r ( e , t ) { throw console . log ( "Invalid Delta:" , e ) , "Invalid Delta: " + t } function i ( e , t ) { return t . row >= 0 && t . row < e . length && t . column >= 0 && t . column <= e [ t . row ] . length } t . applyDelta = function ( e , t , n ) { var r = t . start . row , i = t . start . column , s = e [ r ] || "" ; switch ( t . action ) { case "insert" : var o = t . lines ; if ( 1 === o . length ) e [ r ] = s . substring ( 0 , i ) + t . lines [ 0 ] + s . substring ( i ) ; else { var u = [ r , 1 ] . concat ( t . lines ) ; e . splice . apply ( e , u ) , e [ r ] = s . substring ( 0 , i ) + e [ r ] , e [ r + t . lines . length - 1 ] += s . substring ( i ) } break ; case "remove" : var a = t . end . column , f = t . end . row ; r === f ? e [ r ] = s . substring ( 0 , i ) + s . substring ( a ) : e . splice ( r , f - r + 1 , s . substring ( 0 , i ) + e [ f ] . substring ( a ) ) } } } ) , ace . define ( "ace/anchor" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/event_emitter" ) . EventEmitter , s = t . Anchor = function ( e , t , n ) { this . $onChange = this . onChange . bind ( this ) , this . attach ( e ) , "undefined" == typeof n ? this . setPosition ( t . row , t . column ) : this . setPosition ( t , n ) } ; ( function ( ) { function e ( e , t , n ) { var r = n ? e . column <= t . column : e . column < t . column ; return e . row < t . row || e . row == t . row && r } function t ( t , n , r ) { var i = "insert" == t . action , s = ( i ? 1 : - 1 ) * ( t . end . row - t . start . row ) , o = ( i ? 1 : - 1 ) * ( t . end . column - t . start . column ) , u = t . start , a =
this . foldAll ( a , f , t . all ? 1e4 : 0 ) } else t . children ? ( f = o ? o . end . row : this . getLength ( ) , this . foldAll ( e + 1 , f , t . all ? 1e4 : 0 ) ) : o && ( t . all && ( o . collapseChildren = 1e4 ) , this . addFold ( "..." , o ) ) ; return o } } , this . toggleFoldWidget = function ( e ) { var t = this . selection . getCursor ( ) . row ; t = this . getRowFoldStart ( t ) ; var n = this . $toggleFoldWidget ( t , { } ) ; if ( ! n ) { var r = this . getParentFoldRangeData ( t , ! 0 ) ; if ( n = r . range || r . firstRange ) { t = n . start . row ; var i = this . getFoldAt ( t , this . getLine ( t ) . length , 1 ) ; i ? this . removeFold ( i ) : this . addFold ( "..." , n ) } } } , this . updateFoldWidgets = function ( e ) { var t = e . start . row , n = e . end . row - t ; if ( 0 === n ) this . foldWidgets [ t ] = null ; else if ( "remove" == e . action ) this . foldWidgets . splice ( t , n + 1 , null ) ; else { var r = Array ( n + 1 ) ; r . unshift ( t , 1 ) , this . foldWidgets . splice . apply ( this . foldWidgets , r ) } } , this . tokenizerUpdateFoldWidgets = function ( e ) { var t = e . data ; t . first != t . last && this . foldWidgets . length > t . first && this . foldWidgets . splice ( t . first , this . foldWidgets . length ) } } var r = e ( "../range" ) . Range , i = e ( "./fold_line" ) . FoldLine , s = e ( "./fold" ) . Fold , o = e ( "../token_iterator" ) . TokenIterator ; t . Folding = u } ) , ace . define ( "ace/edit_session/bracket_match" , [ "require" , "exports" , "module" , "ace/token_iterator" , "ace/range" ] , function ( e , t , n ) { "use strict" ; function s ( ) { this . findMatchingBracket = function ( e , t ) { if ( 0 == e . column ) return null ; var n = t || this . getLine ( e . row ) . charAt ( e . column - 1 ) ; if ( "" == n ) return null ; var r = n . match ( /([\(\[\{])|([\)\]\}])/ ) ; return r ? r [ 1 ] ? this . $findClosingBracket ( r [ 1 ] , e ) : this . $findOpeningBracket ( r [ 2 ] , e ) : null } , this . getBracketRange = function ( e ) { var r , t = this . getLine ( e . row ) , n = ! 0 , s = t . charAt ( e . column - 1 ) , o = s && s . match ( /([\(\[\{])|([\)\]\}])/ ) ; if ( o || ( s = t . charAt ( e . column ) , e = { row : e . row , column : e . column + 1 } , o = s && s . match ( /([\(\[\{])|([\)\]\}])/ ) , n = ! 1 ) , ! o ) return null ; if ( o [ 1 ] ) { var u = this . $findClosingBracket ( o [ 1 ] , e ) ; if ( ! u ) return null ; r = i . fromPoints ( e , u ) , n || ( r . end . column ++ , r . start . column -- ) , r . cursor = r . end } else { var u = this . $findOpeningBracket ( o [ 2 ] , e ) ; if ( ! u ) return null ; r = i . fromPoints ( u , e ) , n || ( r . start . column ++ , r . end . column -- ) , r . cursor = r . start } return r } , this . $brackets = { ")" : "(" , "(" : ")" , "]" : "[" , "[" : "]" , "{" : "}" , "}" : "{" } , this . $findOpeningBracket = function ( e , t , n ) { var i = this . $brackets [ e ] , s = 1 , o = new r ( this , t . row , t . column ) , u = o . getCurrentToken ( ) ; if ( u || ( u = o . stepForward ( ) ) , u ) { n || ( n = new RegExp ( "(\\.?" + u . type . replace ( "." , "\\." ) . replace ( "rparen" , ".paren" ) . replace ( /\b(?:end)\b/ , "(?:start|begin|end)" ) + ")+" ) ) ; for ( var a = t . column - o . getCurrentTokenColumn ( ) - 2 , f = u . value ; ; ) { for ( ; a >= 0 ; ) { var l = f . charAt ( a ) ; if ( l == i ) { if ( s -= 1 , 0 == s ) return { row : o . getCurrentTokenRow ( ) , column : a + o . getCurrentTokenColumn ( ) } } else l == e && ( s += 1 ) ; a -= 1 } do u = o . stepBackward ( ) ; while ( u && ! n . test ( u . type ) ) ; if ( null == u ) break ; f = u . value , a = f . length - 1 } return null } } , this . $findClosingBracket = function ( e , t , n ) { var i = this . $brackets [ e ] , s = 1 , o = new r ( this , t . row , t . column ) , u = o . getCurrentToken ( ) ; if ( u || ( u = o . stepForward ( ) ) , u ) { n || ( n = new RegExp ( "(\\.?" + u . type . replace ( "." , "\\." ) . replace ( "lparen" , ".paren" ) . replace ( /\b(?:start|begin)\b/ , "(?:start|begin|end)" ) + ")+" ) ) ; for ( var a = t . column - o . getCurrentTokenColumn ( ) ; ; ) { for ( var f = u . value , l = f . length ; a < l ; ) { var c = f . charAt ( a ) ; if ( c == i ) { if ( s -= 1 , 0 == s ) return { row : o . getCurrentTokenRow ( ) , column : a + o . getCurrentTokenColumn ( ) } } else c == e && ( s += 1 ) ; a += 1 } do u = o . stepForward ( ) ; while ( u && ! n . test ( u . type ) ) ; if ( null == u ) break ; a = 0 } return null } } } var r = e ( "../token_iterator" ) . TokenIterator , i = e ( "../range" ) . Range ; t . BracketMatch = s } ) , ace . define ( "ace/edit_session" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/config" , "ace/lib/event_emitter" , "ace/selection" , "ace/mode/text" , "ace/range" , "ace/document" , "ace/background_tokenizer" , "ace/search_highlight" , "ace/edit_session/folding" , "ace/edit_session/bracket_match" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/lang" ) , s = e ( "./config" ) , o = e ( "./lib/event_emitter" ) . EventEmitter , u = e ( "./selection" ) . Selection , a = e ( "./mode/text" ) . Mode , f = e ( "./range" ) . Range , l = e ( "./document" ) . Document , c = e ( "./background_tokenizer" ) . BackgroundTokenizer , h = e ( "./search_highlight" ) . SearchHighlight , p = function ( e , t ) { this . $breakpoints = [ ] , this . $decorations = [ ] , this . $frontMarkers = { } , this . $backMarkers = { } , this . $markerId = 1 , this . $undoSelect = ! 0 , this . $foldData = [ ] , this . id = "session" + ++ p . $u
} ; else var u = function ( e , t , s ) { for ( var o = r . getMatchOffsets ( e , n ) , u = 0 ; u < o . length ; u ++ ) if ( i ( o [ u ] , t , s ) ) return ! 0 } ; var a = this . $lineIterator ( e , t ) ; return { forEach : function ( e ) { i = e , a . forEach ( u ) } } } , this . $assembleRegExp = function ( e , t ) { if ( e . needle instanceof RegExp ) return e . re = e . needle ; var n = e . needle ; if ( ! e . needle ) return e . re = ! 1 ; e . regExp || ( n = r . escapeRegExp ( n ) ) , e . wholeWord && ( n = u ( n , e ) ) ; var i = e . caseSensitive ? "gm" : "gmi" ; if ( e . $isMultiLine = ! t && /[\n\r]/ . test ( n ) , e . $isMultiLine ) return e . re = this . $assembleMultilineRegExp ( n , i ) ; try { var s = new RegExp ( n , i ) } catch ( o ) { s = ! 1 } return e . re = s } , this . $assembleMultilineRegExp = function ( e , t ) { for ( var n = e . replace ( /\r\n|\r|\n/g , "$\n^" ) . split ( "\n" ) , r = [ ] , i = 0 ; i < n . length ; i ++ ) try { r . push ( new RegExp ( n [ i ] , t ) ) } catch ( s ) { return ! 1 } return "" == n [ 0 ] ? ( r . shift ( ) , r . offset = 1 ) : r . offset = 0 , r } , this . $lineIterator = function ( e , t ) { var n = 1 == t . backwards , r = 0 != t . skipCurrent , i = t . range , s = t . start ; s || ( s = i ? i [ n ? "end" : "start" ] : e . selection . getRange ( ) ) , s . start && ( s = s [ r != n ? "end" : "start" ] ) ; var o = i ? i . start . row : 0 , u = i ? i . end . row : e . getLength ( ) - 1 , a = n ? function ( n ) { var r = s . row , i = e . getLine ( r ) . substring ( 0 , s . column ) ; if ( ! n ( i , r ) ) { for ( r -- ; r >= o ; r -- ) if ( n ( e . getLine ( r ) , r ) ) return ; if ( 0 != t . wrap ) for ( r = u , o = s . row ; r >= o ; r -- ) if ( n ( e . getLine ( r ) , r ) ) return } } : function ( n ) { var r = s . row , i = e . getLine ( r ) . substr ( s . column ) ; if ( ! n ( i , r , s . column ) ) { for ( r += 1 ; r <= u ; r ++ ) if ( n ( e . getLine ( r ) , r ) ) return ; if ( 0 != t . wrap ) for ( r = o , u = s . row ; r <= u ; r ++ ) if ( n ( e . getLine ( r ) , r ) ) return } } ; return { forEach : a } } } ) . call ( o . prototype ) , t . Search = o } ) , ace . define ( "ace/keyboard/hash_handler" , [ "require" , "exports" , "module" , "ace/lib/keys" , "ace/lib/useragent" ] , function ( e , t , n ) { "use strict" ; function o ( e , t ) { this . platform = t || ( i . isMac ? "mac" : "win" ) , this . commands = { } , this . commandKeyBinding = { } , this . addCommands ( e ) , this . $singleCommand = ! 0 } function u ( e , t ) { o . call ( this , e , t ) , this . $singleCommand = ! 1 } var r = e ( "../lib/keys" ) , i = e ( "../lib/useragent" ) , s = r . KEY _MODS ; u . prototype = o . prototype , function ( ) { function e ( e ) { return "object" == typeof e && e . bindKey && e . bindKey . position || 0 } this . addCommand = function ( e ) { this . commands [ e . name ] && this . removeCommand ( e ) , this . commands [ e . name ] = e , e . bindKey && this . _buildKeyHash ( e ) } , this . removeCommand = function ( e , t ) { var n = e && ( "string" == typeof e ? e : e . name ) ; e = this . commands [ n ] , t || delete this . commands [ n ] ; var r = this . commandKeyBinding ; for ( var i in r ) { var s = r [ i ] ; if ( s == e ) delete r [ i ] ; else if ( Array . isArray ( s ) ) { var o = s . indexOf ( e ) ; o != - 1 && ( s . splice ( o , 1 ) , 1 == s . length && ( r [ i ] = s [ 0 ] ) ) } } } , this . bindKey = function ( e , t , n ) { if ( "object" == typeof e && e && ( void 0 == n && ( n = e . position ) , e = e [ this . platform ] ) , e ) return "function" == typeof t ? this . addCommand ( { exec : t , bindKey : e , name : t . name || e } ) : void e . split ( "|" ) . forEach ( function ( e ) { var r = "" ; if ( e . indexOf ( " " ) != - 1 ) { var i = e . split ( /\s+/ ) ; e = i . pop ( ) , i . forEach ( function ( e ) { var t = this . parseKeys ( e ) , n = s [ t . hashId ] + t . key ; r += ( r ? " " : "" ) + n , this . _addCommandToBinding ( r , "chainKeys" ) } , this ) , r += " " } var o = this . parseKeys ( e ) , u = s [ o . hashId ] + o . key ; this . _addCommandToBinding ( r + u , t , n ) } , this ) } , this . _addCommandToBinding = function ( t , n , r ) { var s , i = this . commandKeyBinding ; if ( n ) if ( ! i [ t ] || this . $singleCommand ) i [ t ] = n ; else { Array . isArray ( i [ t ] ) ? ( s = i [ t ] . indexOf ( n ) ) != - 1 && i [ t ] . splice ( s , 1 ) : i [ t ] = [ i [ t ] ] , "number" != typeof r && ( r = r || n . isDefault ? - 100 : e ( n ) ) ; var o = i [ t ] ; for ( s = 0 ; s < o . length ; s ++ ) { var u = o [ s ] , a = e ( u ) ; if ( a > r ) break } o . splice ( s , 0 , n ) } else delete i [ t ] } , this . addCommands = function ( e ) { e && Object . keys ( e ) . forEach ( function ( t ) { var n = e [ t ] ; if ( n ) { if ( "string" == typeof n ) return this . bindKey ( n , t ) ; "function" == typeof n && ( n = { exec : n } ) , "object" == typeof n && ( n . name || ( n . name = t ) , this . addCommand ( n ) ) } } , this ) } , this . removeCommands = function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . removeCommand ( e [ t ] ) } , this ) } , this . bindKeys = function ( e ) { Object . keys ( e ) . forEach ( function ( t ) { this . bindKey ( t , e [ t ] ) } , this ) } , this . _buildKeyHash = function ( e ) { this . bindKey ( e . bindKey , e ) } , this . parseKeys = function ( e ) { var t = e . toLowerCase ( ) . split ( /[\-\+]([\-\+])?/ ) . filter ( function ( e ) { return e } ) , n = t . pop ( ) , i = r [ n ] ; if ( r . FUNCTION _KEYS [ i ] ) n = r . FUNCTION _KEYS [ i ] . toLowerCase ( ) ; else { if ( ! t . length ) return { key : n , hashId : - 1 } ; if ( 1 == t . length && "shift" == t [ 0 ] ) return { key : n . toUpperCase ( ) , hashId : - 1 } } for ( var s = 0 , o = t . length ; o -- ; ) { var u = r . KEY _MODS [ t [ o ] ] ; if ( null == u ) return "undefined" != typeof console && console . erro
} } } , 50 ) } } , this . focus = function ( ) { var e = this ; setTimeout ( function ( ) { e . textInput . focus ( ) } ) , this . textInput . focus ( ) } , this . isFocused = function ( ) { return this . textInput . isFocused ( ) } , this . blur = function ( ) { this . textInput . blur ( ) } , this . onFocus = function ( e ) { this . $isFocused || ( this . $isFocused = ! 0 , this . renderer . showCursor ( ) , this . renderer . visualizeFocus ( ) , this . _emit ( "focus" , e ) ) } , this . onBlur = function ( e ) { this . $isFocused && ( this . $isFocused = ! 1 , this . renderer . hideCursor ( ) , this . renderer . visualizeBlur ( ) , this . _emit ( "blur" , e ) ) } , this . $cursorChange = function ( ) { this . renderer . updateCursor ( ) } , this . onDocumentChange = function ( e ) { var t = this . session . $useWrapMode , n = e . start . row == e . end . row ? e . end . row : 1 / 0 ; this . renderer . updateLines ( e . start . row , n , t ) , this . _signal ( "change" , e ) , this . $cursorChange ( ) , this . $updateHighlightActiveLine ( ) } , this . onTokenizerUpdate = function ( e ) { var t = e . data ; this . renderer . updateLines ( t . first , t . last ) } , this . onScrollTopChange = function ( ) { this . renderer . scrollToY ( this . session . getScrollTop ( ) ) } , this . onScrollLeftChange = function ( ) { this . renderer . scrollToX ( this . session . getScrollLeft ( ) ) } , this . onCursorChange = function ( ) { this . $cursorChange ( ) , this . $blockScrolling || ( g . warn ( "Automatically scrolling cursor into view after selection change" , "this will be disabled in the next version" , "set editor.$blockScrolling = Infinity to disable this message" ) , this . renderer . scrollCursorIntoView ( ) ) , this . $highlightBrackets ( ) , this . $highlightTags ( ) , this . $updateHighlightActiveLine ( ) , this . _signal ( "changeSelection" ) } , this . $updateHighlightActiveLine = function ( ) { var t , e = this . getSession ( ) ; if ( this . $highlightActiveLine && ( "line" == this . $selectionStyle && this . selection . isMultiLine ( ) || ( t = this . getCursorPosition ( ) ) , this . renderer . $maxLines && 1 === this . session . getLength ( ) && ! ( this . renderer . $minLines > 1 ) && ( t = ! 1 ) ) , e . $highlightLineMarker && ! t ) e . removeMarker ( e . $highlightLineMarker . id ) , e . $highlightLineMarker = null ; else if ( ! e . $highlightLineMarker && t ) { var n = new p ( t . row , t . column , t . row , 1 / 0 ) ; n . id = e . addMarker ( n , "ace_active-line" , "screenLine" ) , e . $highlightLineMarker = n } else t && ( e . $highlightLineMarker . start . row = t . row , e . $highlightLineMarker . end . row = t . row , e . $highlightLineMarker . start . column = t . column , e . _signal ( "changeBackMarker" ) ) } , this . onSelectionChange = function ( e ) { var t = this . session ; if ( t . $selectionMarker && t . removeMarker ( t . $selectionMarker ) , t . $selectionMarker = null , this . selection . isEmpty ( ) ) this . $updateHighlightActiveLine ( ) ; else { var n = this . selection . getRange ( ) , r = this . getSelectionStyle ( ) ; t . $selectionMarker = t . addMarker ( n , "ace_selection" , r ) } var i = this . $highlightSelectedWord && this . $getSelectionHighLightRegexp ( ) ; this . session . highlight ( i ) , this . _signal ( "changeSelection" ) } , this . $getSelectionHighLightRegexp = function ( ) { var e = this . session , t = this . getSelectionRange ( ) ; if ( ! t . isEmpty ( ) && ! t . isMultiLine ( ) ) { var n = t . start . column - 1 , r = t . end . column + 1 , i = e . getLine ( t . start . row ) , s = i . length , o = i . substring ( Math . max ( n , 0 ) , Math . min ( r , s ) ) ; if ( ! ( n >= 0 && /^[\w\d]/ . test ( o ) || r <= s && /[\w\d]$/ . test ( o ) ) && ( o = i . substring ( t . start . column , t . end . column ) , /^[\w\d]+$/ . test ( o ) ) ) { var u = this . $search . $assembleRegExp ( { wholeWord : ! 0 , caseSensitive : ! 0 , needle : o } ) ; return u } } } , this . onChangeFrontMarker = function ( ) { this . renderer . updateFrontMarkers ( ) } , this . onChangeBackMarker = function ( ) { this . renderer . updateBackMarkers ( ) } , this . onChangeBreakpoint = function ( ) { this . renderer . updateBreakpoints ( ) } , this . onChangeAnnotation = function ( ) { this . renderer . setAnnotations ( this . session . getAnnotations ( ) ) } , this . onChangeMode = function ( e ) { this . renderer . updateText ( ) , this . _emit ( "changeMode" , e ) } , this . onChangeWrapLimit = function ( ) { this . renderer . updateFull ( ) } , this . onChangeWrapMode = function ( ) { this . renderer . onResize ( ! 0 ) } , this . onChangeFold = function ( ) { this . $updateHighlightActiveLine ( ) , this . renderer . updateFull ( ) } , this . getSelectedText = function ( ) { return this . session . getTextRange ( this . getSelectionRange ( ) ) } , this . getCopyText = function ( ) { var e = this . getSelectedText ( ) ; return this . _signal ( "copy" , e ) , e } , this . onCopy = function ( ) { this . commands . exec ( "copy" , this ) } , this . onCut = function ( ) { this . commands . exec ( "cut" , this ) } , this . onPaste = function ( e , t ) { var n = { text : e , event : t } ; this . commands . exec ( "paste" , this , n ) } , this . $handlePaste = function ( e ) { "string" == typeof e && ( e =
return e . x < t . left + n . left ? "markers" : this . $showFoldWidgets && e . x > n . right - t . right ? "foldWidgets" : void 0 } } ) . call ( u . prototype ) , t . Gutter = u } ) , ace . define ( "ace/layer/marker" , [ "require" , "exports" , "module" , "ace/range" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../range" ) . Range , i = e ( "../lib/dom" ) , s = function ( e ) { this . element = i . createElement ( "div" ) , this . element . className = "ace_layer ace_marker-layer" , e . appendChild ( this . element ) } ; ( function ( ) { function e ( e , t , n , r ) { return ( e ? 1 : 0 ) | ( t ? 2 : 0 ) | ( n ? 4 : 0 ) | ( r ? 8 : 0 ) } this . $padding = 0 , this . setPadding = function ( e ) { this . $padding = e } , this . setSession = function ( e ) { this . session = e } , this . setMarkers = function ( e ) { this . markers = e } , this . update = function ( e ) { var e = e || this . config ; if ( e ) { this . config = e ; var t = [ ] ; for ( var n in this . markers ) { var r = this . markers [ n ] ; if ( r . range ) { var i = r . range . clipRows ( e . firstRow , e . lastRow ) ; if ( ! i . isEmpty ( ) ) if ( i = i . toScreenRange ( this . session ) , r . renderer ) { var s = this . $getTop ( i . start . row , e ) , o = this . $padding + i . start . column * e . characterWidth ; r . renderer ( t , i , o , s , e ) } else "fullLine" == r . type ? this . drawFullLineMarker ( t , i , r . clazz , e ) : "screenLine" == r . type ? this . drawScreenLineMarker ( t , i , r . clazz , e ) : i . isMultiLine ( ) ? "text" == r . type ? this . drawTextMarker ( t , i , r . clazz , e ) : this . drawMultiLineMarker ( t , i , r . clazz , e ) : this . drawSingleLineMarker ( t , i , r . clazz + " ace_start ace_br15" , e ) } else r . update ( t , this , this . session , e ) } this . element . innerHTML = t . join ( "" ) } } , this . $getTop = function ( e , t ) { return ( e - t . firstRowScreen ) * t . lineHeight } , this . drawTextMarker = function ( t , n , i , s , o ) { for ( var u = this . session , a = n . start . row , f = n . end . row , l = a , c = 0 , h = 0 , p = u . getScreenLastRowColumn ( l ) , d = new r ( l , n . start . column , l , h ) ; l <= f ; l ++ ) d . start . row = d . end . row = l , d . start . column = l == a ? n . start . column : u . getRowWrapIndent ( l ) , d . end . column = p , c = h , h = p , p = l + 1 < f ? u . getScreenLastRowColumn ( l + 1 ) : l == f ? 0 : n . end . column , this . drawSingleLineMarker ( t , d , i + ( l == a ? " ace_start" : "" ) + " ace_br" + e ( l == a || l == a + 1 && n . start . column , c < h , h > p , l == f ) , s , l == f ? 0 : 1 , o ) } , this . drawMultiLineMarker = function ( e , t , n , r , i ) { var s = this . $padding , o = r . lineHeight , u = this . $getTop ( t . start . row , r ) , a = s + t . start . column * r . characterWidth ; i = i || "" , e . push ( "<div class='" , n , " ace_br1 ace_start' style='" , "height:" , o , "px;" , "right:0;" , "top:" , u , "px;" , "left:" , a , "px;" , i , "'></div>" ) , u = this . $getTop ( t . end . row , r ) ; var f = t . end . column * r . characterWidth ; if ( e . push ( "<div class='" , n , " ace_br12' style='" , "height:" , o , "px;" , "width:" , f , "px;" , "top:" , u , "px;" , "left:" , s , "px;" , i , "'></div>" ) , o = ( t . end . row - t . start . row - 1 ) * r . lineHeight , ! ( o <= 0 ) ) { u = this . $getTop ( t . start . row + 1 , r ) ; var l = ( t . start . column ? 1 : 0 ) | ( t . end . column ? 0 : 8 ) ; e . push ( "<div class='" , n , l ? " ace_br" + l : "" , "' style='" , "height:" , o , "px;" , "right:0;" , "top:" , u , "px;" , "left:" , s , "px;" , i , "'></div>" ) } } , this . drawSingleLineMarker = function ( e , t , n , r , i , s ) { var o = r . lineHeight , u = ( t . end . column + ( i || 0 ) - t . start . column ) * r . characterWidth , a = this . $getTop ( t . start . row , r ) , f = this . $padding + t . start . column * r . characterWidth ; e . push ( "<div class='" , n , "' style='" , "height:" , o , "px;" , "width:" , u , "px;" , "top:" , a , "px;" , "left:" , f , "px;" , s || "" , "'></div>" ) } , this . drawFullLineMarker = function ( e , t , n , r , i ) { var s = this . $getTop ( t . start . row , r ) , o = r . lineHeight ; t . start . row != t . end . row && ( o += this . $getTop ( t . end . row , r ) - s ) , e . push ( "<div class='" , n , "' style='" , "height:" , o , "px;" , "top:" , s , "px;" , "left:0;right:0;" , i || "" , "'></div>" ) } , this . drawScreenLineMarker = function ( e , t , n , r , i ) { var s = this . $getTop ( t . start . row , r ) , o = r . lineHeight ; e . push ( "<div class='" , n , "' style='" , "height:" , o , "px;" , "top:" , s , "px;" , "left:0;right:0;" , i || "" , "'></div>" ) } } ) . call ( s . prototype ) , t . Marker = s } ) , ace . define ( "ace/layer/text" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" , "ace/lib/lang" , "ace/lib/useragent" , "ace/lib/event_emitter" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/dom" ) , s = e ( "../lib/lang" ) , u = ( e ( "../lib/useragent" ) , e ( "../lib/event_emitter" ) . EventEmitter ) , a = function ( e ) { this . element = i . createElement ( "div" ) , this . element . className = "ace_layer ace_text-layer" , e . appendChild ( this . element ) , this . $updateEolChar = this . $updateEolChar . bind ( this ) } ; ( function ( ) { r . implement ( this , u ) , this . EOF _CHAR = "¶" , this . EOL _CHAR _LF = "¬" , this . EOL _CHAR _CRLF = "¤" , this . EOL _CHAR = this . EOL _CHAR _LF , this . TAB _CHAR = "—" , this . SPACE _CHAR = "·" , this . $padding = 0 , this . $u
i . importCssString ( m , "ace_editor.css" ) ; var g = function ( e , t ) { var n = this ; this . container = e || i . createElement ( "div" ) , this . $keepTextAreaAtCursor = ! o . isOldIE , i . addCssClass ( this . container , "ace_editor" ) , this . setTheme ( t ) , this . $gutter = i . createElement ( "div" ) , this . $gutter . className = "ace_gutter" , this . container . appendChild ( this . $gutter ) , this . scroller = i . createElement ( "div" ) , this . scroller . className = "ace_scroller" , this . container . appendChild ( this . scroller ) , this . content = i . createElement ( "div" ) , this . content . className = "ace_content" , this . scroller . appendChild ( this . content ) , this . $gutterLayer = new u ( this . $gutter ) , this . $gutterLayer . on ( "changeGutterWidth" , this . onGutterResize . bind ( this ) ) , this . $markerBack = new a ( this . content ) ; var r = this . $textLayer = new f ( this . content ) ; this . canvas = r . element , this . $markerFront = new a ( this . content ) , this . $cursorLayer = new l ( this . content ) , this . $horizScroll = ! 1 , this . $vScroll = ! 1 , this . scrollBar = this . scrollBarV = new h ( this . container , this ) , this . scrollBarH = new c ( this . container , this ) , this . scrollBarV . addEventListener ( "scroll" , function ( e ) { n . $scrollAnimation || n . session . setScrollTop ( e . data - n . scrollMargin . top ) } ) , this . scrollBarH . addEventListener ( "scroll" , function ( e ) { n . $scrollAnimation || n . session . setScrollLeft ( e . data - n . scrollMargin . left ) } ) , this . scrollTop = 0 , this . scrollLeft = 0 , this . cursorPos = { row : 0 , column : 0 } , this . $fontMetrics = new d ( this . container ) , this . $textLayer . $setFontMetrics ( this . $fontMetrics ) , this . $textLayer . addEventListener ( "changeCharacterSize" , function ( e ) { n . updateCharacterSize ( ) , n . onResize ( ! 0 , n . gutterWidth , n . $size . width , n . $size . height ) , n . _signal ( "changeCharacterSize" , e ) } ) , this . $size = { width : 0 , height : 0 , scrollerHeight : 0 , scrollerWidth : 0 , $dirty : ! 0 } , this . layerConfig = { width : 1 , padding : 0 , firstRow : 0 , firstRowScreen : 0 , lastRow : 0 , lineHeight : 0 , characterWidth : 0 , minHeight : 1 , maxHeight : 1 , offset : 0 , height : 1 , gutterOffset : 1 } , this . scrollMargin = { left : 0 , right : 0 , top : 0 , bottom : 0 , v : 0 , h : 0 } , this . $loop = new p ( this . $renderChanges . bind ( this ) , this . container . ownerDocument . defaultView ) , this . $loop . schedule ( this . CHANGE _FULL ) , this . updateCharacterSize ( ) , this . setPadding ( 4 ) , s . resetOptions ( this ) , s . _emit ( "renderer" , this ) } ; ( function ( ) { this . CHANGE _CURSOR = 1 , this . CHANGE _MARKER = 2 , this . CHANGE _GUTTER = 4 , this . CHANGE _SCROLL = 8 , this . CHANGE _LINES = 16 , this . CHANGE _TEXT = 32 , this . CHANGE _SIZE = 64 , this . CHANGE _MARKER _BACK = 128 , this . CHANGE _MARKER _FRONT = 256 , this . CHANGE _FULL = 512 , this . CHANGE _H _SCROLL = 1024 , r . implement ( this , v ) , this . updateCharacterSize = function ( ) { this . $textLayer . allowBoldFonts != this . $allowBoldFonts && ( this . $allowBoldFonts = this . $textLayer . allowBoldFonts , this . setStyle ( "ace_nobold" , ! this . $allowBoldFonts ) ) , this . layerConfig . characterWidth = this . characterWidth = this . $textLayer . getCharacterWidth ( ) , this . layerConfig . lineHeight = this . lineHeight = this . $textLayer . getLineHeight ( ) , this . $updatePrintMargin ( ) } , this . setSession = function ( e ) { this . session && this . session . doc . off ( "changeNewLineMode" , this . onChangeNewLineMode ) , this . session = e , e && this . scrollMargin . top && e . getScrollTop ( ) <= 0 && e . setScrollTop ( - this . scrollMargin . top ) , this . $cursorLayer . setSession ( e ) , this . $markerBack . setSession ( e ) , this . $markerFront . setSession ( e ) , this . $gutterLayer . setSession ( e ) , this . $textLayer . setSession ( e ) , e && ( this . $loop . schedule ( this . CHANGE _FULL ) , this . session . $setFontMetrics ( this . $fontMetrics ) , this . scrollBarV . scrollLeft = this . scrollBarV . scrollTop = null , this . onChangeNewLineMode = this . onChangeNewLineMode . bind ( this ) , this . onChangeNewLineMode ( ) , this . session . doc . on ( "changeNewLineMode" , this . onChangeNewLineMode ) ) } , this . updateLines = function ( e , t , n ) { if ( void 0 === t && ( t = 1 / 0 ) , this . $changedLines ? ( this . $changedLines . firstRow > e && ( this . $changedLines . firstRow = e ) , this . $changedLines . lastRow < t && ( this . $changedLines . lastRow = t ) ) : this . $changedLines = { firstRow : e , lastRow : t } , this . $changedLines . lastRow < this . layerConfig . firstRow ) { if ( ! n ) return ; this . $changedLines . lastRow = this . layerConfig . lastRow } this . $changedLines . firstRow > this . layerConfig . lastRow || this . $loop . schedule ( this . CHANGE _LINES ) } , this . onChangeNewLineMode = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT ) , this . $textLayer . $updateEolChar ( ) } , this . onChangeTabSize = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT | this . CHANGE _MARKER ) , this . $textLaye
if ( this . othersActive ) { this . othersActive = ! 1 ; for ( var e = 0 ; e < this . others . length ; e ++ ) this . session . removeMarker ( this . others [ e ] . markerId ) } } , this . onUpdate = function ( e ) { if ( this . $updating ) return this . updateAnchors ( e ) ; var t = e ; if ( t . start . row === t . end . row && t . start . row === this . pos . row ) { this . $updating = ! 0 ; var n = "insert" === e . action ? t . end . column - t . start . column : t . start . column - t . end . column , i = t . start . column >= this . pos . column && t . start . column <= this . pos . column + this . length + 1 , s = t . start . column - this . pos . column ; if ( this . updateAnchors ( e ) , i && ( this . length += n ) , i && ! this . session . $fromUndo ) if ( "insert" === e . action ) for ( var o = this . others . length - 1 ; o >= 0 ; o -- ) { var u = this . others [ o ] , a = { row : u . row , column : u . column + s } ; this . doc . insertMergedLines ( a , e . lines ) } else if ( "remove" === e . action ) for ( var o = this . others . length - 1 ; o >= 0 ; o -- ) { var u = this . others [ o ] , a = { row : u . row , column : u . column + s } ; this . doc . remove ( new r ( a . row , a . column , a . row , a . column - n ) ) } this . $updating = ! 1 , this . updateMarkers ( ) } } , this . updateAnchors = function ( e ) { this . pos . onChange ( e ) ; for ( var t = this . others . length ; t -- ; ) this . others [ t ] . onChange ( e ) ; this . updateMarkers ( ) } , this . updateMarkers = function ( ) { if ( ! this . $updating ) { var e = this , t = this . session , n = function ( n , i ) { t . removeMarker ( n . markerId ) , n . markerId = t . addMarker ( new r ( n . row , n . column , n . row , n . column + e . length ) , i , null , ! 1 ) } ; n ( this . pos , this . mainClass ) ; for ( var i = this . others . length ; i -- ; ) n ( this . others [ i ] , this . othersClass ) } } , this . onCursorChange = function ( e ) { if ( ! this . $updating && this . session ) { var t = this . session . selection . getCursor ( ) ; t . row === this . pos . row && t . column >= this . pos . column && t . column <= this . pos . column + this . length ? ( this . showOtherMarkers ( ) , this . _emit ( "cursorEnter" , e ) ) : ( this . hideOtherMarkers ( ) , this . _emit ( "cursorLeave" , e ) ) } } , this . detach = function ( ) { this . session . removeMarker ( this . pos && this . pos . markerId ) , this . hideOtherMarkers ( ) , this . doc . removeEventListener ( "change" , this . $onUpdate ) , this . session . selection . removeEventListener ( "changeCursor" , this . $onCursorChange ) , this . session . setUndoSelect ( ! 0 ) , this . session = null } , this . cancel = function ( ) { if ( this . $undoStackDepth !== - 1 ) { for ( var e = this . session . getUndoManager ( ) , t = ( e . $undoStack || e . $undostack ) . length - this . $undoStackDepth , n = 0 ; n < t ; n ++ ) e . undo ( ! 0 ) ; this . selectionBefore && this . session . selection . fromJSON ( this . selectionBefore ) } } } ) . call ( o . prototype ) , t . PlaceHolder = o } ) , ace . define ( "ace/mouse/multi_select_handler" , [ "require" , "exports" , "module" , "ace/lib/event" , "ace/lib/useragent" ] , function ( e , t , n ) { function s ( e , t ) { return e . row == t . row && e . column == t . column } function o ( e ) { var t = e . domEvent , n = t . altKey , o = t . shiftKey , u = t . ctrlKey , a = e . getAccelKey ( ) , f = e . getButton ( ) ; if ( u && i . isMac && ( f = t . button ) , e . editor . inMultiSelectMode && 2 == f ) return void e . editor . textInput . onContextMenu ( e . domEvent ) ; if ( ! u && ! n && ! a ) return void ( 0 === f && e . editor . inMultiSelectMode && e . editor . exitMultiSelectMode ( ) ) ; if ( 0 === f ) { var S , l = e . editor , c = l . selection , h = l . inMultiSelectMode , p = e . getDocumentPosition ( ) , d = c . getCursor ( ) , v = e . inSelection ( ) || c . isEmpty ( ) && s ( p , d ) , m = e . x , g = e . y , y = function ( e ) { m = e . clientX , g = e . clientY } , b = l . session , w = l . renderer . pixelToScreenCoordinates ( m , g ) , E = w ; if ( l . $mouseHandler . $enableJumpToDef ) u && n || a && n ? S = o ? "block" : "add" : n && l . $blockSelectEnabled && ( S = "block" ) ; else if ( a && ! n ) { if ( S = "add" , ! h && o ) return } else n && l . $blockSelectEnabled && ( S = "block" ) ; if ( S && i . isMac && t . ctrlKey && l . $mouseHandler . cancelContextMenu ( ) , "add" == S ) { if ( ! h && v ) return ; if ( ! h ) { var x = c . toOrientedRange ( ) ; l . addSelectionMarker ( x ) } var T = c . rangeList . rangeAtPoint ( p ) ; l . $blockScrolling ++ , l . inVirtualSelectionMode = ! 0 , o && ( T = null , x = c . ranges [ 0 ] || x , l . removeSelectionMarker ( x ) ) , l . once ( "mouseup" , function ( ) { var e = c . toOrientedRange ( ) ; T && e . isEmpty ( ) && s ( T . cursor , e . cursor ) ? c . substractPoint ( e . cursor ) : ( o ? c . substractPoint ( x . cursor ) : x && ( l . removeSelectionMarker ( x ) , c . addRange ( x ) ) , c . addRange ( e ) ) , l . $blockScrolling -- , l . inVirtualSelectionMode = ! 1 } ) } else if ( "block" == S ) { e . stop ( ) , l . inVirtualSelectionMode = ! 0 ; var N , C = [ ] , k = function ( ) { var e = l . renderer . pixelToScreenCoordinates ( m , g ) , t = b . screenToDocumentPosition ( e . row , e . column ) ; s ( E , e ) && s ( t , c . lead ) || ( E = e , l . $blockScrolling ++ , l . selection . moveToPosition ( t ) , l . renderer . scrollCursorIntoView ( ) , l . removeSelectionMarkers ( C ) , C = c . rectangularRangeBlock ( E , w ) , l . $mouseHandler . $clickSelection &&
} var a = [ ] ; t = u . row ; do a [ n < 0 ? "unshift" : "push" ] ( u ) , u = r [ i += n ] ; while ( u && u . row == t ) ; return a . length && a } } } var r = e ( "../line_widgets" ) . LineWidgets , i = e ( "../lib/dom" ) , s = e ( "../range" ) . Range ; t . showErrorMarker = function ( e , t ) { var n = e . session ; n . widgetManager || ( n . widgetManager = new r ( n ) , n . widgetManager . attach ( e ) ) ; var s = e . getCursorPosition ( ) , o = s . row , a = n . widgetManager . getWidgetsAtRow ( o ) . filter ( function ( e ) { return "errorMarker" == e . type } ) [ 0 ] ; a ? a . destroy ( ) : o -= t ; var l , f = u ( n , o , t ) ; if ( f ) { var c = f [ 0 ] ; s . column = ( c . pos && "number" != typeof c . column ? c . pos . sc : c . column ) || 0 , s . row = c . row , l = e . renderer . $gutterLayer . $annotations [ s . row ] } else { if ( a ) return ; l = { text : [ "Looks good!" ] , className : "ace_ok" } } e . session . unfold ( s . row ) , e . selection . moveToPosition ( s ) ; var h = { row : s . row , fixedWidth : ! 0 , coverGutter : ! 0 , el : i . createElement ( "div" ) , type : "errorMarker" } , p = h . el . appendChild ( i . createElement ( "div" ) ) , d = h . el . appendChild ( i . createElement ( "div" ) ) ; d . className = "error_widget_arrow " + l . className ; var v = e . renderer . $cursorLayer . getPixelPosition ( s ) . left ; d . style . left = v + e . renderer . gutterWidth - 5 + "px" , h . el . className = "error_widget_wrapper" , p . className = "error_widget " + l . className , p . innerHTML = l . text . join ( "<br>" ) , p . appendChild ( i . createElement ( "div" ) ) ; var m = function ( e , t , n ) { if ( 0 === t && ( "esc" === n || "return" === n ) ) return h . destroy ( ) , { command : "null" } } ; h . destroy = function ( ) { e . $mouseHandler . isMousePressed || ( e . keyBinding . removeKeyboardHandler ( m ) , n . widgetManager . removeLineWidget ( h ) , e . off ( "changeSelection" , h . destroy ) , e . off ( "changeSession" , h . destroy ) , e . off ( "mouseup" , h . destroy ) , e . off ( "change" , h . destroy ) ) } , e . keyBinding . addKeyboardHandler ( m ) , e . on ( "changeSelection" , h . destroy ) , e . on ( "changeSession" , h . destroy ) , e . on ( "mouseup" , h . destroy ) , e . on ( "change" , h . destroy ) , e . session . widgetManager . addLineWidget ( h ) , h . el . onmousedown = e . focus . bind ( e ) , e . renderer . scrollCursorIntoView ( null , . 5 , { bottom : h . el . offsetHeight } ) } , i . importCssString ( " .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }" , "" ) } ) , ace . define ( "ace/ace" , [ "require" , "exports" , "module" , "ace/lib/fixoldbrowsers" , "ace/lib/dom" , "ace/lib/event" , "ace/editor" , "ace/edit_session" , "ace/undomanager" , "ace/virtual_renderer" , "ace/worker/worker_client" , "ace/keyboard/hash_handler" , "ace/placeholder" , "ace/multi_select" , "ace/mode/folding/fold_mode" , "ace/theme/textmate" , "ace/ext/error_marker" , "ace/config" ] , function ( e , t , n ) { "use strict" ; e ( "./lib/fixoldbrowsers" ) ; var r = e ( "./lib/dom" ) , i = e ( "./lib/event" ) , s = e ( "./editor" ) . Editor , o = e ( "./edit_session" ) . EditSession , u = e ( "./undomanager" ) . UndoManager , a = e ( "./virtual_renderer" ) . VirtualRenderer ; e ( "./worker/worker_client" ) , e ( "./keyboard/hash_handler" ) , e ( "./placeholder" ) , e ( "./multi_select" ) , e ( "./mode/folding/fold_mode" ) , e ( "./theme/textmate" ) , e ( "./ext/error_marker" ) , t . config = e ( "./config" ) , t . require = e , "function" == typeof define && ( t . define = define ) , t . edit = function ( e ) { if ( "string" == typeof e ) { var n = e ; if ( e = document . getElementById ( n ) , ! e ) throw new Error ( "ace.edit can't find div #" + n ) } if ( e && e . env && e . env . editor instanceof s ) return e . env . editor ; var o = "" ; if ( e && /input|textarea/i . test ( e . tagName ) ) { var u = e ; o = u . value , e = r . createElement ( "pre" ) , u . parentNode . replaceChild ( e , u ) } else e && ( o = r . getInnerText ( e ) , e . innerHTML = "" ) ; var f = t . createEditSession ( o ) , l = new s ( new a ( e ) ) ; l . setSession ( f ) ; var c = { document : f , editor : l , onResize : l . resize . bind ( l , null ) } ; return u && ( c . textarea = u ) , i . addListener ( wi
if ( u ( f , "reference.attribute-value" ) ) return ; if ( u ( f , "attribute-value" ) ) { var l = f . value . charAt ( 0 ) ; if ( '"' == l || "'" == l ) { var c = f . value . charAt ( f . value . length - 1 ) , h = a . getCurrentTokenColumn ( ) + f . value . length ; if ( h > o . column || h == o . column && l != c ) return } } for ( ; ! u ( f , "tag-name" ) ; ) if ( f = a . stepBackward ( ) , "<" == f . value ) { f = a . stepForward ( ) ; break } var p = a . getCurrentTokenRow ( ) , d = a . getCurrentTokenColumn ( ) ; if ( u ( a . stepBackward ( ) , "end-tag-open" ) ) return ; var v = f . value ; if ( p == o . row && ( v = v . substring ( 0 , o . column - d ) ) , this . voidElements . hasOwnProperty ( v . toLowerCase ( ) ) ) return ; return { text : "></" + v + ">" , selection : [ 1 , 1 ] } } } ) , this . add ( "autoindent" , "insertion" , function ( e , t , n , r , i ) { if ( "\n" == i ) { var o = n . getCursorPosition ( ) , u = r . getLine ( o . row ) , a = new s ( r , o . row , o . column ) , f = a . getCurrentToken ( ) ; if ( f && f . type . indexOf ( "tag-close" ) !== - 1 ) { if ( "/>" == f . value ) return ; for ( ; f && f . type . indexOf ( "tag-name" ) === - 1 ; ) f = a . stepBackward ( ) ; if ( ! f ) return ; var l = f . value , c = a . getCurrentTokenRow ( ) ; if ( f = a . stepBackward ( ) , ! f || f . type . indexOf ( "end-tag" ) !== - 1 ) return ; if ( this . voidElements && ! this . voidElements [ l ] ) { var h = r . getTokenAt ( o . row , o . column + 1 ) , u = r . getLine ( c ) , p = this . $getIndent ( u ) , d = p + r . getTabString ( ) ; return h && "</" === h . value ? { text : "\n" + d + "\n" + p , selection : [ 1 , d . length , 1 , d . length ] } : { text : "\n" + d } } } } } ) } ) ; r . inherits ( a , i ) , t . XmlBehaviour = a } ) , ace . define ( "ace/mode/folding/xml" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/range" , "ace/mode/folding/fold_mode" , "ace/token_iterator" ] , function ( e , t , n ) { "use strict" ; function l ( e , t ) { return e . type . lastIndexOf ( t + ".xml" ) > - 1 } var r = e ( "../../lib/oop" ) , s = ( e ( "../../lib/lang" ) , e ( "../../range" ) . Range ) , o = e ( "./fold_mode" ) . FoldMode , u = e ( "../../token_iterator" ) . TokenIterator , a = t . FoldMode = function ( e , t ) { o . call ( this ) , this . voidElements = e || { } , this . optionalEndTags = r . mixin ( { } , this . voidElements ) , t && r . mixin ( this . optionalEndTags , t ) } ; r . inherits ( a , o ) ; var f = function ( ) { this . tagName = "" , this . closing = ! 1 , this . selfClosing = ! 1 , this . start = { row : 0 , column : 0 } , this . end = { row : 0 , column : 0 } } ; ( function ( ) { this . getFoldWidget = function ( e , t , n ) { var r = this . _getFirstTagInLine ( e , n ) ; return r ? r . closing || ! r . tagName && r . selfClosing ? "markbeginend" == t ? "end" : "" : ! r . tagName || r . selfClosing || this . voidElements . hasOwnProperty ( r . tagName . toLowerCase ( ) ) ? "" : this . _findEndTagInLine ( e , n , r . tagName , r . end . column ) ? "" : "start" : "" } , this . _getFirstTagInLine = function ( e , t ) { for ( var n = e . getTokens ( t ) , r = new f , i = 0 ; i < n . length ; i ++ ) { var s = n [ i ] ; if ( l ( s , "tag-open" ) ) { if ( r . end . column = r . start . column + s . value . length , r . closing = l ( s , "end-tag-open" ) , s = n [ ++ i ] , ! s ) return null ; for ( r . tagName = s . value , r . end . column += s . value . length , i ++ ; i < n . length ; i ++ ) if ( s = n [ i ] , r . end . column += s . value . length , l ( s , "tag-close" ) ) { r . selfClosing = "/>" == s . value ; break } return r } if ( l ( s , "tag-close" ) ) return r . selfClosing = "/>" == s . value , r ; r . start . column += s . value . length } return null } , this . _findEndTagInLine = function ( e , t , n , r ) { for ( var i = e . getTokens ( t ) , s = 0 , o = 0 ; o < i . length ; o ++ ) { var u = i [ o ] ; if ( s += u . value . length , ! ( s < r ) && l ( u , "end-tag-open" ) && ( u = i [ o + 1 ] , u && u . value == n ) ) return ! 0 } return ! 1 } , this . _readTagForward = function ( e ) { var t = e . getCurrentToken ( ) ; if ( ! t ) return null ; var n = new f ; do if ( l ( t , "tag-open" ) ) n . closing = l ( t , "end-tag-open" ) , n . start . row = e . getCurrentTokenRow ( ) , n . start . column = e . getCurrentTokenColumn ( ) ; else if ( l ( t , "tag-name" ) ) n . tagName = t . value ; else if ( l ( t , "tag-close" ) ) return n . selfClosing = "/>" == t . value , n . end . row = e . getCurrentTokenRow ( ) , n . end . column = e . getCurrentTokenColumn ( ) + t . value . length , e . stepForward ( ) , n ; while ( t = e . stepForward ( ) ) ; return null } , this . _readTagBackward = function ( e ) { var t = e . getCurrentToken ( ) ; if ( ! t ) return null ; var n = new f ; do { if ( l ( t , "tag-open" ) ) return n . closing = l ( t , "end-tag-open" ) , n . start . row = e . getCurrentTokenRow ( ) , n . start . column = e . getCurrentTokenColumn ( ) , e . stepBackward ( ) , n ; l ( t , "tag-name" ) ? n . tagName = t . value : l ( t , "tag-close" ) && ( n . selfClosing = "/>" == t . value , n . end . row = e . getCurrentTokenRow ( ) , n . end . column = e . getCurrentTokenColumn ( ) + t . value . length ) } while ( t = e . stepBackward ( ) ) ; return null } , this . _pop = function ( e , t ) { for ( ; e . length ; ) { var n = e [ e . length - 1 ] ; if ( ! t || n . tagName == t . tagName ) return e . pop ( ) ; { if ( ! this . optionalEndTags . hasOwnProperty ( n . tagName ) ) return null ; e . pop ( ) } } } , this . getFoldWidgetRange = function ( e , t , n ) { var r = this . _getFirstTagInLine ( e , n ) ; if (
return i . map ( function ( e ) { return { caption : e , snippet : e , meta : "html entity" , score : Number . MAX _VALUE } } ) } } ) . call ( h . prototype ) , t . HtmlCompletions = h } ) , ace . define ( "ace/mode/html" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/text" , "ace/mode/javascript" , "ace/mode/css" , "ace/mode/html_highlight_rules" , "ace/mode/behaviour/xml" , "ace/mode/folding/html" , "ace/mode/html_completions" , "ace/worker/worker_client" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./text" ) . Mode , o = e ( "./javascript" ) . Mode , u = e ( "./css" ) . Mode , a = e ( "./html_highlight_rules" ) . HtmlHighlightRules , f = e ( "./behaviour/xml" ) . XmlBehaviour , l = e ( "./folding/html" ) . FoldMode , c = e ( "./html_completions" ) . HtmlCompletions , h = e ( "../worker/worker_client" ) . WorkerClient , p = [ "area" , "base" , "br" , "col" , "embed" , "hr" , "img" , "input" , "keygen" , "link" , "meta" , "menuitem" , "param" , "source" , "track" , "wbr" ] , d = [ "li" , "dt" , "dd" , "p" , "rt" , "rp" , "optgroup" , "option" , "colgroup" , "td" , "th" ] , v = function ( e ) { this . fragmentContext = e && e . fragmentContext , this . HighlightRules = a , this . $behaviour = new f , this . $completer = new c , this . createModeDelegates ( { "js-" : o , "css-" : u } ) , this . foldingRules = new l ( this . voidElements , i . arrayToMap ( d ) ) } ; r . inherits ( v , s ) , function ( ) { this . blockComment = { start : "<!--" , end : "-->" } , this . voidElements = i . arrayToMap ( p ) , this . getNextLineIndent = function ( e , t , n ) { return this . $getIndent ( t ) } , this . checkOutdent = function ( e , t , n ) { return ! 1 } , this . getCompletions = function ( e , t , n , r ) { return this . $completer . getCompletions ( e , t , n , r ) } , this . createWorker = function ( e ) { if ( this . constructor == v ) { var t = new h ( [ "ace" ] , "ace/mode/html_worker" , "Worker" ) ; return t . attachToDocument ( e . getDocument ( ) ) , this . fragmentContext && t . call ( "setOptions" , [ { context : this . fragmentContext } ] ) , t . on ( "error" , function ( t ) { e . setAnnotations ( t . data ) } ) , t . on ( "terminate" , function ( ) { e . clearAnnotations ( ) } ) , t } } , this . $id = "ace/mode/html" } . call ( v . prototype ) , t . Mode = v } ) , ace . define ( "ace/mode/markdown_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/text_highlight_rules" , "ace/mode/javascript_highlight_rules" , "ace/mode/xml_highlight_rules" , "ace/mode/html_highlight_rules" , "ace/mode/css_highlight_rules" ] , function ( e , t , n ) { "use strict" ; function c ( e , t ) { return { token : "support.function" , regex : "^\\s*```" + e + "\\s*$" , push : t + "start" } } var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./text_highlight_rules" ) . TextHighlightRules , o = e ( "./javascript_highlight_rules" ) . JavaScriptHighlightRules , u = e ( "./xml_highlight_rules" ) . XmlHighlightRules , a = e ( "./html_highlight_rules" ) . HtmlHighlightRules , f = e ( "./css_highlight_rules" ) . CssHighlightRules , l = function ( e ) { return "(?:[^" + i . escapeRegExp ( e ) + "\\\\]|\\\\.)*" } , h = function ( ) { a . call ( this ) , this . $rules . start . unshift ( { token : "empty_line" , regex : "^$" , next : "allowBlock" } , { token : "markup.heading.1" , regex : "^=+(?=\\s*$)" } , { token : "markup.heading.2" , regex : "^\\-+(?=\\s*$)" } , { token : function ( e ) { return "markup.heading." + e . length } , regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/ , next : "header" } , c ( "(?:javascript|js)" , "jscode-" ) , c ( "xml" , "xmlcode-" ) , c ( "html" , "htmlcode-" ) , c ( "css" , "csscode-" ) , { token : "support.function" , regex : "^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$" , next : "githubblock" } , { token : "string.blockquote" , regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+" , next : "blockquote" } , { token : "constant" , regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$" , next : "allowBlock" } , { token : "markup.list" , regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+" , next : "listblock-start" } , { include : "basic" } ) , this . addRules ( { basic : [ { token : "constant.language.escape" , regex : /\\[\\`*_{}\[\]()#+\-.!]/ } , { token : "support.function" , regex : "(`+)(.*?[^`])(\\1)" } , { token : [ "text" , "constant" , "text" , "url" , "string" , "text" ] , regex : '^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$' } , { token : [ "text" , "string" , "text" , "constant" , "text" ] , regex : "(\\[)(" + l ( "]" ) + ")(\\]\\s*\\[)(" + l ( "]" ) + ")(\\])" } , { token : [ "text" , "string" , "text" , "markup.underline" , "string" , "text" ] , regex : "(\\[)(" + l ( "]" ) + ')(\\]\\()((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)(\\s*"' + l ( '"' ) + '"\\s*)?(\\))' } , { token : "string.strong" , regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)" } , { token : "string.emphasis" , regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)" } , { token : [ "
return "number" == typeof n ? n : Au ( n ) ? P : + n } function jr ( n ) { if ( "string" == typeof n ) return n ; if ( af ( n ) ) return l ( n , jr ) + "" ; if ( Au ( n ) ) return uo ? uo . call ( n ) : "" ; var t = n + "" ; return "0" == t && 1 / n == - N ? "-0" : t } function wr ( n , t , r ) { var e = - 1 , u = c , i = n . length , o = ! 0 , f = [ ] , l = f ; if ( r ) o = ! 1 , u = a ; else if ( 200 <= i ) { if ( u = t ? null : po ( n ) ) return D ( u ) ; o = ! 1 , u = R , l = new qn } else l = t ? [ ] : f ; n : for ( ; ++ e < i ; ) { var s = n [ e ] , h = t ? t ( s ) : s , s = r || 0 !== s ? s : 0 ; if ( o && h === h ) { for ( var p = l . length ; p -- ; ) if ( l [ p ] === h ) continue n ; t && l . push ( h ) , f . push ( s ) } else u ( l , h , r ) || ( l !== f && l . push ( h ) , f . push ( s ) ) } return f } function mr ( n , t ) { return t = Rr ( t , n ) , n = 2 > t . length ? n : It ( n , vr ( t , 0 , - 1 ) ) , null == n || delete n [ $e ( Ge ( t ) ) ] } function Ar ( n , t , r , e ) { for ( var u = n . length , i = e ? u : - 1 ; ( e ? i -- : ++ i < u ) && t ( n [ i ] , i , n ) ; ) ; return r ? vr ( n , e ? 0 : i , e ? i + 1 : u ) : vr ( n , e ? i + 1 : 0 , e ? u : i ) } function kr ( n , t ) { var r = n ; return r instanceof Mn && ( r = r . value ( ) ) , h ( t , function ( n , t ) { return t . func . apply ( t . thisArg , s ( [ n ] , t . args ) ) } , r ) } function Er ( n , t , r ) { var e = n . length ; if ( 2 > e ) return e ? wr ( n [ 0 ] ) : [ ] ; for ( var u = - 1 , i = Hu ( e ) ; ++ u < e ; ) for ( var o = n [ u ] , f = - 1 ; ++ f < e ; ) f != u && ( i [ u ] = jt ( i [ u ] || o , n [ f ] , t , r ) ) ; return wr ( kt ( i , 1 ) , t , r ) } function Or ( n , t , r ) { for ( var e = - 1 , u = n . length , i = t . length , o = { } ; ++ e < u ; ) r ( o , n [ e ] , e < i ? t [ e ] : F ) ; return o } function Sr ( n ) { return _u ( n ) ? n : [ ] } function Ir ( n ) { return "function" == typeof n ? n : Nu } function Rr ( n , t ) { return af ( n ) ? n : We ( n , t ) ? [ n ] : mo ( zu ( n ) ) } function zr ( n , t , r ) { var e = n . length ; return r = r === F ? e : r , ! t && r >= e ? n : vr ( n , t , r ) } function Wr ( n , t ) { if ( t ) return n . slice ( ) ; var r = n . length , r = yi ? yi ( r ) : new n . constructor ( r ) ; return n . copy ( r ) , r } function Br ( n ) { var t = new n . constructor ( n . byteLength ) ; return new di ( t ) . set ( new di ( n ) ) , t } function Lr ( n , t ) { return new n . constructor ( t ? Br ( n . buffer ) : n . buffer , n . byteOffset , n . length ) } function Ur ( n , t ) { if ( n !== t ) { var r = n !== F , e = null === n , u = n === n , i = Au ( n ) , o = t !== F , f = null === t , c = t === t , a = Au ( t ) ; if ( ! f && ! a && ! i && n > t || i && o && c && ! f && ! a || e && o && c || ! r && c || ! u ) return 1 ; if ( ! e && ! i && ! a && n < t || a && r && u && ! e && ! i || f && r && u || ! o && u || ! c ) return - 1 } return 0 } function Cr ( n , t , r , e ) { var u = - 1 , i = n . length , o = r . length , f = - 1 , c = t . length , a = Di ( i - o , 0 ) , l = Hu ( c + a ) ; for ( e = ! e ; ++ f < c ; ) l [ f ] = t [ f ] ; for ( ; ++ u < o ; ) ( e || u < i ) && ( l [ r [ u ] ] = n [ u ] ) ; for ( ; a -- ; ) l [ f ++ ] = n [ u ++ ] ; return l } function Dr ( n , t , r , e ) { var u = - 1 , i = n . length , o = - 1 , f = r . length , c = - 1 , a = t . length , l = Di ( i - f , 0 ) , s = Hu ( l + a ) ; for ( e = ! e ; ++ u < l ; ) s [ u ] = n [ u ] ; for ( l = u ; ++ c < a ; ) s [ l + c ] = t [ c ] ; for ( ; ++ o < f ; ) ( e || u < i ) && ( s [ l + r [ o ] ] = n [ u ++ ] ) ; return s } function Mr ( n , t ) { var r = - 1 , e = n . length ; for ( t || ( t = Hu ( e ) ) ; ++ r < e ; ) t [ r ] = n [ r ] ; return t } function Tr ( n , t , r , e ) { var u = ! r ; r || ( r = { } ) ; for ( var i = - 1 , o = t . length ; ++ i < o ; ) { var f = t [ i ] , c = e ? e ( r [ f ] , n [ f ] , f , r , n ) : F ; c === F && ( c = n [ f ] ) , u ? _t ( r , f , c ) : at ( r , f , c ) } return r } function $r ( n , t ) { return Tr ( n , vo ( n ) , t ) } function Fr ( n , t ) { return Tr ( n , go ( n ) , t ) } function Nr ( n , t ) { return function ( r , u ) { var i = af ( r ) ? e : st , o = t ? t ( ) : { } ; return i ( r , n , je ( u , 2 ) , o ) } } function Pr ( n ) { return lr ( function ( t , r ) { var e = - 1 , u = r . length , i = 1 < u ? r [ u - 1 ] : F , o = 2 < u ? r [ 2 ] : F , i = 3 < n . length && "function" == typeof i ? ( u -- , i ) : F ; for ( o && ze ( r [ 0 ] , r [ 1 ] , o ) && ( i = 3 > u ? F : i , u = 1 ) , t = ni ( t ) ; ++ e < u ; ) ( o = r [ e ] ) && n ( t , o , e , i ) ; return t } ) } function Zr ( n , t ) { return function ( r , e ) { if ( null == r ) return r ; if ( ! pu ( r ) ) return n ( r , e ) ; for ( var u = r . length , i = t ? u : - 1 , o = ni ( r ) ; ( t ? i -- : ++ i < u ) && ! 1 !== e ( o [ i ] , i , o ) ; ) ; return r } } function qr ( n ) { return function ( t , r , e ) { var u = - 1 , i = ni ( t ) ; e = e ( t ) ; for ( var o = e . length ; o -- ; ) { var f = e [ n ? o : ++ u ] ; if ( ! 1 === r ( i [ f ] , f , i ) ) break } return t } } function Vr ( n , t , r ) { function e ( ) { return ( this && this !== Zn && this instanceof e ? i : n ) . apply ( u ? r : this , arguments ) } var u = 1 & t , i = Hr ( n ) ; return e } function Kr ( n ) { return function ( t ) { t = zu ( t ) ; var r = Bn . test ( t ) ? $ ( t ) : F , e = r ? r [ 0 ] : t . charAt ( 0 ) ; return t = r ? zr ( r , 1 ) . join ( "" ) : t . slice ( 1 ) , e [ n ] ( ) + t } } function Gr ( n ) { return function ( t ) { return h ( $u ( Tu ( t ) . replace ( In , "" ) ) , n , "" ) } } function Hr ( n ) { return function ( ) { var t = arguments ; switch ( t . length ) { case 0 : return new n ; case 1 : return new n ( t [ 0 ] ) ; case 2 : return new n ( t [ 0 ] , t [ 1 ] ) ; case 3 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) ; case 4 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] ) ; case 5 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] ) ; case 6 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] ) ; case 7 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] , t [ 6 ] ) } var r = io ( n . prototype ) , t = n . apply ( r , t ) ; return bu ( t ) ? t : r } } function Jr ( n , t , e ) { function u ( ) { for ( var o = arguments . length , f = Hu ( o ) , c = o , a = xe ( u ) ; c -- ; ) f [ c ] = arguments [ c ] ; return c = 3 > o && f [ 0 ] !== a && f [ o - 1 ] !== a ? [ ] : C ( f , a
var r = { } ; return t = je ( t , 3 ) , Et ( n , function ( n , e , u ) { _t ( r , e , t ( n , e , u ) ) } ) , r } , On . matches = function ( n ) { return Qt ( dt ( n , 1 ) ) } , On . matchesProperty = function ( n , t ) { return Xt ( n , dt ( t , 1 ) ) } , On . memoize = lu , On . merge = If , On . mergeWith = Rf , On . method = Kf , On . methodOf = Gf , On . mixin = Zu , On . negate = su , On . nthArg = function ( n ) { return n = Ou ( n ) , lr ( function ( t ) { return tr ( t , n ) } ) } , On . omit = zf , On . omitBy = function ( n , t ) { return Cu ( n , su ( je ( t ) ) ) } , On . once = function ( n ) { return ou ( 2 , n ) } , On . orderBy = function ( n , t , r , e ) { return null == n ? [ ] : ( af ( t ) || ( t = null == t ? [ ] : [ t ] ) , r = e ? F : r , af ( r ) || ( r = null == r ? [ ] : [ r ] ) , rr ( n , t , r ) ) } , On . over = Hf , On . overArgs = tf , On . overEvery = Jf , On . overSome = Yf , On . partial = rf , On . partialRight = ef , On . partition = Go , On . pick = Wf , On . pickBy = Cu , On . property = Vu , On . propertyOf = function ( n ) { return function ( t ) { return null == n ? F : It ( n , t ) } } , On . pull = Ro , On . pullAll = He , On . pullAllBy = function ( n , t , r ) { return n && n . length && t && t . length ? or ( n , t , je ( r , 2 ) ) : n } , On . pullAllWith = function ( n , t , r ) { return n && n . length && t && t . length ? or ( n , t , F , r ) : n } , On . pullAt = zo , On . range = Qf , On . rangeRight = Xf , On . rearg = uf , On . reject = function ( n , t ) { return ( af ( n ) ? f : At ) ( n , su ( je ( t , 3 ) ) ) } , On . remove = function ( n , t ) { var r = [ ] ; if ( ! n || ! n . length ) return r ; var e = - 1 , u = [ ] , i = n . length ; for ( t = je ( t , 3 ) ; ++ e < i ; ) { var o = n [ e ] ; t ( o , e , n ) && ( r . push ( o ) , u . push ( e ) ) } return fr ( n , u ) , r } , On . rest = function ( n , t ) { if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return t = t === F ? t : Ou ( t ) , lr ( n , t ) } , On . reverse = Je , On . sampleSize = function ( n , t , r ) { return t = ( r ? ze ( n , t , r ) : t === F ) ? 1 : Ou ( t ) , ( af ( n ) ? ot : hr ) ( n , t ) } , On . set = function ( n , t , r ) { return null == n ? n : pr ( n , t , r ) } , On . setWith = function ( n , t , r , e ) { return e = "function" == typeof e ? e : F , null == n ? n : pr ( n , t , r , e ) } , On . shuffle = function ( n ) { return ( af ( n ) ? ft : _r ) ( n ) } , On . slice = function ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( r && "number" != typeof r && ze ( n , t , r ) ? ( t = 0 , r = e ) : ( t = null == t ? 0 : Ou ( t ) , r = r === F ? e : Ou ( r ) ) , vr ( n , t , r ) ) : [ ] } , On . sortBy = Ho , On . sortedUniq = function ( n ) { return n && n . length ? br ( n ) : [ ] } , On . sortedUniqBy = function ( n , t ) { return n && n . length ? br ( n , je ( t , 2 ) ) : [ ] } , On . split = function ( n , t , r ) { return r && "number" != typeof r && ze ( n , t , r ) && ( t = r = F ) , r = r === F ? 4294967295 : r >>> 0 , r ? ( n = zu ( n ) ) && ( "string" == typeof t || null != t && ! _f ( t ) ) && ( t = jr ( t ) , ! t && Bn . test ( n ) ) ? zr ( $ ( n ) , 0 , r ) : n . split ( t , r ) : [ ] } , On . spread = function ( n , t ) { if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return t = null == t ? 0 : Di ( Ou ( t ) , 0 ) , lr ( function ( e ) { var u = e [ t ] ; return e = zr ( e , 0 , t ) , u && s ( e , u ) , r ( n , this , e ) } ) } , On . tail = function ( n ) { var t = null == n ? 0 : n . length ; return t ? vr ( n , 1 , t ) : [ ] } , On . take = function ( n , t , r ) { return n && n . length ? ( t = r || t === F ? 1 : Ou ( t ) , vr ( n , 0 , 0 > t ? 0 : t ) ) : [ ] } , On . takeRight = function ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( t = r || t === F ? 1 : Ou ( t ) , t = e - t , vr ( n , 0 > t ? 0 : t , e ) ) : [ ] } , On . takeRightWhile = function ( n , t ) { return n && n . length ? Ar ( n , je ( t , 3 ) , ! 1 , ! 0 ) : [ ] } , On . takeWhile = function ( n , t ) { return n && n . length ? Ar ( n , je ( t , 3 ) ) : [ ] } , On . tap = function ( n , t ) { return t ( n ) , n } , On . throttle = function ( n , t , r ) { var e = ! 0 , u = ! 0 ; if ( "function" != typeof n ) throw new ei ( "Expected a function" ) ; return bu ( r ) && ( e = "leading" in r ? ! ! r . leading : e , u = "trailing" in r ? ! ! r . trailing : u ) , au ( n , t , { leading : e , maxWait : t , trailing : u } ) } , On . thru = nu , On . toArray = ku , On . toPairs = Bf , On . toPairsIn = Lf , On . toPath = function ( n ) { return af ( n ) ? l ( n , $e ) : Au ( n ) ? [ n ] : Mr ( mo ( zu ( n ) ) ) } , On . toPlainObject = Ru , On . transform = function ( n , t , r ) { var e = af ( n ) , i = e || sf ( n ) || gf ( n ) ; if ( t = je ( t , 4 ) , null == r ) { var o = n && n . constructor ; r = i ? e ? new o : [ ] : bu ( n ) && gu ( o ) ? io ( bi ( n ) ) : { } } return ( i ? u : Et ) ( n , function ( n , e , u ) { return t ( r , n , e , u ) } ) , r } , On . unary = function ( n ) { return iu ( n , 1 ) } , On . union = Wo , On . unionBy = Bo , On . unionWith = Lo , On . uniq = function ( n ) { return n && n . length ? wr ( n ) : [ ] } , On . uniqBy = function ( n , t ) { return n && n . length ? wr ( n , je ( t , 2 ) ) : [ ] } , On . uniqWith = function ( n , t ) { return t = "function" == typeof t ? t : F , n && n . length ? wr ( n , F , t ) : [ ] } , On . unset = function ( n , t ) { return null == n || mr ( n , t ) } , On . unzip = Ye , On . unzipWith = Qe , On . update = function ( n , t , r ) { return null == n ? n : pr ( n , t , Ir ( r ) ( It ( n , t ) ) , void 0 ) } , On . updateWith = function ( n , t , r , e ) { return e = "function" == typeof e ? e : F , null != n && ( n = pr ( n , t , Ir ( r ) ( It ( n , t ) ) , e ) ) , n } , On . values = Du , On . valuesIn = function ( n ) { return null == n ? [ ] : I ( n , Uu ( n ) ) } , On . without = Uo , On . words = $u , On . wrap = function ( n , t ) { return rf ( Ir ( t ) , n ) } , On . xor = Co , On . xorBy = Do , On . xorWith = Mo , On . zip = To , On . zipObject = function ( n , t ) { return Or ( n || [ ] , t || [ ] , at ) } , On . zipObjectDeep = fu