2016-11-29 03:03:18 +00: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
"object" == typeof nativeJSON && nativeJSON && ( exports . stringify = nativeJSON . stringify , exports . parse = nativeJSON . parse ) ; var isProperty , forEach , undef , objectProto = Object . prototype , getClass = objectProto . toString , isExtended = new Date ( ( - 0xc782b5b800cec ) ) ; try { isExtended = isExtended . getUTCFullYear ( ) == - 109252 && 0 === isExtended . getUTCMonth ( ) && 1 === isExtended . getUTCDate ( ) && 10 == isExtended . getUTCHours ( ) && 37 == isExtended . getUTCMinutes ( ) && 6 == isExtended . getUTCSeconds ( ) && 708 == isExtended . getUTCMilliseconds ( ) } catch ( exception ) { } if ( ! has ( "json" ) ) { var functionClass = "[object Function]" , dateClass = "[object Date]" , numberClass = "[object Number]" , stringClass = "[object String]" , arrayClass = "[object Array]" , booleanClass = "[object Boolean]" , charIndexBuggy = has ( "bug-string-char-index" ) ; if ( ! isExtended ) var floor = Math . floor , Months = [ 0 , 31 , 59 , 90 , 120 , 151 , 181 , 212 , 243 , 273 , 304 , 334 ] , getDay = function ( year , month ) { return Months [ month ] + 365 * ( year - 1970 ) + floor ( ( year - 1969 + ( month = + ( month > 1 ) ) ) / 4 ) - floor ( ( year - 1901 + month ) / 100 ) + floor ( ( year - 1601 + month ) / 400 ) } ; if ( ( isProperty = objectProto . hasOwnProperty ) || ( isProperty = function ( property ) { var constructor , members = { } ; return ( members . _ _proto _ _ = null , members . _ _proto _ _ = { toString : 1 } , members ) . toString != getClass ? isProperty = function ( property ) { var original = this . _ _proto _ _ , result = property in ( this . _ _proto _ _ = null , this ) ; return this . _ _proto _ _ = original , result } : ( constructor = members . constructor , isProperty = function ( property ) { var parent = ( this . constructor || constructor ) . prototype ; return property in this && ! ( property in parent && this [ property ] === parent [ property ] ) } ) , members = null , isProperty . call ( this , property ) } ) , forEach = function ( object , callback ) { var Properties , members , property , size = 0 ; ( Properties = function ( ) { this . valueOf = 0 } ) . prototype . valueOf = 0 , members = new Properties ; for ( property in members ) isProperty . call ( members , property ) && size ++ ; return Properties = members = null , size ? forEach = 2 == size ? function ( object , callback ) { var property , members = { } , isFunction = getClass . call ( object ) == functionClass ; for ( property in object ) isFunction && "prototype" == property || isProperty . call ( members , property ) || ! ( members [ property ] = 1 ) || ! isProperty . call ( object , property ) || callback ( property ) } : function ( object , callback ) { var property , isConstructor , isFunction = getClass . call ( object ) == functionClass ; for ( property in object ) isFunction && "prototype" == property || ! isProperty . call ( object , property ) || ( isConstructor = "constructor" === property ) || callback ( property ) ; ( isConstructor || isProperty . call ( object , property = "constructor" ) ) && callback ( property ) } : ( members = [ "valueOf" , "toString" , "toLocaleString" , "propertyIsEnumerable" , "isPrototypeOf" , "hasOwnProperty" , "constructor" ] , forEach = function ( object , callback ) { var property , length , isFunction = getClass . call ( object ) == functionClass , hasProperty = ! isFunction && "function" != typeof object . constructor && objectTypes [ typeof object . hasOwnProperty ] && object . hasOwnProperty || isProperty ; for ( property in object ) isFunction && "prototype" == property || ! hasProperty . call ( object , property ) || callback ( property ) ; for ( length = members . length ; property = members [ -- length ] ; hasProperty . call ( object , property ) && callback ( property ) ) ; } ) , forEach ( object , callback ) } , ! has ( "json-stringify" ) ) { var Escapes = { 92 : "\\\\" , 34 : '\\"' , 8 : "\\b" , 12 : "\\f" , 10 : "\\n" , 13 : "\\r" , 9 : "\\t" } , leadingZeroes = "000000" , toPaddedString = function ( width , value ) { return ( leadingZeroes + ( value || 0 ) ) . slice ( - width ) } , unicodePrefix = "\\u00" , quote = function ( value ) { for ( var result = '"' , index = 0 , length = value . length , useCharIndex = ! charIndexBuggy || length > 10 , symbols = useCharIndex && ( charIndexBuggy ? value . split ( "" ) : value ) ; index < length ; index ++ ) { var charCode = value . charCodeAt ( index ) ; switch ( charCode ) { case 8 : case 9 : case 10 : case 12 : case 13 : case 34 : case 92 : result += Escapes [ charCode ] ; break ; default : if ( charCode < 32 ) { result += unicodePrefix + toPaddedString ( 2 , charCode . toString ( 16 ) ) ; break } result += useCharIndex ? symbols [ index ] : value . charAt ( index ) } } return result + '"' } , serialize = function ( property , object , callback , properties , whitespace , indentation , stack ) { var value , className , year , month , date , time , hours , minutes , seconds , milliseconds , results , element , index , length , prefix , result ; try { value = object [ property ] } catch ( exception ) { } if ( "object" == typeof value && value ) if ( classNa
this . on ( "heartbeat" , this . onHeartbeat ) ) } , Socket . prototype . onHeartbeat = function ( timeout ) { clearTimeout ( this . pingTimeoutTimer ) ; var self = this ; self . pingTimeoutTimer = setTimeout ( function ( ) { "closed" !== self . readyState && self . onClose ( "ping timeout" ) } , timeout || self . pingInterval + self . pingTimeout ) } , Socket . prototype . setPing = function ( ) { var self = this ; clearTimeout ( self . pingIntervalTimer ) , self . pingIntervalTimer = setTimeout ( function ( ) { debug ( "writing ping packet - expecting pong within %sms" , self . pingTimeout ) , self . ping ( ) , self . onHeartbeat ( self . pingTimeout ) } , self . pingInterval ) } , Socket . prototype . ping = function ( ) { var self = this ; this . sendPacket ( "ping" , function ( ) { self . emit ( "ping" ) } ) } , Socket . prototype . onDrain = function ( ) { this . writeBuffer . splice ( 0 , this . prevBufferLen ) , this . prevBufferLen = 0 , 0 === this . writeBuffer . length ? this . emit ( "drain" ) : this . flush ( ) } , Socket . prototype . flush = function ( ) { "closed" !== this . readyState && this . transport . writable && ! this . upgrading && this . writeBuffer . length && ( debug ( "flushing %d packets in socket" , this . writeBuffer . length ) , this . transport . send ( this . writeBuffer ) , this . prevBufferLen = this . writeBuffer . length , this . emit ( "flush" ) ) } , Socket . prototype . write = Socket . prototype . send = function ( msg , options , fn ) { return this . sendPacket ( "message" , msg , options , fn ) , this } , Socket . prototype . sendPacket = function ( type , data , options , fn ) { if ( "function" == typeof data && ( fn = data , data = void 0 ) , "function" == typeof options && ( fn = options , options = null ) , "closing" !== this . readyState && "closed" !== this . readyState ) { options = options || { } , options . compress = ! 1 !== options . compress ; var packet = { type : type , data : data , options : options } ; this . emit ( "packetCreate" , packet ) , this . writeBuffer . push ( packet ) , fn && this . once ( "flush" , fn ) , this . flush ( ) } } , Socket . prototype . close = function ( ) { function close ( ) { self . onClose ( "forced close" ) , debug ( "socket closing - telling transport to close" ) , self . transport . close ( ) } function cleanupAndClose ( ) { self . removeListener ( "upgrade" , cleanupAndClose ) , self . removeListener ( "upgradeError" , cleanupAndClose ) , close ( ) } function waitForUpgrade ( ) { self . once ( "upgrade" , cleanupAndClose ) , self . once ( "upgradeError" , cleanupAndClose ) } if ( "opening" === this . readyState || "open" === this . readyState ) { this . readyState = "closing" ; var self = this ; this . writeBuffer . length ? this . once ( "drain" , function ( ) { this . upgrading ? waitForUpgrade ( ) : close ( ) } ) : this . upgrading ? waitForUpgrade ( ) : close ( ) } return this } , Socket . prototype . onError = function ( err ) { debug ( "socket error %j" , err ) , Socket . priorWebsocketSuccess = ! 1 , this . emit ( "error" , err ) , this . onClose ( "transport error" , err ) } , Socket . prototype . onClose = function ( reason , desc ) { if ( "opening" === this . readyState || "open" === this . readyState || "closing" === this . readyState ) { debug ( 'socket close with reason: "%s"' , reason ) ; var self = this ; clearTimeout ( this . pingIntervalTimer ) , clearTimeout ( this . pingTimeoutTimer ) , this . transport . removeAllListeners ( "close" ) , this . transport . close ( ) , this . transport . removeAllListeners ( ) , this . readyState = "closed" , this . id = null , this . emit ( "close" , reason , desc ) , self . writeBuffer = [ ] , self . prevBufferLen = 0 } } , Socket . prototype . filterUpgrades = function ( upgrades ) { for ( var filteredUpgrades = [ ] , i = 0 , j = upgrades . length ; i < j ; i ++ ) ~ index ( this . transports , upgrades [ i ] ) && filteredUpgrades . push ( upgrades [ i ] ) ; return filteredUpgrades } } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { function polling ( opts ) { var xhr , xd = ! 1 , xs = ! 1 , jsonp = ! 1 !== opts . jsonp ; if ( global . location ) { var isSSL = "https:" === location . protocol , port = location . port ; port || ( port = isSSL ? 443 : 80 ) , xd = opts . hostname !== location . hostname || port !== opts . port , xs = opts . secure !== isSSL } if ( opts . xdomain = xd , opts . xscheme = xs , xhr = new XMLHttpRequest ( opts ) , "open" in xhr && ! opts . forceJSONP ) return new XHR ( opts ) ; if ( ! jsonp ) throw new Error ( "JSONP disabled" ) ; return new JSONP ( opts ) } var XMLHttpRequest = _ _webpack _require _ _ ( 22 ) , XHR = _ _webpack _require _ _ ( 24 ) , JSONP = _ _webpack _require _ _ ( 40 ) , websocket = _ _webpack _require _ _ ( 41 ) ; exports . polling = polling , exports . websocket = websocket } ) . call ( exports , function ( ) { return this } ( ) ) } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { var hasCORS = _ _webpack _require _ _ ( 23 ) ; module . exports = function ( opts ) { var xdomain = opts . xdomain , xscheme =
} , Emitter . prototype . emit = function ( event ) { this . _callbacks = this . _callbacks || { } ; var args = [ ] . slice . call ( arguments , 1 ) , callbacks = this . _callbacks [ "$" + event ] ; if ( callbacks ) { callbacks = callbacks . slice ( 0 ) ; for ( var i = 0 , len = callbacks . length ; i < len ; ++ i ) callbacks [ i ] . apply ( this , args ) } return this } , Emitter . prototype . listeners = function ( event ) { return this . _callbacks = this . _callbacks || { } , this . _callbacks [ "$" + event ] || [ ] } , Emitter . prototype . hasListeners = function ( event ) { return ! ! this . listeners ( event ) . length } } , function ( module , exports ) { exports . encode = function ( obj ) { var str = "" ; for ( var i in obj ) obj . hasOwnProperty ( i ) && ( str . length && ( str += "&" ) , str += encodeURIComponent ( i ) + "=" + encodeURIComponent ( obj [ i ] ) ) ; return str } , exports . decode = function ( qs ) { for ( var qry = { } , pairs = qs . split ( "&" ) , i = 0 , l = pairs . length ; i < l ; i ++ ) { var pair = pairs [ i ] . split ( "=" ) ; qry [ decodeURIComponent ( pair [ 0 ] ) ] = decodeURIComponent ( pair [ 1 ] ) } return qry } } , function ( module , exports ) { module . exports = function ( a , b ) { var fn = function ( ) { } ; fn . prototype = b . prototype , a . prototype = new fn , a . prototype . constructor = a } } , function ( module , exports ) { "use strict" ; function encode ( num ) { var encoded = "" ; do encoded = alphabet [ num % length ] + encoded , num = Math . floor ( num / length ) ; while ( num > 0 ) ; return encoded } function decode ( str ) { var decoded = 0 ; for ( i = 0 ; i < str . length ; i ++ ) decoded = decoded * length + map [ str . charAt ( i ) ] ; return decoded } function yeast ( ) { var now = encode ( + new Date ) ; return now !== prev ? ( seed = 0 , prev = now ) : now + "." + encode ( seed ++ ) } for ( var prev , alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_" . split ( "" ) , length = 64 , map = { } , seed = 0 , i = 0 ; i < length ; i ++ ) map [ alphabet [ i ] ] = i ; yeast . encode = encode , yeast . decode = decode , module . exports = yeast } , function ( module , exports , _ _webpack _require _ _ ) { ( function ( global ) { function empty ( ) { } function JSONPPolling ( opts ) { Polling . call ( this , opts ) , this . query = this . query || { } , callbacks || ( global . _ _ _eio || ( global . _ _ _eio = [ ] ) , callbacks = global . _ _ _eio ) , this . index = callbacks . length ; var self = this ; callbacks . push ( function ( msg ) { self . onData ( msg ) } ) , this . query . j = this . index , global . document && global . addEventListener && global . addEventListener ( "beforeunload" , function ( ) { self . script && ( self . script . onerror = empty ) } , ! 1 ) } var Polling = _ _webpack _require _ _ ( 25 ) , inherit = _ _webpack _require _ _ ( 38 ) ; module . exports = JSONPPolling ; var callbacks , rNewline = /\n/g , rEscapedNewline = /\\n/g ; inherit ( JSONPPolling , Polling ) , JSONPPolling . prototype . supportsBinary = ! 1 , JSONPPolling . prototype . doClose = function ( ) { this . script && ( this . script . parentNode . removeChild ( this . script ) , this . script = null ) , this . form && ( this . form . parentNode . removeChild ( this . form ) , this . form = null , this . iframe = null ) , Polling . prototype . doClose . call ( this ) } , JSONPPolling . prototype . doPoll = function ( ) { var self = this , script = document . createElement ( "script" ) ; this . script && ( this . script . parentNode . removeChild ( this . script ) , this . script = null ) , script . async = ! 0 , script . src = this . uri ( ) , script . onerror = function ( e ) { self . onError ( "jsonp poll error" , e ) } ; var insertAt = document . getElementsByTagName ( "script" ) [ 0 ] ; insertAt ? insertAt . parentNode . insertBefore ( script , insertAt ) : ( document . head || document . body ) . appendChild ( script ) , this . script = script ; var isUAgecko = "undefined" != typeof navigator && /gecko/i . test ( navigator . userAgent ) ; isUAgecko && setTimeout ( function ( ) { var iframe = document . createElement ( "iframe" ) ; document . body . appendChild ( iframe ) , document . body . removeChild ( iframe ) } , 100 ) } , JSONPPolling . prototype . doWrite = function ( data , fn ) { function complete ( ) { initIframe ( ) , fn ( ) } function initIframe ( ) { if ( self . iframe ) try { self . form . removeChild ( self . iframe ) } catch ( e ) { self . onError ( "jsonp polling iframe removal error" , e ) } try { var html = '<iframe src="javascript:0" name="' + self . iframeId + '">' ; iframe = document . createElement ( html ) } catch ( e ) { iframe = document . createElement ( "iframe" ) , iframe . name = self . iframeId , iframe . src = "javascript:0" } iframe . id = self . iframeId , self . form . appendChild ( iframe ) , self . iframe = iframe } var self = this ; if ( ! this . form ) { var iframe , form = document . createElement ( "form" ) , area = document . createElement ( "textarea" ) , id = this . iframeId = "eio_iframe_" + this . index ; form . className = "socketio" , form . style . position = "absolute" , form . style . top = "-1000px" , form . style . left = "-1000px" , form . target = id , form . method = "POST" , form . setAttribut
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 . nodeType || g ) if ( l = b [ u ] || ( b [ u ] = { } ) , k = l [ b . uniqueID ] || ( l [ b . uniqueID ] = { } ) , e && e === b . nodeName . toLowerCase ( ) ) b = b [ d ] || b ; else { if ( ( j = k [ f ] ) && j [ 0 ] === w && j [ 1 ] === h ) return m [ 2 ] = j [ 2 ] ; if ( k [ f ] = m , m [ 2 ] = a ( b , c , i ) ) return ! 0 } return ! 1 } } function ua ( a ) { return a . length > 1 ? function ( b , c , d ) { for ( var e = a . length ; e -- ; ) if ( ! a [ e ] ( b , c , d ) ) return ! 1 ; return ! 0 } : a [ 0 ] } function va ( a , b , c ) { for ( var d = 0 , e = b . length ; d < e ; d ++ ) ga ( a , b [ d ] , c ) ; return c } function wa ( a , b , c , d , e ) { for ( var f , g = [ ] , h = 0 , i = a . length , j = null != b ; h < i ; h ++ ) ( f = a [ h ] ) && ( c && ! c ( f , d , e ) || ( g . push ( f ) , j && b . push ( h ) ) ) ; return g } function xa ( a , b , c , d , e , f ) { return d && ! d [ u ] && ( d = xa ( d ) ) , e && ! e [ u ] && ( e = xa ( e , f ) ) , ia ( function ( f , g , h , i ) { var j , k , l , m = [ ] , n = [ ] , o = g . length , p = f || va ( b || "*" , h . nodeType ? [ h ] : h , [ ] ) , q = ! a || ! f && b ? p : wa ( p , m , a , h , i ) , r = c ? e || ( f ? a : o || d ) ? [ ] : g : q ; if ( c && c ( q , r , h , i ) , d ) for ( j = wa ( r , n ) , d ( j , [ ] , h , i ) , k = j . length ; k -- ; ) ( l = j [ k ] ) && ( r [ n [ k ] ] = ! ( q [ n [ k ] ] = l ) ) ; if ( f ) { if ( e || a ) { if ( e ) { for ( j = [ ] , k = r . length ; k -- ; ) ( l = r [ k ] ) && j . push ( q [ k ] = l ) ; e ( null , r = [ ] , j , i ) } for ( k = r . length ; k -- ; ) ( l = r [ k ] ) && ( j = e ? I ( f , l ) : m [ k ] ) > - 1 && ( f [ j ] = ! ( g [ j ] = l ) ) } } else r = wa ( r === g ? r . splice ( o , r . length ) : r ) , e ? e ( null , g , r , i ) : G . apply ( g , r ) } ) } function ya ( a ) { for ( var b , c , e , f = a . length , g = d . relative [ a [ 0 ] . type ] , h = g || d . relative [ " " ] , i = g ? 1 : 0 , k = ta ( function ( a ) { return a === b } , h , ! 0 ) , l = ta ( function ( a ) { return I ( b , a ) > - 1 } , h , ! 0 ) , m = [ function ( a , c , d ) { var e = ! g && ( d || c !== j ) || ( ( b = c ) . nodeType ? k ( a , c , d ) : l ( a , c , d ) ) ; return b = null , e } ] ; i < f ; i ++ ) if ( c = d . relative [ a [ i ] . type ] ) m = [ ta ( ua ( m ) , c ) ] ; else { if ( c = d . filter [ a [ i ] . type ] . apply ( null , a [ i ] . matches ) , c [ u ] ) { for ( e = ++ i ; e < f && ! d . relative [ a [ e ] . type ] ; e ++ ) ; return xa ( i > 1 && ua ( m ) , i > 1 && sa ( a . slice ( 0 , i - 1 ) . concat ( { value : " " === a [ i - 2 ] . type ? "*" : "" } ) ) . replace ( P , "$1" ) , c , i < e && ya ( a . slice ( i , e ) ) , e < f && ya ( a = a . slice ( e ) ) , e < f && sa ( a ) ) } m . push ( c ) } return ua ( m ) } function za ( a , b ) { var c = b . length > 0 , e = a . length > 0 , f = function ( f , g , h , i , k ) { var l , o , q , r = 0 , s = "0" , t = f && [ ] , u = [ ] , v = j , x = f || e && d . find . TAG ( "*" , k ) , y = w += null == v ? 1 : Math . random ( ) || . 1 , z = x . length ; for ( k && ( j = g === n || g || k ) ; s !== z && null != ( l = x [ s ] ) ; s ++ ) { if ( e && l ) { for ( o = 0 , g || l . ownerDocument === n || ( m ( l ) , h = ! p ) ; q = a [ o ++ ] ; ) if ( q ( l , g || n , h ) ) { i . push ( l ) ; break } k && ( w = y ) } c && ( ( l = ! q && l ) && r -- , f && t . push ( l ) ) } if ( r += s , c && s !== r ) { for ( o = 0 ; q = b [ o ++ ] ; ) q ( t , u , g , h ) ; if ( f ) { if ( r > 0 ) for ( ; s -- ; ) t [ s ] || u [ s
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 . origType ] || { } ) . handle || g . handler ) . apply ( f . elem , i ) , void 0 !== e && ( b . result = e ) === ! 1 && ( b . preventDefault ( ) , b . stopPropagation ( ) ) ) ; return k . postDispatch && k . postDispatch . call ( this , b ) , b . result } } , handlers : function ( a , b ) { var c , d , e , f , g , h = [ ] , i = b . delegateCount , j = a . target ; if ( i && j . nodeType && ! ( "click" === a . type && a . button >= 1 ) ) for ( ; j !== this ; j = j . parentNode || this ) if ( 1 === j . nodeType && ( "click" !== a . type || j . disabled !== ! 0 ) ) { for ( f = [ ] , g = { } , c = 0 ; c < i ; c ++ ) d = b [ c ] , e = d . selector + " " , void 0 === g [ e ] && ( g [ e ] = d . needsContext ? r ( e , this ) . index ( j ) > - 1 : r . find ( e , this , null , [ j ] ) . length ) , g [ e ] && f . push ( d ) ; f . length && h . push ( { elem : j , handlers : f } ) } return j = this , i < b . length && h . push ( { elem : j , handlers : b . slice ( i ) } ) , h } , addProp : function ( a , b ) { Object . defineProperty ( r . Event . prototype , a , { enumerable : ! 0 , configurable : ! 0 , get : r . isFunction ( b ) ? function ( ) { if ( this . originalEvent ) return b ( this . originalEvent ) } : function ( ) { if ( this . originalEvent ) return this . originalEvent [ a ] } , set : function ( b ) { Object . defineProperty ( this , a , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : b } ) } } ) } , fix : function ( a ) { return a [ r . expando ] ? a : new r . Event ( a ) } , special : { load : { noBubble : ! 0 } , focus : { trigger : function ( ) { if ( this !== wa ( ) && this . focus ) return this . focus ( ) , ! 1 } , delegateType : "focusin" } , blur : { trigger : function ( ) { if ( this === wa ( ) && this . blur ) return this . blur ( ) , ! 1 } , delegateType : "focusout" } , click : { trigger : function ( ) { if ( "checkbox" === this . type && this . click && r . nodeName ( this , "input" ) ) return this . click ( ) , ! 1 } , _default : function ( a ) { return r . nodeName ( a . target , "a" ) } } , beforeunload : { postDispatch : function ( a ) { void 0 !== a . result && a . originalEvent && ( a . originalEvent . returnValue = a . result ) } } } } , r . removeEvent = function ( a , b , c ) { a . removeEventListener && a . removeEventListener ( b , c ) } , r . Event = function ( a , b ) { return this instanceof r . Event ? ( a && a . type ? ( this . originalEvent = a , this . type = a . type , this . isDefaultPrevented = a . defaultPrevented || void 0 === a . defaultPrevented && a . returnValue === ! 1 ? ua : va , this . target = a . target && 3 === a . target . nodeType ? a . target . parentNode : a . target , this . currentTarget = a . currentTarget , this . relatedTarget = a . relatedTarget ) : this . type = a , b && r . extend ( this , b ) , this . timeStamp = a && a . timeStamp || r . now ( ) , void ( this [ r . expando ] = ! 0 ) ) : n
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 = d . implementation . createHTMLDocument ( "" ) . body ; return a . innerHTML = "<form></form><form></form>" , 2 === a . childNodes . length } ( ) , r . parseHTML = function ( a , b , c ) { if ( "string" != typeof a ) return [ ] ; "boolean" == typeof b && ( c = b , b = ! 1 ) ; var e , f , g ; return b || ( o . createHTMLDocument ? ( b = d . implementation . createHTMLDocument ( "" ) , e = b . createElement ( "base" ) , e . href = d . location . href , b . head . appendChild ( e ) ) : b = d ) , f = B . exec ( a ) , g = ! c && [ ] , f ? [ b . createElement ( f [ 1 ] ) ] : ( f = pa ( [ a ] , b , g ) , g && g . length && r ( g ) . remove ( ) , r . merge ( [ ] , f . childNodes ) ) } , r . fn . load = function ( a , b , c ) { var d , e , f , g = this , h = a . indexOf ( " " ) ; return h > - 1 && ( d = mb ( a . slice ( h ) ) , a = a . slice ( 0 , h ) ) , r . isFunction ( b ) ? ( c = b , b = void 0 ) : b && "object" == typeof b && ( e = "POST" ) , g . length > 0 && r . ajax ( { url : a , type : e || "GET" , dataType : "html" , data : b } ) . done ( function ( a ) { f = arguments , g . html ( d ? r ( "<div>" ) . append ( r . parseHTML ( a ) ) . find ( d ) : a ) } ) . always ( c && function ( a , b ) { g . each ( function ( ) { c . apply ( this , f || [ a . responseText , b , a ] ) } ) } ) , this } , r . each ( [ "ajaxStart" , "ajaxStop" , "ajaxComplete" , "ajaxError" , "ajaxSuccess" , "ajaxSend" ] , function ( a , b ) { r . fn [ b ] = function ( a ) { return this . on ( b , a ) } } ) , r . expr . pseudos . animated = function ( a ) { return r . grep ( r . timers , function ( b ) { return a === b . elem } ) . length } , r . offset = { setOffset : function ( a , b , c ) { var d , e , f , g , h , i , j , k = r . css ( a , "position" ) , l = r ( a ) , m = { } ; "static" === k && ( a . style . position = "relative" ) , h = l . offset ( ) , f = r . css ( a , "top" ) , i = r . css ( a , "left" ) , j = ( "absolute" === k || "fixed" === k ) && ( f + i ) . indexOf ( "auto" ) > - 1 , j ? ( d = l . position ( ) , g = d . top , e = d . left ) : ( g = parseFloat ( f ) || 0 , e = parseFloat ( i ) || 0 ) , r . isFunction ( b ) && ( b = b . call ( a , c , r . extend ( { } , h ) ) ) , null != b . top && ( m . top = b . top - h . top + g ) , null != b . left && ( m . left = b . left - h . left + e ) , "using" in b ? b . using . call ( a , m ) : l . css ( m ) } } , r . fn . extend ( { offset : function ( a ) { if ( arguments . length ) return void 0 === a ? this : this . each ( function ( b ) { r . offset . setOffset ( this , a , b ) } ) ; var b , c , d , e , f = this [ 0 ] ; return f ? f . getClientRects ( ) . length ? ( d = f . getBoundingClientRect ( ) , d . width || d . height ? ( e = f . ownerDocument , c = Sb ( e ) , b = e . documentElement , { top : d . top + c . pageYOffset - b . clientTop , left : d . left + c . pageXOffset - b . clientLeft } ) : d ) : { top : 0 , left : 0 } : void 0 } , position : function ( ) { if ( this [ 0 ] ) { var a , b , c = this [ 0 ] , d = { top : 0 , left : 0 } ; return "fixed" === r . css ( c , "position" ) ? b = c . getBoundingClientRect ( ) : ( a = this . offsetParent ( ) , b = this . offs
bt ( n , "componentUpdated" , t , e ) } ) } , "dir-postpatch" ) , ! o ) for ( n in a ) s [ n ] || bt ( a [ n ] , "unbind" , e ) } } function yt ( e , t ) { var n = Object . create ( null ) ; if ( ! e ) return n ; var r , i ; for ( r = 0 ; r < e . length ; r ++ ) i = e [ r ] , i . modifiers || ( i . modifiers = co ) , n [ _t ( i ) ] = i , i . def = P ( t . $options , "directives" , i . name , ! 0 ) ; return n } function _t ( e ) { return e . rawName || e . name + "." + Object . keys ( e . modifiers || { } ) . join ( "." ) } function bt ( e , t , n , r ) { var i = e . def && e . def [ t ] ; i && i ( n . elm , e , n , r ) } function $t ( e , t ) { if ( e . data . attrs || t . data . attrs ) { var n , r , i , o = t . elm , a = e . data . attrs || { } , s = t . data . attrs || { } ; s . _ _ob _ _ && ( s = t . data . attrs = l ( { } , s ) ) ; for ( n in s ) r = s [ n ] , i = a [ n ] , i !== r && wt ( o , n , r ) ; for ( n in a ) null == s [ n ] && ( Ji ( n ) ? o . removeAttributeNS ( zi , Ki ( n ) ) : Hi ( n ) || o . removeAttribute ( n ) ) } } function wt ( e , t , n ) { Vi ( t ) ? qi ( n ) ? e . removeAttribute ( t ) : e . setAttribute ( t , t ) : Hi ( t ) ? e . setAttribute ( t , qi ( n ) || "false" === n ? "false" : "true" ) : Ji ( t ) ? qi ( n ) ? e . removeAttributeNS ( zi , Ki ( t ) ) : e . setAttributeNS ( zi , t , n ) : qi ( n ) ? e . removeAttribute ( t ) : e . setAttribute ( t , n ) } function xt ( e , t ) { var n = t . elm , r = t . data , i = e . data ; if ( r . staticClass || r . class || i && ( i . staticClass || i . class ) ) { var o = ze ( t ) , a = n . _transitionClasses ; a && ( o = qe ( o , We ( a ) ) ) , o !== n . _prevClass && ( n . setAttribute ( "class" , o ) , n . _prevClass = o ) } } function Ct ( e , t ) { if ( e . data . on || t . data . on ) { var n = t . data . on || { } , r = e . data . on || { } , i = t . elm . _v _add || ( t . elm . _v _add = function ( e , n , r ) { t . elm . addEventListener ( e , n , r ) } ) , o = t . elm . _v _remove || ( t . elm . _v _remove = function ( e , n ) { t . elm . removeEventListener ( e , n ) } ) ; oe ( n , r , i , o , t . context ) } } function kt ( e , t ) { if ( e . data . domProps || t . data . domProps ) { var n , r , i = t . elm , o = e . data . domProps || { } , a = t . data . domProps || { } ; a . _ _ob _ _ && ( a = t . data . domProps = l ( { } , a ) ) ; for ( n in o ) null == a [ n ] && ( i [ n ] = "" ) ; for ( n in a ) if ( r = a [ n ] , "textContent" !== n && "innerHTML" !== n || ( t . children && ( t . children . length = 0 ) , r !== o [ n ] ) ) if ( "value" === n ) { i . _value = r ; var s = null == r ? "" : String ( r ) ; i . value === s || i . composing || ( i . value = s ) } else i [ n ] = r } } function At ( e ) { var t = Ot ( e . style ) ; return e . staticStyle ? l ( e . staticStyle , t ) : t } function Ot ( e ) { return Array . isArray ( e ) ? d ( e ) : "string" == typeof e ? ho ( e ) : e } function St ( e , t ) { var n , r = { } ; if ( t ) for ( var i = e ; i . child ; ) i = i . child . _vnode , i . data && ( n = At ( i . data ) ) && l ( r , n ) ; ( n = At ( e . data ) ) && l ( r , n ) ; for ( var o = e ; o = o . parent ; ) o . data && ( n = At ( o . data ) ) && l ( r , n ) ; return r } function Tt ( e , t ) { var n = t . data , r = e . data ; if ( n . staticStyle || n . style || r . staticStyle || r . style ) { var i , o , a = t . elm , s = e . data . staticStyle , c = e . data . style || { } , u = s || c , f = Ot ( t . data . style ) || { } ; t . data . style = f . _ _ob _ _ ? l ( { } , f ) : f ; var d = St ( t , ! 0 ) ; for ( o in u ) null == d [ o ] && go ( a , o , "" ) ; for ( o in d ) i = d [ o ] , i !== u [ o ] && go ( a , o , null == i ? "" : i ) } } function jt ( e , t ) { if ( t && t . trim ( ) ) if ( e . classList ) t . indexOf ( " " ) > - 1 ? t . split ( /\s+/ ) . forEach ( function ( t ) { return e . classList . add ( t ) } ) : e . classList . add ( t ) ; else { var n = " " + e . getAttribute ( "class" ) + " " ; n . indexOf ( " " + t + " " ) < 0 && e . setAttribute ( "class" , ( n + t ) . trim ( ) ) } } function Et ( e , t ) { if ( t && t . trim ( ) ) if ( e . classList ) t . indexOf ( " " ) > - 1 ? t . split ( /\s+/ ) . forEach ( function ( t ) { return e . classList . remove ( t ) } ) : e . classList . remove ( t ) ; else { for ( var n = " " + e . getAttribute ( "class" ) + " " , r = " " + t + " " ; n . indexOf ( r ) >= 0 ; ) n = n . replace ( r , " " ) ; e . setAttribute ( "class" , n . trim ( ) ) } } function Nt ( e ) { So ( function ( ) { So ( e ) } ) } function Lt ( e , t ) { ( e . _transitionClasses || ( e . _transitionClasses = [ ] ) ) . push ( t ) , jt ( e , t ) } function Dt ( e , t ) { e . _transitionClasses && r ( e . _transitionClasses , t ) , Et ( e , t ) } function Mt ( e , t , n ) { var r = Pt ( e , t ) , i = r . type , o = r . timeout , a = r . propCount ; if ( ! i ) return n ( ) ; var s = i === wo ? ko : Oo , c = 0 , l = function ( ) { e . removeEventListener ( s , u ) , n ( ) } , u = function ( t ) { t . target === e && ++ c >= a && l ( ) } ; setTimeout ( function ( ) { c < a && l ( ) } , o + 1 ) , e . addEventListener ( s , u ) } function Pt ( e , t ) { var n , r = window . getComputedStyle ( e ) , i = r [ Co + "Delay" ] . split ( ", " ) , o = r [ Co + "Duration" ] . split ( ", " ) , a = Rt ( i , o ) , s = r [ Ao + "Delay" ] . split ( ", " ) , c = r [ Ao + "Duration" ] . split ( ", " ) , l = Rt ( s , c ) , u = 0 , f = 0 ; t === wo ? a > 0 && ( n = wo , u = a , f = o . length ) : t === xo ? l > 0 && ( n = xo , u = l , f = c . length ) : ( u = Math . max ( a , l ) , n = u > 0 ? a > l ? wo : xo : null , f = n ? n === wo ? o . length : c . length : 0 ) ; var d = n === wo && To . test ( r [ Co + "Property" ] ) ; return { type : n , timeout : u , propCount : f , hasTransform : d } } function Rt ( e , t ) { for ( ; e . length < t . length ; ) e = e . concat ( e ) ; return Math . max . apply ( null , t . map ( function ( t , n ) { return It ( t ) + It ( e [ n ] ) } ) ) } function It ( e ) { return 1e3 * Number ( e . slice ( 0 , - 1 ) ) } function Ft ( e ) { var t = e . elm ; t . _leaveCb && ( t . _leaveCb . cancel
var r = null == e . key ? t . Ctor . cid + ( t . tag ? "::" + t . tag : "" ) : e . key ; this . cache [ r ] ? e . child = this . cache [ r ] . child : this . cache [ r ] = e , e . data . keepAlive = ! 0 } return e } , destroyed : function ( ) { var e = this ; for ( var t in this . cache ) { var n = e . cache [ t ] ; ve ( n . child , "deactivated" ) , n . child . $destroy ( ) } } } , Fi = { KeepAlive : Ii } ; Ve ( Re ) , Object . defineProperty ( Re . prototype , "$isServer" , { get : oi } ) , Re . version = "2.1.0" ; var Bi , Ui = function ( e , t ) { return "value" === t && ( "input" === e || "textarea" === e || "option" === e ) || "selected" === t && "option" === e || "checked" === t && "input" === e || "muted" === t && "video" === e } , Hi = n ( "contenteditable,draggable,spellcheck" ) , Vi = n ( "allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible" ) , zi = "http://www.w3.org/1999/xlink" , Ji = function ( e ) { return ":" === e . charAt ( 5 ) && "xlink" === e . slice ( 0 , 5 ) } , Ki = function ( e ) { return Ji ( e ) ? e . slice ( 6 , e . length ) : "" } , qi = function ( e ) { return null == e || e === ! 1 } , Wi = { svg : "http://www.w3.org/2000/svg" , math : "http://www.w3.org/1998/Math/MathML" , xhtml : "http://www.w3.org/1999/xhtml" } , Zi = n ( "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template" ) , Gi = n ( "area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr" , ! 0 ) , Yi = n ( "colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source" , ! 0 ) , Qi = n ( "address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track" , ! 0 ) , Xi = n ( "svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font,font-face,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view" , ! 0 ) , eo = function ( e ) { return "pre" === e } , to = function ( e ) { return Zi ( e ) || Xi ( e ) } , no = Object . create ( null ) , ro = Object . freeze ( { createElement : Qe , createElementNS : Xe , createTextNode : et , createComment : tt , insertBefore : nt , removeChild : rt , appendChild : it , parentNode : ot , nextSibling : at , tagName : st , setTextContent : ct , childNodes : lt , setAttribute : ut } ) , io = { create : function ( e , t ) { ft ( t ) } , update : function ( e , t ) { e . data . ref !== t . data . ref && ( ft ( e , ! 0 ) , ft ( t ) ) } , destroy : function ( e ) { ft ( e , ! 0 ) } } , oo = new Ei ( "" , { } , [ ] ) , ao = [ "create" , "update" , "remove" , "destroy" ] , so = { create : gt , update : gt , destroy : function ( e ) { gt ( e , oo ) } } , co = Object . create ( null ) , lo = [ io , so ] , uo = { create : $t , update : $t } , fo = { create : xt , update : xt } , po = { create : Ct , update : Ct } , vo = { create : kt , update : kt } , ho = a ( function ( e ) { var t = { } , n = e . indexOf ( "background" ) >= 0 , r = n ? /;(?![^(]*\))/g : ";" , i = n ? /:(.+)/ : ":" ; return e . split ( r ) . forEach ( function ( e ) { if ( e ) { var n = e . split ( i ) ; n . length > 1 && ( t [ n [ 0 ] . trim ( ) ] = n [ 1 ] . trim ( ) ) } } ) , t } ) , mo = /^--/ , go = function ( e , t , n ) { mo . test ( t ) ? e . style . setProperty ( t , n ) : e . style [ _o ( t ) ] = n } , yo = [ "Webkit" , "Moz" , "ms" ] , _o = a ( function ( e ) { if ( Bi = Bi || document . createElement ( "div" ) , e = Vr ( e ) , "filter" !== e && e in Bi . style ) return e ; for ( var t = e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) , n = 0 ; n < yo . length ; n ++ ) { var r = yo [ n ] + t ; if ( r in Bi . style ) return r } } ) , bo = { create : Tt , update : Tt } , $o = Qr && ! ti , wo = "transition" , xo = "animation" , Co = "transition" , ko = "transitionend" , Ao = "animation" , Oo = "animationend" ; $o && ( void 0 === window . ontransitionend && void 0 !== window . onwebkittransitionend && ( Co = "WebkitTransition" , ko = "webkitTransitionEnd" ) , void 0 === window . onanimationend && void 0 !== window . o
if ( e ( "#context-menu-layer" ) . trigger ( "mousedown" ) , t . $trigger = s , t . events . show . call ( s , t ) === ! 1 ) return void ( o = null ) ; if ( h . update . call ( s , t ) , t . position . call ( s , t , n , a ) , t . zIndex ) { var c = t . zIndex ; "function" == typeof t . zIndex && ( c = t . zIndex . call ( s , t ) ) , i . zIndex = p ( s ) + c } h . layer . call ( t . $menu , t , i . zIndex ) , t . $menu . find ( "ul" ) . css ( "zIndex" , i . zIndex + 1 ) , t . $menu . css ( i ) [ t . animation . show ] ( t . animation . duration , function ( ) { s . trigger ( "contextmenu:visible" ) } ) , s . data ( "contextMenu" , t ) . addClass ( "context-menu-active" ) , e ( document ) . off ( "keydown.contextMenu" ) . on ( "keydown.contextMenu" , f . key ) , t . autoHide && e ( document ) . on ( "mousemove.contextMenuAutoHide" , function ( e ) { var n = s . offset ( ) ; n . right = n . left + s . outerWidth ( ) , n . bottom = n . top + s . outerHeight ( ) , ! t . $layer || t . hovering || e . pageX >= n . left && e . pageX <= n . right && e . pageY >= n . top && e . pageY <= n . bottom || setTimeout ( function ( ) { t . hovering || null == t . $menu || t . $menu . trigger ( "contextmenu:hide" ) } , 50 ) } ) } , hide : function ( t , n ) { var a = e ( this ) ; if ( t || ( t = a . data ( "contextMenu" ) || { } ) , n || ! t . events || t . events . hide . call ( a , t ) !== ! 1 ) { if ( a . removeData ( "contextMenu" ) . removeClass ( "context-menu-active" ) , t . $layer ) { setTimeout ( function ( e ) { return function ( ) { e . remove ( ) } } ( t . $layer ) , 10 ) ; try { delete t . $layer } catch ( e ) { t . $layer = null } } o = null , t . $menu . find ( "." + t . classNames . hover ) . trigger ( "contextmenu:blur" ) , t . $selected = null , t . $menu . find ( "." + t . classNames . visible ) . removeClass ( t . classNames . visible ) , e ( document ) . off ( ".contextMenuAutoHide" ) . off ( "keydown.contextMenu" ) , t . $menu && t . $menu [ t . animation . hide ] ( t . animation . duration , function ( ) { t . build && ( t . $menu . remove ( ) , e . each ( t , function ( e ) { switch ( e ) { case "ns" : case "selector" : case "build" : case "trigger" : return ! 0 ; default : t [ e ] = void 0 ; try { delete t [ e ] } catch ( e ) { } return ! 0 } } ) ) , setTimeout ( function ( ) { a . trigger ( "contextmenu:hidden" ) } , 10 ) } ) } } , create : function ( n , a ) { function o ( t ) { var n = e ( "<span></span>" ) ; if ( t . _accesskey ) t . _beforeAccesskey && n . append ( document . createTextNode ( t . _beforeAccesskey ) ) , e ( "<span></span>" ) . addClass ( "context-menu-accesskey" ) . text ( t . _accesskey ) . appendTo ( n ) , t . _afterAccesskey && n . append ( document . createTextNode ( t . _afterAccesskey ) ) ; else if ( t . isHtmlName ) { if ( "undefined" != typeof t . accesskey ) throw new Error ( "accesskeys are not compatible with HTML names and cannot be used together in the same item" ) ; n . html ( t . name ) } else n . text ( t . name ) ; return n } void 0 === a && ( a = n ) , n . $menu = e ( '<ul class="context-menu-list"></ul>' ) . addClass ( n . className || "" ) . data ( { contextMenu : n , contextMenuRoot : a } ) , e . each ( [ "callbacks" , "commands" , "inputs" ] , function ( e , t ) { n [ t ] = { } , a [ t ] || ( a [ t ] = { } ) } ) , a . accesskeys || ( a . accesskeys = { } ) , e . each ( n . items , function ( s , i ) { var c = e ( '<li class="context-menu-item"></li>' ) . addClass ( i . className || "" ) , r = null , l = null ; if ( c . on ( "click" , e . noop ) , "string" != typeof i && "cm_separator" !== i . type || ( i = { type : "cm_seperator" } ) , i . $node = c . data ( { contextMenu : n , contextMenuRoot : a , contextMenuKey : s } ) , "undefined" != typeof i . accesskey ) for ( var d , m = t ( i . accesskey ) , p = 0 ; d = m [ p ] ; p ++ ) if ( ! a . accesskeys [ d ] ) { a . accesskeys [ d ] = i ; var x = i . name . match ( new RegExp ( "^(.*?)(" + d + ")(.*)$" , "i" ) ) ; x && ( i . _beforeAccesskey = x [ 1 ] , i . _accesskey = x [ 2 ] , i . _afterAccesskey = x [ 3 ] ) ; break } if ( i . type && u [ i . type ] ) u [ i . type ] . call ( c , i , n , a ) , e . each ( [ n , a ] , function ( t , a ) { a . commands [ s ] = i , ! e . isFunction ( i . callback ) || void 0 !== a . callbacks [ s ] && void 0 !== n . type || ( a . callbacks [ s ] = i . callback ) } ) ; else { switch ( "cm_seperator" === i . type ? c . addClass ( "context-menu-separator " + a . classNames . notSelectable ) : "html" === i . type ? c . addClass ( "context-menu-html " + a . classNames . notSelectable ) : "sub" === i . type || ( i . type ? ( r = e ( "<label></label>" ) . appendTo ( c ) , o ( i ) . appendTo ( r ) , c . addClass ( "context-menu-input" ) , n . hasTypes = ! 0 , e . each ( [ n , a ] , function ( e , t ) { t . commands [ s ] = i , t . inputs [ s ] = i } ) ) : i . items && ( i . type = "sub" ) ) , i . type ) { case "cm_seperator" : break ; case "text" : l = e ( '<input type="text" value="1" name="" />' ) . attr ( "name" , "context-menu-input-" + s ) . val ( i . value || "" ) . appendTo ( r ) ; break ; case "textarea" : l = e ( '<textarea name=""></textarea>' ) . attr ( "name" , "context-menu-input-" + s ) . val ( i . value || "" ) . appendTo ( r ) , i . height && l . height ( i . height ) ; break ; case "checkbox" : l = e ( '<input type="checkbox" value="1" name="" />' ) . attr ( "name" , "context-menu-input-" + s ) . val ( i . value || "" ) . prop ( "checked" , ! ! i . selected ) . prependTo ( r ) ; break ; case "radio" : l = e ( ' < input
0 > e ? ( e += n , 0 > e && ( e = 0 ) ) : e > n && ( e = n ) , 0 > t ? ( t += n , 0 > t && ( t = 0 ) ) : t > n && ( t = n ) , e > t && ( t = e ) ; var r ; if ( a . TYPED _ARRAY _SUPPORT ) r = this . subarray ( e , t ) , r . _ _proto _ _ = a . prototype ; else { var i = t - e ; r = new a ( i , ( void 0 ) ) ; for ( var o = 0 ; i > o ; o ++ ) r [ o ] = this [ o + e ] } return r } , a . prototype . readUIntLE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e ] , i = 1 , o = 0 ; ++ o < t && ( i *= 256 ) ; ) r += this [ e + o ] * i ; return r } , a . prototype . readUIntBE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e + -- t ] , i = 1 ; t > 0 && ( i *= 256 ) ; ) r += this [ e + -- t ] * i ; return r } , a . prototype . readUInt8 = function ( e , t ) { return t || R ( e , 1 , this . length ) , this [ e ] } , a . prototype . readUInt16LE = function ( e , t ) { return t || R ( e , 2 , this . length ) , this [ e ] | this [ e + 1 ] << 8 } , a . prototype . readUInt16BE = function ( e , t ) { return t || R ( e , 2 , this . length ) , this [ e ] << 8 | this [ e + 1 ] } , a . prototype . readUInt32LE = function ( e , t ) { return t || R ( e , 4 , this . length ) , ( this [ e ] | this [ e + 1 ] << 8 | this [ e + 2 ] << 16 ) + 16777216 * this [ e + 3 ] } , a . prototype . readUInt32BE = function ( e , t ) { return t || R ( e , 4 , this . length ) , 16777216 * this [ e ] + ( this [ e + 1 ] << 16 | this [ e + 2 ] << 8 | this [ e + 3 ] ) } , a . prototype . readIntLE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e ] , i = 1 , o = 0 ; ++ o < t && ( i *= 256 ) ; ) r += this [ e + o ] * i ; return i *= 128 , r >= i && ( r -= Math . pow ( 2 , 8 * t ) ) , r } , a . prototype . readIntBE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = t , i = 1 , o = this [ e + -- r ] ; r > 0 && ( i *= 256 ) ; ) o += this [ e + -- r ] * i ; return i *= 128 , o >= i && ( o -= Math . pow ( 2 , 8 * t ) ) , o } , a . prototype . readInt8 = function ( e , t ) { return t || R ( e , 1 , this . length ) , 128 & this [ e ] ? - 1 * ( 255 - this [ e ] + 1 ) : this [ e ] } , a . prototype . readInt16LE = function ( e , t ) { t || R ( e , 2 , this . length ) ; var n = this [ e ] | this [ e + 1 ] << 8 ; return 32768 & n ? 4294901760 | n : n } , a . prototype . readInt16BE = function ( e , t ) { t || R ( e , 2 , this . length ) ; var n = this [ e + 1 ] | this [ e ] << 8 ; return 32768 & n ? 4294901760 | n : n } , a . prototype . readInt32LE = function ( e , t ) { return t || R ( e , 4 , this . length ) , this [ e ] | this [ e + 1 ] << 8 | this [ e + 2 ] << 16 | this [ e + 3 ] << 24 } , a . prototype . readInt32BE = function ( e , t ) { return t || R ( e , 4 , this . length ) , this [ e ] << 24 | this [ e + 1 ] << 16 | this [ e + 2 ] << 8 | this [ e + 3 ] } , a . prototype . readFloatLE = function ( e , t ) { return t || R ( e , 4 , this . length ) , Z . read ( this , e , ! 0 , 23 , 4 ) } , a . prototype . readFloatBE = function ( e , t ) { return t || R ( e , 4 , this . length ) , Z . read ( this , e , ! 1 , 23 , 4 ) } , a . prototype . readDoubleLE = function ( e , t ) { return t || R ( e , 8 , this . length ) , Z . read ( this , e , ! 0 , 52 , 8 ) } , a . prototype . readDoubleBE = function ( e , t ) { return t || R ( e , 8 , this . length ) , Z . read ( this , e , ! 1 , 52 , 8 ) } , a . prototype . writeUIntLE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , n = 0 | n , ! r ) { var i = Math . pow ( 2 , 8 * n ) - 1 ; D ( this , e , t , n , i , 0 ) } var o = 1 , a = 0 ; for ( this [ t ] = 255 & e ; ++ a < n && ( o *= 256 ) ; ) this [ t + a ] = e / o & 255 ; return t + n } , a . prototype . writeUIntBE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , n = 0 | n , ! r ) { var i = Math . pow ( 2 , 8 * n ) - 1 ; D ( this , e , t , n , i , 0 ) } var o = n - 1 , a = 1 ; for ( this [ t + o ] = 255 & e ; -- o >= 0 && ( a *= 256 ) ; ) this [ t + o ] = e / a & 255 ; return t + n } , a . prototype . writeUInt8 = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 1 , 255 , 0 ) , a . TYPED _ARRAY _SUPPORT || ( e = Math . floor ( e ) ) , this [ t ] = 255 & e , t + 1 } , a . prototype . writeUInt16LE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 2 , 65535 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = 255 & e , this [ t + 1 ] = e >>> 8 ) : H ( this , e , t , ! 0 ) , t + 2 } , a . prototype . writeUInt16BE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 2 , 65535 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = e >>> 8 , this [ t + 1 ] = 255 & e ) : H ( this , e , t , ! 1 ) , t + 2 } , a . prototype . writeUInt32LE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 4 , 4294967295 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t + 3 ] = e >>> 24 , this [ t + 2 ] = e >>> 16 , this [ t + 1 ] = e >>> 8 , this [ t ] = 255 & e ) : W ( this , e , t , ! 0 ) , t + 4 } , a . prototype . writeUInt32BE = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 4 , 4294967295 , 0 ) , a . TYPED _ARRAY _SUPPORT ? ( this [ t ] = e >>> 24 , this [ t + 1 ] = e >>> 16 , this [ t + 2 ] = e >>> 8 , this [ t + 3 ] = 255 & e ) : W ( this , e , t , ! 1 ) , t + 4 } , a . prototype . writeIntLE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , ! r ) { var i = Math . pow ( 2 , 8 * n - 1 ) ; D ( this , e , t , n , i - 1 , - i ) } var o = 0 , a = 1 , l = 0 ; for ( this [ t ] = 255 & e ; ++ o < n && ( a *= 256 ) ; ) 0 > e && 0 === l && 0 !== this [ t + o - 1 ] && ( l = 1 ) , this [ t + o ] = ( e / a >> 0 ) - l & 255 ; return t + n } , a . prototype . writeIntBE = function ( e , t , n , r ) { if ( e = + e , t = 0 | t , ! r ) { var i = Math . pow ( 2 , 8 * n - 1 ) ; D ( this , e , t , n , i - 1 , - i ) } var o = n - 1 , a = 1 , l = 0 ; for ( this [ t + o ] = 255 & e ; -- o >= 0 && ( a *= 256 ) ; ) 0 > e && 0 === l && 0 !== this [ t + o + 1 ] && ( l = 1 ) , this [ t + o ] = ( e / a >> 0 ) - l & 255 ; return t + n } , a . prototype . writeInt8 = function ( e , t , n ) { return e = + e , t = 0 | t , n || D ( this , e , t , 1 , 127 , - 128 ) , a . TYPED _ARRAY _
var d = e . curOp . updateInput , p = { from : f , to : h , text : s ? s [ c % s . length ] : l , origin : i || ( a ? "paste" : e . state . cutIncoming ? "cut" : "+input" ) } ; Tn ( e . doc , p ) , Ci ( e , "inputRead" , e , p ) } t && ! a && Q ( e , t ) , Bn ( e ) , e . curOp . updateInput = d , e . curOp . typing = ! 0 , e . state . pasteIncoming = e . state . cutIncoming = ! 1 } function J ( e , t ) { var n = e . clipboardData && e . clipboardData . getData ( "text/plain" ) ; return n ? ( e . preventDefault ( ) , t . isReadOnly ( ) || t . options . disableInput || At ( t , function ( ) { Z ( t , n , 0 , null , "paste" ) } ) , ! 0 ) : void 0 } function Q ( e , t ) { if ( e . options . electricChars && e . options . smartIndent ) for ( var n = e . doc . sel , r = n . ranges . length - 1 ; r >= 0 ; r -- ) { var i = n . ranges [ r ] ; if ( ! ( i . head . ch > 100 || r && n . ranges [ r - 1 ] . head . line == i . head . line ) ) { var o = e . getModeAt ( i . head ) , a = ! 1 ; if ( o . electricChars ) { for ( var l = 0 ; l < o . electricChars . length ; l ++ ) if ( t . indexOf ( o . electricChars . charAt ( l ) ) > - 1 ) { a = Fn ( e , i . head . line , "smart" ) ; break } } else o . electricInput && o . electricInput . test ( Zr ( e . doc , i . head . line ) . text . slice ( 0 , i . head . ch ) ) && ( a = Fn ( e , i . head . line , "smart" ) ) ; a && Ci ( e , "electricInput" , e , i . head . line ) } } } function ee ( e ) { for ( var t = [ ] , n = [ ] , r = 0 ; r < e . doc . sel . ranges . length ; r ++ ) { var i = e . doc . sel . ranges [ r ] . head . line , o = { anchor : Bo ( i , 0 ) , head : Bo ( i + 1 , 0 ) } ; n . push ( o ) , t . push ( e . getRange ( o . anchor , o . head ) ) } return { text : t , ranges : n } } function te ( e ) { e . setAttribute ( "autocorrect" , "off" ) , e . setAttribute ( "autocapitalize" , "off" ) , e . setAttribute ( "spellcheck" , "false" ) } function ne ( e ) { this . cm = e , this . prevInput = "" , this . pollingFast = ! 1 , this . polling = new Ei , this . inaccurateSelection = ! 1 , this . hasSelection = ! 1 , this . composing = null } function re ( ) { var e = ji ( "textarea" , null , null , "position: absolute; padding: 0; width: 1px; height: 1em; outline: none" ) , t = ji ( "div" , [ e ] , null , "overflow: hidden; position: relative; width: 3px; height: 0px;" ) ; return wo ? e . style . width = "1000px" : e . setAttribute ( "wrap" , "off" ) , No && ( e . style . border = "1px solid black" ) , te ( e ) , t } function ie ( e ) { this . cm = e , this . lastAnchorNode = this . lastAnchorOffset = this . lastFocusNode = this . lastFocusOffset = null , this . polling = new Ei , this . gracePeriod = ! 1 } function oe ( e , t ) { var n = Qe ( e , t . line ) ; if ( ! n || n . hidden ) return null ; var r = Zr ( e . doc , t . line ) , i = Xe ( n , r , t . line ) , o = ii ( r ) , a = "left" ; if ( o ) { var l = co ( o , t . ch ) ; a = l % 2 ? "right" : "left" } var s = nt ( i . map , t . ch , a ) ; return s . offset = "right" == s . collapse ? s . end : s . start , s } function ae ( e , t ) { return t && ( e . bad = ! 0 ) , e } function le ( e , t , n ) { var r ; if ( t == e . display . lineDiv ) { if ( r = e . display . lineDiv . childNodes [ n ] , ! r ) return ae ( e . clipPos ( Bo ( e . display . viewTo - 1 ) ) , ! 0 ) ; t = null , n = 0 } else for ( r = t ; ; r = r . parentNode ) { if ( ! r || r == e . display . lineDiv ) return null ; if ( r . parentNode && r . parentNode == e . display . lineDiv ) break } for ( var i = 0 ; i < e . display . view . length ; i ++ ) { var o = e . display . view [ i ] ; if ( o . node == r ) return se ( o , t , n ) } } function se ( e , t , n ) { function r ( t , n , r ) { for ( var i = - 1 ; i < ( u ? u . length : 0 ) ; i ++ ) for ( var o = 0 > i ? c . map : u [ i ] , a = 0 ; a < o . length ; a += 3 ) { var l = o [ a + 2 ] ; if ( l == t || l == n ) { var s = ti ( 0 > i ? e . line : e . rest [ i ] ) , f = o [ a ] + r ; return ( 0 > r || l != t ) && ( f = o [ a + ( r ? 1 : 0 ) ] ) , Bo ( s , f ) } } } var i = e . text . firstChild , o = ! 1 ; if ( ! t || ! Va ( i , t ) ) return ae ( Bo ( ti ( e . line ) , 0 ) , ! 0 ) ; if ( t == i && ( o = ! 0 , t = i . childNodes [ n ] , n = 0 , ! t ) ) { var a = e . rest ? Ii ( e . rest ) : e . line ; return ae ( Bo ( ti ( a ) , a . text . length ) , o ) } var l = 3 == t . nodeType ? t : null , s = t ; for ( l || 1 != t . childNodes . length || 3 != t . firstChild . nodeType || ( l = t . firstChild , n && ( n = l . nodeValue . length ) ) ; s . parentNode != i ; ) s = s . parentNode ; var c = e . measure , u = c . maps , f = r ( l , s , n ) ; if ( f ) return ae ( f , o ) ; for ( var h = s . nextSibling , d = l ? l . nodeValue . length - n : 0 ; h ; h = h . nextSibling ) { if ( f = r ( h , h . firstChild , 0 ) ) return ae ( Bo ( f . line , f . ch - d ) , o ) ; d += h . textContent . length } for ( var p = s . previousSibling , d = n ; p ; p = p . previousSibling ) { if ( f = r ( p , p . firstChild , - 1 ) ) return ae ( Bo ( f . line , f . ch + d ) , o ) ; d += h . textContent . length } } function ce ( e , t , n , r , i ) { function o ( e ) { return function ( t ) { return t . id == e } } function a ( t ) { if ( 1 == t . nodeType ) { var n = t . getAttribute ( "cm-text" ) ; if ( null != n ) return "" == n && ( n = t . textContent . replace ( /\u200b/g , "" ) ) , void ( l += n ) ; var u , f = t . getAttribute ( "cm-marker" ) ; if ( f ) { var h = e . findMarks ( Bo ( r , 0 ) , Bo ( i + 1 , 0 ) , o ( + f ) ) ; return void ( h . length && ( u = h [ 0 ] . find ( ) ) && ( l += Jr ( e . doc , u . from , u . to ) . join ( c ) ) ) } if ( "false" == t . getAttribute ( "contenteditable" ) ) return ; for ( var d = 0 ; d < t . childNodes . length ; d ++ ) a ( t . childNodes [ d ] ) ; /^(pre|div|p)$/i . test ( t . nodeName ) && ( s = ! 0 ) } else if ( 3 == t . nodeType ) { var p = t . nodeValue ; if ( ! p ) return ; s && ( l +
u && setTimeout ( Et ( e , function ( ) { y == n && ( s . scroller . scrollTop += u , a ( t ) ) } ) , 50 ) } } function l ( t ) { e . state . selectingText = ! 1 , y = 1 / 0 , Ma ( t ) , s . input . focus ( ) , Ia ( document , "mousemove" , x ) , Ia ( document , "mouseup" , w ) , c . history . lastSelOrigin = null } var s = e . display , c = e . doc ; Ma ( t ) ; var u , f , h = c . sel , d = h . ranges ; if ( i && ! t . shiftKey ? ( f = c . sel . contains ( n ) , u = f > - 1 ? d [ f ] : new fe ( n , n ) ) : ( u = c . sel . primary ( ) , f = c . sel . primIndex ) , Oo ? t . shiftKey && t . metaKey : t . altKey ) r = "rect" , i || ( u = new fe ( n , n ) ) , n = Yt ( e , t , ! 0 , ! 0 ) , f = - 1 ; else if ( "double" == r ) { var p = e . findWordAt ( n ) ; u = e . display . shift || c . extend ? xe ( c , u , p . anchor , p . head ) : p } else if ( "triple" == r ) { var m = new fe ( Bo ( n . line , 0 ) , me ( c , Bo ( n . line + 1 , 0 ) ) ) ; u = e . display . shift || c . extend ? xe ( c , u , m . anchor , m . head ) : m } else u = xe ( c , u , n ) ; i ? - 1 == f ? ( f = d . length , Te ( c , he ( d . concat ( [ u ] ) , f ) , { scroll : ! 1 , origin : "*mouse" } ) ) : d . length > 1 && d [ f ] . empty ( ) && "single" == r && ! t . shiftKey ? ( Te ( c , he ( d . slice ( 0 , f ) . concat ( d . slice ( f + 1 ) ) , 0 ) , { scroll : ! 1 , origin : "*mouse" } ) , h = c . sel ) : ke ( c , f , u , Ba ) : ( f = 0 , Te ( c , new ue ( [ u ] , 0 ) , Ba ) , h = c . sel ) ; var g = n , v = s . wrapper . getBoundingClientRect ( ) , y = 0 , x = Et ( e , function ( e ) { ki ( e ) ? a ( e ) : l ( e ) } ) , w = Et ( e , l ) ; e . state . selectingText = w , Ea ( document , "mousemove" , x ) , Ea ( document , "mouseup" , w ) } function Zt ( e , t , n , r ) { try { var i = t . clientX , o = t . clientY } catch ( t ) { return ! 1 } if ( i >= Math . floor ( e . display . gutters . getBoundingClientRect ( ) . right ) ) return ! 1 ; r && Ma ( t ) ; var a = e . display , l = a . lineDiv . getBoundingClientRect ( ) ; if ( o > l . bottom || ! Ni ( e , n ) ) return bi ( t ) ; o -= l . top - a . viewOffset ; for ( var s = 0 ; s < e . options . gutters . length ; ++ s ) { var c = a . gutters . childNodes [ s ] ; if ( c && c . getBoundingClientRect ( ) . right >= i ) { var u = ni ( e . doc , o ) , f = e . options . gutters [ s ] ; return Pa ( e , n , e , u , f , t ) , bi ( t ) } } } function Jt ( e , t ) { return Zt ( e , t , "gutterClick" , ! 0 ) } function Qt ( e ) { var t = this ; if ( nn ( t ) , ! Ti ( t , e ) && ! Gt ( t . display , e ) ) { Ma ( e ) , xo && ( $o = + new Date ) ; var n = Yt ( t , e , ! 0 ) , r = e . dataTransfer . files ; if ( n && ! t . isReadOnly ( ) ) if ( r && r . length && window . FileReader && window . File ) for ( var i = r . length , o = Array ( i ) , a = 0 , l = function ( e , r ) { if ( ! t . options . allowDropFileTypes || - 1 != Pi ( t . options . allowDropFileTypes , e . type ) ) { var l = new FileReader ; l . onload = Et ( t , function ( ) { var e = l . result ; if ( /[\x00-\x08\x0e-\x1f]{2}/ . test ( e ) && ( e = "" ) , o [ r ] = e , ++ a == i ) { n = me ( t . doc , n ) ; var s = { from : n , to : n , text : t . doc . splitLines ( o . join ( t . doc . lineSeparator ( ) ) ) , origin : "paste" } ; Tn ( t . doc , s ) , Le ( t . doc , de ( n , Qo ( s ) ) ) } } ) , l . readAsText ( e ) } } , s = 0 ; i > s ; ++ s ) l ( r [ s ] , s ) ; else { if ( t . state . draggingText && t . doc . sel . contains ( n ) > - 1 ) return t . state . draggingText ( e ) , void setTimeout ( function ( ) { t . display . input . focus ( ) } , 20 ) ; try { var o = e . dataTransfer . getData ( "Text" ) ; if ( o ) { if ( t . state . draggingText && ! ( Eo ? e . altKey : e . ctrlKey ) ) var c = t . listSelections ( ) ; if ( Me ( t . doc , de ( n , n ) ) , c ) for ( var s = 0 ; s < c . length ; ++ s ) In ( t . doc , "" , c [ s ] . anchor , c [ s ] . head , "drag" ) ; t . replaceSelection ( o , "around" , "paste" ) , t . display . input . focus ( ) } } catch ( e ) { } } } } function en ( e , t ) { if ( xo && ( ! e . state . draggingText || + new Date - $o < 100 ) ) return void Aa ( t ) ; if ( ! Ti ( e , t ) && ! Gt ( e . display , t ) && ( t . dataTransfer . setData ( "Text" , e . getSelection ( ) ) , t . dataTransfer . effectAllowed = "copyMove" , t . dataTransfer . setDragImage && ! Lo ) ) { var n = ji ( "img" , null , null , "position: fixed; left: 0; top: 0;" ) ; n . src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" , Co && ( n . width = n . height = 1 , e . display . wrapper . appendChild ( n ) , n . _top = n . offsetTop ) , t . dataTransfer . setDragImage ( n , 0 , 0 ) , Co && n . parentNode . removeChild ( n ) } } function tn ( e , t ) { var n = Yt ( e , t ) ; if ( n ) { var r = document . createDocumentFragment ( ) ; He ( e , n , r ) , e . display . dragCursor || ( e . display . dragCursor = ji ( "div" , null , "CodeMirror-cursors CodeMirror-dragcursors" ) , e . display . lineSpace . insertBefore ( e . display . dragCursor , e . display . cursorDiv ) ) , qi ( e . display . dragCursor , r ) } } function nn ( e ) { e . display . dragCursor && ( e . display . lineSpace . removeChild ( e . display . dragCursor ) , e . display . dragCursor = null ) } function rn ( e , t ) { Math . abs ( e . doc . scrollTop - t ) < 2 || ( e . doc . scrollTop = t , go || A ( e , { top : t } ) , e . display . scroller . scrollTop != t && ( e . display . scroller . scrollTop = t ) , e . display . scrollbars . setScrollTop ( t ) , go && A ( e ) , _e ( e , 100 ) ) } function on ( e , t , n ) { ( n ? t == e . doc . scrollLeft : Math . abs ( e . doc . scrollLeft - t ) < 2 ) || ( t = Math . min ( t , e . display . scroller . scrollWidth - e . display . scroller . clientWidth ) , e . doc . scrollLeft = t , w ( e ) , e . display . scroller . scrollLeft != t && ( e . display . scroller . scrollLeft = t ) , e . displa
if ( ! h ) { var L = C > S ? g . slice ( 0 , S - p ) : g ; t . addToken ( t , L , a ? a + s : s , u , p + L . length == v ? c : "" , f , l ) } if ( C >= S ) { g = g . slice ( S - p ) , p = S ; break } p = C , u = "" } g = i . slice ( o , o = n [ m ++ ] ) , a = Wr ( n [ m ++ ] , t . cm . options ) } } else for ( var m = 1 ; m < n . length ; m += 2 ) t . addToken ( t , i . slice ( o , o = n [ m ] ) , Wr ( n [ m + 1 ] , t . cm . options ) ) } function Gr ( e , t ) { return 0 == t . from . ch && 0 == t . to . ch && "" == Ii ( t . text ) && ( ! e . cm || e . cm . options . wholeLineUpdateBefore ) } function Yr ( e , t , n , r ) { function i ( e ) { return n ? n [ e ] : null } function o ( e , n , i ) { Mr ( e , n , i , r ) , Ci ( e , "change" , e , t ) } function a ( e , t ) { for ( var n = e , o = [ ] ; t > n ; ++ n ) o . push ( new ba ( c [ n ] , i ( n ) , r ) ) ; return o } var l = t . from , s = t . to , c = t . text , u = Zr ( e , l . line ) , f = Zr ( e , s . line ) , h = Ii ( c ) , d = i ( c . length - 1 ) , p = s . line - l . line ; if ( t . full ) e . insert ( 0 , a ( 0 , c . length ) ) , e . remove ( c . length , e . size - c . length ) ; else if ( Gr ( e , t ) ) { var m = a ( 0 , c . length - 1 ) ; o ( f , f . text , d ) , p && e . remove ( l . line , p ) , m . length && e . insert ( l . line , m ) } else if ( u == f ) if ( 1 == c . length ) o ( u , u . text . slice ( 0 , l . ch ) + h + u . text . slice ( s . ch ) , d ) ; else { var m = a ( 1 , c . length - 1 ) ; m . push ( new ba ( h + u . text . slice ( s . ch ) , d , r ) ) , o ( u , u . text . slice ( 0 , l . ch ) + c [ 0 ] , i ( 0 ) ) , e . insert ( l . line + 1 , m ) } else if ( 1 == c . length ) o ( u , u . text . slice ( 0 , l . ch ) + c [ 0 ] + f . text . slice ( s . ch ) , i ( 0 ) ) , e . remove ( l . line + 1 , p ) ; else { o ( u , u . text . slice ( 0 , l . ch ) + c [ 0 ] , i ( 0 ) ) , o ( f , h + f . text . slice ( s . ch ) , d ) ; var m = a ( 1 , c . length - 1 ) ; p > 1 && e . remove ( l . line + 1 , p - 1 ) , e . insert ( l . line + 1 , m ) } Ci ( e , "change" , e , t ) } function $r ( e ) { this . lines = e , this . parent = null ; for ( var t = 0 , n = 0 ; t < e . length ; ++ t ) e [ t ] . parent = this , n += e [ t ] . height ; this . height = n } function Vr ( e ) { this . children = e ; for ( var t = 0 , n = 0 , r = 0 ; r < e . length ; ++ r ) { var i = e [ r ] ; t += i . chunkSize ( ) , n += i . height , i . parent = this } this . size = t , this . height = n , this . parent = null } function Kr ( e , t , n ) { function r ( e , i , o ) { if ( e . linked ) for ( var a = 0 ; a < e . linked . length ; ++ a ) { var l = e . linked [ a ] ; if ( l . doc != i ) { var s = o && l . sharedHist ; n && ! s || ( t ( l . doc , s ) , r ( l . doc , e , s ) ) } } } r ( e , null , ! 0 ) } function Xr ( e , t ) { if ( t . cm ) throw new Error ( "This document is already in use." ) ; e . doc = t , t . cm = e , a ( e ) , n ( e ) , e . options . lineWrapping || h ( e ) , e . options . mode = t . modeOption , Dt ( e ) } function Zr ( e , t ) { if ( t -= e . first , 0 > t || t >= e . size ) throw new Error ( "There is no line " + ( t + e . first ) + " in the document." ) ; for ( var n = e ; ! n . lines ; ) for ( var r = 0 ; ; ++ r ) { var i = n . children [ r ] , o = i . chunkSize ( ) ; if ( o > t ) { n = i ; break } t -= o } return n . lines [ t ] } function Jr ( e , t , n ) { var r = [ ] , i = t . line ; return e . iter ( t . line , n . line + 1 , function ( e ) { var o = e . text ; i == n . line && ( o = o . slice ( 0 , n . ch ) ) , i == t . line && ( o = o . slice ( t . ch ) ) , r . push ( o ) , ++ i } ) , r } function Qr ( e , t , n ) { var r = [ ] ; return e . iter ( t , n , function ( e ) { r . push ( e . text ) } ) , r } function ei ( e , t ) { var n = t - e . height ; if ( n ) for ( var r = e ; r ; r = r . parent ) r . height += n } function ti ( e ) { if ( null == e . parent ) return null ; for ( var t = e . parent , n = Pi ( t . lines , e ) , r = t . parent ; r ; t = r , r = r . parent ) for ( var i = 0 ; r . children [ i ] != t ; ++ i ) n += r . children [ i ] . chunkSize ( ) ; return n + t . first } function ni ( e , t ) { var n = e . first ; e : do { for ( var r = 0 ; r < e . children . length ; ++ r ) { var i = e . children [ r ] , o = i . height ; if ( o > t ) { e = i ; continue e } t -= o , n += i . chunkSize ( ) } return n } while ( ! e . lines ) ; for ( var r = 0 ; r < e . lines . length ; ++ r ) { var a = e . lines [ r ] , l = a . height ; if ( l > t ) break ; t -= l } return n + r } function ri ( e ) { e = yr ( e ) ; for ( var t = 0 , n = e . parent , r = 0 ; r < n . lines . length ; ++ r ) { var i = n . lines [ r ] ; if ( i == e ) break ; t += i . height } for ( var o = n . parent ; o ; n = o , o = n . parent ) for ( var r = 0 ; r < o . children . length ; ++ r ) { var a = o . children [ r ] ; if ( a == n ) break ; t += a . height } return t } function ii ( e ) { var t = e . order ; return null == t && ( t = e . order = ll ( e . text ) ) , t } function oi ( e ) { this . done = [ ] , this . undone = [ ] , this . undoDepth = 1 / 0 , this . lastModTime = this . lastSelTime = 0 , this . lastOp = this . lastSelOp = null , this . lastOrigin = this . lastSelOrigin = null , this . generation = this . maxGeneration = e || 1 } function ai ( e , t ) { var n = { from : $ ( t . from ) , to : Qo ( t ) , text : Jr ( e , t . from , t . to ) } ; return di ( e , n , t . from . line , t . to . line + 1 ) , Kr ( e , function ( e ) { di ( e , n , t . from . line , t . to . line + 1 ) } , ! 0 ) , n } function li ( e ) { for ( ; e . length ; ) { var t = Ii ( e ) ; if ( ! t . ranges ) break ; e . pop ( ) } } function si ( e , t ) { return t ? ( li ( e . done ) , Ii ( e . done ) ) : e . done . length && ! Ii ( e . done ) . ranges ? Ii ( e . done ) : e . done . length > 1 && ! e . done [ e . done . length - 2 ] . ranges ? ( e . done . pop ( ) , Ii ( e . done ) ) : void 0 } function ci ( e , t , n , r ) { var i = e . history ; i . undone . length = 0 ; var o , a = + new Date ; if ( ( i . lastOp == r || i . lastOrigin == t . origin && t . origin && ( "+" == t . origin . charAt ( 0 ) && e . cm && i . lastModTime > a - e . cm . options . historyEventDelay || "*" == t . origin . charAt ( 0 ) )
! e ) return null } else { var t = ti ( e ) ; if ( null == t ) return null } return { line : t , handle : e , text : e . text , gutterMarkers : e . gutterMarkers , textClass : e . textClass , bgClass : e . bgClass , wrapClass : e . wrapClass , widgets : e . widgets } } , getViewport : function ( ) { return { from : this . display . viewFrom , to : this . display . viewTo } } , addWidget : function ( e , t , n , r , i ) { var o = this . display ; e = dt ( this , me ( this . doc , e ) ) ; var a = e . bottom , l = e . left ; if ( t . style . position = "absolute" , t . setAttribute ( "cm-ignore-events" , "true" ) , this . display . input . setUneditable ( t ) , o . sizer . appendChild ( t ) , "over" == r ) a = e . top ; else if ( "above" == r || "near" == r ) { var s = Math . max ( o . wrapper . clientHeight , this . doc . height ) , c = Math . max ( o . sizer . clientWidth , o . lineSpace . clientWidth ) ; ( "above" == r || e . bottom + t . offsetHeight > s ) && e . top > t . offsetHeight ? a = e . top - t . offsetHeight : e . bottom + t . offsetHeight <= s && ( a = e . bottom ) , l + t . offsetWidth > c && ( l = c - t . offsetWidth ) } t . style . top = a + "px" , t . style . left = t . style . right = "" , "right" == i ? ( l = o . sizer . clientWidth - t . offsetWidth , t . style . right = "0px" ) : ( "left" == i ? l = 0 : "middle" == i && ( l = ( o . sizer . clientWidth - t . offsetWidth ) / 2 ) , t . style . left = l + "px" ) , n && Dn ( this , l , a , l + t . offsetWidth , a + t . offsetHeight ) } , triggerOnKeyDown : Ot ( hn ) , triggerOnKeyPress : Ot ( mn ) , triggerOnKeyUp : pn , execCommand : function ( e ) { return ua . hasOwnProperty ( e ) ? ua [ e ] . call ( null , this ) : void 0 } , triggerElectric : Ot ( function ( e ) { Q ( this , e ) } ) , findPosH : function ( e , t , n , r ) { var i = 1 ; 0 > t && ( i = - 1 , t = - t ) ; for ( var o = 0 , a = me ( this . doc , e ) ; t > o && ( a = Un ( this . doc , a , i , n , r ) , ! a . hitSide ) ; ++ o ) ; return a } , moveH : Ot ( function ( e , t ) { var n = this ; n . extendSelectionsBy ( function ( r ) { return n . display . shift || n . doc . extend || r . empty ( ) ? Un ( n . doc , r . head , e , t , n . options . rtlMoveVisually ) : 0 > e ? r . from ( ) : r . to ( ) } , _a ) } ) , deleteH : Ot ( function ( e , t ) { var n = this . doc . sel , r = this . doc ; n . somethingSelected ( ) ? r . replaceSelection ( "" , null , "+delete" ) : jn ( this , function ( n ) { var i = Un ( r , n . head , e , t , ! 1 ) ; return 0 > e ? { from : i , to : n . head } : { from : n . head , to : i } } ) } ) , findPosV : function ( e , t , n , r ) { var i = 1 , o = r ; 0 > t && ( i = - 1 , t = - t ) ; for ( var a = 0 , l = me ( this . doc , e ) ; t > a ; ++ a ) { var s = dt ( this , l , "div" ) ; if ( null == o ? o = s . left : s . left = o , l = qn ( this , s , i , n ) , l . hitSide ) break } return l } , moveV : Ot ( function ( e , t ) { var n = this , r = this . doc , i = [ ] , o = ! n . display . shift && ! r . extend && r . sel . somethingSelected ( ) ; if ( r . extendSelectionsBy ( function ( a ) { if ( o ) return 0 > e ? a . from ( ) : a . to ( ) ; var l = dt ( n , a . head , "div" ) ; null != a . goalColumn && ( l . left = a . goalColumn ) , i . push ( l . left ) ; var s = qn ( n , l , e , t ) ; return "page" == t && a == r . sel . primary ( ) && Wn ( n , null , ht ( n , s , "div" ) . top - l . top ) , s } , _a ) , i . length ) for ( var a = 0 ; a < r . sel . ranges . length ; a ++ ) r . sel . ranges [ a ] . goalColumn = i [ a ] } ) , findWordAt : function ( e ) { var t = this . doc , n = Zr ( t , e . line ) . text , r = e . ch , i = e . ch ; if ( n ) { var o = this . getHelper ( e , "wordChars" ) ; ( e . xRel < 0 || i == n . length ) && r ? -- r : ++ i ; for ( var a = n . charAt ( r ) , l = _i ( a , o ) ? function ( e ) { return _i ( e , o ) } : /\s/ . test ( a ) ? function ( e ) { return /\s/ . test ( e ) } : function ( e ) { return ! /\s/ . test ( e ) && ! _i ( e ) } ; r > 0 && l ( n . charAt ( r - 1 ) ) ; ) -- r ; for ( ; i < n . length && l ( n . charAt ( i ) ) ; ) ++ i } return new fe ( Bo ( e . line , r ) , Bo ( e . line , i ) ) } , toggleOverwrite : function ( e ) { null != e && e == this . state . overwrite || ( ( this . state . overwrite = ! this . state . overwrite ) ? Ja ( this . display . cursorDiv , "CodeMirror-overwrite" ) : Za ( this . display . cursorDiv , "CodeMirror-overwrite" ) , Pa ( this , "overwriteToggle" , this , this . state . overwrite ) ) } , hasFocus : function ( ) { return this . display . input . getField ( ) == Gi ( ) } , isReadOnly : function ( ) { return ! ( ! this . options . readOnly && ! this . doc . cantEdit ) } , scrollTo : Ot ( function ( e , t ) { null == e && null == t || _n ( this ) , null != e && ( this . curOp . scrollLeft = e ) , null != t && ( this . curOp . scrollTop = t ) } ) , getScrollInfo : function ( ) { var e = this . display . scroller ; return { left : e . scrollLeft , top : e . scrollTop , height : e . scrollHeight - Ye ( this ) - this . display . barHeight , width : e . scrollWidth - Ye ( this ) - this . display . barWidth , clientHeight : Ve ( this ) , clientWidth : $e ( this ) } } , scrollIntoView : Ot ( function ( e , t ) { if ( null == e ? ( e = { from : this . doc . sel . primary ( ) . head , to : null } , null == t && ( t = this . options . cursorScrollMargin ) ) : "number" == typeof e ? e = { from : Bo ( e , 0 ) , to : null } : null == e . from && ( e = { from : e , to : null } ) , e . to || ( e . to = e . from ) , e . margin = t || 0 , null != e . from . line ) _n ( this ) , this . curOp . scrollToPos = e ; else { var n = Hn ( this , Math . min ( e . from . left , e . to . left ) , Math . min ( e . from . top , e . to . top ) - e . margin , Math . max ( e . from . right , e . to . right ) , Math . max ( e . from . bottom , e . to . bottom ) + e . margin )
e = me ( this , e ) ; var t = e . ch ; if ( e . line < this . first || e . ch < 0 ) return 0 ; var n = this . lineSeparator ( ) . length ; return this . iter ( this . first , e . line , function ( e ) { t += e . text . length + n } ) , t } , copy : function ( e ) { var t = new Ca ( Qr ( this , this . first , this . first + this . size ) , this . modeOption , this . first , this . lineSep ) ; return t . scrollTop = this . scrollTop , t . scrollLeft = this . scrollLeft , t . sel = this . sel , t . extend = ! 1 , e && ( t . history . undoDepth = this . history . undoDepth , t . setHistory ( this . getHistory ( ) ) ) , t } , linkedDoc : function ( e ) { e || ( e = { } ) ; var t = this . first , n = this . first + this . size ; null != e . from && e . from > t && ( t = e . from ) , null != e . to && e . to < n && ( n = e . to ) ; var r = new Ca ( Qr ( this , t , n ) , e . mode || this . modeOption , t , this . lineSep ) ; return e . sharedHist && ( r . history = this . history ) , ( this . linked || ( this . linked = [ ] ) ) . push ( { doc : r , sharedHist : e . sharedHist } ) , r . linked = [ { doc : this , isParent : ! 0 , sharedHist : e . sharedHist } ] , Zn ( r , Xn ( this ) ) , r } , unlinkDoc : function ( t ) { if ( t instanceof e && ( t = t . doc ) , this . linked ) for ( var n = 0 ; n < this . linked . length ; ++ n ) { var r = this . linked [ n ] ; if ( r . doc == t ) { this . linked . splice ( n , 1 ) , t . unlinkDoc ( this ) , Jn ( Xn ( this ) ) ; break } } if ( t . history == this . history ) { var i = [ t . id ] ; Kr ( t , function ( e ) { i . push ( e . id ) } , ! 0 ) , t . history = new oi ( null ) , t . history . done = gi ( this . history . done , i ) , t . history . undone = gi ( this . history . undone , i ) } } , iterLinkedDocs : function ( e ) { Kr ( this , e ) } , getMode : function ( ) { return this . mode } , getEditor : function ( ) { return this . cm } , splitLines : function ( e ) { return this . lineSep ? e . split ( this . lineSep ) : tl ( e ) } , lineSeparator : function ( ) { return this . lineSep || "\n" } } ) , Ca . prototype . eachLine = Ca . prototype . iter ; var La = "iter insert remove copy getEditor constructor" . split ( " " ) ; for ( var Ta in Ca . prototype ) Ca . prototype . hasOwnProperty ( Ta ) && Pi ( La , Ta ) < 0 && ( e . prototype [ Ta ] = function ( e ) { return function ( ) { return e . apply ( this . doc , arguments ) } } ( Ca . prototype [ Ta ] ) ) ; Ai ( Ca ) ; var Ma = e . e _preventDefault = function ( e ) { e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } , Na = e . e _stopPropagation = function ( e ) { e . stopPropagation ? e . stopPropagation ( ) : e . cancelBubble = ! 0 } , Aa = e . e _stop = function ( e ) { Ma ( e ) , Na ( e ) } , Ea = e . on = function ( e , t , n ) { if ( e . addEventListener ) e . addEventListener ( t , n , ! 1 ) ; else if ( e . attachEvent ) e . attachEvent ( "on" + t , n ) ; else { var r = e . _handlers || ( e . _handlers = { } ) , i = r [ t ] || ( r [ t ] = [ ] ) ; i . push ( n ) } } , Oa = [ ] , Ia = e . off = function ( e , t , n ) { if ( e . removeEventListener ) e . removeEventListener ( t , n , ! 1 ) ; else if ( e . detachEvent ) e . detachEvent ( "on" + t , n ) ; else for ( var r = Si ( e , t , ! 1 ) , i = 0 ; i < r . length ; ++ i ) if ( r [ i ] == n ) { r . splice ( i , 1 ) ; break } } , Pa = e . signal = function ( e , t ) { var n = Si ( e , t , ! 0 ) ; if ( n . length ) for ( var r = Array . prototype . slice . call ( arguments , 2 ) , i = 0 ; i < n . length ; ++ i ) n [ i ] . apply ( null , r ) } , Ra = null , Da = 30 , Ha = e . Pass = { toString : function ( ) { return "CodeMirror.Pass" } } , Wa = { scroll : ! 1 } , Ba = { origin : "*mouse" } , _a = { origin : "+move" } ; Ei . prototype . set = function ( e , t ) { clearTimeout ( this . id ) , this . id = setTimeout ( t , e ) } ; var Fa = e . countColumn = function ( e , t , n , r , i ) { null == t && ( t = e . search ( /[^\s\u00a0]/ ) , - 1 == t && ( t = e . length ) ) ; for ( var o = r || 0 , a = i || 0 ; ; ) { var l = e . indexOf ( "\t" , o ) ; if ( 0 > l || l >= t ) return a + ( t - o ) ; a += l - o , a += n - a % n , o = l + 1 } } , za = e . findColumn = function ( e , t , n ) { for ( var r = 0 , i = 0 ; ; ) { var o = e . indexOf ( "\t" , r ) ; - 1 == o && ( o = e . length ) ; var a = o - r ; if ( o == e . length || i + a >= t ) return r + Math . min ( a , t - i ) ; if ( i += o - r , i += n - i % n , r = o + 1 , i >= t ) return r } } , ja = [ "" ] , Ua = function ( e ) { e . select ( ) } ; No ? Ua = function ( e ) { e . selectionStart = 0 , e . selectionEnd = e . value . length } : xo && ( Ua = function ( e ) { try { e . select ( ) } catch ( t ) { } } ) ; var qa , Ga = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/ , Ya = e . isWordChar = function ( e ) { return /\w/ . test ( e ) || e > " " && ( e . toUpperCase ( ) != e . toLowerCase ( ) || Ga . test ( e ) ) } , $a = / [ \ u 0 3 0 0 - \ u 0 3 6 f \ u 0 4 8 3 - \ u 0 4 8 9 \ u 0 5 9 1 - \ u 0 5 b d \ u 0 5 b f \ u 0 5 c 1 \ u 0 5 c 2 \ u 0 5 c 4 \ u 0 5 c 5 \ u 0 5 c 7 \ u 0 6 1 0 - \ u 0 6 1 a \ u 0 6 4 b - \ u 0 6 5 e \ u 0 6 7 0 \ u 0 6 d 6 - \ u 0 6 d c \ u 0 6 d e - \ u 0 6 e 4 \ u 0 6 e 7 \ u 0 6 e 8 \ u 0 6 e a - \ u 0 6 e d \ u 0 7 1 1 \ u 0 7 3 0 - \ u 0 7 4 a \ u 0 7 a 6 - \ u 0 7 b 0 \ u 0 7 e b - \ u 0 7 f 3 \ u 0 8 1 6 - \ u 0 8 1 9 \ u 0 8 1 b - \ u 0 8 2 3 \ u 0 8 2 5 - \ u 0 8 2 7 \ u 0 8 2 9 - \ u 0 8 2 d \ u 0 9 0 0 - \ u 0 9 0 2 \ u 0 9 3 c \ u 0 9 4 1 - \ u 0 9 4 8 \ u 0 9 4 d \ u 0 9 5 1 - \ u 0 9 5 5 \ u 0 9 6 2 \ u 0 9 6 3 \ u 0 9 8 1 \ u 0 9 b c \ u 0 9 b e \ u 0 9 c 1 - \ u 0 9 c 4 \ u 0 9 c d \ u 0 9 d 7 \ u 0 9 e 2 \ u 0 9 e 3 \ u 0 a 0 1 \ u 0 a 0 2 \ u 0 a 3 c \ u 0 a 4 1 \ u 0 a 4 2 \ u 0 a 4 7 \ u 0 a 4 8 \ u 0 a 4 b - \ u 0 a 4 d \ u 0 a 5 1 \ u 0 a 7 0 \ u 0 a 7 1 \ u 0 a 7 5 \ u 0 a 8 1 \ u 0 a 8 2 \ u 0 a b c \ u 0 a c 1 - \ u 0 a c 5 \ u 0 a c 7 \ u 0 a c 8 \ u 0 a c d \ u 0 a e 2 \ u 0 a e 3 \ u 0 b 0 1 \ u 0 b 3 c \ u 0 b 3 e \ u 0 b 3 f \ u 0 b 4 1 - \ u 0 b 4 4 \ u 0 b 4 d \ u 0 b 5 6 \ u 0 b 5 7 \ u 0 b 6 2 \ u 0 b 6 3 \ u 0 b 8 2 \ u 0 b b e \ u 0 b c 0 \
alias : [ "bash" , "sh" , "zsh" ] , file : /^PKGBUILD$/ } , { name : "Sieve" , mime : "application/sieve" , mode : "sieve" , ext : [ "siv" , "sieve" ] } , { name : "Slim" , mimes : [ "text/x-slim" , "application/x-slim" ] , mode : "slim" , ext : [ "slim" ] } , { name : "Smalltalk" , mime : "text/x-stsrc" , mode : "smalltalk" , ext : [ "st" ] } , { name : "Smarty" , mime : "text/x-smarty" , mode : "smarty" , ext : [ "tpl" ] } , { name : "Solr" , mime : "text/x-solr" , mode : "solr" } , { name : "Soy" , mime : "text/x-soy" , mode : "soy" , ext : [ "soy" ] , alias : [ "closure template" ] } , { name : "SPARQL" , mime : "application/sparql-query" , mode : "sparql" , ext : [ "rq" , "sparql" ] , alias : [ "sparul" ] } , { name : "Spreadsheet" , mime : "text/x-spreadsheet" , mode : "spreadsheet" , alias : [ "excel" , "formula" ] } , { name : "SQL" , mime : "text/x-sql" , mode : "sql" , ext : [ "sql" ] } , { name : "Squirrel" , mime : "text/x-squirrel" , mode : "clike" , ext : [ "nut" ] } , { name : "Swift" , mime : "text/x-swift" , mode : "swift" , ext : [ "swift" ] } , { name : "sTeX" , mime : "text/x-stex" , mode : "stex" } , { name : "LaTeX" , mime : "text/x-latex" , mode : "stex" , ext : [ "text" , "ltx" ] , alias : [ "tex" ] } , { name : "SystemVerilog" , mime : "text/x-systemverilog" , mode : "verilog" , ext : [ "v" ] } , { name : "Tcl" , mime : "text/x-tcl" , mode : "tcl" , ext : [ "tcl" ] } , { name : "Textile" , mime : "text/x-textile" , mode : "textile" , ext : [ "textile" ] } , { name : "TiddlyWiki " , mime : "text/x-tiddlywiki" , mode : "tiddlywiki" } , { name : "Tiki wiki" , mime : "text/tiki" , mode : "tiki" } , { name : "TOML" , mime : "text/x-toml" , mode : "toml" , ext : [ "toml" ] } , { name : "Tornado" , mime : "text/x-tornado" , mode : "tornado" } , { name : "troff" , mime : "text/troff" , mode : "troff" , ext : [ "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" ] } , { name : "TTCN" , mime : "text/x-ttcn" , mode : "ttcn" , ext : [ "ttcn" , "ttcn3" , "ttcnpp" ] } , { name : "TTCN_CFG" , mime : "text/x-ttcn-cfg" , mode : "ttcn-cfg" , ext : [ "cfg" ] } , { name : "Turtle" , mime : "text/turtle" , mode : "turtle" , ext : [ "ttl" ] } , { name : "TypeScript" , mime : "application/typescript" , mode : "javascript" , ext : [ "ts" ] , alias : [ "ts" ] } , { name : "Twig" , mime : "text/x-twig" , mode : "twig" } , { name : "Web IDL" , mime : "text/x-webidl" , mode : "webidl" , ext : [ "webidl" ] } , { name : "VB.NET" , mime : "text/x-vb" , mode : "vb" , ext : [ "vb" ] } , { name : "VBScript" , mime : "text/vbscript" , mode : "vbscript" , ext : [ "vbs" ] } , { name : "Velocity" , mime : "text/velocity" , mode : "velocity" , ext : [ "vtl" ] } , { name : "Verilog" , mime : "text/x-verilog" , mode : "verilog" , ext : [ "v" ] } , { name : "VHDL" , mime : "text/x-vhdl" , mode : "vhdl" , ext : [ "vhd" , "vhdl" ] } , { name : "XML" , mimes : [ "application/xml" , "text/xml" ] , mode : "xml" , ext : [ "xml" , "xsl" , "xsd" ] , alias : [ "rss" , "wsdl" , "xsd" ] } , { name : "XQuery" , mime : "application/xquery" , mode : "xquery" , ext : [ "xy" , "xquery" ] } , { name : "Yacas" , mime : "text/x-yacas" , mode : "yacas" , ext : [ "ys" ] } , { name : "YAML" , mime : "text/x-yaml" , mode : "yaml" , ext : [ "yaml" , "yml" ] , alias : [ "yml" ] } , { name : "Z80" , mime : "text/x-z80" , mode : "z80" , ext : [ "z80" ] } , { name : "mscgen" , mime : "text/x-mscgen" , mode : "mscgen" , ext : [ "mscgen" , "mscin" , "msc" ] } , { name : "xu" , mime : "text/x-xu" , mode : "mscgen" , ext : [ "xu" ] } , { name : "msgenny" , mime : "text/x-msgenny" , mode : "mscgen" , ext : [ "msgenny" ] } ] ; for ( var t = 0 ; t < e . modeInfo . length ; t ++ ) { var n = e . modeInfo [ t ] ; n . mimes && ( n . mime = n . mimes [ 0 ] ) } e . findModeByMIME = function ( t ) { t = t . toLowerCase ( ) ; for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . mime == t ) return r ; if ( r . mimes ) for ( var i = 0 ; i < r . mimes . length ; i ++ ) if ( r . mimes [ i ] == t ) return r } } , e . findModeByExtension = function ( t ) { for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . ext ) for ( var i = 0 ; i < r . ext . length ; i ++ ) if ( r . ext [ i ] == t ) return r } } , e . findModeByFileName = function ( t ) { for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . file && r . file . test ( t ) ) return r } var i = t . lastIndexOf ( "." ) , o = i > - 1 && t . substring ( i + 1 , t . length ) ; return o ? e . findModeByExtension ( o ) : void 0 } , e . findModeByName = function ( t ) { t = t . toLowerCase ( ) ; for ( var n = 0 ; n < e . modeInfo . length ; n ++ ) { var r = e . modeInfo [ n ] ; if ( r . name . toLowerCase ( ) == t ) return r ; if ( r . alias ) for ( var i = 0 ; i < r . alias . length ; i ++ ) if ( r . alias [ i ] . toLowerCase ( ) == t ) return r } } } ) } , { "../lib/codemirror" : 10 } ] , 14 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = { autoSelfClosers : { area : ! 0 , base : ! 0 , br : ! 0 , col : ! 0 , command : ! 0 , embed : ! 0 , frame : ! 0 , hr : ! 0 , img : ! 0 , input : ! 0 , keygen : ! 0 , link : ! 0 , meta : ! 0 , param : ! 0 , source : ! 0 , track : ! 0 , wbr : ! 0 , menuitem : ! 0 } , implicitlyClosed : { dd : !
for ( var s = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; u [ 1 ] && s . push ( u [ 0 ] + u [ 1 ] . substring ( 1 ) ) } for ( var f = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; u [ 1 ] . length > 1 && f . push ( u [ 0 ] + u [ 1 ] [ 1 ] + u [ 1 ] [ 0 ] + u [ 1 ] . substring ( 2 ) ) } for ( var h = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; if ( u [ 1 ] ) for ( var d = 0 , p = c . alphabet . length ; p > d ; d ++ ) h . push ( u [ 0 ] + c . alphabet [ d ] + u [ 1 ] . substring ( 1 ) ) } for ( var m = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; if ( u [ 1 ] ) for ( var d = 0 , p = c . alphabet . length ; p > d ; d ++ ) h . push ( u [ 0 ] + c . alphabet [ d ] + u [ 1 ] ) } t = t . concat ( s ) , t = t . concat ( f ) , t = t . concat ( h ) , t = t . concat ( m ) } return t } function r ( e ) { for ( var t = [ ] , n = 0 ; n < e . length ; n ++ ) c . check ( e [ n ] ) && t . push ( e [ n ] ) ; return t } function i ( e ) { function i ( e , t ) { return e [ 1 ] < t [ 1 ] ? - 1 : 1 } for ( var o = n ( [ e ] ) , a = n ( o ) , l = r ( o ) . concat ( r ( a ) ) , s = { } , u = 0 , f = l . length ; f > u ; u ++ ) l [ u ] in s ? s [ l [ u ] ] += 1 : s [ l [ u ] ] = 1 ; var h = [ ] ; for ( var u in s ) h . push ( [ u , s [ u ] ] ) ; h . sort ( i ) . reverse ( ) ; for ( var d = [ ] , u = 0 , f = Math . min ( t , h . length ) ; f > u ; u ++ ) c . hasFlag ( h [ u ] [ 0 ] , "NOSUGGEST" ) || d . push ( h [ u ] [ 0 ] ) ; return d } if ( t || ( t = 5 ) , this . check ( e ) ) return [ ] ; for ( var o = 0 , a = this . replacementTable . length ; a > o ; o ++ ) { var l = this . replacementTable [ o ] ; if ( - 1 !== e . indexOf ( l [ 0 ] ) ) { var s = e . replace ( l [ 0 ] , l [ 1 ] ) ; if ( this . check ( s ) ) return [ s ] } } var c = this ; return c . alphabet = "abcdefghijklmnopqrstuvwxyz" , i ( e ) } } , "undefined" != typeof t && ( t . exports = i ) } ) . call ( this , e ( "buffer" ) . Buffer , "/node_modules/typo-js" ) } , { buffer : 3 , fs : 2 } ] , 19 : [ function ( e , t , n ) { var r = e ( "codemirror" ) ; r . commands . tabAndIndentMarkdownList = function ( e ) { var t = e . listSelections ( ) , n = t [ 0 ] . head , r = e . getStateAfter ( n . line ) , i = r . list !== ! 1 ; if ( i ) return void e . execCommand ( "indentMore" ) ; if ( e . options . indentWithTabs ) e . execCommand ( "insertTab" ) ; else { var o = Array ( e . options . tabSize + 1 ) . join ( " " ) ; e . replaceSelection ( o ) } } , r . commands . shiftTabAndUnindentMarkdownList = function ( e ) { var t = e . listSelections ( ) , n = t [ 0 ] . head , r = e . getStateAfter ( n . line ) , i = r . list !== ! 1 ; if ( i ) return void e . execCommand ( "indentLess" ) ; if ( e . options . indentWithTabs ) e . execCommand ( "insertTab" ) ; else { var o = Array ( e . options . tabSize + 1 ) . join ( " " ) ; e . replaceSelection ( o ) } } } , { codemirror : 10 } ] , 20 : [ function ( e , t , n ) { "use strict" ; function r ( e ) { return e = U ? e . replace ( "Ctrl" , "Cmd" ) : e . replace ( "Cmd" , "Ctrl" ) } function i ( e , t , n ) { e = e || { } ; var r = document . createElement ( "a" ) ; return t = void 0 == t || t , e . title && t && ( r . title = a ( e . title , e . action , n ) , U && ( r . title = r . title . replace ( "Ctrl" , "⌘" ) , r . title = r . title . replace ( "Alt" , "⌥" ) ) ) , r . tabIndex = - 1 , r . className = e . className , r } function o ( ) { var e = document . createElement ( "i" ) ; return e . className = "separator" , e . innerHTML = "|" , e } function a ( e , t , n ) { var i , o = e ; return t && ( i = Y ( t ) , n [ i ] && ( o += " (" + r ( n [ i ] ) + ")" ) ) , o } function l ( e , t ) { t = t || e . getCursor ( "start" ) ; var n = e . getTokenAt ( t ) ; if ( ! n . type ) return { } ; for ( var r , i , o = n . type . split ( " " ) , a = { } , l = 0 ; l < o . length ; l ++ ) r = o [ l ] , "strong" === r ? a . bold = ! 0 : "variable-2" === r ? ( i = e . getLine ( t . line ) , /^\s*\d+\.\s/ . test ( i ) ? a [ "ordered-list" ] = ! 0 : a [ "unordered-list" ] = ! 0 ) : "atom" === r ? a . quote = ! 0 : "em" === r ? a . italic = ! 0 : "quote" === r ? a . quote = ! 0 : "strikethrough" === r ? a . strikethrough = ! 0 : "comment" === r ? a . code = ! 0 : "link" === r ? a . link = ! 0 : "tag" === r ? a . image = ! 0 : r . match ( /^header(\-[1-6])?$/ ) && ( a [ r . replace ( "header" , "heading" ) ] = ! 0 ) ; return a } function s ( e ) { var t = e . codemirror ; t . setOption ( "fullScreen" , ! t . getOption ( "fullScreen" ) ) , t . getOption ( "fullScreen" ) ? ( V = document . body . style . overflow , document . body . style . overflow = "hidden" ) : document . body . style . overflow = V ; var n = t . getWrapperElement ( ) ; /fullscreen/ . test ( n . previousSibling . className ) ? n . previousSibling . className = n . previousSibling . className . replace ( /\s*fullscreen\b/ , "" ) : n . previousSibling . className += " fullscreen" ; var r = e . toolbarElements . fullscreen ; /active/ . test ( r . className ) ? r . className = r . className . replace ( /\s*active\s*/g , "" ) : r . className += " active" ; var i = t . getWrapperElement ( ) . nextSibling ; /editor-preview-active-side/ . test ( i . className ) && N ( e ) } function c ( e ) { P ( e , "bold" , e . options . blockStyles . bold ) } function u ( e ) { P ( e , "italic" , e . options . blockStyles . italic ) } function f ( e ) { P ( e , "strikethrough" , "~~" ) } function h ( e ) { function t ( e ) { if ( "object" != typeof e ) throw "fencing_line() takes a 'line' object (not a line number, or line text). Got: " + typeof e + ": " + e ; return e . styles && e . styles [ 2 ] && - 1 !== e . styles [ 2 ] . indexOf ( "formatting-code-block" ) } function n ( e ) { return e . state . base . base || e . state . b
if ( Array . prototype . indexOf ) return e . indexOf ( t , n ) ; for ( var r = n || 0 ; r < e . length ; r ++ ) if ( e [ r ] === t ) return r ; return - 1 } var r = { exec : RegExp . prototype . exec , test : RegExp . prototype . test , match : String . prototype . match , replace : String . prototype . replace , split : String . prototype . split } , i = void 0 === r . exec . call ( /()??/ , "" ) [ 1 ] , s = function ( ) { var e = /^/g ; return r . test . call ( e , "" ) , ! e . lastIndex } ( ) ; s && i || ( RegExp . prototype . exec = function ( e ) { var n , a , t = r . exec . apply ( this , arguments ) ; if ( "string" == typeof e && t ) { if ( ! i && t . length > 1 && u ( t , "" ) > - 1 && ( a = RegExp ( this . source , r . replace . call ( o ( this ) , "g" , "" ) ) , r . replace . call ( e . slice ( t . index ) , a , function ( ) { for ( var e = 1 ; e < arguments . length - 2 ; e ++ ) void 0 === arguments [ e ] && ( t [ e ] = void 0 ) } ) ) , this . _xregexp && this . _xregexp . captureNames ) for ( var f = 1 ; f < t . length ; f ++ ) n = this . _xregexp . captureNames [ f - 1 ] , n && ( t [ n ] = t [ f ] ) ; ! s && this . global && ! t [ 0 ] . length && this . lastIndex > t . index && this . lastIndex -- } return t } , s || ( RegExp . prototype . test = function ( e ) { var t = r . exec . call ( this , e ) ; return t && this . global && ! t [ 0 ] . length && this . lastIndex > t . index && this . lastIndex -- , ! ! t } ) ) } ) , ace . define ( "ace/lib/es5-shim" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { function r ( ) { } function w ( e ) { try { return Object . defineProperty ( e , "sentinel" , { } ) , "sentinel" in e } catch ( t ) { } } function H ( e ) { return e = + e , e !== e ? e = 0 : 0 !== e && e !== 1 / 0 && e !== - 1 / 0 && ( e = ( e > 0 || - 1 ) * Math . floor ( Math . abs ( e ) ) ) , e } Function . prototype . bind || ( Function . prototype . bind = function ( t ) { var n = this ; if ( "function" != typeof n ) throw new TypeError ( "Function.prototype.bind called on incompatible " + n ) ; var i = u . call ( arguments , 1 ) , s = function ( ) { if ( this instanceof s ) { var e = n . apply ( this , i . concat ( u . call ( arguments ) ) ) ; return Object ( e ) === e ? e : this } return n . apply ( t , i . concat ( u . call ( arguments ) ) ) } ; return n . prototype && ( r . prototype = n . prototype , s . prototype = new r , r . prototype = null ) , s } ) ; var l , c , h , p , d , i = Function . prototype . call , s = Array . prototype , o = Object . prototype , u = s . slice , a = i . bind ( o . toString ) , f = i . bind ( o . hasOwnProperty ) ; if ( ( d = f ( o , "__defineGetter__" ) ) && ( l = i . bind ( o . _ _defineGetter _ _ ) , c = i . bind ( o . _ _defineSetter _ _ ) , h = i . bind ( o . _ _lookupGetter _ _ ) , p = i . bind ( o . _ _lookupSetter _ _ ) ) , 2 != [ 1 , 2 ] . splice ( 0 ) . length ) if ( function ( ) { function e ( e ) { var t = new Array ( e + 2 ) ; return t [ 0 ] = t [ 1 ] = 0 , t } var n , t = [ ] ; if ( t . splice . apply ( t , e ( 20 ) ) , t . splice . apply ( t , e ( 26 ) ) , n = t . length , t . splice ( 5 , 0 , "XXX" ) , n + 1 == t . length , n + 1 == t . length ) return ! 0 } ( ) ) { var v = Array . prototype . splice ; Array . prototype . splice = function ( e , t ) { return arguments . length ? v . apply ( this , [ void 0 === e ? 0 : e , void 0 === t ? this . length - e : t ] . concat ( u . call ( arguments , 2 ) ) ) : [ ] } } else Array . prototype . splice = function ( e , t ) { var n = this . length ; e > 0 ? e > n && ( e = n ) : void 0 == e ? e = 0 : e < 0 && ( e = Math . max ( n + e , 0 ) ) , e + t < n || ( t = n - e ) ; var r = this . slice ( e , e + t ) , i = u . call ( arguments , 2 ) , s = i . length ; if ( e === n ) s && this . push . apply ( this , i ) ; else { var o = Math . min ( t , n - e ) , a = e + o , f = a + s - o , l = n - a , c = n - o ; if ( f < a ) for ( var h = 0 ; h < l ; ++ h ) this [ f + h ] = this [ a + h ] ; else if ( f > a ) for ( h = l ; h -- ; ) this [ f + h ] = this [ a + h ] ; if ( s && e === c ) this . length = c , this . push . apply ( this , i ) ; else for ( this . length = c + s , h = 0 ; h < s ; ++ h ) this [ e + h ] = i [ h ] } return r } ; Array . isArray || ( Array . isArray = function ( t ) { return "[object Array]" == a ( t ) } ) ; var m = Object ( "a" ) , g = "a" != m [ 0 ] || ! ( 0 in m ) ; if ( Array . prototype . forEach || ( Array . prototype . forEach = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = arguments [ 1 ] , s = - 1 , o = r . length >>> 0 ; if ( "[object Function]" != a ( t ) ) throw new TypeError ; for ( ; ++ s < o ; ) s in r && t . call ( i , r [ s ] , s , n ) } ) , Array . prototype . map || ( Array . prototype . map = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = Array ( i ) , o = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; for ( var u = 0 ; u < i ; u ++ ) u in r && ( s [ u ] = t . call ( o , r [ u ] , u , n ) ) ; return s } ) , Array . prototype . filter || ( Array . prototype . filter = function ( t ) { var o , n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = [ ] , u = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError ( t + " is not a function" ) ; for ( var f = 0 ; f < i ; f ++ ) f in r && ( o = r [ f ] , t . call ( u , o , f , n ) && s . push ( o ) ) ; return s } ) , Array . prototype . every || ( Array . prototype . every = function ( t ) { var n = F ( this ) , r = g && "[object String]" == a ( this ) ? this . split ( "" ) : n , i = r . length >>> 0 , s = arguments [ 1 ] ; if ( "[object Function]" != a ( t ) ) throw new TypeError (
} , this . startSelect = function ( e , t ) { e = e || this . editor . renderer . screenToTextCoordinates ( this . x , this . y ) ; var n = this . editor ; n . $blockScrolling ++ , this . mousedownEvent . getShiftKey ( ) ? n . selection . selectToPosition ( e ) : t || n . selection . moveToPosition ( e ) , t || this . select ( ) , n . renderer . scroller . setCapture && n . renderer . scroller . setCapture ( ) , n . setStyle ( "ace_selecting" ) , this . setState ( "select" ) , n . $blockScrolling -- } , this . select = function ( ) { var e , t = this . editor , n = t . renderer . screenToTextCoordinates ( this . x , this . y ) ; if ( t . $blockScrolling ++ , this . $clickSelection ) { var r = this . $clickSelection . comparePoint ( n ) ; if ( r == - 1 ) e = this . $clickSelection . end ; else if ( 1 == r ) e = this . $clickSelection . start ; else { var i = f ( this . $clickSelection , n ) ; n = i . cursor , e = i . anchor } t . selection . setSelectionAnchor ( e . row , e . column ) } t . selection . selectToPosition ( n ) , t . $blockScrolling -- , t . renderer . scrollCursorIntoView ( ) } , this . extendSelectionBy = function ( e ) { var t , n = this . editor , r = n . renderer . screenToTextCoordinates ( this . x , this . y ) , i = n . selection [ e ] ( r . row , r . column ) ; if ( n . $blockScrolling ++ , this . $clickSelection ) { var s = this . $clickSelection . comparePoint ( i . start ) , o = this . $clickSelection . comparePoint ( i . end ) ; if ( s == - 1 && o <= 0 ) t = this . $clickSelection . end , i . end . row == r . row && i . end . column == r . column || ( r = i . start ) ; else if ( 1 == o && s >= 0 ) t = this . $clickSelection . start , i . start . row == r . row && i . start . column == r . column || ( r = i . end ) ; else if ( s == - 1 && 1 == o ) r = i . end , t = i . start ; else { var u = f ( this . $clickSelection , r ) ; r = u . cursor , t = u . anchor } n . selection . setSelectionAnchor ( t . row , t . column ) } n . selection . selectToPosition ( r ) , n . $blockScrolling -- , n . renderer . scrollCursorIntoView ( ) } , this . selectEnd = this . selectAllEnd = this . selectByWordsEnd = this . selectByLinesEnd = function ( ) { this . $clickSelection = null , this . editor . unsetStyle ( "ace_selecting" ) , this . editor . renderer . scroller . releaseCapture && this . editor . renderer . scroller . releaseCapture ( ) } , this . focusWait = function ( ) { var e = a ( this . mousedownEvent . x , this . mousedownEvent . y , this . x , this . y ) , t = Date . now ( ) ; ( e > o || t - this . mousedownEvent . time > this . $focusTimout ) && this . startSelect ( this . mousedownEvent . getDocumentPosition ( ) ) } , this . onDoubleClick = function ( e ) { var t = e . getDocumentPosition ( ) , n = this . editor , r = n . session , i = r . getBracketRange ( t ) ; i ? ( i . isEmpty ( ) && ( i . start . column -- , i . end . column ++ ) , this . setState ( "select" ) ) : ( i = n . selection . getWordRange ( t . row , t . column ) , this . setState ( "selectByWords" ) ) , this . $clickSelection = i , this . select ( ) } , this . onTripleClick = function ( e ) { var t = e . getDocumentPosition ( ) , n = this . editor ; this . setState ( "selectByLines" ) ; var r = n . getSelectionRange ( ) ; r . isMultiLine ( ) && r . contains ( t . row , t . column ) ? ( this . $clickSelection = n . selection . getLineRange ( r . start . row ) , this . $clickSelection . end = n . selection . getLineRange ( r . end . row ) . end ) : this . $clickSelection = n . selection . getLineRange ( t . row ) , this . select ( ) } , this . onQuadClick = function ( e ) { var t = this . editor ; t . selectAll ( ) , this . $clickSelection = t . getSelectionRange ( ) , this . setState ( "selectAll" ) } , this . onMouseWheel = function ( e ) { if ( ! e . getAccelKey ( ) ) { e . getShiftKey ( ) && e . wheelY && ! e . wheelX && ( e . wheelX = e . wheelY , e . wheelY = 0 ) ; var t = e . domEvent . timeStamp , n = t - ( this . $lastScrollTime || 0 ) , r = this . editor , i = r . renderer . isScrollableBy ( e . wheelX * e . speed , e . wheelY * e . speed ) ; return i || n < 200 ? ( this . $lastScrollTime = t , r . renderer . scrollBy ( e . wheelX * e . speed , e . wheelY * e . speed ) , e . stop ( ) ) : void 0 } } , this . onTouchMove = function ( e ) { var t = e . domEvent . timeStamp , n = t - ( this . $lastScrollTime || 0 ) , r = this . editor , i = r . renderer . isScrollableBy ( e . wheelX * e . speed , e . wheelY * e . speed ) ; if ( i || n < 200 ) return this . $lastScrollTime = t , r . renderer . scrollBy ( e . wheelX * e . speed , e . wheelY * e . speed ) , e . stop ( ) } } ) . call ( u . prototype ) , t . DefaultHandlers = u } ) , ace . define ( "ace/tooltip" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; function s ( e ) { this . isOpen = ! 1 , this . $element = null , this . $parentNode = e } var i = ( e ( "./lib/oop" ) , e ( "./lib/dom" ) ) ; ( function ( ) { this . $init = function ( ) { return this . $element = i . createElement ( "div" ) , this . $element . className = "ace_tooltip" , this . $element . style . display = "none" , this . $parentNode . appendChild ( this . $element ) , this . $element } , this . getElement = function ( ) { return this . $element || this . $init ( ) } , this . setText = function ( e ) { i . setInnerText ( this . getElement ( ) , e ) } , this . setHtml = function ( e ) { this . getElemen
var t = this ; this . lead . on ( "change" , function ( e ) { t . _emit ( "changeCursor" ) , t . $isEmpty || t . _emit ( "changeSelection" ) , ! t . $keepDesiredColumnOnChange && e . old . column != e . value . column && ( t . $desiredColumn = null ) } ) , this . selectionAnchor . on ( "change" , function ( ) { t . $isEmpty || t . _emit ( "changeSelection" ) } ) } ; ( function ( ) { r . implement ( this , s ) , this . isEmpty = function ( ) { return this . $isEmpty || this . anchor . row == this . lead . row && this . anchor . column == this . lead . column } , this . isMultiLine = function ( ) { return ! this . isEmpty ( ) && this . getRange ( ) . isMultiLine ( ) } , this . getCursor = function ( ) { return this . lead . getPosition ( ) } , this . setSelectionAnchor = function ( e , t ) { this . anchor . setPosition ( e , t ) , this . $isEmpty && ( this . $isEmpty = ! 1 , this . _emit ( "changeSelection" ) ) } , this . getSelectionAnchor = function ( ) { return this . $isEmpty ? this . getSelectionLead ( ) : this . anchor . getPosition ( ) } , this . getSelectionLead = function ( ) { return this . lead . getPosition ( ) } , this . shiftSelection = function ( e ) { if ( this . $isEmpty ) return void this . moveCursorTo ( this . lead . row , this . lead . column + e ) ; var t = this . getSelectionAnchor ( ) , n = this . getSelectionLead ( ) , r = this . isBackwards ( ) ; ( ! r || 0 !== t . column ) && this . setSelectionAnchor ( t . row , t . column + e ) , ( r || 0 !== n . column ) && this . $moveSelection ( function ( ) { this . moveCursorTo ( n . row , n . column + e ) } ) } , this . isBackwards = function ( ) { var e = this . anchor , t = this . lead ; return e . row > t . row || e . row == t . row && e . column > t . column } , this . getRange = function ( ) { var e = this . anchor , t = this . lead ; return this . isEmpty ( ) ? o . fromPoints ( t , t ) : this . isBackwards ( ) ? o . fromPoints ( t , e ) : o . fromPoints ( e , t ) } , this . clearSelection = function ( ) { this . $isEmpty || ( this . $isEmpty = ! 0 , this . _emit ( "changeSelection" ) ) } , this . selectAll = function ( ) { var e = this . doc . getLength ( ) - 1 ; this . setSelectionAnchor ( 0 , 0 ) , this . moveCursorTo ( e , this . doc . getLine ( e ) . length ) } , this . setRange = this . setSelectionRange = function ( e , t ) { t ? ( this . setSelectionAnchor ( e . end . row , e . end . column ) , this . selectTo ( e . start . row , e . start . column ) ) : ( this . setSelectionAnchor ( e . start . row , e . start . column ) , this . selectTo ( e . end . row , e . end . column ) ) , this . getRange ( ) . isEmpty ( ) && ( this . $isEmpty = ! 0 ) , this . $desiredColumn = null } , this . $moveSelection = function ( e ) { var t = this . lead ; this . $isEmpty && this . setSelectionAnchor ( t . row , t . column ) , e . call ( this ) } , this . selectTo = function ( e , t ) { this . $moveSelection ( function ( ) { this . moveCursorTo ( e , t ) } ) } , this . selectToPosition = function ( e ) { this . $moveSelection ( function ( ) { this . moveCursorToPosition ( e ) } ) } , this . moveTo = function ( e , t ) { this . clearSelection ( ) , this . moveCursorTo ( e , t ) } , this . moveToPosition = function ( e ) { this . clearSelection ( ) , this . moveCursorToPosition ( e ) } , this . selectUp = function ( ) { this . $moveSelection ( this . moveCursorUp ) } , this . selectDown = function ( ) { this . $moveSelection ( this . moveCursorDown ) } , this . selectRight = function ( ) { this . $moveSelection ( this . moveCursorRight ) } , this . selectLeft = function ( ) { this . $moveSelection ( this . moveCursorLeft ) } , this . selectLineStart = function ( ) { this . $moveSelection ( this . moveCursorLineStart ) } , this . selectLineEnd = function ( ) { this . $moveSelection ( this . moveCursorLineEnd ) } , this . selectFileEnd = function ( ) { this . $moveSelection ( this . moveCursorFileEnd ) } , this . selectFileStart = function ( ) { this . $moveSelection ( this . moveCursorFileStart ) } , this . selectWordRight = function ( ) { this . $moveSelection ( this . moveCursorWordRight ) } , this . selectWordLeft = function ( ) { this . $moveSelection ( this . moveCursorWordLeft ) } , this . getWordRange = function ( e , t ) { if ( "undefined" == typeof t ) { var n = e || this . lead ; e = n . row , t = n . column } return this . session . getWordRange ( e , t ) } , this . selectWord = function ( ) { this . setSelectionRange ( this . getWordRange ( ) ) } , this . selectAWord = function ( ) { var e = this . getCursor ( ) , t = this . session . getAWordRange ( e . row , e . column ) ; this . setSelectionRange ( t ) } , this . getLineRange = function ( e , t ) { var r , n = "number" == typeof e ? e : this . lead . row , i = this . session . getFoldLine ( n ) ; return i ? ( n = i . start . row , r = i . end . row ) : r = n , t === ! 0 ? new o ( n , 0 , r , this . session . getLine ( r ) . length ) : new o ( n , 0 , r + 1 , 0 ) } , this . selectLine = function ( ) { this . setSelectionRange ( this . getLineRange ( ) ) } , this . moveCursorUp = function ( ) { this . moveCursorBy ( - 1 , 0 ) } , this . moveCursorDown = function ( ) { this . moveCursorBy ( 1 , 0 ) } , this . moveCursorLeft = function ( ) { var t , e = this . lead . getPosition ( ) ; if ( t = this . session . getFoldAt ( e . row , e . column , - 1 ) ) this . moveCursorTo ( t . start . row , t . start . column ) ; else
Lt : "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC" , Lm : "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F" , Lo : "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC" , M : "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26" , Mn : " 0300 - 036 F0483 - 04870591 - 05 BD05BF05C105C205C405C505C70610 - 061 A064B - 065E067006 D6 - 06 DC06DF - 06E406 E706E806EA - 06 ED07110730 - 074 A07A6 - 07 B007EB - 07 F30816 - 0819081 B - 08230825 - 08270829 - 082 D0900 - 0902093 C0941 - 0948094 D0951 - 095509620963098109 BC09C1 - 09 C409CD09E209E30A010A020A3C0A
for ( var n = this . $lines || this . getAllLines ( ) , r = this . getNewLineCharacter ( ) . length , i = 0 , s = Math . min ( e . row , n . length ) , o = t || 0 ; o < s ; ++ o ) i += n [ o ] . length + r ; return i + e . column } } ) . call ( a . prototype ) , t . Document = a } ) , ace . define ( "ace/background_tokenizer" , [ "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 = function ( e , t ) { this . running = ! 1 , this . lines = [ ] , this . states = [ ] , this . currentLine = 0 , this . tokenizer = e ; var n = this ; this . $worker = function ( ) { if ( n . running ) { for ( var e = new Date , t = n . currentLine , r = - 1 , i = n . doc , s = t ; n . lines [ t ] ; ) t ++ ; var o = i . getLength ( ) , u = 0 ; for ( n . running = ! 1 ; t < o ; ) { n . $tokenizeRow ( t ) , r = t ; do t ++ ; while ( n . lines [ t ] ) ; if ( u ++ , u % 5 === 0 && new Date - e > 20 ) { n . running = setTimeout ( n . $worker , 20 ) ; break } } n . currentLine = t , s <= r && n . fireUpdateEvent ( s , r ) } } } ; ( function ( ) { r . implement ( this , i ) , this . setTokenizer = function ( e ) { this . tokenizer = e , this . lines = [ ] , this . states = [ ] , this . start ( 0 ) } , this . setDocument = function ( e ) { this . doc = e , this . lines = [ ] , this . states = [ ] , this . stop ( ) } , this . fireUpdateEvent = function ( e , t ) { var n = { first : e , last : t } ; this . _signal ( "update" , { data : n } ) } , this . start = function ( e ) { this . currentLine = Math . min ( e || 0 , this . currentLine , this . doc . getLength ( ) ) , this . lines . splice ( this . currentLine , this . lines . length ) , this . states . splice ( this . currentLine , this . states . length ) , this . stop ( ) , this . running = setTimeout ( this . $worker , 700 ) } , this . scheduleStart = function ( ) { this . running || ( this . running = setTimeout ( this . $worker , 700 ) ) } , this . $updateOnChange = function ( e ) { var t = e . start . row , n = e . end . row - t ; if ( 0 === n ) this . lines [ t ] = null ; else if ( "remove" == e . action ) this . lines . splice ( t , n + 1 , null ) , this . states . splice ( t , n + 1 , null ) ; else { var r = Array ( n + 1 ) ; r . unshift ( t , 1 ) , this . lines . splice . apply ( this . lines , r ) , this . states . splice . apply ( this . states , r ) } this . currentLine = Math . min ( t , this . currentLine , this . doc . getLength ( ) ) , this . stop ( ) } , this . stop = function ( ) { this . running && clearTimeout ( this . running ) , this . running = ! 1 } , this . getTokens = function ( e ) { return this . lines [ e ] || this . $tokenizeRow ( e ) } , this . getState = function ( e ) { return this . currentLine == e && this . $tokenizeRow ( e ) , this . states [ e ] || "start" } , this . $tokenizeRow = function ( e ) { var t = this . doc . getLine ( e ) , n = this . states [ e - 1 ] , r = this . tokenizer . getLineTokens ( t , n , e ) ; return this . states [ e ] + "" != r . state + "" ? ( this . states [ e ] = r . state , this . lines [ e + 1 ] = null , this . currentLine > e + 1 && ( this . currentLine = e + 1 ) ) : this . currentLine == e && ( this . currentLine = e + 1 ) , this . lines [ e ] = r . tokens } } ) . call ( s . prototype ) , t . BackgroundTokenizer = s } ) , ace . define ( "ace/search_highlight" , [ "require" , "exports" , "module" , "ace/lib/lang" , "ace/lib/oop" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/lang" ) , s = ( e ( "./lib/oop" ) , e ( "./range" ) . Range ) , o = function ( e , t , n ) { this . setRegexp ( e ) , this . clazz = t , this . type = n || "text" } ; ( function ( ) { this . MAX _RANGES = 500 , this . setRegexp = function ( e ) { this . regExp + "" != e + "" && ( this . regExp = e , this . cache = [ ] ) } , this . update = function ( e , t , n , i ) { if ( this . regExp ) for ( var o = i . firstRow , u = i . lastRow , a = o ; a <= u ; a ++ ) { var f = this . cache [ a ] ; null == f && ( f = r . getMatchOffsets ( n . getLine ( a ) , this . regExp ) , f . length > this . MAX _RANGES && ( f = f . slice ( 0 , this . MAX _RANGES ) ) , f = f . map ( function ( e ) { return new s ( a , e . offset , a , e . offset + e . length ) } ) , this . cache [ a ] = f . length ? f : "" ) ; for ( var l = f . length ; l -- ; ) t . drawSingleLineMarker ( e , f [ l ] . toScreenRange ( n ) , this . clazz , i ) } } } ) . call ( o . prototype ) , t . SearchHighlight = o } ) , ace . define ( "ace/edit_session/fold_line" , [ "require" , "exports" , "module" , "ace/range" ] , function ( e , t , n ) { "use strict" ; function i ( e , t ) { this . foldData = e , Array . isArray ( t ) ? this . folds = t : t = this . folds = [ t ] ; var n = t [ t . length - 1 ] ; this . range = new r ( t [ 0 ] . start . row , t [ 0 ] . start . column , n . end . row , n . end . column ) , this . start = this . range . start , this . end = this . range . end , this . folds . forEach ( function ( e ) { e . setFoldLine ( this ) } , this ) } var r = e ( "../range" ) . Range ; ( function ( ) { this . shiftRow = function ( e ) { this . start . row += e , this . end . row += e , this . folds . forEach ( function ( t ) { t . start . row += e , t . end . row += e } ) } , this . addFold = function ( e ) { if ( e . sameRow ) { if ( e . start . row < this . startRow || e . endRow > this . endRow ) throw new Error ( "Can't add a fold to this FoldLine as it has no connection" ) ; this . folds . push ( e ) , this . folds . sort ( function ( e , t ) { return - e . range . compareEnd ( t . start . row , t . start . column
} , this . onReloadTokenizer = function ( e ) { var t = e . data ; this . bgTokenizer . start ( t . first ) , this . _signal ( "tokenizerUpdate" , e ) } , this . $modes = { } , this . $mode = null , this . $modeId = null , this . setMode = function ( e , t ) { if ( e && "object" == typeof e ) { if ( e . getTokenizer ) return this . $onChangeMode ( e ) ; var n = e , r = n . path } else r = e || "ace/mode/text" ; return this . $modes [ "ace/mode/text" ] || ( this . $modes [ "ace/mode/text" ] = new a ) , this . $modes [ r ] && ! n ? ( this . $onChangeMode ( this . $modes [ r ] ) , void ( t && t ( ) ) ) : ( this . $modeId = r , s . loadModule ( [ "mode" , r ] , function ( e ) { return this . $modeId !== r ? t && t ( ) : ( this . $modes [ r ] && ! n ? this . $onChangeMode ( this . $modes [ r ] ) : e && e . Mode && ( e = new e . Mode ( n ) , n || ( this . $modes [ r ] = e , e . $id = r ) , this . $onChangeMode ( e ) ) , void ( t && t ( ) ) ) } . bind ( this ) ) , this . $mode || this . $onChangeMode ( this . $modes [ "ace/mode/text" ] , ! 0 ) , void 0 ) } , this . $onChangeMode = function ( e , t ) { if ( t || ( this . $modeId = e . $id ) , this . $mode !== e ) { this . $mode = e , this . $stopWorker ( ) , this . $useWorker && this . $startWorker ( ) ; var n = e . getTokenizer ( ) ; if ( void 0 !== n . addEventListener ) { var r = this . onReloadTokenizer . bind ( this ) ; n . addEventListener ( "update" , r ) } if ( this . bgTokenizer ) this . bgTokenizer . setTokenizer ( n ) ; else { this . bgTokenizer = new c ( n ) ; var i = this ; this . bgTokenizer . addEventListener ( "update" , function ( e ) { i . _signal ( "tokenizerUpdate" , e ) } ) } this . bgTokenizer . setDocument ( this . getDocument ( ) ) , this . tokenRe = e . tokenRe , this . nonTokenRe = e . nonTokenRe , t || ( e . attachToSession && e . attachToSession ( this ) , this . $options . wrapMethod . set . call ( this , this . $wrapMethod ) , this . $setFolding ( e . foldingRules ) , this . bgTokenizer . start ( 0 ) , this . _emit ( "changeMode" ) ) } } , this . $stopWorker = function ( ) { this . $worker && ( this . $worker . terminate ( ) , this . $worker = null ) } , this . $startWorker = function ( ) { try { this . $worker = this . $mode . createWorker ( this ) } catch ( e ) { s . warn ( "Could not load worker" , e ) , this . $worker = null } } , this . getMode = function ( ) { return this . $mode } , this . $scrollTop = 0 , this . setScrollTop = function ( e ) { this . $scrollTop === e || isNaN ( e ) || ( this . $scrollTop = e , this . _signal ( "changeScrollTop" , e ) ) } , this . getScrollTop = function ( ) { return this . $scrollTop } , this . $scrollLeft = 0 , this . setScrollLeft = function ( e ) { this . $scrollLeft === e || isNaN ( e ) || ( this . $scrollLeft = e , this . _signal ( "changeScrollLeft" , e ) ) } , this . getScrollLeft = function ( ) { return this . $scrollLeft } , this . getScreenWidth = function ( ) { return this . $computeWidth ( ) , this . lineWidgets ? Math . max ( this . getLineWidgetMaxWidth ( ) , this . screenWidth ) : this . screenWidth } , this . getLineWidgetMaxWidth = function ( ) { if ( null != this . lineWidgetsWidth ) return this . lineWidgetsWidth ; var e = 0 ; return this . lineWidgets . forEach ( function ( t ) { t && t . screenWidth > e && ( e = t . screenWidth ) } ) , this . lineWidgetWidth = e } , this . $computeWidth = function ( e ) { if ( this . $modified || e ) { if ( this . $modified = ! 1 , this . $useWrapMode ) return this . screenWidth = this . $wrapLimit ; for ( var t = this . doc . getAllLines ( ) , n = this . $rowLengthCache , r = 0 , i = 0 , s = this . $foldData [ i ] , o = s ? s . start . row : 1 / 0 , u = t . length , a = 0 ; a < u ; a ++ ) { if ( a > o ) { if ( a = s . end . row + 1 , a >= u ) break ; s = this . $foldData [ i ++ ] , o = s ? s . start . row : 1 / 0 } null == n [ a ] && ( n [ a ] = this . $getStringScreenWidth ( t [ a ] ) [ 0 ] ) , n [ a ] > r && ( r = n [ a ] ) } this . screenWidth = r } } , this . getLine = function ( e ) { return this . doc . getLine ( e ) } , this . getLines = function ( e , t ) { return this . doc . getLines ( e , t ) } , this . getLength = function ( ) { return this . doc . getLength ( ) } , this . getTextRange = function ( e ) { return this . doc . getTextRange ( e || this . selection . getRange ( ) ) } , this . insert = function ( e , t ) { return this . doc . insert ( e , t ) } , this . remove = function ( e ) { return this . doc . remove ( e ) } , this . removeFullLines = function ( e , t ) { return this . doc . removeFullLines ( e , t ) } , this . undoChanges = function ( e , t ) { if ( e . length ) { this . $fromUndo = ! 0 ; for ( var n = null , r = e . length - 1 ; r != - 1 ; r -- ) { var i = e [ r ] ; "doc" == i . group ? ( this . doc . revertDeltas ( i . deltas ) , n = this . $getUndoSelection ( i . deltas , ! 0 , n ) ) : i . deltas . forEach ( function ( e ) { this . addFolds ( e . folds ) } , this ) } return this . $fromUndo = ! 1 , n && this . $undoSelect && ! t && this . selection . setSelectionRange ( n ) , n } } , this . redoChanges = function ( e , t ) { if ( e . length ) { this . $fromUndo = ! 0 ; for ( var n = null , r = 0 ; r < e . length ; r ++ ) { var i = e [ r ] ; "doc" == i . group && ( this . doc . applyDeltas ( i . deltas ) , n = this . $getUndoSelection ( i . deltas , ! 1 , n ) ) } return this . $fromUndo = ! 1 , n && this . $undoSelect && ! t && this . selection . setSelectionRange ( n ) , n } } , this . setUndoSelect = function ( e ) { this . $undoSelect = e } , this . $ge
readOnly : ! 0 } , { name : "selectleft" , bindKey : o ( "Shift-Left" , "Shift-Left" ) , exec : function ( e ) { e . getSelection ( ) . selectLeft ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotoleft" , bindKey : o ( "Left" , "Left|Ctrl-B" ) , exec : function ( e , t ) { e . navigateLeft ( t . times ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectwordright" , bindKey : o ( "Ctrl-Shift-Right" , "Option-Shift-Right" ) , exec : function ( e ) { e . getSelection ( ) . selectWordRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotowordright" , bindKey : o ( "Ctrl-Right" , "Option-Right" ) , exec : function ( e ) { e . navigateWordRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selecttolineend" , bindKey : o ( "Alt-Shift-Right" , "Command-Shift-Right" ) , exec : function ( e ) { e . getSelection ( ) . selectLineEnd ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotolineend" , bindKey : o ( "Alt-Right|End" , "Command-Right|End|Ctrl-E" ) , exec : function ( e ) { e . navigateLineEnd ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectright" , bindKey : o ( "Shift-Right" , "Shift-Right" ) , exec : function ( e ) { e . getSelection ( ) . selectRight ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "gotoright" , bindKey : o ( "Right" , "Right|Ctrl-F" ) , exec : function ( e , t ) { e . navigateRight ( t . times ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectpagedown" , bindKey : "Shift-PageDown" , exec : function ( e ) { e . selectPageDown ( ) } , readOnly : ! 0 } , { name : "pagedown" , bindKey : o ( null , "Option-PageDown" ) , exec : function ( e ) { e . scrollPageDown ( ) } , readOnly : ! 0 } , { name : "gotopagedown" , bindKey : o ( "PageDown" , "PageDown|Ctrl-V" ) , exec : function ( e ) { e . gotoPageDown ( ) } , readOnly : ! 0 } , { name : "selectpageup" , bindKey : "Shift-PageUp" , exec : function ( e ) { e . selectPageUp ( ) } , readOnly : ! 0 } , { name : "pageup" , bindKey : o ( null , "Option-PageUp" ) , exec : function ( e ) { e . scrollPageUp ( ) } , readOnly : ! 0 } , { name : "gotopageup" , bindKey : "PageUp" , exec : function ( e ) { e . gotoPageUp ( ) } , readOnly : ! 0 } , { name : "scrollup" , bindKey : o ( "Ctrl-Up" , null ) , exec : function ( e ) { e . renderer . scrollBy ( 0 , - 2 * e . renderer . layerConfig . lineHeight ) } , readOnly : ! 0 } , { name : "scrolldown" , bindKey : o ( "Ctrl-Down" , null ) , exec : function ( e ) { e . renderer . scrollBy ( 0 , 2 * e . renderer . layerConfig . lineHeight ) } , readOnly : ! 0 } , { name : "selectlinestart" , bindKey : "Shift-Home" , exec : function ( e ) { e . getSelection ( ) . selectLineStart ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectlineend" , bindKey : "Shift-End" , exec : function ( e ) { e . getSelection ( ) . selectLineEnd ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "togglerecording" , bindKey : o ( "Ctrl-Alt-E" , "Command-Option-E" ) , exec : function ( e ) { e . commands . toggleRecording ( e ) } , readOnly : ! 0 } , { name : "replaymacro" , bindKey : o ( "Ctrl-Shift-E" , "Command-Shift-E" ) , exec : function ( e ) { e . commands . replay ( e ) } , readOnly : ! 0 } , { name : "jumptomatching" , bindKey : o ( "Ctrl-P" , "Ctrl-P" ) , exec : function ( e ) { e . jumpToMatching ( ) } , multiSelectAction : "forEach" , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "selecttomatching" , bindKey : o ( "Ctrl-Shift-P" , "Ctrl-Shift-P" ) , exec : function ( e ) { e . jumpToMatching ( ! 0 ) } , multiSelectAction : "forEach" , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "expandToMatching" , bindKey : o ( "Ctrl-Shift-M" , "Ctrl-Shift-M" ) , exec : function ( e ) { e . jumpToMatching ( ! 0 , ! 0 ) } , multiSelectAction : "forEach" , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "passKeysToBrowser" , bindKey : o ( null , null ) , exec : function ( ) { } , passEvent : ! 0 , readOnly : ! 0 } , { name : "copy" , exec : function ( e ) { } , readOnly : ! 0 } , { name : "cut" , exec : function ( e ) { var t = e . getSelectionRange ( ) ; e . _emit ( "cut" , t ) , e . selection . isEmpty ( ) || ( e . session . remove ( t ) , e . clearSelection ( ) ) } , scrollIntoView : "cursor" , multiSelectAction : "forEach" } , { name : "paste" , exec : function ( e , t ) { e . $handlePaste ( t ) } , scrollIntoView : "cursor" } , { name : "removeline" , bindKey : o ( "Ctrl-D" , "Command-D" ) , exec : function ( e ) { e . removeLines ( ) } , scrollIntoView : "cursor" , multiSelectAction : "forEachLine" } , { name : "duplicateSelection" , bindKey : o ( "Ctrl-Shift-D" , "Command-Shift-D" ) , exec : function ( e ) { e . duplicateSelection ( ) } , scrollIntoView : "cursor" , multiSelectAction : "forEach" } , { name : "sortlines" , bindKey : o ( "Ctrl-Alt-S" , "Command-Alt-S" ) , exec : funct
r . start . row = i , r . end . row = i , r . end . column = s . length , t . replace ( r , n [ i - e . first ] ) } } , this . toggleCommentLines = function ( ) { var e = this . session . getState ( this . getCursorPosition ( ) . row ) , t = this . $getSelectedRows ( ) ; this . session . getMode ( ) . toggleCommentLines ( e , this . session , t . first , t . last ) } , this . toggleBlockComment = function ( ) { var e = this . getCursorPosition ( ) , t = this . session . getState ( e . row ) , n = this . getSelectionRange ( ) ; this . session . getMode ( ) . toggleBlockComment ( t , this . session , n , e ) } , this . getNumberAt = function ( e , t ) { var n = /[\-]?[0-9]+(?:\.[0-9]+)?/g ; n . lastIndex = 0 ; for ( var r = this . session . getLine ( e ) ; n . lastIndex < t ; ) { var i = n . exec ( r ) ; if ( i . index <= t && i . index + i [ 0 ] . length >= t ) { var s = { value : i [ 0 ] , start : i . index , end : i . index + i [ 0 ] . length } ; return s } } return null } , this . modifyNumber = function ( e ) { var t = this . selection . getCursor ( ) . row , n = this . selection . getCursor ( ) . column , r = new p ( t , n - 1 , t , n ) , i = this . session . getTextRange ( r ) ; if ( ! isNaN ( parseFloat ( i ) ) && isFinite ( i ) ) { var s = this . getNumberAt ( t , n ) ; if ( s ) { var o = s . value . indexOf ( "." ) >= 0 ? s . start + s . value . indexOf ( "." ) + 1 : s . end , u = s . start + s . value . length - o , a = parseFloat ( s . value ) ; a *= Math . pow ( 10 , u ) , e *= o !== s . end && n < o ? Math . pow ( 10 , s . end - n - 1 ) : Math . pow ( 10 , s . end - n ) , a += e , a /= Math . pow ( 10 , u ) ; var f = a . toFixed ( u ) , l = new p ( t , s . start , t , s . end ) ; this . session . replace ( l , f ) , this . moveCursorTo ( t , Math . max ( s . start + 1 , n + f . length - s . value . length ) ) } } } , this . removeLines = function ( ) { var e = this . $getSelectedRows ( ) ; this . session . removeFullLines ( e . first , e . last ) , this . clearSelection ( ) } , this . duplicateSelection = function ( ) { var e = this . selection , t = this . session , n = e . getRange ( ) , r = e . isBackwards ( ) ; if ( n . isEmpty ( ) ) { var i = n . start . row ; t . duplicateLines ( i , i ) } else { var s = r ? n . start : n . end , o = t . insert ( s , t . getTextRange ( n ) , ! 1 ) ; n . start = s , n . end = o , e . setSelectionRange ( n , r ) } } , this . moveLinesDown = function ( ) { this . $moveLines ( 1 , ! 1 ) } , this . moveLinesUp = function ( ) { this . $moveLines ( - 1 , ! 1 ) } , this . moveText = function ( e , t , n ) { return this . session . moveText ( e , t , n ) } , this . copyLinesUp = function ( ) { this . $moveLines ( - 1 , ! 0 ) } , this . copyLinesDown = function ( ) { this . $moveLines ( 1 , ! 0 ) } , this . $moveLines = function ( e , t ) { var n , r , i = this . selection ; if ( ! i . inMultiSelectMode || this . inVirtualSelectionMode ) { var s = i . toOrientedRange ( ) ; n = this . $getSelectedRows ( s ) , r = this . session . $moveLines ( n . first , n . last , t ? 0 : e ) , t && e == - 1 && ( r = 0 ) , s . moveBy ( r , 0 ) , i . fromOrientedRange ( s ) } else { var o = i . rangeList . ranges ; i . rangeList . detach ( this . session ) , this . inVirtualSelectionMode = ! 0 ; for ( var u = 0 , a = 0 , f = o . length , l = 0 ; l < f ; l ++ ) { var c = l ; o [ l ] . moveBy ( u , 0 ) , n = this . $getSelectedRows ( o [ l ] ) ; for ( var h = n . first , p = n . last ; ++ l < f ; ) { a && o [ l ] . moveBy ( a , 0 ) ; var d = this . $getSelectedRows ( o [ l ] ) ; if ( t && d . first != p ) break ; if ( ! t && d . first > p + 1 ) break ; p = d . last } for ( l -- , u = this . session . $moveLines ( h , p , t ? 0 : e ) , t && e == - 1 && ( c = l + 1 ) ; c <= l ; ) o [ c ] . moveBy ( u , 0 ) , c ++ ; t || ( u = 0 ) , a += u } i . fromOrientedRange ( i . ranges [ 0 ] ) , i . rangeList . attach ( this . session ) , this . inVirtualSelectionMode = ! 1 } } , this . $getSelectedRows = function ( e ) { return e = ( e || this . getSelectionRange ( ) ) . collapseRows ( ) , { first : this . session . getRowFoldStart ( e . start . row ) , last : this . session . getRowFoldEnd ( e . end . row ) } } , this . onCompositionStart = function ( e ) { this . renderer . showComposition ( this . getCursorPosition ( ) ) } , this . onCompositionUpdate = function ( e ) { this . renderer . setCompositionText ( e ) } , this . onCompositionEnd = function ( ) { this . renderer . hideComposition ( ) } , this . getFirstVisibleRow = function ( ) { return this . renderer . getFirstVisibleRow ( ) } , this . getLastVisibleRow = function ( ) { return this . renderer . getLastVisibleRow ( ) } , this . isRowVisible = function ( e ) { return e >= this . getFirstVisibleRow ( ) && e <= this . getLastVisibleRow ( ) } , this . isRowFullyVisible = function ( e ) { return e >= this . renderer . getFirstFullyVisibleRow ( ) && e <= this . renderer . getLastFullyVisibleRow ( ) } , this . $getVisibleRowCount = function ( ) { return this . renderer . getScrollBottomRow ( ) - this . renderer . getScrollTopRow ( ) + 1 } , this . $moveByPage = function ( e , t ) { var n = this . renderer , r = this . renderer . layerConfig , i = e * Math . floor ( r . height / r . lineHeight ) ; this . $blockScrolling ++ , t === ! 0 ? this . selection . $moveSelection ( function ( ) { this . moveCursorBy ( i , 0 ) } ) : t === ! 1 && ( this . selection . moveCursorBy ( i , 0 ) , this . selection . clearSelection ( ) ) , this . $blockScrolling -- ; var s = n . scrollTop ; n . scrollBy ( 0 , i * r . lineHeight ) , null != t && n . scrollCursorIntoView ( null , . 5 ) , n . animateSc
r . push ( { type : e [ i ] . type , value : o } ) , s = t + o . length , i += 1 } for ( ; s < n && i < e . length ; ) { var o = e [ i ] . value ; o . length + s > n ? r . push ( { type : e [ i ] . type , value : o . substring ( 0 , n - s ) } ) : r . push ( e [ i ] ) , s += o . length , i += 1 } } var n = this . session , r = [ ] , s = n . getTokens ( e ) ; return t . walk ( function ( e , t , o , u , a ) { null != e ? r . push ( { type : "fold" , value : e } ) : ( a && ( s = n . getTokens ( t ) ) , s . length && i ( s , u , o ) ) } , t . end . row , this . session . getLine ( t . end . row ) . length ) , r } , this . $useLineGroups = function ( ) { return this . session . getUseWrapMode ( ) } , this . destroy = function ( ) { clearInterval ( this . $pollSizeChangesTimer ) , this . $measureNode && this . $measureNode . parentNode . removeChild ( this . $measureNode ) , delete this . $measureNode } } ) . call ( a . prototype ) , t . Text = a } ) , ace . define ( "ace/layer/cursor" , [ "require" , "exports" , "module" , "ace/lib/dom" ] , function ( e , t , n ) { "use strict" ; var i , r = e ( "../lib/dom" ) , s = function ( e ) { this . element = r . createElement ( "div" ) , this . element . className = "ace_layer ace_cursor-layer" , e . appendChild ( this . element ) , void 0 === i && ( i = ! ( "opacity" in this . element . style ) ) , this . isVisible = ! 1 , this . isBlinking = ! 0 , this . blinkInterval = 1e3 , this . smoothBlinking = ! 1 , this . cursors = [ ] , this . cursor = this . addCursor ( ) , r . addCssClass ( this . element , "ace_hidden-cursors" ) , this . $updateCursors = ( i ? this . $updateVisibility : this . $updateOpacity ) . bind ( this ) } ; ( function ( ) { this . $updateVisibility = function ( e ) { for ( var t = this . cursors , n = t . length ; n -- ; ) t [ n ] . style . visibility = e ? "" : "hidden" } , this . $updateOpacity = function ( e ) { for ( var t = this . cursors , n = t . length ; n -- ; ) t [ n ] . style . opacity = e ? "" : "0" } , this . $padding = 0 , this . setPadding = function ( e ) { this . $padding = e } , this . setSession = function ( e ) { this . session = e } , this . setBlinking = function ( e ) { e != this . isBlinking && ( this . isBlinking = e , this . restartTimer ( ) ) } , this . setBlinkInterval = function ( e ) { e != this . blinkInterval && ( this . blinkInterval = e , this . restartTimer ( ) ) } , this . setSmoothBlinking = function ( e ) { e != this . smoothBlinking && ! i && ( this . smoothBlinking = e , r . setCssClass ( this . element , "ace_smooth-blinking" , e ) , this . $updateCursors ( ! 0 ) , this . $updateCursors = this . $updateOpacity . bind ( this ) , this . restartTimer ( ) ) } , this . addCursor = function ( ) { var e = r . createElement ( "div" ) ; return e . className = "ace_cursor" , this . element . appendChild ( e ) , this . cursors . push ( e ) , e } , this . removeCursor = function ( ) { if ( this . cursors . length > 1 ) { var e = this . cursors . pop ( ) ; return e . parentNode . removeChild ( e ) , e } } , this . hideCursor = function ( ) { this . isVisible = ! 1 , r . addCssClass ( this . element , "ace_hidden-cursors" ) , this . restartTimer ( ) } , this . showCursor = function ( ) { this . isVisible = ! 0 , r . removeCssClass ( this . element , "ace_hidden-cursors" ) , this . restartTimer ( ) } , this . restartTimer = function ( ) { var e = this . $updateCursors ; if ( clearInterval ( this . intervalId ) , clearTimeout ( this . timeoutId ) , this . smoothBlinking && r . removeCssClass ( this . element , "ace_smooth-blinking" ) , e ( ! 0 ) , this . isBlinking && this . blinkInterval && this . isVisible ) { this . smoothBlinking && setTimeout ( function ( ) { r . addCssClass ( this . element , "ace_smooth-blinking" ) } . bind ( this ) ) ; var t = function ( ) { this . timeoutId = setTimeout ( function ( ) { e ( ! 1 ) } , . 6 * this . blinkInterval ) } . bind ( this ) ; this . intervalId = setInterval ( function ( ) { e ( ! 0 ) , t ( ) } , this . blinkInterval ) , t ( ) } } , this . getPixelPosition = function ( e , t ) { if ( ! this . config || ! this . session ) return { left : 0 , top : 0 } ; e || ( e = this . session . selection . getCursor ( ) ) ; var n = this . session . documentToScreenPosition ( e ) , r = this . $padding + n . column * this . config . characterWidth , i = ( n . row - ( t ? this . config . firstRowScreen : 0 ) ) * this . config . lineHeight ; return { left : r , top : i } } , this . update = function ( e ) { this . config = e ; var t = this . session . $selectionMarkers , n = 0 , r = 0 ; void 0 !== t && 0 !== t . length || ( t = [ { cursor : null } ] ) ; for ( var n = 0 , i = t . length ; n < i ; n ++ ) { var s = this . getPixelPosition ( t [ n ] . cursor , ! 0 ) ; if ( ! ( ( s . top > e . height + e . offset || s . top < 0 ) && n > 1 ) ) { var o = ( this . cursors [ r ++ ] || this . addCursor ( ) ) . style ; this . drawCursor ? this . drawCursor ( o , s , e , t [ n ] , this . session ) : ( o . left = s . left + "px" , o . top = s . top + "px" , o . width = e . characterWidth + "px" , o . height = e . lineHeight + "px" ) } } for ( ; this . cursors . length > r ; ) this . removeCursor ( ) ; var u = this . session . getOverwrite ( ) ; this . $setOverwrite ( u ) , this . $pixelPos = s , this . restartTimer ( ) } , this . drawCursor = null , this . $setOverwrite = function ( e ) { e != this . overwrite && ( this . overwrite = e , e ? r . addCssClass ( this . element , "ace_overwrite-cursors" ) : r . removeCssClass ( this . element , " ace
t -= e . offset ; var r = this . textarea . style , i = this . lineHeight ; if ( t < 0 || t > e . height - i ) return void ( r . top = r . left = "0" ) ; var s = this . characterWidth ; if ( this . $composition ) { var o = this . textarea . value . replace ( /^\x01+/ , "" ) ; s *= this . session . $getStringScreenWidth ( o ) [ 0 ] + 2 , i += 2 } n -= this . scrollLeft , n > this . $size . scrollerWidth - s && ( n = this . $size . scrollerWidth - s ) , n += this . gutterWidth , r . height = i + "px" , r . width = s + "px" , r . left = Math . min ( n , this . $size . scrollerWidth - s ) + "px" , r . top = Math . min ( t , this . $size . height - i ) + "px" } } , this . getFirstVisibleRow = function ( ) { return this . layerConfig . firstRow } , this . getFirstFullyVisibleRow = function ( ) { return this . layerConfig . firstRow + ( 0 === this . layerConfig . offset ? 0 : 1 ) } , this . getLastFullyVisibleRow = function ( ) { var e = this . layerConfig , t = e . lastRow , n = this . session . documentToScreenRow ( t , 0 ) * e . lineHeight ; return n - this . session . getScrollTop ( ) > e . height - e . lineHeight ? t - 1 : t } , this . getLastVisibleRow = function ( ) { return this . layerConfig . lastRow } , this . $padding = null , this . setPadding = function ( e ) { this . $padding = e , this . $textLayer . setPadding ( e ) , this . $cursorLayer . setPadding ( e ) , this . $markerFront . setPadding ( e ) , this . $markerBack . setPadding ( e ) , this . $loop . schedule ( this . CHANGE _FULL ) , this . $updatePrintMargin ( ) } , this . setScrollMargin = function ( e , t , n , r ) { var i = this . scrollMargin ; i . top = 0 | e , i . bottom = 0 | t , i . right = 0 | r , i . left = 0 | n , i . v = i . top + i . bottom , i . h = i . left + i . right , i . top && this . scrollTop <= 0 && this . session && this . session . setScrollTop ( - i . top ) , this . updateFull ( ) } , this . getHScrollBarAlwaysVisible = function ( ) { return this . $hScrollBarAlwaysVisible } , this . setHScrollBarAlwaysVisible = function ( e ) { this . setOption ( "hScrollBarAlwaysVisible" , e ) } , this . getVScrollBarAlwaysVisible = function ( ) { return this . $vScrollBarAlwaysVisible } , this . setVScrollBarAlwaysVisible = function ( e ) { this . setOption ( "vScrollBarAlwaysVisible" , e ) } , this . $updateScrollBarV = function ( ) { var e = this . layerConfig . maxHeight , t = this . $size . scrollerHeight ; ! this . $maxLines && this . $scrollPastEnd && ( e -= ( t - this . lineHeight ) * this . $scrollPastEnd , this . scrollTop > e - t && ( e = this . scrollTop + t , this . scrollBarV . scrollTop = null ) ) , this . scrollBarV . setScrollHeight ( e + this . scrollMargin . v ) , this . scrollBarV . setScrollTop ( this . scrollTop + this . scrollMargin . top ) } , this . $updateScrollBarH = function ( ) { this . scrollBarH . setScrollWidth ( this . layerConfig . width + 2 * this . $padding + this . scrollMargin . h ) , this . scrollBarH . setScrollLeft ( this . scrollLeft + this . scrollMargin . left ) } , this . $frozen = ! 1 , this . freeze = function ( ) { this . $frozen = ! 0 } , this . unfreeze = function ( ) { this . $frozen = ! 1 } , this . $renderChanges = function ( e , t ) { if ( this . $changes && ( e |= this . $changes , this . $changes = 0 ) , ! this . session || ! this . container . offsetWidth || this . $frozen || ! e && ! t ) return void ( this . $changes |= e ) ; if ( this . $size . $dirty ) return this . $changes |= e , this . onResize ( ! 0 ) ; this . lineHeight || this . $textLayer . checkForSizeChanges ( ) , this . _signal ( "beforeRender" ) ; var n = this . layerConfig ; if ( e & this . CHANGE _FULL || e & this . CHANGE _SIZE || e & this . CHANGE _TEXT || e & this . CHANGE _LINES || e & this . CHANGE _SCROLL || e & this . CHANGE _H _SCROLL ) { if ( e |= this . $computeLayerConfig ( ) , n . firstRow != this . layerConfig . firstRow && n . firstRowScreen == this . layerConfig . firstRowScreen ) { var r = this . scrollTop + ( n . firstRow - this . layerConfig . firstRow ) * this . lineHeight ; r > 0 && ( this . scrollTop = r , e |= this . CHANGE _SCROLL , e |= this . $computeLayerConfig ( ) ) } n = this . layerConfig , this . $updateScrollBarV ( ) , e & this . CHANGE _H _SCROLL && this . $updateScrollBarH ( ) , this . $gutterLayer . element . style . marginTop = - n . offset + "px" , this . content . style . marginTop = - n . offset + "px" , this . content . style . width = n . width + 2 * this . $padding + "px" , this . content . style . height = n . minHeight + "px" } return e & this . CHANGE _H _SCROLL && ( this . content . style . marginLeft = - this . scrollLeft + "px" , this . scroller . className = this . scrollLeft <= 0 ? "ace_scroller" : "ace_scroller ace_scroll-left" ) , e & this . CHANGE _FULL ? ( this . $textLayer . update ( n ) , this . $showGutter && this . $gutterLayer . update ( n ) , this . $markerBack . update ( n ) , this . $markerFront . update ( n ) , this . $cursorLayer . update ( n ) , this . $moveTextAreaToCursor ( ) , this . $highlightGutterLine && this . $updateGutterLineHighlight ( ) , this . _signal ( "afterRender" ) , void 0 ) : e & this . CHANGE _SCROLL ? ( e & this . CHANGE _TEXT || e & this . CHANGE _LINES ? this . $textLayer . update ( n ) : this . $textLayer . scrollLines ( n ) , this . $showGutter && this . $gutterLayer .
var r = this . rangeList . add ( e ) ; return this . $onAddRange ( e ) , r . length && this . $onRemoveRange ( r ) , this . rangeCount > 1 && ! this . inMultiSelectMode && ( this . _signal ( "multiSelect" ) , this . inMultiSelectMode = ! 0 , this . session . $undoSelect = ! 1 , this . rangeList . attach ( this . session ) ) , t || this . fromOrientedRange ( e ) } } , this . toSingleRange = function ( e ) { e = e || this . ranges [ 0 ] ; var t = this . rangeList . removeAll ( ) ; t . length && this . $onRemoveRange ( t ) , e && this . fromOrientedRange ( e ) } , this . substractPoint = function ( e ) { var t = this . rangeList . substractPoint ( e ) ; if ( t ) return this . $onRemoveRange ( t ) , t [ 0 ] } , this . mergeOverlappingRanges = function ( ) { var e = this . rangeList . merge ( ) ; e . length ? this . $onRemoveRange ( e ) : this . ranges [ 0 ] && this . fromOrientedRange ( this . ranges [ 0 ] ) } , this . $onAddRange = function ( e ) { this . rangeCount = this . rangeList . ranges . length , this . ranges . unshift ( e ) , this . _signal ( "addRange" , { range : e } ) } , this . $onRemoveRange = function ( e ) { if ( this . rangeCount = this . rangeList . ranges . length , 1 == this . rangeCount && this . inMultiSelectMode ) { var t = this . rangeList . ranges . pop ( ) ; e . push ( t ) , this . rangeCount = 0 } for ( var n = e . length ; n -- ; ) { var r = this . ranges . indexOf ( e [ n ] ) ; this . ranges . splice ( r , 1 ) } this . _signal ( "removeRange" , { ranges : e } ) , 0 === this . rangeCount && this . inMultiSelectMode && ( this . inMultiSelectMode = ! 1 , this . _signal ( "singleSelect" ) , this . session . $undoSelect = ! 0 , this . rangeList . detach ( this . session ) ) , t = t || this . ranges [ 0 ] , t && ! t . isEqual ( this . getRange ( ) ) && this . fromOrientedRange ( t ) } , this . $initRangeList = function ( ) { this . rangeList || ( this . rangeList = new r , this . ranges = [ ] , this . rangeCount = 0 ) } , this . getAllRanges = function ( ) { return this . rangeCount ? this . rangeList . ranges . concat ( ) : [ this . getRange ( ) ] } , this . splitIntoLines = function ( ) { if ( this . rangeCount > 1 ) { var e = this . rangeList . ranges , t = e [ e . length - 1 ] , n = i . fromPoints ( e [ 0 ] . start , t . end ) ; this . toSingleRange ( ) , this . setSelectionRange ( n , t . cursor == t . start ) } else { var n = this . getRange ( ) , r = this . isBackwards ( ) , s = n . start . row , o = n . end . row ; if ( s == o ) { if ( r ) var u = n . end , a = n . start ; else var u = n . start , a = n . end ; return this . addRange ( i . fromPoints ( a , a ) ) , void this . addRange ( i . fromPoints ( u , u ) ) } var f = [ ] , l = this . getLineRange ( s , ! 0 ) ; l . start . column = n . start . column , f . push ( l ) ; for ( var c = s + 1 ; c < o ; c ++ ) f . push ( this . getLineRange ( c , ! 0 ) ) ; l = this . getLineRange ( o , ! 0 ) , l . end . column = n . end . column , f . push ( l ) , f . forEach ( this . addRange , this ) } } , this . toggleBlockSelection = function ( ) { if ( this . rangeCount > 1 ) { var e = this . rangeList . ranges , t = e [ e . length - 1 ] , n = i . fromPoints ( e [ 0 ] . start , t . end ) ; this . toSingleRange ( ) , this . setSelectionRange ( n , t . cursor == t . start ) } else { var r = this . session . documentToScreenPosition ( this . selectionLead ) , s = this . session . documentToScreenPosition ( this . selectionAnchor ) , o = this . rectangularRangeBlock ( r , s ) ; o . forEach ( this . addRange , this ) } } , this . rectangularRangeBlock = function ( e , t , n ) { var r = [ ] , s = e . column < t . column ; if ( s ) var o = e . column , u = t . column ; else var o = t . column , u = e . column ; var a = e . row < t . row ; if ( a ) var f = e . row , l = t . row ; else var f = t . row , l = e . row ; o < 0 && ( o = 0 ) , f < 0 && ( f = 0 ) , f == l && ( n = ! 0 ) ; for ( var c = f ; c <= l ; c ++ ) { var h = i . fromPoints ( this . session . screenToDocumentPosition ( c , o ) , this . session . screenToDocumentPosition ( c , u ) ) ; if ( h . isEmpty ( ) ) { if ( p && v ( h . end , p ) ) break ; var p = h . end } h . cursor = s ? h . start : h . end , r . push ( h ) } if ( a && r . reverse ( ) , ! n ) { for ( var d = r . length - 1 ; r [ d ] . isEmpty ( ) && d > 0 ; ) d -- ; if ( d > 0 ) for ( var m = 0 ; r [ m ] . isEmpty ( ) ; ) m ++ ; for ( var g = d ; g >= m ; g -- ) r [ g ] . isEmpty ( ) && r . splice ( g , 1 ) } return r } } . call ( s . prototype ) ; var d = e ( "./editor" ) . Editor ; ( function ( ) { this . updateSelectionMarkers = function ( ) { this . renderer . updateCursor ( ) , this . renderer . updateBackMarkers ( ) } , this . addSelectionMarker = function ( e ) { e . cursor || ( e . cursor = e . end ) ; var t = this . getSelectionStyle ( ) ; return e . marker = this . session . addMarker ( e , "ace_selection" , t ) , this . session . $selectionMarkers . push ( e ) , this . session . selectionMarkerCount = this . session . $selectionMarkers . length , e } , this . removeSelectionMarker = function ( e ) { if ( e . marker ) { this . session . removeMarker ( e . marker ) ; var t = this . session . $selectionMarkers . indexOf ( e ) ; t != - 1 && this . session . $selectionMarkers . splice ( t , 1 ) , this . session . selectionMarkerCount = this . session . $selectionMarkers . length } } , this . removeSelectionMarkers = function ( e ) { for ( var t = this . session . $selectionMarkers , n = e . length ; n -- ; ) { var r = e [ n ] ; if ( r . marker ) { this . session . removeMarker ( r . marker ) ; var i = t . in
function a ( ) { var e = o . replace ( "\\d" , "\\d\\-" ) , t = { onMatch : function ( e , t , n ) { var r = "/" == e . charAt ( 1 ) ? 2 : 1 ; return 1 == r ? ( t != this . nextState ? n . unshift ( this . next , this . nextState , 0 ) : n . unshift ( this . next ) , n [ 2 ] ++ ) : 2 == r && t == this . nextState && ( n [ 1 ] -- , ( ! n [ 1 ] || n [ 1 ] < 0 ) && ( n . shift ( ) , n . shift ( ) ) ) , [ { type : "meta.tag.punctuation." + ( 1 == r ? "" : "end-" ) + "tag-open.xml" , value : e . slice ( 0 , r ) } , { type : "meta.tag.tag-name.xml" , value : e . substr ( r ) } ] } , regex : "</?" + e , next : "jsxAttributes" , nextState : "jsx" } ; this . $rules . start . unshift ( t ) ; var n = { regex : "{" , token : "paren.quasi.start" , push : "start" } ; this . $rules . jsx = [ n , t , { include : "reference" } , { defaultToken : "string" } ] , this . $rules . jsxAttributes = [ { token : "meta.tag.punctuation.tag-close.xml" , regex : "/?>" , onMatch : function ( e , t , n ) { return t == n [ 0 ] && n . shift ( ) , 2 == e . length && ( n [ 0 ] == this . nextState && n [ 1 ] -- , ( ! n [ 1 ] || n [ 1 ] < 0 ) && n . splice ( 0 , 2 ) ) , this . next = n [ 0 ] || "start" , [ { type : this . token , value : e } ] } , nextState : "jsx" } , n , f ( "jsxAttributes" ) , { token : "entity.other.attribute-name.xml" , regex : e } , { token : "keyword.operator.attribute-equals.xml" , regex : "=" } , { token : "text.tag-whitespace.xml" , regex : "\\s+" } , { token : "string.attribute-value.xml" , regex : "'" , stateName : "jsx_attr_q" , push : [ { token : "string.attribute-value.xml" , regex : "'" , next : "pop" } , { include : "reference" } , { defaultToken : "string.attribute-value.xml" } ] } , { token : "string.attribute-value.xml" , regex : '"' , stateName : "jsx_attr_qq" , push : [ { token : "string.attribute-value.xml" , regex : '"' , next : "pop" } , { include : "reference" } , { defaultToken : "string.attribute-value.xml" } ] } , t ] , this . $rules . reference = [ { token : "constant.language.escape.reference.xml" , regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" } ] } function f ( e ) { return [ { token : "comment" , regex : /\/\*/ , next : [ i . getTagRule ( ) , { token : "comment" , regex : "\\*\\/" , next : e || "pop" } , { defaultToken : "comment" , caseInsensitive : ! 0 } ] } , { token : "comment" , regex : "\\/\\/" , next : [ i . getTagRule ( ) , { token : "comment" , regex : "$|^" , next : e || "pop" } , { defaultToken : "comment" , caseInsensitive : ! 0 } ] } ] } var r = e ( "../lib/oop" ) , i = e ( "./doc_comment_highlight_rules" ) . DocCommentHighlightRules , s = e ( "./text_highlight_rules" ) . TextHighlightRules , o = "[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*" , u = function ( e ) { var t = this . createKeywordMapper ( { "variable.language" : "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document" , keyword : "const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static" , "storage.type" : "const|let|var|function" , "constant.language" : "null|Infinity|NaN|undefined" , "support.function" : "alert" , "constant.language.boolean" : "true|false" } , "identifier" ) , n = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void" , r = "\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)" ; this . $rules = { no _regex : [ i . getStartRule ( "doc-start" ) , f ( "no_regex" ) , { token : "string" , regex : "'(?=.)" , next : "qstring" } , { token : "string" , regex : '"(?=.)' , next : "qqstring" } , { token : "constant.numeric" , regex : /0(?:[xX][0-9a-fA-F]+|[bB][01]+)\b/ } , { token : "constant.numeric" , regex : /[+-]?\d[\d_]*(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ } , { token : [ "storage.type" , "punctuation.operator" , "support.function" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" ] , regex : "(" + o + ")(\\.)(prototype)(\\.)(" + o + ")(\\s*)(=)" , next : "function_arguments" } , { token : [ "storage.type" , "punctuation.operator" , "entity.name.function" , "text" , "keyword.operator" , "text" , "storage.type" , "text" , "paren.lparen" ] , regex : "(" + o + ")(\\.)(" + o + ")(\\s*)(=)(\\s*)(function)(\\s*)(\\()" , next : "function_arguments"
var e = this . createKeywordMapper ( { "support.function" : u , "support.constant" : a , "support.type" : o , "support.constant.color" : f , "support.constant.fonts" : l } , "text" , ! 0 ) ; this . $rules = { start : [ { token : "comment" , regex : "\\/\\*" , push : "comment" } , { token : "paren.lparen" , regex : "\\{" , push : "ruleset" } , { token : "string" , regex : "@.*?{" , push : "media" } , { token : "keyword" , regex : "#[a-z0-9-_]+" } , { token : "variable" , regex : "\\.[a-z0-9-_]+" } , { token : "string" , regex : ":[a-z0-9-_]+" } , { token : "constant" , regex : "[a-z0-9-_]+" } , { caseInsensitive : ! 0 } ] , media : [ { token : "comment" , regex : "\\/\\*" , push : "comment" } , { token : "paren.lparen" , regex : "\\{" , push : "ruleset" } , { token : "string" , regex : "\\}" , next : "pop" } , { token : "keyword" , regex : "#[a-z0-9-_]+" } , { token : "variable" , regex : "\\.[a-z0-9-_]+" } , { token : "string" , regex : ":[a-z0-9-_]+" } , { token : "constant" , regex : "[a-z0-9-_]+" } , { caseInsensitive : ! 0 } ] , comment : [ { token : "comment" , regex : "\\*\\/" , next : "pop" } , { defaultToken : "comment" } ] , ruleset : [ { token : "paren.rparen" , regex : "\\}" , next : "pop" } , { token : "comment" , regex : "\\/\\*" , push : "comment" } , { token : "string" , regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' } , { token : "string" , regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" } , { token : [ "constant.numeric" , "keyword" ] , regex : "(" + c + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" } , { token : "constant.numeric" , regex : c } , { token : "constant.numeric" , regex : "#[a-f0-9]{6}" } , { token : "constant.numeric" , regex : "#[a-f0-9]{3}" } , { token : [ "punctuation" , "entity.other.attribute-name.pseudo-element.css" ] , regex : h } , { token : [ "punctuation" , "entity.other.attribute-name.pseudo-class.css" ] , regex : p } , { token : [ "support.function" , "string" , "support.function" ] , regex : "(url\\()(.*)(\\))" } , { token : e , regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" } , { caseInsensitive : ! 0 } ] } , this . normalizeRules ( ) } ; r . inherits ( d , s ) , t . CssHighlightRules = d } ) , ace . define ( "ace/mode/css_completions" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; var r = { background : { "#$0" : 1 } , "background-color" : { "#$0" : 1 , transparent : 1 , fixed : 1 } , "background-image" : { "url('/$0')" : 1 } , "background-repeat" : { repeat : 1 , "repeat-x" : 1 , "repeat-y" : 1 , "no-repeat" : 1 , inherit : 1 } , "background-position" : { bottom : 2 , center : 2 , left : 2 , right : 2 , top : 2 , inherit : 2 } , "background-attachment" : { scroll : 1 , fixed : 1 } , "background-size" : { cover : 1 , contain : 1 } , "background-clip" : { "border-box" : 1 , "padding-box" : 1 , "content-box" : 1 } , "background-origin" : { "border-box" : 1 , "padding-box" : 1 , "content-box" : 1 } , border : { "solid $0" : 1 , "dashed $0" : 1 , "dotted $0" : 1 , "#$0" : 1 } , "border-color" : { "#$0" : 1 } , "border-style" : { solid : 2 , dashed : 2 , dotted : 2 , double : 2 , groove : 2 , hidden : 2 , inherit : 2 , inset : 2 , none : 2 , outset : 2 , ridged : 2 } , "border-collapse" : { collapse : 1 , separate : 1 } , bottom : { px : 1 , em : 1 , "%" : 1 } , clear : { left : 1 , right : 1 , both : 1 , none : 1 } , color : { "#$0" : 1 , "rgb(#$00,0,0)" : 1 } , cursor : { default : 1 , pointer : 1 , move : 1 , text : 1 , wait : 1 , help : 1 , progress : 1 , "n-resize" : 1 , "ne-resize" : 1 , "e-resize" : 1 , "se-resize" : 1 , "s-resize" : 1 , "sw-resize" : 1 , "w-resize" : 1 , "nw-resize" : 1 } , display : { none : 1 , block : 1 , inline : 1 , "inline-block" : 1 , "table-cell" : 1 } , "empty-cells" : { show : 1 , hide : 1 } , float : { left : 1 , right : 1 , none : 1 } , "font-family" : { Arial : 2 , "Comic Sans MS" : 2 , Consolas : 2 , "Courier New" : 2 , Courier : 2 , Georgia : 2 , Monospace : 2 , "Sans-Serif" : 2 , "Segoe UI" : 2 , Tahoma : 2 , "Times New Roman" : 2 , "Trebuchet MS" : 2 , Verdana : 1 } , "font-size" : { px : 1 , em : 1 , "%" : 1 } , "font-weight" : { bold : 1 , normal : 1 } , "font-style" : { italic : 1 , normal : 1 } , "font-variant" : { normal : 1 , "small-caps" : 1 } , height : { px : 1 , em : 1 , "%" : 1 } , left : { px : 1 , em : 1 , "%" : 1 } , "letter-spacing" : { normal : 1 } , "line-height" : { normal : 1 } , "list-style-type" : { none : 1 , disc : 1 , circle : 1 , square : 1 , decimal : 1 , "decimal-leading-zero" : 1 , "lower-roman" : 1 , "upper-roman" : 1 , "lower-greek" : 1 , "lower-latin" : 1 , "upper-latin" : 1 , georgian : 1 , "lower-alpha" : 1 , "upper-alpha" : 1 } , margin : { px : 1 , em : 1 , "%" : 1 } , "margin-right" : { px : 1 , em : 1 , "%" : 1 } , "margin-left" : { px : 1 , em : 1 , "%" : 1 } , "margin-top" : { px : 1 , em : 1 , "%" : 1 } , "margin-bottom" : { px : 1 , em : 1 , "%" : 1 } , "max-height" : { px : 1 , em : 1 , "%" : 1 } , "max-width" : { px : 1 , em : 1 , "%" : 1 } , "min-height" : { px : 1 , em : 1 , "%" : 1 } , "min-width" : { px : 1 , em : 1 , "%" : 1 } , overflow : { hidden : 1 , visible : 1 , auto : 1 , scroll : 1 } , "overflow-x" : { hidden : 1 , visible : 1 , auto : 1 , scroll : 1 } , "overflow-y" : { hidden : 1 , visible : 1 , auto : 1 , scroll : 1 } , padding : { px : 1 , em : 1 , "%" : 1 } , "padding-top" : { px : 1 , em : 1 , "
var i = { iec : "_Ki_Mi_Gi_Ti_Pi_Ei_Zi_Yi" , si : "_K_M_G_T_P_E_Z_Y" } ; return function ( e , _ , o ) { e = Math . abs ( e ) , _ || 0 === _ || ( _ = 1 ) ; var t = "si" == o ? 1e3 : 1024 , n = 0 ; for ( i [ o ] || ( o = "si" ) ; e >= t ; ) e /= t , ++ n ; return e . toFixed ( _ ) + " " + i [ o ] . split ( "_" ) [ n ] + "b" } } ) , function ( ) { function n ( n , t ) { return n . set ( t [ 0 ] , t [ 1 ] ) , n } function t ( n , t ) { return n . add ( t ) , n } function r ( n , t , r ) { switch ( r . length ) { case 0 : return n . call ( t ) ; case 1 : return n . call ( t , r [ 0 ] ) ; case 2 : return n . call ( t , r [ 0 ] , r [ 1 ] ) ; case 3 : return n . call ( t , r [ 0 ] , r [ 1 ] , r [ 2 ] ) } return n . apply ( t , r ) } function e ( n , t , r , e ) { for ( var u = - 1 , i = null == n ? 0 : n . length ; ++ u < i ; ) { var o = n [ u ] ; t ( e , o , r ( o ) , n ) } return e } function u ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length ; ++ r < e && ! 1 !== t ( n [ r ] , r , n ) ; ) ; return n } function i ( n , t ) { for ( var r = null == n ? 0 : n . length ; r -- && ! 1 !== t ( n [ r ] , r , n ) ; ) ; return n } function o ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length ; ++ r < e ; ) if ( ! t ( n [ r ] , r , n ) ) return ! 1 ; return ! 0 } function f ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length , u = 0 , i = [ ] ; ++ r < e ; ) { var o = n [ r ] ; t ( o , r , n ) && ( i [ u ++ ] = o ) } return i } function c ( n , t ) { return ! ( null == n || ! n . length ) && - 1 < d ( n , t , 0 ) } function a ( n , t , r ) { for ( var e = - 1 , u = null == n ? 0 : n . length ; ++ e < u ; ) if ( r ( t , n [ e ] ) ) return ! 0 ; return ! 1 } function l ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length , u = Array ( e ) ; ++ r < e ; ) u [ r ] = t ( n [ r ] , r , n ) ; return u } function s ( n , t ) { for ( var r = - 1 , e = t . length , u = n . length ; ++ r < e ; ) n [ u + r ] = t [ r ] ; return n } function h ( n , t , r , e ) { var u = - 1 , i = null == n ? 0 : n . length ; for ( e && i && ( r = n [ ++ u ] ) ; ++ u < i ; ) r = t ( r , n [ u ] , u , n ) ; return r } function p ( n , t , r , e ) { var u = null == n ? 0 : n . length ; for ( e && u && ( r = n [ -- u ] ) ; u -- ; ) r = t ( r , n [ u ] , u , n ) ; return r } function _ ( n , t ) { for ( var r = - 1 , e = null == n ? 0 : n . length ; ++ r < e ; ) if ( t ( n [ r ] , r , n ) ) return ! 0 ; return ! 1 } function v ( n , t , r ) { var e ; return r ( n , function ( n , r , u ) { if ( t ( n , r , u ) ) return e = r , ! 1 } ) , e } function g ( n , t , r , e ) { var u = n . length ; for ( r += e ? 1 : - 1 ; e ? r -- : ++ r < u ; ) if ( t ( n [ r ] , r , n ) ) return r ; return - 1 } function d ( n , t , r ) { if ( t === t ) n : { -- r ; for ( var e = n . length ; ++ r < e ; ) if ( n [ r ] === t ) { n = r ; break n } n = - 1 } else n = g ( n , b , r ) ; return n } function y ( n , t , r , e ) { -- r ; for ( var u = n . length ; ++ r < u ; ) if ( e ( n [ r ] , t ) ) return r ; return - 1 } function b ( n ) { return n !== n } function x ( n , t ) { var r = null == n ? 0 : n . length ; return r ? k ( n , t ) / r : P } function j ( n ) { return function ( t ) { return null == t ? F : t [ n ] } } function w ( n ) { return function ( t ) { return null == n ? F : n [ t ] } } function m ( n , t , r , e , u ) { return u ( n , function ( n , u , i ) { r = e ? ( e = ! 1 , n ) : t ( r , n , u , i ) } ) , r } function A ( n , t ) { var r = n . length ; for ( n . sort ( t ) ; r -- ; ) n [ r ] = n [ r ] . c ; return n } function k ( n , t ) { for ( var r , e = - 1 , u = n . length ; ++ e < u ; ) { var i = t ( n [ e ] ) ; i !== F && ( r = r === F ? i : r + i ) } return r } function E ( n , t ) { for ( var r = - 1 , e = Array ( n ) ; ++ r < n ; ) e [ r ] = t ( r ) ; return e } function O ( n , t ) { return l ( t , function ( t ) { return [ t , n [ t ] ] } ) } function S ( n ) { return function ( t ) { return n ( t ) } } function I ( n , t ) { return l ( t , function ( t ) { return n [ t ] } ) } function R ( n , t ) { return n . has ( t ) } function z ( n , t ) { for ( var r = - 1 , e = n . length ; ++ r < e && - 1 < d ( t , n [ r ] , 0 ) ; ) ; return r } function W ( n , t ) { for ( var r = n . length ; r -- && - 1 < d ( t , n [ r ] , 0 ) ; ) ; return r } function B ( n ) { return "\\" + Tn [ n ] } function L ( n ) { var t = - 1 , r = Array ( n . size ) ; return n . forEach ( function ( n , e ) { r [ ++ t ] = [ e , n ] } ) , r } function U ( n , t ) { return function ( r ) { return n ( t ( r ) ) } } function C ( n , t ) { for ( var r = - 1 , e = n . length , u = 0 , i = [ ] ; ++ r < e ; ) { var o = n [ r ] ; o !== t && "__lodash_placeholder__" !== o || ( n [ r ] = "__lodash_placeholder__" , i [ u ++ ] = r ) } return i } function D ( n ) { var t = - 1 , r = Array ( n . size ) ; return n . forEach ( function ( n ) { r [ ++ t ] = n } ) , r } function M ( n ) { var t = - 1 , r = Array ( n . size ) ; return n . forEach ( function ( n ) { r [ ++ t ] = [ n , n ] } ) , r } function T ( n ) { if ( Bn . test ( n ) ) { for ( var t = zn . lastIndex = 0 ; zn . test ( n ) ; ) ++ t ; n = t } else n = tt ( n ) ; return n } function $ ( n ) { return Bn . test ( n ) ? n . match ( zn ) || [ ] : n . split ( "" ) } var F , N = 1 / 0 , P = NaN , Z = [ [ "ary" , 128 ] , [ "bind" , 1 ] , [ "bindKey" , 2 ] , [ "curry" , 8 ] , [ "curryRight" , 16 ] , [ "flip" , 512 ] , [ "partial" , 32 ] , [ "partialRight" , 64 ] , [ "rearg" , 256 ] ] , q = /\b__p\+='';/g , V = /\b(__p\+=)''\+/g , K = /(__e\(.*?\)|\b__t\))\+'';/g , G = /&(?:amp|lt|gt|quot|#39);/g , H = /[&<>"']/g , J = RegExp ( G . source ) , Y = RegExp ( H . source ) , Q = /<%-([\s\S]+?)%>/g , X = /<%([\s\S]+?)%>/g , nn = /<%=([\s\S]+?)%>/g , tn = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ , rn = /^\w*$/ , en = /^\./ , un = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g , on = /[\\^$.*+?()[\]{}|]/g , fn = RegExp ( on . source ) , cn = /^\s+|\s+$/g , an = /^\s+/ , ln = /\s+$/ , sn = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/ , hn = / \ { \ n \ / \ *
case "[object Int32Array]" : case "[object Uint8Array]" : case "[object Uint8ClampedArray]" : case "[object Uint16Array]" : case "[object Uint32Array]" : return Ur ( r , i ) ; case "[object Map]" : return e = i ? u ( L ( r ) , 1 ) : L ( r ) , h ( e , n , new r . constructor ) ; case "[object Number]" : case "[object String]" : return new o ( r ) ; case "[object RegExp]" : return e = new r . constructor ( r . source , dn . exec ( r ) ) , e . lastIndex = r . lastIndex , e ; case "[object Set]" : return e = i ? u ( D ( r ) , 1 ) : D ( r ) , h ( e , t , new r . constructor ) ; case "[object Symbol]" : return ro ? Xu ( ro . call ( r ) ) : { } } } function Oe ( n ) { return cf ( n ) || ff ( n ) || ! ! ( wi && n && n [ wi ] ) } function Se ( n , t ) { return t = null == t ? 9007199254740991 : t , ! ! t && ( "number" == typeof n || wn . test ( n ) ) && - 1 < n && 0 == n % 1 && n < t } function Ie ( n , t , r ) { if ( ! yu ( r ) ) return ! 1 ; var e = typeof t ; return ! ! ( "number" == e ? hu ( r ) && Se ( t , r . length ) : "string" == e && t in r ) && su ( r [ t ] , n ) } function Re ( n , t ) { if ( cf ( n ) ) return ! 1 ; var r = typeof n ; return ! ( "number" != r && "symbol" != r && "boolean" != r && null != n && ! mu ( n ) ) || rn . test ( n ) || ! tn . test ( n ) || null != t && n in Xu ( t ) } function ze ( n ) { var t = de ( n ) , r = On [ t ] ; return "function" == typeof r && t in Mn . prototype && ( n === r || ( t = po ( r ) , ! ! t && n === t [ 0 ] ) ) } function We ( n ) { var t = n && n . constructor ; return n === ( "function" == typeof t && t . prototype || ui ) } function Be ( n , t ) { return function ( r ) { return null != r && r [ n ] === t && ( t !== F || n in Xu ( r ) ) } } function Le ( n , t , r , e , u , i ) { return yu ( n ) && yu ( t ) && ( i . set ( t , n ) , tr ( n , t , F , Le , i ) , i . delete ( t ) ) , n } function Ue ( n , t , e ) { return t = Ci ( t === F ? n . length - 1 : t , 0 ) , function ( ) { for ( var u = arguments , i = - 1 , o = Ci ( u . length - t , 0 ) , f = Gu ( o ) ; ++ i < o ; ) f [ i ] = u [ t + i ] ; for ( i = - 1 , o = Gu ( t + 1 ) ; ++ i < t ; ) o [ i ] = u [ i ] ; return o [ t ] = e ( f ) , r ( n , this , o ) } } function Ce ( n , t , r ) { var e = t + "" ; t = jo ; var u , i = Fe ; return u = ( u = e . match ( hn ) ) ? u [ 1 ] . split ( pn ) : [ ] , r = i ( u , r ) , ( i = r . length ) && ( u = i - 1 , r [ u ] = ( 1 < i ? "& " : "" ) + r [ u ] , r = r . join ( 2 < i ? ", " : " " ) , e = e . replace ( sn , "{\n/* [wrapped with " + r + "] */\n" ) ) , t ( n , e ) } function De ( n ) { var t = 0 , r = 0 ; return function ( ) { var e = Mi ( ) , u = 16 - ( e - r ) ; if ( r = e , 0 < u ) { if ( 800 <= ++ t ) return arguments [ 0 ] } else t = 0 ; return n . apply ( F , arguments ) } } function Me ( n , t ) { var r = - 1 , e = n . length , u = e - 1 ; for ( t = t === F ? e : t ; ++ r < t ; ) { var e = ar ( r , u ) , i = n [ e ] ; n [ e ] = n [ r ] , n [ r ] = i } return n . length = t , n } function Te ( n ) { if ( "string" == typeof n || mu ( n ) ) return n ; var t = n + "" ; return "0" == t && 1 / n == - N ? "-0" : t } function $e ( n ) { if ( null != n ) { try { return oi . call ( n ) } catch ( n ) { } return n + "" } return "" } function Fe ( n , t ) { return u ( Z , function ( r ) { var e = "_." + r [ 0 ] ; t & r [ 1 ] && ! c ( n , e ) && n . push ( e ) } ) , n . sort ( ) } function Ne ( n ) { if ( n instanceof Mn ) return n . clone ( ) ; var t = new zn ( n . _ _wrapped _ _ , n . _ _chain _ _ ) ; return t . _ _actions _ _ = Tr ( n . _ _actions _ _ ) , t . _ _index _ _ = n . _ _index _ _ , t . _ _values _ _ = n . _ _values _ _ , t } function Pe ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( r = null == r ? 0 : Eu ( r ) , 0 > r && ( r = Ci ( e + r , 0 ) ) , g ( n , be ( t , 3 ) , r ) ) : - 1 } function Ze ( n , t , r ) { var e = null == n ? 0 : n . length ; if ( ! e ) return - 1 ; var u = e - 1 ; return r !== F && ( u = Eu ( r ) , u = 0 > r ? Ci ( e + u , 0 ) : Di ( u , e - 1 ) ) , g ( n , be ( t , 3 ) , u , ! 0 ) } function qe ( n ) { return ( null == n ? 0 : n . length ) ? Et ( n , 1 ) : [ ] } function Ve ( n ) { return n && n . length ? n [ 0 ] : F } function Ke ( n ) { var t = null == n ? 0 : n . length ; return t ? n [ t - 1 ] : F } function Ge ( n , t ) { return n && n . length && t && t . length ? fr ( n , t ) : n } function He ( n ) { return null == n ? n : Fi . call ( n ) } function Je ( n ) { if ( ! n || ! n . length ) return [ ] ; var t = 0 ; return n = f ( n , function ( n ) { if ( pu ( n ) ) return t = Ci ( n . length , t ) , ! 0 } ) , E ( t , function ( t ) { return l ( n , j ( t ) ) } ) } function Ye ( n , t ) { if ( ! n || ! n . length ) return [ ] ; var e = Je ( n ) ; return null == t ? e : l ( e , function ( n ) { return r ( t , F , n ) } ) } function Qe ( n ) { return n = On ( n ) , n . _ _chain _ _ = ! 0 , n } function Xe ( n , t ) { return t ( n ) } function nu ( ) { return this } function tu ( n , t ) { return ( cf ( n ) ? u : io ) ( n , be ( t , 3 ) ) } function ru ( n , t ) { return ( cf ( n ) ? i : oo ) ( n , be ( t , 3 ) ) } function eu ( n , t ) { return ( cf ( n ) ? l : Qt ) ( n , be ( t , 3 ) ) } function uu ( n , t , r ) { return t = r ? F : t , t = n && null == t ? n . length : t , se ( n , 128 , F , F , F , F , t ) } function iu ( n , t ) { var r ; if ( "function" != typeof t ) throw new ri ( "Expected a function" ) ; return n = Eu ( n ) , function ( ) { return 0 < -- n && ( r = t . apply ( this , arguments ) ) , 1 >= n && ( t = F ) , r } } function ou ( n , t , r ) { return t = r ? F : t , n = se ( n , 8 , F , F , F , F , F , t ) , n . placeholder = ou . placeholder , n } function fu ( n , t , r ) { return t = r ? F : t , n = se ( n , 16 , F , F , F , F , F , t ) , n . placeholder = fu . placeholder , n } function cu ( n , t , r ) { function e ( t ) { var r = c , e = a ; return c = a = F , _ = t , s = n . apply ( e , r ) } function u ( n ) { var r = n - p ; return n -= _ , p === F || r >= t || 0 > r || g && n >= l } function i ( ) { var n = Ho ( ) ; if ( u ( n ) ) return o ( n ) ; var r , e = xo ; r = n - _ , n =
r && Ie ( n , t , r ) && ( t = F ) , n = Ru ( n ) , t = xf ( { } , t , e , ct ) , r = xf ( { } , t . imports , e . imports , ct ) ; var u , i , o = Bu ( r ) , f = I ( r , o ) , c = 0 ; r = t . interpolate || An ; var a = "__p+='" ; r = ni ( ( t . escape || An ) . source + "|" + r . source + "|" + ( r === nn ? gn : An ) . source + "|" + ( t . evaluate || An ) . source + "|$" , "g" ) ; var l = "sourceURL" in t ? "//# sourceURL=" + t . sourceURL + "\n" : "" ; if ( n . replace ( r , function ( t , r , e , o , f , l ) { return e || ( e = o ) , a += n . slice ( c , l ) . replace ( kn , B ) , r && ( u = ! 0 , a += "'+__e(" + r + ")+'" ) , f && ( i = ! 0 , a += "';" + f + ";\n__p+='" ) , e && ( a += "'+((__t=(" + e + "))==null?'':__t)+'" ) , c = l + t . length , t } ) , a += "';" , ( t = t . variable ) || ( a = "with(obj){" + a + "}" ) , a = ( i ? a . replace ( q , "" ) : a ) . replace ( V , "$1" ) . replace ( K , "$1;" ) , a = "function(" + ( t || "obj" ) + "){" + ( t ? "" : "obj||(obj={});" ) + "var __t,__p=''" + ( u ? ",__e=_.escape" : "" ) + ( i ? ",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}" : ";" ) + a + "return __p}" , t = Nf ( function ( ) { return Yu ( o , l + "return " + a ) . apply ( F , f ) } ) , t . source = a , _u ( t ) ) throw t ; return t } , On . times = function ( n , t ) { if ( n = Eu ( n ) , 1 > n || 9007199254740991 < n ) return [ ] ; var r = 4294967295 , e = Di ( n , 4294967295 ) ; for ( t = be ( t ) , n -= 4294967295 , e = E ( e , t ) ; ++ r < n ; ) t ( r ) ; return e } , On . toFinite = ku , On . toInteger = Eu , On . toLength = Ou , On . toLower = function ( n ) { return Ru ( n ) . toLowerCase ( ) } , On . toNumber = Su , On . toSafeInteger = function ( n ) { return dt ( Eu ( n ) , - 9007199254740991 , 9007199254740991 ) } , On . toString = Ru , On . toUpper = function ( n ) { return Ru ( n ) . toUpperCase ( ) } , On . trim = function ( n , t , r ) { return ( n = Ru ( n ) ) && ( r || t === F ) ? n . replace ( cn , "" ) : n && ( t = wr ( t ) ) ? ( n = $ ( n ) , r = $ ( t ) , t = z ( n , r ) , r = W ( n , r ) + 1 , Wr ( n , t , r ) . join ( "" ) ) : n } , On . trimEnd = function ( n , t , r ) { return ( n = Ru ( n ) ) && ( r || t === F ) ? n . replace ( ln , "" ) : n && ( t = wr ( t ) ) ? ( n = $ ( n ) , t = W ( n , $ ( t ) ) + 1 , Wr ( n , 0 , t ) . join ( "" ) ) : n } , On . trimStart = function ( n , t , r ) { return ( n = Ru ( n ) ) && ( r || t === F ) ? n . replace ( an , "" ) : n && ( t = wr ( t ) ) ? ( n = $ ( n ) , t = z ( n , $ ( t ) ) , Wr ( n , t ) . join ( "" ) ) : n } , On . truncate = function ( n , t ) { var r = 30 , e = "..." ; if ( yu ( t ) ) var u = "separator" in t ? t . separator : u , r = "length" in t ? Eu ( t . length ) : r , e = "omission" in t ? wr ( t . omission ) : e ; n = Ru ( n ) ; var i = n . length ; if ( Bn . test ( n ) ) var o = $ ( n ) , i = o . length ; if ( r >= i ) return n ; if ( i = r - T ( e ) , 1 > i ) return e ; if ( r = o ? Wr ( o , 0 , i ) . join ( "" ) : n . slice ( 0 , i ) , u === F ) return r + e ; if ( o && ( i += r . length - i ) , pf ( u ) ) { if ( n . slice ( i ) . search ( u ) ) { var f = r ; for ( u . global || ( u = ni ( u . source , Ru ( dn . exec ( u ) ) + "g" ) ) , u . lastIndex = 0 ; o = u . exec ( f ) ; ) var c = o . index ; r = r . slice ( 0 , c === F ? i : c ) } } else n . indexOf ( wr ( u ) , i ) != i && ( u = r . lastIndexOf ( u ) , - 1 < u && ( r = r . slice ( 0 , u ) ) ) ; return r + e } , On . unescape = function ( n ) { return ( n = Ru ( n ) ) && J . test ( n ) ? n . replace ( G , ut ) : n } , On . uniqueId = function ( n ) { var t = ++ ci ; return Ru ( n ) + t } , On . upperCase = $f , On . upperFirst = Ff , On . each = tu , On . eachRight = ru , On . first = Ve , Pu ( On , function ( ) { var n = { } ; return Ot ( On , function ( t , r ) { fi . call ( On . prototype , r ) || ( n [ r ] = t ) } ) , n } ( ) , { chain : ! 1 } ) , On . VERSION = "4.17.2" , u ( "bind bindKey curry curryRight partial partialRight" . split ( " " ) , function ( n ) { On [ n ] . placeholder = On } ) , u ( [ "drop" , "take" ] , function ( n , t ) { Mn . prototype [ n ] = function ( r ) { var e = this . _ _filtered _ _ ; if ( e && ! t ) return new Mn ( this ) ; r = r === F ? 1 : Ci ( Eu ( r ) , 0 ) ; var u = this . clone ( ) ; return e ? u . _ _takeCount _ _ = Di ( r , u . _ _takeCount _ _ ) : u . _ _views _ _ . push ( { size : Di ( r , 4294967295 ) , type : n + ( 0 > u . _ _dir _ _ ? "Right" : "" ) } ) , u } , Mn . prototype [ n + "Right" ] = function ( t ) { return this . reverse ( ) [ n ] ( t ) . reverse ( ) } } ) , u ( [ "filter" , "map" , "takeWhile" ] , function ( n , t ) { var r = t + 1 , e = 1 == r || 3 == r ; Mn . prototype [ n ] = function ( n ) { var t = this . clone ( ) ; return t . _ _iteratees _ _ . push ( { iteratee : be ( n , 3 ) , type : r } ) , t . _ _filtered _ _ = t . _ _filtered _ _ || e , t } } ) , u ( [ "head" , "last" ] , function ( n , t ) { var r = "take" + ( t ? "Right" : "" ) ; Mn . prototype [ n ] = function ( ) { return this [ r ] ( 1 ) . value ( ) [ 0 ] } } ) , u ( [ "initial" , "tail" ] , function ( n , t ) { var r = "drop" + ( t ? "" : "Right" ) ; Mn . prototype [ n ] = function ( ) { return this . _ _filtered _ _ ? new Mn ( this ) : this [ r ] ( 1 ) } } ) , Mn . prototype . compact = function ( ) { return this . filter ( Fu ) } , Mn . prototype . find = function ( n ) { return this . filter ( n ) . head ( ) } , Mn . prototype . findLast = function ( n ) { return this . reverse ( ) . find ( n ) } , Mn . prototype . invokeMap = sr ( function ( n , t ) { return "function" == typeof n ? new Mn ( this ) : this . map ( function ( r ) { return Mt ( r , n , t ) } ) } ) , Mn . prototype . reject = function ( n ) { return this . filter ( lu ( be ( n ) ) ) } , Mn . prototype . slice = function ( n , t ) { n = Eu ( n ) ; var r = this ; return r . _ _filtered _ _ && ( 0 < n || 0 > t ) ? new Mn ( r ) : ( 0 > n ? r = r . takeRight ( - n ) : n && ( r = r . drop ( n ) ) , t !== F && ( t = Eu ( t ) , r = 0 > t ? r . dropRight ( - t ) : r . take ( t - n ) ) , r ) } , Mn . prototyp