2024-06-04 14:37:16 -07:00
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2025-01-03 17:56:15 -08:00
! function ( e , t ){ "use strict" ; "object" == typeof module && "object" == typeof module . exports ? module . exports = e . document ? t ( e , ! 0 ) : function ( e ){ if ( ! e . document ) throw new Error ( "jQuery requires a window with a document" ); return t ( e )} : t ( e )}( "undefined" != typeof window ? window : this , function ( C , e ){ "use strict" ; var t = [], r = Object . getPrototypeOf , s = t . slice , g = t . flat ? function ( e ){ return t . flat . call ( e )} : function ( e ){ return t . concat . apply ([], e )}, u = t . push , i = t . indexOf , n = {}, o = n . toString , v = n . hasOwnProperty , a = v . toString , l = a . call ( Object ), y = {}, m = function ( e ){ return "function" == typeof e && "number" != typeof e . nodeType && "function" != typeof e . item }, x = function ( e ){ return null != e && e === e . window }, E = C . document , c = { type :! 0 , src :! 0 , nonce :! 0 , noModule :! 0 }; function b ( e , t , n ){ var r , i , o = ( n = n || E ). createElement ( "script" ); if ( o . text = e , t ) for ( r in c )( i = t [ r ] || t . getAttribute && t . getAttribute ( r )) && o . setAttribute ( r , i ); n . head . appendChild ( o ). parentNode . removeChild ( o )} function w ( e ){ return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n [ o . call ( e )] || "object" : typeof e }
var f = "3.6.0" , S = function ( e , t ){ return new S . fn . init ( e , t )}; function p ( e ){ var t =!! e && "length" in e && e . length , n = w ( e ); return ! m ( e ) &&! x ( e ) && ( "array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e )} S . fn = S . prototype = { jquery : f , constructor : S , length : 0 , toArray : function (){ return s . call ( this )}, get : function ( e ){ return null == e ? s . call ( this ) : e < 0 ? this [ e + this . length ] : this [ e ]}, pushStack : function ( e ){ var t = S . merge ( this . constructor (), e ); return t . prevObject = this , t }, each : function ( e ){ return S . each ( this , e )}, map : function ( n ){ return this . pushStack ( S . map ( this , function ( e , t ){ return n . call ( e , t , e )}))}, slice : function (){ return this . pushStack ( s . apply ( this , arguments ))}, first : function (){ return this . eq ( 0 )}, last : function (){ return this . eq ( - 1 )}, even : function (){ return this . pushStack ( S . grep ( this , function ( e , t ){ return ( t + 1 ) % 2 }))}, odd : function (){ return this . pushStack ( S . grep ( this , function ( e , t ){ return t % 2 }))}, eq : function ( e ){ var t = this . length , n =+ e + ( e < 0 ? t : 0 ); return this . pushStack ( 0 <= n && n < t ? [ this [ n ]] : [])}, end : function (){ return this . prevObject || this . constructor ()},
push : u , sort : t . sort , splice : t . splice }, S . extend = S . fn . extend = function (){ var e , t , n , r , i , o , a = arguments [ 0 ] || {}, s = 1 , u = arguments . length , l =! 1 ; for ( "boolean" == typeof a && ( l = a , a = arguments [ s ] || {}, s ++ ), "object" == typeof a || m ( a ) || ( a = {}), s === u && ( a = this , s -- ); s < u ; s ++ ) if ( null != ( e = arguments [ s ])) for ( t in e ) r = e [ t ], "__proto__" !== t && a !== r && ( l && r && ( S . isPlainObject ( r ) || ( i = Array . isArray ( r ))) ? ( n = a [ t ], o = i &&! Array . isArray ( n ) ? [] : i || S . isPlainObject ( n ) ? n : {}, i =! 1 , a [ t ] = S . extend ( l , o , r )) : void 0 !== r && ( a [ t ] = r )); return a }, S . extend ({ expando : "jQuery" + ( f + Math . random ()). replace ( /\D/g , "" ), isReady :! 0 , error : function ( e ){ throw new Error ( e )}, noop : function (){}, isPlainObject : function ( e ){ var t , n ; return ! ( ! e || "[object Object]" !== o . call ( e )) && ( ! ( t = r ( e )) || "function" == typeof ( n = v . call ( t , "constructor" ) && t . constructor ) && a . call ( n ) === l )}, isEmptyObject : function ( e ){ var t ; for ( t in e ) return ! 1 ; return ! 0 }, globalEval : function ( e , t , n ){ b ( e ,{ nonce : t && t . nonce }, n )}, each : function ( e , t ){ var n , r = 0 ; if ( p ( e )){ for ( n = e . length ; r < n ; r ++ ) if ( ! 1 === t . call ( e [ r ], r , e [ r ])) break } else for ( r in e ) if ( ! 1 === t . call (
e [ r ], r , e [ r ])) break ; return e }, makeArray : function ( e , t ){ var n = t || []; return null != e && ( p ( Object ( e )) ? S . merge ( n , "string" == typeof e ? [ e ] : e ) : u . call ( n , e )), n }, inArray : function ( e , t , n ){ return null == t ?- 1 : i . call ( t , e , n )}, merge : function ( e , t ){ for ( var n =+ t . length , r = 0 , i = e . length ; r < n ; r ++ ) e [ i ++ ] = t [ r ]; return e . length = i , e }, grep : function ( e , t , n ){ for ( var r = [], i = 0 , o = e . length , a =! n ; i < o ; i ++ ) ! t ( e [ i ], i ) !== a && r . push ( e [ i ]); return r }, map : function ( e , t , n ){ var r , i , o = 0 , a = []; if ( p ( e )) for ( r = e . length ; o < r ; o ++ ) null != ( i = t ( e [ o ], o , n )) && a . push ( i ); else for ( o in e ) null != ( i = t ( e [ o ], o , n )) && a . push ( i ); return g ( a )}, guid : 1 , support : y }), "function" == typeof Symbol && ( S . fn [ Symbol . iterator ] = t [ Symbol . iterator ]), S . each ( "Boolean Number String Function Array Date RegExp Object Error Symbol" . split ( " " ), function ( e , t ){ n [ "[object " + t + "]" ] = t . toLowerCase ()}); var d = function ( n ){ var e , d , b , o , i , h , f , g , w , u , l , T , C , a , E , v , s , c , y , S = "sizzle" + 1 * new Date , p = n . document , k = 0 , r = 0 , m = ue (), x = ue (), A = ue (), N = ue (), j = function ( e , t ){ return e === t && ( l =! 0 ), 0 }, D = {}. hasOwnProperty , t = [], q = t . pop , L = t . push , H = t . push ,
O = t . slice , P = function ( e , t ){ for ( var n = 0 , r = e . length ; n < r ; n ++ ) if ( e [ n ] === t ) return n ; return - 1 }, R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped" , M = "[\\x20\\t\\r\\n\\f]" , I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+" , W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]" , F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)" , B = new RegExp ( M + "+" , "g" ), $ = new RegExp ( "^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$" , "g" ), _ = new RegExp ( "^" + M + "*," + M + "*" ), z = new RegExp ( "^" + M + "*([>+~]|" + M + ")" + M + "*" ), U = new RegExp ( M + "|>" ), X = new RegExp ( F ), V = new RegExp ( "^" + I + "$" ), G = { ID : new RegExp ( "^#(" + I + ")" ), CLASS : new RegExp ( "^\\.(" + I + ")" ), TAG : new RegExp ( "^(" + I + "|[*])" ), ATTR : new RegExp ( "^" + W ), PSEUDO : new RegExp ( "^" + F ), CHILD : new RegExp (
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)" , "i" ), bool : new RegExp ( "^(?:" + R + ")$" , "i" ), needsContext : new RegExp ( "^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)" , "i" )}, Y = /HTML$/i , Q = /^(?:input|select|textarea|button)$/i , J = /^h\d$/i , K = /^[^{]+\{\s*\[native \w/ , Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/ , ee = /[+~]/ , te = new RegExp ( "\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])" , "g" ), ne = function ( e , t ){ var n = "0x" + e . slice ( 1 ) - 65536 ; return t || ( n < 0 ? String . fromCharCode ( n + 65536 ) : String . fromCharCode ( n >> 10 | 55296 , 1023 & n | 56320 ))}, re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g , ie = function ( e , t ){ return t ? "\0" === e ? "� " : e . slice ( 0 , - 1 ) + "\\" + e . charCodeAt ( e . length - 1 ). toString ( 16 ) + " " : "\\" + e }, oe = function (){ T ()}, ae = be ( function ( e ){ return ! 0 === e . disabled && "fieldset" === e . nodeName . toLowerCase ()},{ dir : "parentNode" , next : "legend" }); try { H . apply ( t = O . call ( p . childNodes ), p . childNodes ), t [ p . childNodes . length ]. nodeType
} catch ( e ){ H = { apply : t . length ? function ( e , t ){ L . apply ( e , O . call ( t ))} : function ( e , t ){ var n = e . length , r = 0 ; while ( e [ n ++ ] = t [ r ++ ]); e . length = n - 1 }}} function se ( t , e , n , r ){ var i , o , a , s , u , l , c , f = e && e . ownerDocument , p = e ? e . nodeType : 9 ; if ( n = n || [], "string" != typeof t ||! t || 1 !== p && 9 !== p && 11 !== p ) return n ; if ( ! r && ( T ( e ), e = e || C , E )){ if ( 11 !== p && ( u = Z . exec ( t ))) if ( i = u [ 1 ]){ if ( 9 === p ){ if ( ! ( a = e . getElementById ( i ))) return n ; if ( a . id === i ) return n . push ( a ), n } else if ( f && ( a = f . getElementById ( i )) && y ( e , a ) && a . id === i ) return n . push ( a ), n } else { if ( u [ 2 ]) return H . apply ( n , e . getElementsByTagName ( t )), n ; if (( i = u [ 3 ]) && d . getElementsByClassName && e . getElementsByClassName ) return H . apply ( n , e . getElementsByClassName ( i )), n } if ( d . qsa &&! N [ t + " " ] && ( ! v ||! v . test ( t )) && ( 1 !== p || "object" !== e . nodeName . toLowerCase ())){ if ( c = t , f = e , 1 === p && ( U . test ( t ) || z . test ( t ))){( f = ee . test ( t ) && ye ( e . parentNode ) || e ) === e && d . scope || (( s = e . getAttribute ( "id" )) ? s = s . replace ( re , ie ) : e . setAttribute ( "id" , s = S )), o = ( l = h ( t )). length ; while ( o -- ) l [ o ] = ( s ? "#" + s : ":scope" ) + " " + xe ( l [ o ]); c = l . join ( "," )} try { return H . apply ( n , f . querySelectorAll ( c
)), n } catch ( e ){ N ( t , ! 0 )} finally { s === S && e . removeAttribute ( "id" )}}} return g ( t . replace ( $ , "$1" ), e , n , r )} function ue (){ var r = []; return function e ( t , n ){ return r . push ( t + " " ) > b . cacheLength && delete e [ r . shift ()], e [ t + " " ] = n }} function le ( e ){ return e [ S ] =! 0 , e } function ce ( e ){ var t = C . createElement ( "fieldset" ); try { return !! e ( t )} catch ( e ){ return ! 1 } finally { t . parentNode && t . parentNode . removeChild ( t ), t = null }} function fe ( e , t ){ var n = e . split ( "|" ), r = n . length ; while ( r -- ) b . attrHandle [ n [ r ]] = t } function pe ( e , t ){ var n = t && e , r = n && 1 === e . nodeType && 1 === t . nodeType && e . sourceIndex - t . sourceIndex ; if ( r ) return r ; if ( n ) while ( n = n . nextSibling ) if ( n === t ) return - 1 ; return e ? 1 :- 1 } function de ( t ){ return function ( e ){ return "input" === e . nodeName . toLowerCase () && e . type === t }} function he ( n ){ return function ( e ){ var t = e . nodeName . toLowerCase (); return ( "input" === t || "button" === t ) && e . type === n }} function ge ( t ){ return function ( e ){
return "form" in e ? e . parentNode &&! 1 === e . disabled ? "label" in e ? "label" in e . parentNode ? e . parentNode . disabled === t : e . disabled === t : e . isDisabled === t || e . isDisabled !==! t && ae ( e ) === t : e . disabled === t : "label" in e && e . disabled === t }} function ve ( a ){ return le ( function ( o ){ return o =+ o , le ( function ( e , t ){ var n , r = a ([], e . length , o ), i = r . length ; while ( i -- ) e [ n = r [ i ]] && ( e [ n ] =! ( t [ n ] = e [ n ]))})})} function ye ( e ){ return e && "undefined" != typeof e . getElementsByTagName && e } for ( e in d = se . support = {}, i = se . isXML = function ( e ){ var t = e && e . namespaceURI , n = e && ( e . ownerDocument || e ). documentElement ; return ! Y . test ( t || n && n . nodeName || "HTML" )}, T = se . setDocument = function ( e ){ var t , n , r = e ? e . ownerDocument || e : p ; return r != C && 9 === r . nodeType && r . documentElement && ( a = ( C = r ). documentElement , E =! i ( C ), p != C && ( n = C . defaultView ) && n . top !== n && ( n . addEventListener ? n . addEventListener ( "unload" , oe , ! 1 ) : n . attachEvent && n . attachEvent ( "onunload" , oe )), d . scope = ce ( function ( e ){ return a . appendChild ( e ). appendChild ( C . createElement ( "div" )), "undefined" != typeof e . querySelectorAll &&! e . querySelectorAll (
":scope fieldset div" ). length }), d . attributes = ce ( function ( e ){ return e . className = "i" , ! e . getAttribute ( "className" )}), d . getElementsByTagName = ce ( function ( e ){ return e . appendChild ( C . createComment ( "" )), ! e . getElementsByTagName ( "*" ). length }), d . getElementsByClassName = K . test ( C . getElementsByClassName ), d . getById = ce ( function ( e ){ return a . appendChild ( e ). id = S , ! C . getElementsByName ||! C . getElementsByName ( S ). length }), d . getById ? ( b . filter . ID = function ( e ){ var t = e . replace ( te , ne ); return function ( e ){ return e . getAttribute ( "id" ) === t }}, b . find . ID = function ( e , t ){ if ( "undefined" != typeof t . getElementById && E ){ var n = t . getElementById ( e ); return n ? [ n ] : []}}) : ( b . filter . ID = function ( e ){ var n = e . replace ( te , ne ); return function ( e ){ var t = "undefined" != typeof e . getAttributeNode && e . getAttributeNode ( "id" ); return t && t . value === n }}, b . find . ID = function ( e , t ){ if ( "undefined" != typeof t . getElementById && E ){ var n , r , i , o = t . getElementById ( e ); if ( o ){ if (( n = o . getAttributeNode ( "id" )) && n . value === e ) return [ o ]; i = t . getElementsByName ( e ), r = 0 ; while ( o = i [ r ++ ]) if (( n = o . getAttributeNode ( "id" )
) && n . value === e ) return [ o ]} return []}}), b . find . TAG = d . getElementsByTagName ? function ( e , t ){ return "undefined" != typeof t . getElementsByTagName ? t . getElementsByTagName ( e ) : d . qsa ? t . querySelectorAll ( e ) : void 0 } : function ( e , t ){ var n , r = [], i = 0 , o = t . getElementsByTagName ( e ); if ( "*" === e ){ while ( n = o [ i ++ ]) 1 === n . nodeType && r . push ( n ); return r } return o }, b . find . CLASS = d . getElementsByClassName && function ( e , t ){ if ( "undefined" != typeof t . getElementsByClassName && E ) return t . getElementsByClassName ( e )}, s = [], v = [],( d . qsa = K . test ( C . querySelectorAll )) && ( ce ( function ( e ){ var t ; a . appendChild ( e ). innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>" , e . querySelectorAll ( "[msallowcapture^='']" ). length && v . push ( "[*^$]=" + M + "*(?:''|\"\")" ), e . querySelectorAll ( "[selected]" ). length || v . push ( "\\[" + M + "*(?:value|" + R + ")" ), e . querySelectorAll ( "[id~=" + S + "-]" ). length || v . push ( "~=" ),( t = C . createElement ( "input" )). setAttribute ( "name" , "" ), e . appendChild ( t ), e . querySelectorAll ( "[name='']" ). length || v . push (
"\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")" ), e . querySelectorAll ( ":checked" ). length || v . push ( ":checked" ), e . querySelectorAll ( "a#" + S + "+*" ). length || v . push ( ".#.+[+~]" ), e . querySelectorAll ( "\\\f" ), v . push ( "[\\r\\n\\f]" )}), ce ( function ( e ){ e . innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>" ; var t = C . createElement ( "input" ); t . setAttribute ( "type" , "hidden" ), e . appendChild ( t ). setAttribute ( "name" , "D" ), e . querySelectorAll ( "[name=d]" ). length && v . push ( "name" + M + "*[*^$|!~]?=" ), 2 !== e . querySelectorAll ( ":enabled" ). length && v . push ( ":enabled" , ":disabled" ), a . appendChild ( e ). disabled =! 0 , 2 !== e . querySelectorAll ( ":disabled" ). length && v . push ( ":enabled" , ":disabled" ), e . querySelectorAll ( "*,:x" ), v . push ( ",.*:" )})),( d . matchesSelector = K . test ( c = a . matches || a . webkitMatchesSelector || a . mozMatchesSelector || a . oMatchesSelector || a . msMatchesSelector )) && ce ( function ( e ){ d . disconnectedMatch = c . call ( e , "*" ), c . call ( e , "[s!='']:x" ), s . push ( "!=" , F )}), v = v . length && new RegExp ( v . join ( "|" )), s = s . length && new RegExp ( s . join ( "|" )), t = K . test (
a . compareDocumentPosition ), y = t || K . test ( a . contains ) ? function ( e , t ){ var n = 9 === e . nodeType ? e . documentElement : e , r = t && t . parentNode ; return e === r ||! ( ! r || 1 !== r . nodeType ||! ( n . contains ? n . contains ( r ) : e . compareDocumentPosition && 16 & e . compareDocumentPosition ( r )))} : function ( e , t ){ if ( t ) while ( t = t . parentNode ) if ( t === e ) return ! 0 ; return ! 1 }, j = t ? function ( e , t ){ if ( e === t ) return l =! 0 , 0 ; var n =! e . compareDocumentPosition -! t . compareDocumentPosition ; return n || ( 1 & ( n = ( e . ownerDocument || e ) == ( t . ownerDocument || t ) ? e . compareDocumentPosition ( t ) : 1 ) ||! d . sortDetached && t . compareDocumentPosition ( e ) === n ? e == C || e . ownerDocument == p && y ( p , e ) ?- 1 : t == C || t . ownerDocument == p && y ( p , t ) ? 1 : u ? P ( u , e ) - P ( u , t ) : 0 : 4 & n ?- 1 : 1 )} : function ( e , t ){ if ( e === t ) return l =! 0 , 0 ; var n , r = 0 , i = e . parentNode , o = t . parentNode , a = [ e ], s = [ t ]; if ( ! i ||! o ) return e == C ?- 1 : t == C ? 1 : i ?- 1 : o ? 1 : u ? P ( u , e ) - P ( u , t ) : 0 ; if ( i === o ) return pe ( e , t ); n = e ; while ( n = n . parentNode ) a . unshift ( n ); n = t ; while ( n = n . parentNode ) s . unshift ( n ); while ( a [ r ] === s [ r ]) r ++ ; return r ? pe ( a [ r ], s [ r ]) : a [ r ] == p ?- 1 : s [ r ] == p ? 1 : 0 }), C }, se . matches = function ( e , t ){ return se ( e , null ,
null , t )}, se . matchesSelector = function ( e , t ){ if ( T ( e ), d . matchesSelector && E &&! N [ t + " " ] && ( ! s ||! s . test ( t )) && ( ! v ||! v . test ( t ))) try { var n = c . call ( e , t ); if ( n || d . disconnectedMatch || e . document && 11 !== e . document . nodeType ) return n } catch ( e ){ N ( t , ! 0 )} return 0 < se ( t , C , null ,[ e ]). length }, se . contains = function ( e , t ){ return ( e . ownerDocument || e ) != C && T ( e ), y ( e , t )}, se . attr = function ( e , t ){( e . ownerDocument || e ) != C && T ( e ); var n = b . attrHandle [ t . toLowerCase ()], r = n && D . call ( b . attrHandle , t . toLowerCase ()) ? n ( e , t , ! E ) : void 0 ; return void 0 !== r ? r : d . attributes ||! E ? e . getAttribute ( t ) : ( r = e . getAttributeNode ( t )) && r . specified ? r . value : null }, se . escape = function ( e ){ return ( e + "" ). replace ( re , ie )}, se . error = function ( e ){ throw new Error ( "Syntax error, unrecognized expression: " + e )}, se . uniqueSort = function ( e ){ var t , n = [], r = 0 , i = 0 ; if ( l =! d . detectDuplicates , u =! d . sortStable && e . slice ( 0 ), e . sort ( j ), l ){ while ( t = e [ i ++ ]) t === e [ i ] && ( r = n . push ( i )); while ( r -- ) e . splice ( n [ r ], 1 )} return u = null , e }, o = se . getText = function ( e ){ var t , n = "" , r = 0 , i = e . nodeType ; if ( i ){ if ( 1 === i || 9 === i || 11 === i ){ if (
"string" == typeof e . textContent ) return e . textContent ; for ( e = e . firstChild ; e ; e = e . nextSibling ) n += o ( e )} else if ( 3 === i || 4 === i ) return e . nodeValue } else while ( t = e [ r ++ ]) n += o ( t ); return n },( b = se . selectors = { cacheLength : 50 , createPseudo : le , match : G , attrHandle : {}, find : {}, relative : { ">" : { dir : "parentNode" , first :! 0 }, " " : { dir : "parentNode" }, "+" : { dir : "previousSibling" , first :! 0 }, "~" : { dir : "previousSibling" }}, preFilter : { ATTR : function ( e ){ return e [ 1 ] = e [ 1 ]. replace ( te , ne ), e [ 3 ] = ( e [ 3 ] || e [ 4 ] || e [ 5 ] || "" ). replace ( te , ne ), "~=" === e [ 2 ] && ( e [ 3 ] = " " + e [ 3 ] + " " ), e . slice ( 0 , 4 )}, CHILD : function ( e ){ return e [ 1 ] = e [ 1 ]. toLowerCase (), "nth" === e [ 1 ]. slice ( 0 , 3 ) ? ( e [ 3 ] || se . error ( e [ 0 ]), e [ 4 ] =+ ( e [ 4 ] ? e [ 5 ] + ( e [ 6 ] || 1 ) : 2 * ( "even" === e [ 3 ] || "odd" === e [ 3 ])), e [ 5 ] =+ ( e [ 7 ] + e [ 8 ] || "odd" === e [ 3 ])) : e [ 3 ] && se . error ( e [ 0 ]), e }, PSEUDO : function ( e ){ var t , n =! e [ 6 ] && e [ 2 ]; return G . CHILD . test ( e [ 0 ]) ? null : ( e [ 3 ] ? e [ 2 ] = e [ 4 ] || e [ 5 ] || "" : n && X . test ( n ) && ( t = h ( n , ! 0 )) && ( t = n . indexOf ( ")" , n . length - t ) - n . length ) && ( e [ 0 ] = e [ 0 ]. slice ( 0 , t ), e [ 2 ] = n . slice ( 0 , t )), e . slice ( 0 , 3 ))}}, filter : { TAG : function ( e ){ var t = e . replace ( te , ne
). toLowerCase (); return "*" === e ? function (){ return ! 0 } : function ( e ){ return e . nodeName && e . nodeName . toLowerCase () === t }}, CLASS : function ( e ){ var t = m [ e + " " ]; return t || ( t = new RegExp ( "(^|" + M + ")" + e + "(" + M + "|$)" )) && m ( e , function ( e ){ return t . test ( "string" == typeof e . className && e . className || "undefined" != typeof e . getAttribute && e . getAttribute ( "class" ) || "" )})}, ATTR : function ( n , r , i ){ return function ( e ){ var t = se . attr ( e , n ); return null == t ? "!=" === r :! r || ( t += "" , "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t . indexOf ( i ) : "*=" === r ? i &&- 1 < t . indexOf ( i ) : "$=" === r ? i && t . slice ( - i . length ) === i : "~=" === r ?- 1 < ( " " + t . replace ( B , " " ) + " " ). indexOf ( i ) : "|=" === r && ( t === i || t . slice ( 0 , i . length + 1 ) === i + "-" ))}}, CHILD : function ( h , e , t , g , v ){ var y = "nth" !== h . slice ( 0 , 3 ), m = "last" !== h . slice ( - 4 ), x = "of-type" === e ; return 1 === g && 0 === v ? function ( e ){ return !! e . parentNode } : function ( e , t , n ){ var r , i , o , a , s , u , l = y !== m ? "nextSibling" : "previousSibling" , c = e . parentNode , f = x && e . nodeName . toLowerCase (), p =! n &&! x , d =! 1 ; if ( c ){ if ( y ){ while ( l ){ a = e ; while ( a = a [ l ]) if ( x ? a . nodeName . toLowerCase () === f : 1 === a . nodeType
) return ! 1 ; u = l = "only" === h &&! u && "nextSibling" } return ! 0 } if ( u = [ m ? c . firstChild : c . lastChild ], m && p ){ d = ( s = ( r = ( i = ( o = ( a = c )[ S ] || ( a [ S ] = {}))[ a . uniqueID ] || ( o [ a . uniqueID ] = {}))[ h ] || [])[ 0 ] === k && r [ 1 ]) && r [ 2 ], a = s && c . childNodes [ s ]; while ( a =++ s && a && a [ l ] || ( d = s = 0 ) || u . pop ()) if ( 1 === a . nodeType &&++ d && a === e ){ i [ h ] = [ k , s , d ]; break }} else if ( p && ( d = s = ( r = ( i = ( o = ( a = e )[ S ] || ( a [ S ] = {}))[ a . uniqueID ] || ( o [ a . uniqueID ] = {}))[ h ] || [])[ 0 ] === k && r [ 1 ]), ! 1 === d ) while ( a =++ s && a && a [ l ] || ( d = s = 0 ) || u . pop ()) if (( x ? a . nodeName . toLowerCase () === f : 1 === a . nodeType ) &&++ d && ( p && (( i = ( o = a [ S ] || ( a [ S ] = {}))[ a . uniqueID ] || ( o [ a . uniqueID ] = {}))[ h ] = [ k , d ]), a === e )) break ; return ( d -= v ) === g || d % g == 0 && 0 <= d / g }}}, PSEUDO : function ( e , o ){ var t , a = b . pseudos [ e ] || b . setFilters [ e . toLowerCase ()] || se . error ( "unsupported pseudo: " + e ); return a [ S ] ? a ( o ) : 1 < a . length ? ( t = [ e , e , "" , o ], b . setFilters . hasOwnProperty ( e . toLowerCase ()) ? le ( function ( e , t ){ var n , r = a ( e , o ), i = r . length ; while ( i -- ) e [ n = P ( e , r [ i ])] =! ( t [ n ] = r [ i ])}) : function ( e ){ return a ( e , 0 , t )}) : a }}, pseudos : { not : le ( function ( e ){ var r = [], i = [], s = f ( e . replace ( $ , "$1" )); return s [ S ] ? le (
function ( e , t , n , r ){ var i , o = s ( e , null , r ,[]), a = e . length ; while ( a -- )( i = o [ a ]) && ( e [ a ] =! ( t [ a ] = i ))}) : function ( e , t , n ){ return r [ 0 ] = e , s ( r , null , n , i ), r [ 0 ] = null , ! i . pop ()}}), has : le ( function ( t ){ return function ( e ){ return 0 < se ( t , e ). length }}), contains : le ( function ( t ){ return t = t . replace ( te , ne ), function ( e ){ return - 1 < ( e . textContent || o ( e )). indexOf ( t )}}), lang : le ( function ( n ){ return V . test ( n || "" ) || se . error ( "unsupported lang: " + n ), n = n . replace ( te , ne ). toLowerCase (), function ( e ){ var t ; do { if ( t = E ? e . lang : e . getAttribute ( "xml:lang" ) || e . getAttribute ( "lang" )) return ( t = t . toLowerCase ()) === n || 0 === t . indexOf ( n + "-" )} while (( e = e . parentNode ) && 1 === e . nodeType ); return ! 1 }}), target : function ( e ){ var t = n . location && n . location . hash ; return t && t . slice ( 1 ) === e . id }, root : function ( e ){ return e === a }, focus : function ( e ){ return e === C . activeElement && ( ! C . hasFocus || C . hasFocus ()) &&!! ( e . type || e . href ||~ e . tabIndex )}, enabled : ge ( ! 1 ), disabled : ge ( ! 0 ), checked : function ( e ){ var t = e . nodeName . toLowerCase (); return "input" === t &&!! e . checked || "option" === t &&!! e . selected }, selected : function ( e ){
return e . parentNode && e . parentNode . selectedIndex , ! 0 === e . selected }, empty : function ( e ){ for ( e = e . firstChild ; e ; e = e . nextSibling ) if ( e . nodeType < 6 ) return ! 1 ; return ! 0 }, parent : function ( e ){ return ! b . pseudos . empty ( e )}, header : function ( e ){ return J . test ( e . nodeName )}, input : function ( e ){ return Q . test ( e . nodeName )}, button : function ( e ){ var t = e . nodeName . toLowerCase (); return "input" === t && "button" === e . type || "button" === t }, text : function ( e ){ var t ; return "input" === e . nodeName . toLowerCase () && "text" === e . type && ( null == ( t = e . getAttribute ( "type" )) || "text" === t . toLowerCase ())}, first : ve ( function (){ return [ 0 ]}), last : ve ( function ( e , t ){ return [ t - 1 ]}), eq : ve ( function ( e , t , n ){ return [ n < 0 ? n + t : n ]}), even : ve ( function ( e , t ){ for ( var n = 0 ; n < t ; n += 2 ) e . push ( n ); return e }), odd : ve ( function ( e , t ){ for ( var n = 1 ; n < t ; n += 2 ) e . push ( n ); return e }), lt : ve ( function ( e , t , n ){ for ( var r = n < 0 ? n + t : t < n ? t : n ; 0 <=-- r ;) e . push ( r ); return e }), gt : ve ( function ( e , t , n ){ for ( var r = n < 0 ? n + t : n ; ++ r < t ;) e . push ( r ); return e })}}). pseudos . nth = b . pseudos . eq ,{ radio :! 0 , checkbox :! 0 , file :! 0 , password :! 0 , image :! 0 }) b . pseudos [ e ] = de ( e );
for ( e in { submit :! 0 , reset :! 0 }) b . pseudos [ e ] = he ( e ); function me (){} function xe ( e ){ for ( var t = 0 , n = e . length , r = "" ; t < n ; t ++ ) r += e [ t ]. value ; return r } function be ( s , e , t ){ var u = e . dir , l = e . next , c = l || u , f = t && "parentNode" === c , p = r ++ ; return e . first ? function ( e , t , n ){ while ( e = e [ u ]) if ( 1 === e . nodeType || f ) return s ( e , t , n ); return ! 1 } : function ( e , t , n ){ var r , i , o , a = [ k , p ]; if ( n ){ while ( e = e [ u ]) if (( 1 === e . nodeType || f ) && s ( e , t , n )) return ! 0 } else while ( e = e [ u ]) if ( 1 === e . nodeType || f ) if ( i = ( o = e [ S ] || ( e [ S ] = {}))[ e . uniqueID ] || ( o [ e . uniqueID ] = {}), l && l === e . nodeName . toLowerCase ()) e = e [ u ] || e ; else { if (( r = i [ c ]) && r [ 0 ] === k && r [ 1 ] === p ) return a [ 2 ] = r [ 2 ]; if (( i [ c ] = a )[ 2 ] = s ( e , t , n )) return ! 0 } return ! 1 }} function we ( i ){ return 1 < i . length ? function ( e , t , n ){ var r = i . length ; while ( r -- ) if ( ! i [ r ]( e , t , n )) return ! 1 ; return ! 0 } : i [ 0 ]} function Te ( e , t , n , r , i ){ for ( var o , a = [], s = 0 , u = e . length , l = null != t ; s < u ; s ++ )( o = e [ s ]) && ( n &&! n ( o , r , i ) || ( a . push ( o ), l && t . push ( s ))); return a } function Ce ( d , h , g , v , y , e ){ return v &&! v [ S ] && ( v = Ce ( v )), y &&! y [ S ] && ( y = Ce ( y , e )), le ( function ( e , t , n , r ){ var i , o , a , s = [], u = [], l = t . length , c = e || function ( e , t , n
){ for ( var r = 0 , i = t . length ; r < i ; r ++ ) se ( e , t [ r ], n ); return n }( h || "*" , n . nodeType ? [ n ] : n ,[]), f =! d ||! e && h ? c : Te ( c , s , d , n , r ), p = g ? y || ( e ? d : l || v ) ? [] : t : f ; if ( g && g ( f , p , n , r ), v ){ i = Te ( p , u ), v ( i ,[], n , r ), o = i . length ; while ( o -- )( a = i [ o ]) && ( p [ u [ o ]] =! ( f [ u [ o ]] = a ))} if ( e ){ if ( y || d ){ if ( y ){ i = [], o = p . length ; while ( o -- )( a = p [ o ]) && i . push ( f [ o ] = a ); y ( null , p = [], i , r )} o = p . length ; while ( o -- )( a = p [ o ]) &&- 1 < ( i = y ? P ( e , a ) : s [ o ]) && ( e [ i ] =! ( t [ i ] = a ))}} else p = Te ( p === t ? p . splice ( l , p . length ) : p ), y ? y ( null , t , p , r ) : H . apply ( t , p )})} function Ee ( e ){ for ( var i , t , n , r = e . length , o = b . relative [ e [ 0 ]. type ], a = o || b . relative [ " " ], s = o ? 1 : 0 , u = be ( function ( e ){ return e === i }, a , ! 0 ), l = be ( function ( e ){ return - 1 < P ( i , e )}, a , ! 0 ), c = [ function ( e , t , n ){ var r =! o && ( n || t !== w ) || (( i = t ). nodeType ? u ( e , t , n ) : l ( e , t , n )); return i = null , r }]; s < r ; s ++ ) if ( t = b . relative [ e [ s ]. type ]) c = [ be ( we ( c ), t )]; else { if (( t = b . filter [ e [ s ]. type ]. apply ( null , e [ s ]. matches ))[ S ]){ for ( n =++ s ; n < r ; n ++ ) if ( b . relative [ e [ n ]. type ]) break ; return Ce ( 1 < s && we ( c ), 1 < s && xe ( e . slice ( 0 , s - 1 ). concat ({ value : " " === e [ s - 2 ]. type ? "*" : "" })). replace ( $ , "$1" ), t , s < n && Ee ( e . slice ( s , n )), n < r && Ee (
e = e . slice ( n )), n < r && xe ( e ))} c . push ( t )} return we ( c )} return me . prototype = b . filters = b . pseudos , b . setFilters = new me , h = se . tokenize = function ( e , t ){ var n , r , i , o , a , s , u , l = x [ e + " " ]; if ( l ) return t ? 0 : l . slice ( 0 ); a = e , s = [], u = b . preFilter ; while ( a ){ for ( o in n &&! ( r = _ . exec ( a )) || ( r && ( a = a . slice ( r [ 0 ]. length ) || a ), s . push ( i = [])), n =! 1 ,( r = z . exec ( a )) && ( n = r . shift (), i . push ({ value : n , type : r [ 0 ]. replace ( $ , " " )}), a = a . slice ( n . length )), b . filter ) ! ( r = G [ o ]. exec ( a )) || u [ o ] &&! ( r = u [ o ]( r )) || ( n = r . shift (), i . push ({ value : n , type : o , matches : r }), a = a . slice ( n . length )); if ( ! n ) break } return t ? a . length : a ? se . error ( e ) : x ( e , s ). slice ( 0 )}, f = se . compile = function ( e , t ){ var n , v , y , m , x , r , i = [], o = [], a = A [ e + " " ]; if ( ! a ){ t || ( t = h ( e )), n = t . length ; while ( n -- )( a = Ee ( t [ n ]))[ S ] ? i . push ( a ) : o . push ( a );( a = A ( e ,( v = o , m = 0 < ( y = i ). length , x = 0 < v . length , r = function ( e , t , n , r , i ){ var o , a , s , u = 0 , l = "0" , c = e && [], f = [], p = w , d = e || x && b . find . TAG ( "*" , i ), h = k += null == p ? 1 : Math . random () || . 1 , g = d . length ; for ( i && ( w = t == C || t || i ); l !== g && null != ( o = d [ l ]); l ++ ){ if ( x && o ){ a = 0 , t || o . ownerDocument == C || ( T ( o ), n =! E ); while ( s = v [ a ++ ]) if ( s ( o , t || C , n )){ r . push ( o );
break } i && ( k = h )} m && (( o =! s && o ) && u -- , e && c . push ( o ))} if ( u += l , m && l !== u ){ a = 0 ; while ( s = y [ a ++ ]) s ( c , f , t , n ); if ( e ){ if ( 0 < u ) while ( l -- ) c [ l ] || f [ l ] || ( f [ l ] = q . call ( r )); f = Te ( f )} H . apply ( r , f ), i &&! e && 0 < f . length && 1 < u + y . length && se . uniqueSort ( r )} return i && ( k = h , w = p ), c }, m ? le ( r ) : r ))). selector = e } return a }, g = se . select = function ( e , t , n , r ){ var i , o , a , s , u , l = "function" == typeof e && e , c =! r && h ( e = l . selector || e ); if ( n = n || [], 1 === c . length ){ if ( 2 < ( o = c [ 0 ] = c [ 0 ]. slice ( 0 )). length && "ID" === ( a = o [ 0 ]). type && 9 === t . nodeType && E && b . relative [ o [ 1 ]. type ]){ if ( ! ( t = ( b . find . ID ( a . matches [ 0 ]. replace ( te , ne ), t ) || [])[ 0 ])) return n ; l && ( t = t . parentNode ), e = e . slice ( o . shift (). value . length )} i = G . needsContext . test ( e ) ? 0 : o . length ; while ( i -- ){ if ( a = o [ i ], b . relative [ s = a . type ]) break ; if (( u = b . find [ s ]) && ( r = u ( a . matches [ 0 ]. replace ( te , ne ), ee . test ( o [ 0 ]. type ) && ye ( t . parentNode ) || t ))){ if ( o . splice ( i , 1 ), ! ( e = r . length && xe ( o ))) return H . apply ( n , r ), n ; break }}} return ( l || f ( e , c ))( r , t , ! E , n , ! t || ee . test ( e ) && ye ( t . parentNode ) || t ), n }, d . sortStable = S . split ( "" ). sort ( j ). join ( "" ) === S , d . detectDuplicates =!! l , T (), d . sortDetached = ce (
function ( e ){ return 1 & e . compareDocumentPosition ( C . createElement ( "fieldset" ))}), ce ( function ( e ){ return e . innerHTML = "<a href='#'></a>" , "#" === e . firstChild . getAttribute ( "href" )}) || fe ( "type|href|height|width" , function ( e , t , n ){ if ( ! n ) return e . getAttribute ( t , "type" === t . toLowerCase () ? 1 : 2 )}), d . attributes && ce ( function ( e ){ return e . innerHTML = "<input/>" , e . firstChild . setAttribute ( "value" , "" ), "" === e . firstChild . getAttribute ( "value" )}) || fe ( "value" , function ( e , t , n ){ if ( ! n && "input" === e . nodeName . toLowerCase ()) return e . defaultValue }), ce ( function ( e ){ return null == e . getAttribute ( "disabled" )}) || fe ( R , function ( e , t , n ){ var r ; if ( ! n ) return ! 0 === e [ t ] ? t . toLowerCase () : ( r = e . getAttributeNode ( t )) && r . specified ? r . value : null }), se }( C ); S . find = d , S . expr = d . selectors , S . expr [ ":" ] = S . expr . pseudos , S . uniqueSort = S . unique = d . uniqueSort , S . text = d . getText , S . isXMLDoc = d . isXML , S . contains = d . contains , S . escapeSelector = d . escape ; var h = function ( e , t , n ){ var r = [], i = void 0 !== n ; while (( e = e [ t ]) && 9 !== e . nodeType ) if ( 1 === e . nodeType ){ if ( i && S ( e ). is ( n )) break ; r . push ( e )} return r }, T = function ( e , t ){
for ( var n = []; e ; e = e . nextSibling ) 1 === e . nodeType && e !== t && n . push ( e ); return n }, k = S . expr . match . needsContext ; function A ( e , t ){ return e . nodeName && e . nodeName . toLowerCase () === t . toLowerCase ()} var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ; function j ( e , n , r ){ return m ( n ) ? S . grep ( e , function ( e , t ){ return !! n . call ( e , t , e ) !== r }) : n . nodeType ? S . grep ( e , function ( e ){ return e === n !== r }) : "string" != typeof n ? S . grep ( e , function ( e ){ return - 1 < i . call ( n , e ) !== r }) : S . filter ( n , e , r )} S . filter = function ( e , t , n ){ var r = t [ 0 ]; return n && ( e = ":not(" + e + ")" ), 1 === t . length && 1 === r . nodeType ? S . find . matchesSelector ( r , e ) ? [ r ] : [] : S . find . matches ( e , S . grep ( t , function ( e ){ return 1 === e . nodeType }))}, S . fn . extend ({ find : function ( e ){ var t , n , r = this . length , i = this ; if ( "string" != typeof e ) return this . pushStack ( S ( e ). filter ( function (){ for ( t = 0 ; t < r ; t ++ ) if ( S . contains ( i [ t ], this )) return ! 0 })); for ( n = this . pushStack ([]), t = 0 ; t < r ; t ++ ) S . find ( e , i [ t ], n ); return 1 < r ? S . uniqueSort ( n ) : n }, filter : function ( e ){ return this . pushStack ( j ( this , e || [], ! 1 ))}, not : function ( e ){ return this . pushStack ( j (
this , e || [], ! 0 ))}, is : function ( e ){ return !! j ( this , "string" == typeof e && k . test ( e ) ? S ( e ) : e || [], ! 1 ). length }}); var D , q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/ ;( S . fn . init = function ( e , t , n ){ var r , i ; if ( ! e ) return this ; if ( n = n || D , "string" == typeof e ){ if ( ! ( r = "<" === e [ 0 ] && ">" === e [ e . length - 1 ] && 3 <= e . length ? [ null , e , null ] : q . exec ( e )) ||! r [ 1 ] && t ) return ! t || t . jquery ? ( t || n ). find ( e ) : this . constructor ( t ). find ( e ); if ( r [ 1 ]){ if ( t = t instanceof S ? t [ 0 ] : t , S . merge ( this , S . parseHTML ( r [ 1 ], t && t . nodeType ? t . ownerDocument || t : E , ! 0 )), N . test ( r [ 1 ]) && S . isPlainObject ( t )) for ( r in t ) m ( this [ r ]) ? this [ r ]( t [ r ]) : this . attr ( r , t [ r ]); return this } return ( i = E . getElementById ( r [ 2 ])) && ( this [ 0 ] = i , this . length = 1 ), this } return e . nodeType ? ( this [ 0 ] = e , this . length = 1 , this ) : m ( e ) ? void 0 !== n . ready ? n . ready ( e ) : e ( S ) : S . makeArray ( e , this )}). prototype = S . fn , D = S ( E ); var L = /^(?:parents|prev(?:Until|All))/ , H = { children :! 0 , contents :! 0 , next :! 0 , prev :! 0 }; function O ( e , t ){ while (( e = e [ t ]) && 1 !== e . nodeType ); return e } S . fn . extend ({ has : function ( e ){ var t = S ( e , this ), n = t . length ; return this . filter ( function (){ for (
var e = 0 ; e < n ; e ++ ) if ( S . contains ( this , t [ e ])) return ! 0 })}, closest : function ( e , t ){ var n , r = 0 , i = this . length , o = [], a = "string" != typeof e && S ( e ); if ( ! k . test ( e )) for (; r < i ; r ++ ) for ( n = this [ r ]; n && n !== t ; n = n . parentNode ) if ( n . nodeType < 11 && ( a ?- 1 < a . index ( n ) : 1 === n . nodeType && S . find . matchesSelector ( n , e ))){ o . push ( n ); break } return this . pushStack ( 1 < o . length ? S . uniqueSort ( o ) : o )}, index : function ( e ){ return e ? "string" == typeof e ? i . call ( S ( e ), this [ 0 ]) : i . call ( this , e . jquery ? e [ 0 ] : e ) : this [ 0 ] && this [ 0 ]. parentNode ? this . first (). prevAll (). length :- 1 }, add : function ( e , t ){ return this . pushStack ( S . uniqueSort ( S . merge ( this . get (), S ( e , t ))))}, addBack : function ( e ){ return this . add ( null == e ? this . prevObject : this . prevObject . filter ( e ))}}), S . each ({ parent : function ( e ){ var t = e . parentNode ; return t && 11 !== t . nodeType ? t : null }, parents : function ( e ){ return h ( e , "parentNode" )}, parentsUntil : function ( e , t , n ){ return h ( e , "parentNode" , n )}, next : function ( e ){ return O ( e , "nextSibling" )}, prev : function ( e ){ return O ( e , "previousSibling" )}, nextAll : function ( e ){ return h ( e , "nextSibling" )}, prevAll : function ( e ){
return h ( e , "previousSibling" )}, nextUntil : function ( e , t , n ){ return h ( e , "nextSibling" , n )}, prevUntil : function ( e , t , n ){ return h ( e , "previousSibling" , n )}, siblings : function ( e ){ return T (( e . parentNode || {}). firstChild , e )}, children : function ( e ){ return T ( e . firstChild )}, contents : function ( e ){ return null != e . contentDocument && r ( e . contentDocument ) ? e . contentDocument : ( A ( e , "template" ) && ( e = e . content || e ), S . merge ([], e . childNodes ))}}, function ( r , i ){ S . fn [ r ] = function ( e , t ){ var n = S . map ( this , i , e ); return "Until" !== r . slice ( - 5 ) && ( t = e ), t && "string" == typeof t && ( n = S . filter ( t , n )), 1 < this . length && ( H [ r ] || S . uniqueSort ( n ), L . test ( r ) && n . reverse ()), this . pushStack ( n )}}); var P = /[^\x20\t\r\n\f]+/g ; function R ( e ){ return e } function M ( e ){ throw e } function I ( e , t , n , r ){ var i ; try { e && m ( i = e . promise ) ? i . call ( e ). done ( t ). fail ( n ) : e && m ( i = e . then ) ? i . call ( e , t , n ) : t . apply ( void 0 ,[ e ]. slice ( r ))} catch ( e ){ n . apply ( void 0 ,[ e ])}} S . Callbacks = function ( r ){ var e , n ; r = "string" == typeof r ? ( e = r , n = {}, S . each ( e . match ( P ) || [], function ( e , t ){ n [ t ] =! 0 }), n ) : S . extend ({}, r ); var i , t , o , a , s = [], u = [], l =- 1 , c = function (
){ for ( a = a || r . once , o = i =! 0 ; u . length ; l =- 1 ){ t = u . shift (); while ( ++ l < s . length ) ! 1 === s [ l ]. apply ( t [ 0 ], t [ 1 ]) && r . stopOnFalse && ( l = s . length , t =! 1 )} r . memory || ( t =! 1 ), i =! 1 , a && ( s = t ? [] : "" )}, f = { add : function (){ return s && ( t &&! i && ( l = s . length - 1 , u . push ( t )), function n ( e ){ S . each ( e , function ( e , t ){ m ( t ) ? r . unique && f . has ( t ) || s . push ( t ) : t && t . length && "string" !== w ( t ) && n ( t )})}( arguments ), t &&! i && c ()), this }, remove : function (){ return S . each ( arguments , function ( e , t ){ var n ; while ( - 1 < ( n = S . inArray ( t , s , n ))) s . splice ( n , 1 ), n <= l && l -- }), this }, has : function ( e ){ return e ?- 1 < S . inArray ( e , s ) : 0 < s . length }, empty : function (){ return s && ( s = []), this }, disable : function (){ return a = u = [], s = t = "" , this }, disabled : function (){ return ! s }, lock : function (){ return a = u = [], t || i || ( s = t = "" ), this }, locked : function (){ return !! a }, fireWith : function ( e , t ){ return a || ( t = [ e ,( t = t || []). slice ? t . slice () : t ], u . push ( t ), i || c ()), this }, fire : function (){ return f . fireWith ( this , arguments ), this }, fired : function (){ return !! o }}; return f }, S . extend ({ Deferred : function ( e ){ var o = [[ "notify" , "progress" , S . Callbacks ( "memory" ),
S . Callbacks ( "memory" ), 2 ],[ "resolve" , "done" , S . Callbacks ( "once memory" ), S . Callbacks ( "once memory" ), 0 , "resolved" ],[ "reject" , "fail" , S . Callbacks ( "once memory" ), S . Callbacks ( "once memory" ), 1 , "rejected" ]], i = "pending" , a = { state : function (){ return i }, always : function (){ return s . done ( arguments ). fail ( arguments ), this }, catch : function ( e ){ return a . then ( null , e )}, pipe : function (){ var i = arguments ; return S . Deferred ( function ( r ){ S . each ( o , function ( e , t ){ var n = m ( i [ t [ 4 ]]) && i [ t [ 4 ]]; s [ t [ 1 ]]( function (){ var e = n && n . apply ( this , arguments ); e && m ( e . promise ) ? e . promise (). progress ( r . notify ). done ( r . resolve ). fail ( r . reject ) : r [ t [ 0 ] + "With" ]( this , n ? [ e ] : arguments )})}), i = null }). promise ()}, then : function ( t , n , r ){ var u = 0 ; function l ( i , o , a , s ){ return function (){ var n = this , r = arguments , e = function (){ var e , t ; if ( ! ( i < u )){ if (( e = a . apply ( n , r )) === o . promise ()) throw new TypeError ( "Thenable self-resolution" ); t = e && ( "object" == typeof e || "function" == typeof e ) && e . then , m ( t ) ? s ? t . call ( e , l ( u , o , R , s ), l ( u , o , M , s )) : ( u ++ , t . call ( e , l ( u , o , R , s ), l ( u , o , M , s ), l ( u , o , R , o . notifyWith ))) : ( a !== R && ( n = void 0 ,
r = [ e ]),( s || o . resolveWith )( n , r ))}}, t = s ? e : function (){ try { e ()} catch ( e ){ S . Deferred . exceptionHook && S . Deferred . exceptionHook ( e , t . stackTrace ), u <= i + 1 && ( a !== M && ( n = void 0 , r = [ e ]), o . rejectWith ( n , r ))}}; i ? t () : ( S . Deferred . getStackHook && ( t . stackTrace = S . Deferred . getStackHook ()), C . setTimeout ( t ))}} return S . Deferred ( function ( e ){ o [ 0 ][ 3 ]. add ( l ( 0 , e , m ( r ) ? r : R , e . notifyWith )), o [ 1 ][ 3 ]. add ( l ( 0 , e , m ( t ) ? t : R )), o [ 2 ][ 3 ]. add ( l ( 0 , e , m ( n ) ? n : M ))}). promise ()}, promise : function ( e ){ return null != e ? S . extend ( e , a ) : a }}, s = {}; return S . each ( o , function ( e , t ){ var n = t [ 2 ], r = t [ 5 ]; a [ t [ 1 ]] = n . add , r && n . add ( function (){ i = r }, o [ 3 - e ][ 2 ]. disable , o [ 3 - e ][ 3 ]. disable , o [ 0 ][ 2 ]. lock , o [ 0 ][ 3 ]. lock ), n . add ( t [ 3 ]. fire ), s [ t [ 0 ]] = function (){ return s [ t [ 0 ] + "With" ]( this === s ? void 0 : this , arguments ), this }, s [ t [ 0 ] + "With" ] = n . fireWith }), a . promise ( s ), e && e . call ( s , s ), s }, when : function ( e ){ var n = arguments . length , t = n , r = Array ( t ), i = s . call ( arguments ), o = S . Deferred (), a = function ( t ){ return function ( e ){ r [ t ] = this , i [ t ] = 1 < arguments . length ? s . call ( arguments ) : e , -- n || o . resolveWith ( r , i )}}; if ( n <= 1 && ( I ( e , o . done ( a ( t )). resolve ,
o . reject , ! n ), "pending" === o . state () || m ( i [ t ] && i [ t ]. then ))) return o . then (); while ( t -- ) I ( i [ t ], a ( t ), o . reject ); return o . promise ()}}); var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/ ; S . Deferred . exceptionHook = function ( e , t ){ C . console && C . console . warn && e && W . test ( e . name ) && C . console . warn ( "jQuery.Deferred exception: " + e . message , e . stack , t )}, S . readyException = function ( e ){ C . setTimeout ( function (){ throw e })}; var F = S . Deferred (); function B (){ E . removeEventListener ( "DOMContentLoaded" , B ), C . removeEventListener ( "load" , B ), S . ready ()} S . fn . ready = function ( e ){ return F . then ( e )[ "catch" ]( function ( e ){ S . readyException ( e )}), this }, S . extend ({ isReady :! 1 , readyWait : 1 , ready : function ( e ){( ! 0 === e ?-- S . readyWait : S . isReady ) || ( S . isReady =! 0 ) !== e && 0 <-- S . readyWait || F . resolveWith ( E ,[ S ])}}), S . ready . then = F . then , "complete" === E . readyState || "loading" !== E . readyState &&! E . documentElement . doScroll ? C . setTimeout ( S . ready ) : ( E . addEventListener ( "DOMContentLoaded" , B ), C . addEventListener ( "load" , B )); var $ = function ( e , t , n , r , i , o , a ){ var s = 0 , u = e . length , l = null == n ; if (
"object" === w ( n )) for ( s in i =! 0 , n ) $ ( e , t , s , n [ s ], ! 0 , o , a ); else if ( void 0 !== r && ( i =! 0 , m ( r ) || ( a =! 0 ), l && ( a ? ( t . call ( e , r ), t = null ) : ( l = t , t = function ( e , t , n ){ return l . call ( S ( e ), n )})), t )) for (; s < u ; s ++ ) t ( e [ s ], n , a ? r : r . call ( e [ s ], s , t ( e [ s ], n ))); return i ? e : l ? t . call ( e ) : u ? t ( e [ 0 ], n ) : o }, _ = /^-ms-/ , z = /-([a-z])/g ; function U ( e , t ){ return t . toUpperCase ()} function X ( e ){ return e . replace ( _ , "ms-" ). replace ( z , U )} var V = function ( e ){ return 1 === e . nodeType || 9 === e . nodeType ||!+ e . nodeType }; function G (){ this . expando = S . expando + G . uid ++ } G . uid = 1 , G . prototype = { cache : function ( e ){ var t = e [ this . expando ]; return t || ( t = {}, V ( e ) && ( e . nodeType ? e [ this . expando ] = t : Object . defineProperty ( e , this . expando ,{ value : t , configurable :! 0 }))), t }, set : function ( e , t , n ){ var r , i = this . cache ( e ); if ( "string" == typeof t ) i [ X ( t )] = n ; else for ( r in t ) i [ X ( r )] = t [ r ]; return i }, get : function ( e , t ){ return void 0 === t ? this . cache ( e ) : e [ this . expando ] && e [ this . expando ][ X ( t )]}, access : function ( e , t , n ){ return void 0 === t || t && "string" == typeof t && void 0 === n ? this . get ( e , t ) : ( this . set ( e , t , n ), void 0 !== n ? n : t )}, remove : function ( e , t ){
var n , r = e [ this . expando ]; if ( void 0 !== r ){ if ( void 0 !== t ){ n = ( t = Array . isArray ( t ) ? t . map ( X ) : ( t = X ( t )) in r ? [ t ] : t . match ( P ) || []). length ; while ( n -- ) delete r [ t [ n ]]}( void 0 === t || S . isEmptyObject ( r )) && ( e . nodeType ? e [ this . expando ] = void 0 : delete e [ this . expando ])}}, hasData : function ( e ){ var t = e [ this . expando ]; return void 0 !== t &&! S . isEmptyObject ( t )}}; var Y = new G , Q = new G , J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , K = /[A-Z]/g ; function Z ( e , t , n ){ var r , i ; if ( void 0 === n && 1 === e . nodeType ) if ( r = "data-" + t . replace ( K , "-$&" ). toLowerCase (), "string" == typeof ( n = e . getAttribute ( r ))){ try { n = "true" === ( i = n ) || "false" !== i && ( "null" === i ? null : i ===+ i + "" ?+ i : J . test ( i ) ? JSON . parse ( i ) : i )} catch ( e ){} Q . set ( e , t , n )} else n = void 0 ; return n } S . extend ({ hasData : function ( e ){ return Q . hasData ( e ) || Y . hasData ( e )}, data : function ( e , t , n ){ return Q . access ( e , t , n )}, removeData : function ( e , t ){ Q . remove ( e , t )}, _data : function ( e , t , n ){ return Y . access ( e , t , n )}, _removeData : function ( e , t ){ Y . remove ( e , t )}}), S . fn . extend ({ data : function ( n , e ){ var t , r , i , o = this [ 0 ], a = o && o . attributes ; if ( void 0 === n ){ if ( this . length && ( i = Q . get ( o ),
1 === o . nodeType &&! Y . get ( o , "hasDataAttrs" ))){ t = a . length ; while ( t -- ) a [ t ] && 0 === ( r = a [ t ]. name ). indexOf ( "data-" ) && ( r = X ( r . slice ( 5 )), Z ( o , r , i [ r ])); Y . set ( o , "hasDataAttrs" , ! 0 )} return i } return "object" == typeof n ? this . each ( function (){ Q . set ( this , n )}) : $ ( this , function ( e ){ var t ; if ( o && void 0 === e ) return void 0 !== ( t = Q . get ( o , n )) ? t : void 0 !== ( t = Z ( o , n )) ? t : void 0 ; this . each ( function (){ Q . set ( this , n , e )})}, null , e , 1 < arguments . length , null , ! 0 )}, removeData : function ( e ){ return this . each ( function (){ Q . remove ( this , e )})}}), S . extend ({ queue : function ( e , t , n ){ var r ; if ( e ) return t = ( t || "fx" ) + "queue" , r = Y . get ( e , t ), n && ( ! r || Array . isArray ( n ) ? r = Y . access ( e , t , S . makeArray ( n )) : r . push ( n )), r || []}, dequeue : function ( e , t ){ t = t || "fx" ; var n = S . queue ( e , t ), r = n . length , i = n . shift (), o = S . _queueHooks ( e , t ); "inprogress" === i && ( i = n . shift (), r -- ), i && ( "fx" === t && n . unshift ( "inprogress" ), delete o . stop , i . call ( e , function (){ S . dequeue ( e , t )}, o )), ! r && o && o . empty . fire ()}, _queueHooks : function ( e , t ){ var n = t + "queueHooks" ; return Y . get ( e , n ) || Y . access ( e , n ,{ empty : S . Callbacks ( "once memory" ). add ( function (){
Y . remove ( e ,[ t + "queue" , n ])})})}}), S . fn . extend ({ queue : function ( t , n ){ var e = 2 ; return "string" != typeof t && ( n = t , t = "fx" , e -- ), arguments . length < e ? S . queue ( this [ 0 ], t ) : void 0 === n ? this : this . each ( function (){ var e = S . queue ( this , t , n ); S . _queueHooks ( this , t ), "fx" === t && "inprogress" !== e [ 0 ] && S . dequeue ( this , t )})}, dequeue : function ( e ){ return this . each ( function (){ S . dequeue ( this , e )})}, clearQueue : function ( e ){ return this . queue ( e || "fx" ,[])}, promise : function ( e , t ){ var n , r = 1 , i = S . Deferred (), o = this , a = this . length , s = function (){ -- r || i . resolveWith ( o ,[ o ])}; "string" != typeof e && ( t = e , e = void 0 ), e = e || "fx" ; while ( a -- )( n = Y . get ( o [ a ], e + "queueHooks" )) && n . empty && ( r ++ , n . empty . add ( s )); return s (), i . promise ( t )}}); var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , te = new RegExp ( "^(?:([+-])=|)(" + ee + ")([a-z%]*)$" , "i" ), ne = [ "Top" , "Right" , "Bottom" , "Left" ], re = E . documentElement , ie = function ( e ){ return S . contains ( e . ownerDocument , e )}, oe = { composed :! 0 }; re . getRootNode && ( ie = function ( e ){ return S . contains ( e . ownerDocument , e ) || e . getRootNode ( oe ) === e . ownerDocument }); var ae = function ( e , t
){ return "none" === ( e = t || e ). style . display || "" === e . style . display && ie ( e ) && "none" === S . css ( e , "display" )}; function se ( e , t , n , r ){ var i , o , a = 20 , s = r ? function (){ return r . cur ()} : function (){ return S . css ( e , t , "" )}, u = s (), l = n && n [ 3 ] || ( S . cssNumber [ t ] ? "" : "px" ), c = e . nodeType && ( S . cssNumber [ t ] || "px" !== l &&+ u ) && te . exec ( S . css ( e , t )); if ( c && c [ 3 ] !== l ){ u /= 2 , l = l || c [ 3 ], c =+ u || 1 ; while ( a -- ) S . style ( e , t , c + l ),( 1 - o ) * ( 1 - ( o = s () / u || . 5 )) <= 0 && ( a = 0 ), c /= o ; c *= 2 , S . style ( e , t , c + l ), n = n || []} return n && ( c =+ c ||+ u || 0 , i = n [ 1 ] ? c + ( n [ 1 ] + 1 ) * n [ 2 ] :+ n [ 2 ], r && ( r . unit = l , r . start = c , r . end = i )), i } var ue = {}; function le ( e , t ){ for ( var n , r , i , o , a , s , u , l = [], c = 0 , f = e . length ; c < f ; c ++ )( r = e [ c ]). style && ( n = r . style . display , t ? ( "none" === n && ( l [ c ] = Y . get ( r , "display" ) || null , l [ c ] || ( r . style . display = "" )), "" === r . style . display && ae ( r ) && ( l [ c ] = ( u = a = o = void 0 , a = ( i = r ). ownerDocument , s = i . nodeName ,( u = ue [ s ]) || ( o = a . body . appendChild ( a . createElement ( s )), u = S . css ( o , "display" ), o . parentNode . removeChild ( o ), "none" === u && ( u = "block" ), ue [ s ] = u )))) : "none" !== n && ( l [ c ] = "none" , Y . set ( r , "display" , n ))); for ( c = 0 ; c < f ; c ++ ) null != l [ c ] && ( e [ c
]. style . display = l [ c ]); return e } S . fn . extend ({ show : function (){ return le ( this , ! 0 )}, hide : function (){ return le ( this )}, toggle : function ( e ){ return "boolean" == typeof e ? e ? this . show () : this . hide () : this . each ( function (){ ae ( this ) ? S ( this ). show () : S ( this ). hide ()})}}); var ce , fe , pe = /^(?:checkbox|radio)$/i , de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i , he = /^$|^module$|\/(?:java|ecma)script/i ; ce = E . createDocumentFragment (). appendChild ( E . createElement ( "div" )),( fe = E . createElement ( "input" )). setAttribute ( "type" , "radio" ), fe . setAttribute ( "checked" , "checked" ), fe . setAttribute ( "name" , "t" ), ce . appendChild ( fe ), y . checkClone = ce . cloneNode ( ! 0 ). cloneNode ( ! 0 ). lastChild . checked , ce . innerHTML = "<textarea>x</textarea>" , y . noCloneChecked =!! ce . cloneNode ( ! 0 ). lastChild . defaultValue , ce . innerHTML = "<option></option>" , y . option =!! ce . lastChild ; var ge = { thead : [ 1 , "<table>" , "</table>" ], col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ], tr : [ 2 , "<table><tbody>" , "</tbody></table>" ], td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ], _default : [ 0 , "" , "" ]}; function ve ( e , t ){ var n ;
return n = "undefined" != typeof e . getElementsByTagName ? e . getElementsByTagName ( t || "*" ) : "undefined" != typeof e . querySelectorAll ? e . querySelectorAll ( t || "*" ) : [], void 0 === t || t && A ( e , t ) ? S . merge ([ e ], n ) : n } function ye ( e , t ){ for ( var n = 0 , r = e . length ; n < r ; n ++ ) Y . set ( e [ n ], "globalEval" , ! t || Y . get ( t [ n ], "globalEval" ))} ge . tbody = ge . tfoot = ge . colgroup = ge . caption = ge . thead , ge . th = ge . td , y . option || ( ge . optgroup = ge . option = [ 1 , "<select multiple='multiple'>" , "</select>" ]); var me = /<|&#?\w+;/ ; function xe ( e , t , n , r , i ){ for ( var o , a , s , u , l , c , f = t . createDocumentFragment (), p = [], d = 0 , h = e . length ; d < h ; d ++ ) if (( o = e [ d ]) || 0 === o ) if ( "object" === w ( o )) S . merge ( p , o . nodeType ? [ o ] : o ); else if ( me . test ( o )){ a = a || f . appendChild ( t . createElement ( "div" )), s = ( de . exec ( o ) || [ "" , "" ])[ 1 ]. toLowerCase (), u = ge [ s ] || ge . _default , a . innerHTML = u [ 1 ] + S . htmlPrefilter ( o ) + u [ 2 ], c = u [ 0 ]; while ( c -- ) a = a . lastChild ; S . merge ( p , a . childNodes ),( a = f . firstChild ). textContent = "" } else p . push ( t . createTextNode ( o )); f . textContent = "" , d = 0 ; while ( o = p [ d ++ ]) if ( r &&- 1 < S . inArray ( o , r )) i && i . push ( o ); else if ( l = ie ( o ), a = ve ( f . appendChild ( o ),
"script" ), l && ye ( a ), n ){ c = 0 ; while ( o = a [ c ++ ]) he . test ( o . type || "" ) && n . push ( o )} return f } var be = /^([^.]*)(?:\.(.+)|)/ ; function we (){ return ! 0 } function Te (){ return ! 1 } function Ce ( e , t ){ return e === function (){ try { return E . activeElement } catch ( e ){}}() == ( "focus" === t )} function Ee ( e , t , n , r , i , o ){ var a , s ; if ( "object" == typeof t ){ for ( s in "string" != typeof n && ( r = r || n , n = void 0 ), t ) Ee ( e , s , n , r , t [ s ], o ); return e } if ( null == r && null == i ? ( i = n , r = n = void 0 ) : null == i && ( "string" == typeof n ? ( i = r , r = void 0 ) : ( i = r , r = n , n = void 0 )), ! 1 === i ) i = Te ; else if ( ! i ) return e ; return 1 === o && ( a = i ,( i = function ( e ){ return S (). off ( e ), a . apply ( this , arguments )}). guid = a . guid || ( a . guid = S . guid ++ )), e . each ( function (){ S . event . add ( this , t , i , r , n )})} function Se ( e , i , o ){ o ? ( Y . set ( e , i , ! 1 ), S . event . add ( e , i ,{ namespace :! 1 , handler : function ( e ){ var t , n , r = Y . get ( this , i ); if ( 1 & e . isTrigger && this [ i ]){ if ( r . length )( S . event . special [ i ] || {}). delegateType && e . stopPropagation (); else if ( r = s . call ( arguments ), Y . set ( this , i , r ), t = o ( this , i ), this [ i ](), r !== ( n = Y . get ( this , i )) || t ? Y . set ( this , i , ! 1 ) : n = {}, r !== n
) return e . stopImmediatePropagation (), e . preventDefault (), n && n . value } else r . length && ( Y . set ( this , i ,{ value : S . event . trigger ( S . extend ( r [ 0 ], S . Event . prototype ), r . slice ( 1 ), this )}), e . stopImmediatePropagation ())}})) : void 0 === Y . get ( e , i ) && S . event . add ( e , i , we )} S . event = { global : {}, add : function ( t , e , n , r , i ){ var o , a , s , u , l , c , f , p , d , h , g , v = Y . get ( t ); if ( V ( t )){ n . handler && ( n = ( o = n ). handler , i = o . selector ), i && S . find . matchesSelector ( re , i ), n . guid || ( n . guid = S . guid ++ ),( u = v . events ) || ( u = v . events = Object . create ( null )),( a = v . handle ) || ( a = v . handle = function ( e ){ return "undefined" != typeof S && S . event . triggered !== e . type ? S . event . dispatch . apply ( t , arguments ) : void 0 }), l = ( e = ( e || "" ). match ( P ) || [ "" ]). length ; while ( l -- ) d = g = ( s = be . exec ( e [ l ]) || [])[ 1 ], h = ( s [ 2 ] || "" ). split ( "." ). sort (), d && ( f = S . event . special [ d ] || {}, d = ( i ? f . delegateType : f . bindType ) || d , f = S . event . special [ d ] || {}, c = S . extend ({ type : d , origType : g , data : r , handler : n , guid : n . guid , selector : i , needsContext : i && S . expr . match . needsContext . test ( i ), namespace : h . join ( "." )}, o ),( p = u [ d ]) || (( p = u [ d ] = []). delegateCount = 0 ,
f . setup &&! 1 !== f . setup . call ( t , r , h , a ) || t . addEventListener && t . addEventListener ( d , a )), f . add && ( f . add . call ( t , c ), c . handler . guid || ( c . handler . guid = n . guid )), i ? p . splice ( p . delegateCount ++ , 0 , c ) : p . push ( c ), S . event . global [ d ] =! 0 )}}, remove : function ( e , t , n , r , i ){ var o , a , s , u , l , c , f , p , d , h , g , v = Y . hasData ( e ) && Y . get ( e ); if ( v && ( u = v . events )){ l = ( t = ( t || "" ). match ( P ) || [ "" ]). length ; while ( l -- ) if ( d = g = ( s = be . exec ( t [ l ]) || [])[ 1 ], h = ( s [ 2 ] || "" ). split ( "." ). sort (), d ){ f = S . event . special [ d ] || {}, p = u [ d = ( r ? f . delegateType : f . bindType ) || d ] || [], s = s [ 2 ] && new RegExp ( "(^|\\.)" + h . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ), a = o = p . length ; while ( o -- ) c = p [ o ], ! i && g !== c . origType || n && n . guid !== c . guid || s &&! s . test ( c . namespace ) || r && r !== c . selector && ( "**" !== r ||! c . selector ) || ( p . splice ( o , 1 ), c . selector && p . delegateCount -- , f . remove && f . remove . call ( e , c )); a &&! p . length && ( f . teardown &&! 1 !== f . teardown . call ( e , h , v . handle ) || S . removeEvent ( e , d , v . handle ), delete u [ d ])} else for ( d in u ) S . event . remove ( e , d + t [ l ], n , r , ! 0 ); S . isEmptyObject ( u ) && Y . remove ( e , "handle events" )}}, dispatch : function ( e ){ var t , n , r , i , o , a , s = new Array (
arguments . length ), u = S . event . fix ( e ), l = ( Y . get ( this , "events" ) || Object . create ( null ))[ u . type ] || [], c = S . event . special [ u . type ] || {}; for ( s [ 0 ] = u , t = 1 ; t < arguments . length ; t ++ ) s [ t ] = arguments [ t ]; if ( u . delegateTarget = this , ! c . preDispatch ||! 1 !== c . preDispatch . call ( this , u )){ a = S . event . handlers . call ( this , u , l ), t = 0 ; while (( i = a [ t ++ ]) &&! u . isPropagationStopped ()){ u . currentTarget = i . elem , n = 0 ; while (( o = i . handlers [ n ++ ]) &&! u . isImmediatePropagationStopped ()) u . rnamespace &&! 1 !== o . namespace &&! u . rnamespace . test ( o . namespace ) || ( u . handleObj = o , u . data = o . data , void 0 !== ( r = (( S . event . special [ o . origType ] || {}). handle || o . handler ). apply ( i . elem , s )) &&! 1 === ( u . result = r ) && ( u . preventDefault (), u . stopPropagation ()))} return c . postDispatch && c . postDispatch . call ( this , u ), u . result }}, handlers : function ( e , t ){ var n , r , i , o , a , s = [], u = t . delegateCount , l = e . target ; if ( u && l . nodeType &&! ( "click" === e . type && 1 <= e . button )) for (; l !== this ; l = l . parentNode || this ) if ( 1 === l . nodeType && ( "click" !== e . type ||! 0 !== l . disabled )){ for ( o = [], a = {}, n = 0 ; n < u ; n ++ ) void 0 === a [ i = ( r = t [ n ]). selector + " " ] && ( a [ i
] = r . needsContext ?- 1 < S ( i , this ). index ( l ) : S . find ( i , this , null ,[ l ]). length ), a [ i ] && o . push ( r ); o . length && s . push ({ elem : l , handlers : o })} return l = this , u < t . length && s . push ({ elem : l , handlers : t . slice ( u )}), s }, addProp : function ( t , e ){ Object . defineProperty ( S . Event . prototype , t ,{ enumerable :! 0 , configurable :! 0 , get : m ( e ) ? function (){ if ( this . originalEvent ) return e ( this . originalEvent )} : function (){ if ( this . originalEvent ) return this . originalEvent [ t ]}, set : function ( e ){ Object . defineProperty ( this , t ,{ enumerable :! 0 , configurable :! 0 , writable :! 0 , value : e })}})}, fix : function ( e ){ return e [ S . expando ] ? e : new S . Event ( e )}, special : { load : { noBubble :! 0 }, click : { setup : function ( e ){ var t = this || e ; return pe . test ( t . type ) && t . click && A ( t , "input" ) && Se ( t , "click" , we ), ! 1 }, trigger : function ( e ){ var t = this || e ; return pe . test ( t . type ) && t . click && A ( t , "input" ) && Se ( t , "click" ), ! 0 }, _default : function ( e ){ var t = e . target ; return pe . test ( t . type ) && t . click && A ( t , "input" ) && Y . get ( t , "click" ) || A ( t , "a" )}}, beforeunload : { postDispatch : function ( e ){ void 0 !== e . result && e . originalEvent && (
e . originalEvent . returnValue = e . result )}}}}, S . removeEvent = function ( e , t , n ){ e . removeEventListener && e . removeEventListener ( t , n )}, S . Event = function ( e , t ){ if ( ! ( this instanceof S . Event )) return new S . Event ( e , t ); e && e . type ? ( this . originalEvent = e , this . type = e . type , this . isDefaultPrevented = e . defaultPrevented || void 0 === e . defaultPrevented &&! 1 === e . returnValue ? we : Te , this . target = e . target && 3 === e . target . nodeType ? e . target . parentNode : e . target , this . currentTarget = e . currentTarget , this . relatedTarget = e . relatedTarget ) : this . type = e , t && S . extend ( this , t ), this . timeStamp = e && e . timeStamp || Date . now (), this [ S . expando ] =! 0 }, S . Event . prototype = { constructor : S . Event , isDefaultPrevented : Te , isPropagationStopped : Te , isImmediatePropagationStopped : Te , isSimulated :! 1 , preventDefault : function (){ var e = this . originalEvent ; this . isDefaultPrevented = we , e &&! this . isSimulated && e . preventDefault ()}, stopPropagation : function (){ var e = this . originalEvent ; this . isPropagationStopped = we , e &&! this . isSimulated && e . stopPropagation ()}, stopImmediatePropagation : function (){ var e = this . originalEvent ;
this . isImmediatePropagationStopped = we , e &&! this . isSimulated && e . stopImmediatePropagation (), this . stopPropagation ()}}, S . each ({ altKey :! 0 , bubbles :! 0 , cancelable :! 0 , changedTouches :! 0 , ctrlKey :! 0 , detail :! 0 , eventPhase :! 0 , metaKey :! 0 , pageX :! 0 , pageY :! 0 , shiftKey :! 0 , view :! 0 , char :! 0 , code :! 0 , charCode :! 0 , key :! 0 , keyCode :! 0 , button :! 0 , buttons :! 0 , clientX :! 0 , clientY :! 0 , offsetX :! 0 , offsetY :! 0 , pointerId :! 0 , pointerType :! 0 , screenX :! 0 , screenY :! 0 , targetTouches :! 0 , toElement :! 0 , touches :! 0 , which :! 0 }, S . event . addProp ), S . each ({ focus : "focusin" , blur : "focusout" }, function ( e , t ){ S . event . special [ e ] = { setup : function (){ return Se ( this , e , Ce ), ! 1 }, trigger : function (){ return Se ( this , e ), ! 0 }, _default : function (){ return ! 0 }, delegateType : t }}), S . each ({ mouseenter : "mouseover" , mouseleave : "mouseout" , pointerenter : "pointerover" , pointerleave : "pointerout" }, function ( e , i ){ S . event . special [ e ] = { delegateType : i , bindType : i , handle : function ( e ){ var t , n = e . relatedTarget , r = e . handleObj ; return n && ( n === this || S . contains ( this , n )) || ( e . type = r . origType , t = r . handler . apply ( this , arguments ), e . type = i ), t
}}}), S . fn . extend ({ on : function ( e , t , n , r ){ return Ee ( this , e , t , n , r )}, one : function ( e , t , n , r ){ return Ee ( this , e , t , n , r , 1 )}, off : function ( e , t , n ){ var r , i ; if ( e && e . preventDefault && e . handleObj ) return r = e . handleObj , S ( e . delegateTarget ). off ( r . namespace ? r . origType + "." + r . namespace : r . origType , r . selector , r . handler ), this ; if ( "object" == typeof e ){ for ( i in e ) this . off ( i , t , e [ i ]); return this } return ! 1 !== t && "function" != typeof t || ( n = t , t = void 0 ), ! 1 === n && ( n = Te ), this . each ( function (){ S . event . remove ( this , e , n , t )})}}); var ke = /<script|<style|<link/i , Ae = /checked\s*(?:[^=]|=\s*.checked.)/i , Ne = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g ; function je ( e , t ){ return A ( e , "table" ) && A ( 11 !== t . nodeType ? t : t . firstChild , "tr" ) && S ( e ). children ( "tbody" )[ 0 ] || e } function De ( e ){ return e . type = ( null !== e . getAttribute ( "type" )) + "/" + e . type , e } function qe ( e ){ return "true/" === ( e . type || "" ). slice ( 0 , 5 ) ? e . type = e . type . slice ( 5 ) : e . removeAttribute ( "type" ), e } function Le ( e , t ){ var n , r , i , o , a , s ; if ( 1 === t . nodeType ){ if ( Y . hasData ( e ) && ( s = Y . get ( e ). events )) for ( i in Y . remove ( t , "handle events" ), s ) for ( n = 0 ,
r = s [ i ]. length ; n < r ; n ++ ) S . event . add ( t , i , s [ i ][ n ]); Q . hasData ( e ) && ( o = Q . access ( e ), a = S . extend ({}, o ), Q . set ( t , a ))}} function He ( n , r , i , o ){ r = g ( r ); var e , t , a , s , u , l , c = 0 , f = n . length , p = f - 1 , d = r [ 0 ], h = m ( d ); if ( h || 1 < f && "string" == typeof d &&! y . checkClone && Ae . test ( d )) return n . each ( function ( e ){ var t = n . eq ( e ); h && ( r [ 0 ] = d . call ( this , e , t . html ())), He ( t , r , i , o )}); if ( f && ( t = ( e = xe ( r , n [ 0 ]. ownerDocument , ! 1 , n , o )). firstChild , 1 === e . childNodes . length && ( e = t ), t || o )){ for ( s = ( a = S . map ( ve ( e , "script" ), De )). length ; c < f ; c ++ ) u = e , c !== p && ( u = S . clone ( u , ! 0 , ! 0 ), s && S . merge ( a , ve ( u , "script" ))), i . call ( n [ c ], u , c ); if ( s ) for ( l = a [ a . length - 1 ]. ownerDocument , S . map ( a , qe ), c = 0 ; c < s ; c ++ ) u = a [ c ], he . test ( u . type || "" ) &&! Y . access ( u , "globalEval" ) && S . contains ( l , u ) && ( u . src && "module" !== ( u . type || "" ). toLowerCase () ? S . _evalUrl &&! u . noModule && S . _evalUrl ( u . src ,{ nonce : u . nonce || u . getAttribute ( "nonce" )}, l ) : b ( u . textContent . replace ( Ne , "" ), u , l ))} return n } function Oe ( e , t , n ){ for ( var r , i = t ? S . filter ( t , e ) : e , o = 0 ; null != ( r = i [ o ]); o ++ ) n || 1 !== r . nodeType || S . cleanData ( ve ( r )), r . parentNode && ( n && ie ( r ) && ye ( ve ( r , "script" )),
r . parentNode . removeChild ( r )); return e } S . extend ({ htmlPrefilter : function ( e ){ return e }, clone : function ( e , t , n ){ var r , i , o , a , s , u , l , c = e . cloneNode ( ! 0 ), f = ie ( e ); if ( ! ( y . noCloneChecked || 1 !== e . nodeType && 11 !== e . nodeType || S . isXMLDoc ( e ))) for ( a = ve ( c ), r = 0 , i = ( o = ve ( e )). length ; r < i ; r ++ ) s = o [ r ], u = a [ r ], void 0 , "input" === ( l = u . nodeName . toLowerCase ()) && pe . test ( s . type ) ? u . checked = s . checked : "input" !== l && "textarea" !== l || ( u . defaultValue = s . defaultValue ); if ( t ) if ( n ) for ( o = o || ve ( e ), a = a || ve ( c ), r = 0 , i = o . length ; r < i ; r ++ ) Le ( o [ r ], a [ r ]); else Le ( e , c ); return 0 < ( a = ve ( c , "script" )). length && ye ( a , ! f && ve ( e , "script" )), c }, cleanData : function ( e ){ for ( var t , n , r , i = S . event . special , o = 0 ; void 0 !== ( n = e [ o ]); o ++ ) if ( V ( n )){ if ( t = n [ Y . expando ]){ if ( t . events ) for ( r in t . events ) i [ r ] ? S . event . remove ( n , r ) : S . removeEvent ( n , r , t . handle ); n [ Y . expando ] = void 0 } n [ Q . expando ] && ( n [ Q . expando ] = void 0 )}}}), S . fn . extend ({ detach : function ( e ){ return Oe ( this , e , ! 0 )}, remove : function ( e ){ return Oe ( this , e )}, text : function ( e ){ return $ ( this , function ( e ){ return void 0 === e ? S . text ( this ) : this . empty (). each ( function (){
1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || ( this . textContent = e )})}, null , e , arguments . length )}, append : function (){ return He ( this , arguments , function ( e ){ 1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || je ( this , e ). appendChild ( e )})}, prepend : function (){ return He ( this , arguments , function ( e ){ if ( 1 === this . nodeType || 11 === this . nodeType || 9 === this . nodeType ){ var t = je ( this , e ); t . insertBefore ( e , t . firstChild )}})}, before : function (){ return He ( this , arguments , function ( e ){ this . parentNode && this . parentNode . insertBefore ( e , this )})}, after : function (){ return He ( this , arguments , function ( e ){ this . parentNode && this . parentNode . insertBefore ( e , this . nextSibling )})}, empty : function (){ for ( var e , t = 0 ; null != ( e = this [ t ]); t ++ ) 1 === e . nodeType && ( S . cleanData ( ve ( e , ! 1 )), e . textContent = "" ); return this }, clone : function ( e , t ){ return e = null != e && e , t = null == t ? e : t , this . map ( function (){ return S . clone ( this , e , t )})}, html : function ( e ){ return $ ( this , function ( e ){ var t = this [ 0 ] || {}, n = 0 , r = this . length ; if ( void 0 === e && 1 === t . nodeType ) return t . innerHTML ; if (
"string" == typeof e &&! ke . test ( e ) &&! ge [( de . exec ( e ) || [ "" , "" ])[ 1 ]. toLowerCase ()]){ e = S . htmlPrefilter ( e ); try { for (; n < r ; n ++ ) 1 === ( t = this [ n ] || {}). nodeType && ( S . cleanData ( ve ( t , ! 1 )), t . innerHTML = e ); t = 0 } catch ( e ){}} t && this . empty (). append ( e )}, null , e , arguments . length )}, replaceWith : function (){ var n = []; return He ( this , arguments , function ( e ){ var t = this . parentNode ; S . inArray ( this , n ) < 0 && ( S . cleanData ( ve ( this )), t && t . replaceChild ( e , this ))}, n )}}), S . each ({ appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" }, function ( e , a ){ S . fn [ e ] = function ( e ){ for ( var t , n = [], r = S ( e ), i = r . length - 1 , o = 0 ; o <= i ; o ++ ) t = o === i ? this : this . clone ( ! 0 ), S ( r [ o ])[ a ]( t ), u . apply ( n , t . get ()); return this . pushStack ( n )}}); var Pe = new RegExp ( "^(" + ee + ")(?!px)[a-z%]+$" , "i" ), Re = function ( e ){ var t = e . ownerDocument . defaultView ; return t && t . opener || ( t = C ), t . getComputedStyle ( e )}, Me = function ( e , t , n ){ var r , i , o = {}; for ( i in t ) o [ i ] = e . style [ i ], e . style [ i ] = t [ i ]; for ( i in r = n . call ( e ), t ) e . style [ i ] = o [ i ]; return r }, Ie = new RegExp ( ne . join ( "|" ), "i" ); function We ( e , t
, n ){ var r , i , o , a , s = e . style ; return ( n = n || Re ( e )) && ( "" !== ( a = n . getPropertyValue ( t ) || n [ t ]) || ie ( e ) || ( a = S . style ( e , t )), ! y . pixelBoxStyles () && Pe . test ( a ) && Ie . test ( t ) && ( r = s . width , i = s . minWidth , o = s . maxWidth , s . minWidth = s . maxWidth = s . width = a , a = n . width , s . width = r , s . minWidth = i , s . maxWidth = o )), void 0 !== a ? a + "" : a } function Fe ( e , t ){ return { get : function (){ if ( ! e ()) return ( this . get = t ). apply ( this , arguments ); delete this . get }}} ! function (){ function e (){ if ( l ){ u . style . cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0" , l . style . cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%" , re . appendChild ( u ). appendChild ( l ); var e = C . getComputedStyle ( l ); n = "1%" !== e . top , s = 12 === t ( e . marginLeft ), l . style . right = "60%" , o = 36 === t ( e . right ), r = 36 === t ( e . width ), l . style . position = "absolute" , i = 12 === t ( l . offsetWidth / 3 ), re . removeChild ( u ), l = null }} function t ( e ){ return Math . round ( parseFloat ( e ))} var n , r , i , o , a , s , u = E . createElement ( "div" ), l = E . createElement ( "div" ); l . style && (
l . style . backgroundClip = "content-box" , l . cloneNode ( ! 0 ). style . backgroundClip = "" , y . clearCloneStyle = "content-box" === l . style . backgroundClip , S . extend ( y ,{ boxSizingReliable : function (){ return e (), r }, pixelBoxStyles : function (){ return e (), o }, pixelPosition : function (){ return e (), n }, reliableMarginLeft : function (){ return e (), s }, scrollboxSize : function (){ return e (), i }, reliableTrDimensions : function (){ var e , t , n , r ; return null == a && ( e = E . createElement ( "table" ), t = E . createElement ( "tr" ), n = E . createElement ( "div" ), e . style . cssText = "position:absolute;left:-11111px;border-collapse:separate" , t . style . cssText = "border:1px solid" , t . style . height = "1px" , n . style . height = "9px" , n . style . display = "block" , re . appendChild ( e ). appendChild ( t ). appendChild ( n ), r = C . getComputedStyle ( t ), a = parseInt ( r . height , 10 ) + parseInt ( r . borderTopWidth , 10 ) + parseInt ( r . borderBottomWidth , 10 ) === t . offsetHeight , re . removeChild ( e )), a }}))}(); var Be = [ "Webkit" , "Moz" , "ms" ], $e = E . createElement ( "div" ). style , _e = {}; function ze ( e ){ var t = S . cssProps [ e ] || _e [ e ]; return t || ( e in $e ? e : _e [ e ] = function ( e ){ var t = e [
0 ]. toUpperCase () + e . slice ( 1 ), n = Be . length ; while ( n -- ) if (( e = Be [ n ] + t ) in $e ) return e }( e ) || e )} var Ue = /^(none|table(?!-c[ea]).+)/ , Xe = /^--/ , Ve = { position : "absolute" , visibility : "hidden" , display : "block" }, Ge = { letterSpacing : "0" , fontWeight : "400" }; function Ye ( e , t , n ){ var r = te . exec ( t ); return r ? Math . max ( 0 , r [ 2 ] - ( n || 0 )) + ( r [ 3 ] || "px" ) : t } function Qe ( e , t , n , r , i , o ){ var a = "width" === t ? 1 : 0 , s = 0 , u = 0 ; if ( n === ( r ? "border" : "content" )) return 0 ; for (; a < 4 ; a += 2 ) "margin" === n && ( u += S . css ( e , n + ne [ a ], ! 0 , i )), r ? ( "content" === n && ( u -= S . css ( e , "padding" + ne [ a ], ! 0 , i )), "margin" !== n && ( u -= S . css ( e , "border" + ne [ a ] + "Width" , ! 0 , i ))) : ( u += S . css ( e , "padding" + ne [ a ], ! 0 , i ), "padding" !== n ? u += S . css ( e , "border" + ne [ a ] + "Width" , ! 0 , i ) : s += S . css ( e , "border" + ne [ a ] + "Width" , ! 0 , i )); return ! r && 0 <= o && ( u += Math . max ( 0 , Math . ceil ( e [ "offset" + t [ 0 ]. toUpperCase () + t . slice ( 1 )] - o - u - s - . 5 )) || 0 ), u } function Je ( e , t , n ){ var r = Re ( e ), i = ( ! y . boxSizingReliable () || n ) && "border-box" === S . css ( e , "boxSizing" , ! 1 , r ), o = i , a = We ( e , t , r ), s = "offset" + t [ 0 ]. toUpperCase () + t . slice ( 1 ); if ( Pe . test ( a )){ if ( ! n ) return a ; a = "auto" } return (
! y . boxSizingReliable () && i ||! y . reliableTrDimensions () && A ( e , "tr" ) || "auto" === a ||! parseFloat ( a ) && "inline" === S . css ( e , "display" , ! 1 , r )) && e . getClientRects (). length && ( i = "border-box" === S . css ( e , "boxSizing" , ! 1 , r ),( o = s in e ) && ( a = e [ s ])),( a = parseFloat ( a ) || 0 ) + Qe ( e , t , n || ( i ? "border" : "content" ), o , r , a ) + "px" } function Ke ( e , t , n , r , i ){ return new Ke . prototype . init ( e , t , n , r , i )} S . extend ({ cssHooks : { opacity : { get : function ( e , t ){ if ( t ){ var n = We ( e , "opacity" ); return "" === n ? "1" : n }}}}, cssNumber : { animationIterationCount :! 0 , columnCount :! 0 , fillOpacity :! 0 , flexGrow :! 0 , flexShrink :! 0 , fontWeight :! 0 , gridArea :! 0 , gridColumn :! 0 , gridColumnEnd :! 0 , gridColumnStart :! 0 , gridRow :! 0 , gridRowEnd :! 0 , gridRowStart :! 0 , lineHeight :! 0 , opacity :! 0 , order :! 0 , orphans :! 0 , widows :! 0 , zIndex :! 0 , zoom :! 0 }, cssProps : {}, style : function ( e , t , n , r ){ if ( e && 3 !== e . nodeType && 8 !== e . nodeType && e . style ){ var i , o , a , s = X ( t ), u = Xe . test ( t ), l = e . style ; if ( u || ( t = ze ( s )), a = S . cssHooks [ t ] || S . cssHooks [ s ], void 0 === n ) return a && "get" in a && void 0 !== ( i = a . get ( e , ! 1 , r )) ? i : l [ t ]; "string" === ( o = typeof n ) && ( i = te . exec ( n )) && i [ 1 ] && ( n = se (
e , t , i ), o = "number" ), null != n && n == n && ( "number" !== o || u || ( n += i && i [ 3 ] || ( S . cssNumber [ s ] ? "" : "px" )), y . clearCloneStyle || "" !== n || 0 !== t . indexOf ( "background" ) || ( l [ t ] = "inherit" ), a && "set" in a && void 0 === ( n = a . set ( e , n , r )) || ( u ? l . setProperty ( t , n ) : l [ t ] = n ))}}, css : function ( e , t , n , r ){ var i , o , a , s = X ( t ); return Xe . test ( t ) || ( t = ze ( s )),( a = S . cssHooks [ t ] || S . cssHooks [ s ]) && "get" in a && ( i = a . get ( e , ! 0 , n )), void 0 === i && ( i = We ( e , t , r )), "normal" === i && t in Ge && ( i = Ge [ t ]), "" === n || n ? ( o = parseFloat ( i ), ! 0 === n || isFinite ( o ) ? o || 0 : i ) : i }}), S . each ([ "height" , "width" ], function ( e , u ){ S . cssHooks [ u ] = { get : function ( e , t , n ){ if ( t ) return ! Ue . test ( S . css ( e , "display" )) || e . getClientRects (). length && e . getBoundingClientRect (). width ? Je ( e , u , n ) : Me ( e , Ve , function (){ return Je ( e , u , n )})}, set : function ( e , t , n ){ var r , i = Re ( e ), o =! y . scrollboxSize () && "absolute" === i . position , a = ( o || n ) && "border-box" === S . css ( e , "boxSizing" , ! 1 , i ), s = n ? Qe ( e , u , n , a , i ) : 0 ; return a && o && ( s -= Math . ceil ( e [ "offset" + u [ 0 ]. toUpperCase () + u . slice ( 1 )] - parseFloat ( i [ u ]) - Qe ( e , u , "border" , ! 1 , i ) - . 5 )), s && ( r = te . exec ( t )) && "px" !== ( r [ 3 ] || "px" ) && (
e . style [ u ] = t , t = S . css ( e , u )), Ye ( 0 , t , s )}}}), S . cssHooks . marginLeft = Fe ( y . reliableMarginLeft , function ( e , t ){ if ( t ) return ( parseFloat ( We ( e , "marginLeft" )) || e . getBoundingClientRect (). left - Me ( e ,{ marginLeft : 0 }, function (){ return e . getBoundingClientRect (). left })) + "px" }), S . each ({ margin : "" , padding : "" , border : "Width" }, function ( i , o ){ S . cssHooks [ i + o ] = { expand : function ( e ){ for ( var t = 0 , n = {}, r = "string" == typeof e ? e . split ( " " ) : [ e ]; t < 4 ; t ++ ) n [ i + ne [ t ] + o ] = r [ t ] || r [ t - 2 ] || r [ 0 ]; return n }}, "margin" !== i && ( S . cssHooks [ i + o ]. set = Ye )}), S . fn . extend ({ css : function ( e , t ){ return $ ( this , function ( e , t , n ){ var r , i , o = {}, a = 0 ; if ( Array . isArray ( t )){ for ( r = Re ( e ), i = t . length ; a < i ; a ++ ) o [ t [ a ]] = S . css ( e , t [ a ], ! 1 , r ); return o } return void 0 !== n ? S . style ( e , t , n ) : S . css ( e , t )}, e , t , 1 < arguments . length )}}),(( S . Tween = Ke ). prototype = { constructor : Ke , init : function ( e , t , n , r , i , o ){ this . elem = e , this . prop = n , this . easing = i || S . easing . _default , this . options = t , this . start = this . now = this . cur (), this . end = r , this . unit = o || ( S . cssNumber [ n ] ? "" : "px" )}, cur : function (){ var e = Ke . propHooks [ this . prop ]; return e && e . get ? e . get (
this ) : Ke . propHooks . _default . get ( this )}, run : function ( e ){ var t , n = Ke . propHooks [ this . prop ]; return this . options . duration ? this . pos = t = S . easing [ this . easing ]( e , this . options . duration * e , 0 , 1 , this . options . duration ) : this . pos = t = e , this . now = ( this . end - this . start ) * t + this . start , this . options . step && this . options . step . call ( this . elem , this . now , this ), n && n . set ? n . set ( this ) : Ke . propHooks . _default . set ( this ), this }}). init . prototype = Ke . prototype ,( Ke . propHooks = { _default : { get : function ( e ){ var t ; return 1 !== e . elem . nodeType || null != e . elem [ e . prop ] && null == e . elem . style [ e . prop ] ? e . elem [ e . prop ] : ( t = S . css ( e . elem , e . prop , "" )) && "auto" !== t ? t : 0 }, set : function ( e ){ S . fx . step [ e . prop ] ? S . fx . step [ e . prop ]( e ) : 1 !== e . elem . nodeType ||! S . cssHooks [ e . prop ] && null == e . elem . style [ ze ( e . prop )] ? e . elem [ e . prop ] = e . now : S . style ( e . elem , e . prop , e . now + e . unit )}}}). scrollTop = Ke . propHooks . scrollLeft = { set : function ( e ){ e . elem . nodeType && e . elem . parentNode && ( e . elem [ e . prop ] = e . now )}}, S . easing = { linear : function ( e ){ return e }, swing : function ( e ){ return . 5 - Math . cos ( e * Math . PI ) / 2 }, _default : "swing" },
S . fx = Ke . prototype . init , S . fx . step = {}; var Ze , et , tt , nt , rt = /^(?:toggle|show|hide)$/ , it = /queueHooks$/ ; function ot (){ et && ( ! 1 === E . hidden && C . requestAnimationFrame ? C . requestAnimationFrame ( ot ) : C . setTimeout ( ot , S . fx . interval ), S . fx . tick ())} function at (){ return C . setTimeout ( function (){ Ze = void 0 }), Ze = Date . now ()} function st ( e , t ){ var n , r = 0 , i = { height : e }; for ( t = t ? 1 : 0 ; r < 4 ; r += 2 - t ) i [ "margin" + ( n = ne [ r ])] = i [ "padding" + n ] = e ; return t && ( i . opacity = i . width = e ), i } function ut ( e , t , n ){ for ( var r , i = ( lt . tweeners [ t ] || []). concat ( lt . tweeners [ "*" ]), o = 0 , a = i . length ; o < a ; o ++ ) if ( r = i [ o ]. call ( n , t , e )) return r } function lt ( o , e , t ){ var n , a , r = 0 , i = lt . prefilters . length , s = S . Deferred (). always ( function (){ delete u . elem }), u = function (){ if ( a ) return ! 1 ; for ( var e = Ze || at (), t = Math . max ( 0 , l . startTime + l . duration - e ), n = 1 - ( t / l . duration || 0 ), r = 0 , i = l . tweens . length ; r < i ; r ++ ) l . tweens [ r ]. run ( n ); return s . notifyWith ( o ,[ l , n , t ]), n < 1 && i ? t : ( i || s . notifyWith ( o ,[ l , 1 , 0 ]), s . resolveWith ( o ,[ l ]), ! 1 )}, l = s . promise ({ elem : o , props : S . extend ({}, e ), opts : S . extend ( ! 0 ,{ specialEasing : {}, easing : S . easing . _default }, t ),
originalProperties : e , originalOptions : t , startTime : Ze || at (), duration : t . duration , tweens : [], createTween : function ( e , t ){ var n = S . Tween ( o , l . opts , e , t , l . opts . specialEasing [ e ] || l . opts . easing ); return l . tweens . push ( n ), n }, stop : function ( e ){ var t = 0 , n = e ? l . tweens . length : 0 ; if ( a ) return this ; for ( a =! 0 ; t < n ; t ++ ) l . tweens [ t ]. run ( 1 ); return e ? ( s . notifyWith ( o ,[ l , 1 , 0 ]), s . resolveWith ( o ,[ l , e ])) : s . rejectWith ( o ,[ l , e ]), this }}), c = l . props ; for ( ! function ( e , t ){ var n , r , i , o , a ; for ( n in e ) if ( i = t [ r = X ( n )], o = e [ n ], Array . isArray ( o ) && ( i = o [ 1 ], o = e [ n ] = o [ 0 ]), n !== r && ( e [ r ] = o , delete e [ n ]),( a = S . cssHooks [ r ]) && "expand" in a ) for ( n in o = a . expand ( o ), delete e [ r ], o ) n in e || ( e [ n ] = o [ n ], t [ n ] = i ); else t [ r ] = i }( c , l . opts . specialEasing ); r < i ; r ++ ) if ( n = lt . prefilters [ r ]. call ( l , o , c , l . opts )) return m ( n . stop ) && ( S . _queueHooks ( l . elem , l . opts . queue ). stop = n . stop . bind ( n )), n ; return S . map ( c , ut , l ), m ( l . opts . start ) && l . opts . start . call ( o , l ), l . progress ( l . opts . progress ). done ( l . opts . done , l . opts . complete ). fail ( l . opts . fail ). always ( l . opts . always ), S . fx . timer ( S . extend ( u ,{ elem : o , anim : l , queue : l . opts . queue })), l }
S . Animation = S . extend ( lt ,{ tweeners : { "*" : [ function ( e , t ){ var n = this . createTween ( e , t ); return se ( n . elem , e , te . exec ( t ), n ), n }]}, tweener : function ( e , t ){ m ( e ) ? ( t = e , e = [ "*" ]) : e = e . match ( P ); for ( var n , r = 0 , i = e . length ; r < i ; r ++ ) n = e [ r ], lt . tweeners [ n ] = lt . tweeners [ n ] || [], lt . tweeners [ n ]. unshift ( t )}, prefilters : [ function ( e , t , n ){ var r , i , o , a , s , u , l , c , f = "width" in t || "height" in t , p = this , d = {}, h = e . style , g = e . nodeType && ae ( e ), v = Y . get ( e , "fxshow" ); for ( r in n . queue || ( null == ( a = S . _queueHooks ( e , "fx" )). unqueued && ( a . unqueued = 0 , s = a . empty . fire , a . empty . fire = function (){ a . unqueued || s ()}), a . unqueued ++ , p . always ( function (){ p . always ( function (){ a . unqueued -- , S . queue ( e , "fx" ). length || a . empty . fire ()})})), t ) if ( i = t [ r ], rt . test ( i )){ if ( delete t [ r ], o = o || "toggle" === i , i === ( g ? "hide" : "show" )){ if ( "show" !== i ||! v || void 0 === v [ r ]) continue ; g =! 0 } d [ r ] = v && v [ r ] || S . style ( e , r )} if (( u =! S . isEmptyObject ( t )) ||! S . isEmptyObject ( d )) for ( r in f && 1 === e . nodeType && ( n . overflow = [ h . overflow , h . overflowX , h . overflowY ], null == ( l = v && v . display ) && ( l = Y . get ( e , "display" )), "none" === ( c = S . css ( e , "display" )) && ( l ? c = l : (
le ([ e ], ! 0 ), l = e . style . display || l , c = S . css ( e , "display" ), le ([ e ]))),( "inline" === c || "inline-block" === c && null != l ) && "none" === S . css ( e , "float" ) && ( u || ( p . done ( function (){ h . display = l }), null == l && ( c = h . display , l = "none" === c ? "" : c )), h . display = "inline-block" )), n . overflow && ( h . overflow = "hidden" , p . always ( function (){ h . overflow = n . overflow [ 0 ], h . overflowX = n . overflow [ 1 ], h . overflowY = n . overflow [ 2 ]})), u =! 1 , d ) u || ( v ? "hidden" in v && ( g = v . hidden ) : v = Y . access ( e , "fxshow" ,{ display : l }), o && ( v . hidden =! g ), g && le ([ e ], ! 0 ), p . done ( function (){ for ( r in g || le ([ e ]), Y . remove ( e , "fxshow" ), d ) S . style ( e , r , d [ r ])})), u = ut ( g ? v [ r ] : 0 , r , p ), r in v || ( v [ r ] = u . start , g && ( u . end = u . start , u . start = 0 ))}], prefilter : function ( e , t ){ t ? lt . prefilters . unshift ( e ) : lt . prefilters . push ( e )}}), S . speed = function ( e , t , n ){ var r = e && "object" == typeof e ? S . extend ({}, e ) : { complete : n ||! n && t || m ( e ) && e , duration : e , easing : n && t || t &&! m ( t ) && t }; return S . fx . off ? r . duration = 0 : "number" != typeof r . duration && ( r . duration in S . fx . speeds ? r . duration = S . fx . speeds [ r . duration ] : r . duration = S . fx . speeds . _default ),
null != r . queue &&! 0 !== r . queue || ( r . queue = "fx" ), r . old = r . complete , r . complete = function (){ m ( r . old ) && r . old . call ( this ), r . queue && S . dequeue ( this , r . queue )}, r }, S . fn . extend ({ fadeTo : function ( e , t , n , r ){ return this . filter ( ae ). css ( "opacity" , 0 ). show (). end (). animate ({ opacity : t }, e , n , r )}, animate : function ( t , e , n , r ){ var i = S . isEmptyObject ( t ), o = S . speed ( e , n , r ), a = function (){ var e = lt ( this , S . extend ({}, t ), o );( i || Y . get ( this , "finish" )) && e . stop ( ! 0 )}; return a . finish = a , i ||! 1 === o . queue ? this . each ( a ) : this . queue ( o . queue , a )}, stop : function ( i , e , o ){ var a = function ( e ){ var t = e . stop ; delete e . stop , t ( o )}; return "string" != typeof i && ( o = e , e = i , i = void 0 ), e && this . queue ( i || "fx" ,[]), this . each ( function (){ var e =! 0 , t = null != i && i + "queueHooks" , n = S . timers , r = Y . get ( this ); if ( t ) r [ t ] && r [ t ]. stop && a ( r [ t ]); else for ( t in r ) r [ t ] && r [ t ]. stop && it . test ( t ) && a ( r [ t ]); for ( t = n . length ; t -- ;) n [ t ]. elem !== this || null != i && n [ t ]. queue !== i || ( n [ t ]. anim . stop ( o ), e =! 1 , n . splice ( t , 1 )); ! e && o || S . dequeue ( this , i )})}, finish : function ( a ){ return ! 1 !== a && ( a = a || "fx" ), this . each ( function (){ var e , t = Y . get ( this ), n = t [ a + "queue"
], r = t [ a + "queueHooks" ], i = S . timers , o = n ? n . length : 0 ; for ( t . finish =! 0 , S . queue ( this , a ,[]), r && r . stop && r . stop . call ( this , ! 0 ), e = i . length ; e -- ;) i [ e ]. elem === this && i [ e ]. queue === a && ( i [ e ]. anim . stop ( ! 0 ), i . splice ( e , 1 )); for ( e = 0 ; e < o ; e ++ ) n [ e ] && n [ e ]. finish && n [ e ]. finish . call ( this ); delete t . finish })}}), S . each ([ "toggle" , "show" , "hide" ], function ( e , r ){ var i = S . fn [ r ]; S . fn [ r ] = function ( e , t , n ){ return null == e || "boolean" == typeof e ? i . apply ( this , arguments ) : this . animate ( st ( r , ! 0 ), e , t , n )}}), S . each ({ slideDown : st ( "show" ), slideUp : st ( "hide" ), slideToggle : st ( "toggle" ), fadeIn : { opacity : "show" }, fadeOut : { opacity : "hide" }, fadeToggle : { opacity : "toggle" }}, function ( e , r ){ S . fn [ e ] = function ( e , t , n ){ return this . animate ( r , e , t , n )}}), S . timers = [], S . fx . tick = function (){ var e , t = 0 , n = S . timers ; for ( Ze = Date . now (); t < n . length ; t ++ )( e = n [ t ])() || n [ t ] !== e || n . splice ( t -- , 1 ); n . length || S . fx . stop (), Ze = void 0 }, S . fx . timer = function ( e ){ S . timers . push ( e ), S . fx . start ()}, S . fx . interval = 13 , S . fx . start = function (){ et || ( et =! 0 , ot ())}, S . fx . stop = function (){ et = null }, S . fx . speeds = { slow : 600 , fast : 200 , _default : 400 },
S . fn . delay = function ( r , e ){ return r = S . fx && S . fx . speeds [ r ] || r , e = e || "fx" , this . queue ( e , function ( e , t ){ var n = C . setTimeout ( e , r ); t . stop = function (){ C . clearTimeout ( n )}})}, tt = E . createElement ( "input" ), nt = E . createElement ( "select" ). appendChild ( E . createElement ( "option" )), tt . type = "checkbox" , y . checkOn = "" !== tt . value , y . optSelected = nt . selected ,( tt = E . createElement ( "input" )). value = "t" , tt . type = "radio" , y . radioValue = "t" === tt . value ; var ct , ft = S . expr . attrHandle ; S . fn . extend ({ attr : function ( e , t ){ return $ ( this , S . attr , e , t , 1 < arguments . length )}, removeAttr : function ( e ){ return this . each ( function (){ S . removeAttr ( this , e )})}}), S . extend ({ attr : function ( e , t , n ){ var r , i , o = e . nodeType ; if ( 3 !== o && 8 !== o && 2 !== o ) return "undefined" == typeof e . getAttribute ? S . prop ( e , t , n ) : ( 1 === o && S . isXMLDoc ( e ) || ( i = S . attrHooks [ t . toLowerCase ()] || ( S . expr . match . bool . test ( t ) ? ct : void 0 )), void 0 !== n ? null === n ? void S . removeAttr ( e , t ) : i && "set" in i && void 0 !== ( r = i . set ( e , n , t )) ? r : ( e . setAttribute ( t , n + "" ), n ) : i && "get" in i && null !== ( r = i . get ( e , t )) ? r : null == ( r = S . find . attr ( e , t )) ? void 0 : r )}, attrHooks : { type : {
set : function ( e , t ){ if ( ! y . radioValue && "radio" === t && A ( e , "input" )){ var n = e . value ; return e . setAttribute ( "type" , t ), n && ( e . value = n ), t }}}}, removeAttr : function ( e , t ){ var n , r = 0 , i = t && t . match ( P ); if ( i && 1 === e . nodeType ) while ( n = i [ r ++ ]) e . removeAttribute ( n )}}), ct = { set : function ( e , t , n ){ return ! 1 === t ? S . removeAttr ( e , n ) : e . setAttribute ( n , n ), n }}, S . each ( S . expr . match . bool . source . match ( /\w+/g ), function ( e , t ){ var a = ft [ t ] || S . find . attr ; ft [ t ] = function ( e , t , n ){ var r , i , o = t . toLowerCase (); return n || ( i = ft [ o ], ft [ o ] = r , r = null != a ( e , t , n ) ? o : null , ft [ o ] = i ), r }}); var pt = /^(?:input|select|textarea|button)$/i , dt = /^(?:a|area)$/i ; function ht ( e ){ return ( e . match ( P ) || []). join ( " " )} function gt ( e ){ return e . getAttribute && e . getAttribute ( "class" ) || "" } function vt ( e ){ return Array . isArray ( e ) ? e : "string" == typeof e && e . match ( P ) || []} S . fn . extend ({ prop : function ( e , t ){ return $ ( this , S . prop , e , t , 1 < arguments . length )}, removeProp : function ( e ){ return this . each ( function (){ delete this [ S . propFix [ e ] || e ]})}}), S . extend ({ prop : function ( e , t , n ){ var r , i , o = e . nodeType ; if ( 3 !== o && 8 !== o && 2 !== o
) return 1 === o && S . isXMLDoc ( e ) || ( t = S . propFix [ t ] || t , i = S . propHooks [ t ]), void 0 !== n ? i && "set" in i && void 0 !== ( r = i . set ( e , n , t )) ? r : e [ t ] = n : i && "get" in i && null !== ( r = i . get ( e , t )) ? r : e [ t ]}, propHooks : { tabIndex : { get : function ( e ){ var t = S . find . attr ( e , "tabindex" ); return t ? parseInt ( t , 10 ) : pt . test ( e . nodeName ) || dt . test ( e . nodeName ) && e . href ? 0 :- 1 }}}, propFix : { for : "htmlFor" , class : "className" }}), y . optSelected || ( S . propHooks . selected = { get : function ( e ){ var t = e . parentNode ; return t && t . parentNode && t . parentNode . selectedIndex , null }, set : function ( e ){ var t = e . parentNode ; t && ( t . selectedIndex , t . parentNode && t . parentNode . selectedIndex )}}), S . each ([ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ], function (){ S . propFix [ this . toLowerCase ()] = this }), S . fn . extend ({ addClass : function ( t ){ var e , n , r , i , o , a , s , u = 0 ; if ( m ( t )) return this . each ( function ( e ){ S ( this ). addClass ( t . call ( this , e , gt ( this )))}); if (( e = vt ( t )). length ) while ( n = this [ u ++ ]) if ( i = gt ( n ), r = 1 === n . nodeType && " " + ht ( i ) + " " ){ a = 0 ; while ( o = e [ a ++ ]) r . indexOf (
" " + o + " " ) < 0 && ( r += o + " " ); i !== ( s = ht ( r )) && n . setAttribute ( "class" , s )} return this }, removeClass : function ( t ){ var e , n , r , i , o , a , s , u = 0 ; if ( m ( t )) return this . each ( function ( e ){ S ( this ). removeClass ( t . call ( this , e , gt ( this )))}); if ( ! arguments . length ) return this . attr ( "class" , "" ); if (( e = vt ( t )). length ) while ( n = this [ u ++ ]) if ( i = gt ( n ), r = 1 === n . nodeType && " " + ht ( i ) + " " ){ a = 0 ; while ( o = e [ a ++ ]) while ( - 1 < r . indexOf ( " " + o + " " )) r = r . replace ( " " + o + " " , " " ); i !== ( s = ht ( r )) && n . setAttribute ( "class" , s )} return this }, toggleClass : function ( i , t ){ var o = typeof i , a = "string" === o || Array . isArray ( i ); return "boolean" == typeof t && a ? t ? this . addClass ( i ) : this . removeClass ( i ) : m ( i ) ? this . each ( function ( e ){ S ( this ). toggleClass ( i . call ( this , e , gt ( this ), t ), t )}) : this . each ( function (){ var e , t , n , r ; if ( a ){ t = 0 , n = S ( this ), r = vt ( i ); while ( e = r [ t ++ ]) n . hasClass ( e ) ? n . removeClass ( e ) : n . addClass ( e )} else void 0 !== i && "boolean" !== o || (( e = gt ( this )) && Y . set ( this , "__className__" , e ), this . setAttribute && this . setAttribute ( "class" , e ||! 1 === i ? "" : Y . get ( this , "__className__" ) || "" ))})}, hasClass : function ( e ){ var t , n , r = 0 ;
t = " " + e + " " ; while ( n = this [ r ++ ]) if ( 1 === n . nodeType &&- 1 < ( " " + ht ( gt ( n )) + " " ). indexOf ( t )) return ! 0 ; return ! 1 }}); var yt = /\r/g ; S . fn . extend ({ val : function ( n ){ var r , e , i , t = this [ 0 ]; return arguments . length ? ( i = m ( n ), this . each ( function ( e ){ var t ; 1 === this . nodeType && ( null == ( t = i ? n . call ( this , e , S ( this ). val ()) : n ) ? t = "" : "number" == typeof t ? t += "" : Array . isArray ( t ) && ( t = S . map ( t , function ( e ){ return null == e ? "" : e + "" })),( r = S . valHooks [ this . type ] || S . valHooks [ this . nodeName . toLowerCase ()]) && "set" in r && void 0 !== r . set ( this , t , "value" ) || ( this . value = t ))})) : t ? ( r = S . valHooks [ t . type ] || S . valHooks [ t . nodeName . toLowerCase ()]) && "get" in r && void 0 !== ( e = r . get ( t , "value" )) ? e : "string" == typeof ( e = t . value ) ? e . replace ( yt , "" ) : null == e ? "" : e : void 0 }}), S . extend ({ valHooks : { option : { get : function ( e ){ var t = S . find . attr ( e , "value" ); return null != t ? t : ht ( S . text ( e ))}}, select : { get : function ( e ){ var t , n , r , i = e . options , o = e . selectedIndex , a = "select-one" === e . type , s = a ? null : [], u = a ? o + 1 : i . length ; for ( r = o < 0 ? u : a ? o : 0 ; r < u ; r ++ ) if ((( n = i [ r ]). selected || r === o ) &&! n . disabled && ( ! n . parentNode . disabled ||! A ( n . parentNode
, "optgroup" ))){ if ( t = S ( n ). val (), a ) return t ; s . push ( t )} return s }, set : function ( e , t ){ var n , r , i = e . options , o = S . makeArray ( t ), a = i . length ; while ( a -- )(( r = i [ a ]). selected =- 1 < S . inArray ( S . valHooks . option . get ( r ), o )) && ( n =! 0 ); return n || ( e . selectedIndex =- 1 ), o }}}}), S . each ([ "radio" , "checkbox" ], function (){ S . valHooks [ this ] = { set : function ( e , t ){ if ( Array . isArray ( t )) return e . checked =- 1 < S . inArray ( S ( e ). val (), t )}}, y . checkOn || ( S . valHooks [ this ]. get = function ( e ){ return null === e . getAttribute ( "value" ) ? "on" : e . value })}), y . focusin = "onfocusin" in C ; var mt = /^(?:focusinfocus|focusoutblur)$/ , xt = function ( e ){ e . stopPropagation ()}; S . extend ( S . event ,{ trigger : function ( e , t , n , r ){ var i , o , a , s , u , l , c , f , p = [ n || E ], d = v . call ( e , "type" ) ? e . type : e , h = v . call ( e , "namespace" ) ? e . namespace . split ( "." ) : []; if ( o = f = a = n = n || E , 3 !== n . nodeType && 8 !== n . nodeType &&! mt . test ( d + S . event . triggered ) && ( - 1 < d . indexOf ( "." ) && ( d = ( h = d . split ( "." )). shift (), h . sort ()), u = d . indexOf ( ":" ) < 0 && "on" + d ,( e = e [ S . expando ] ? e : new S . Event ( d , "object" == typeof e && e )). isTrigger = r ? 2 : 3 , e . namespace = h . join ( "." ),
e . rnamespace = e . namespace ? new RegExp ( "(^|\\.)" + h . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null , e . result = void 0 , e . target || ( e . target = n ), t = null == t ? [ e ] : S . makeArray ( t ,[ e ]), c = S . event . special [ d ] || {}, r ||! c . trigger ||! 1 !== c . trigger . apply ( n , t ))){ if ( ! r &&! c . noBubble &&! x ( n )){ for ( s = c . delegateType || d , mt . test ( s + d ) || ( o = o . parentNode ); o ; o = o . parentNode ) p . push ( o ), a = o ; a === ( n . ownerDocument || E ) && p . push ( a . defaultView || a . parentWindow || C )} i = 0 ; while (( o = p [ i ++ ]) &&! e . isPropagationStopped ()) f = o , e . type = 1 < i ? s : c . bindType || d ,( l = ( Y . get ( o , "events" ) || Object . create ( null ))[ e . type ] && Y . get ( o , "handle" )) && l . apply ( o , t ),( l = u && o [ u ]) && l . apply && V ( o ) && ( e . result = l . apply ( o , t ), ! 1 === e . result && e . preventDefault ()); return e . type = d , r || e . isDefaultPrevented () || c . _default &&! 1 !== c . _default . apply ( p . pop (), t ) ||! V ( n ) || u && m ( n [ d ]) &&! x ( n ) && (( a = n [ u ]) && ( n [ u ] = null ), S . event . triggered = d , e . isPropagationStopped () && f . addEventListener ( d , xt ), n [ d ](), e . isPropagationStopped () && f . removeEventListener ( d , xt ), S . event . triggered = void 0 , a && ( n [ u ] = a )), e . result }}, simulate : function ( e , t , n ){ var r = S . extend (
new S . Event , n ,{ type : e , isSimulated :! 0 }); S . event . trigger ( r , null , t )}}), S . fn . extend ({ trigger : function ( e , t ){ return this . each ( function (){ S . event . trigger ( e , t , this )})}, triggerHandler : function ( e , t ){ var n = this [ 0 ]; if ( n ) return S . event . trigger ( e , t , n , ! 0 )}}), y . focusin || S . each ({ focus : "focusin" , blur : "focusout" }, function ( n , r ){ var i = function ( e ){ S . event . simulate ( r , e . target , S . event . fix ( e ))}; S . event . special [ r ] = { setup : function (){ var e = this . ownerDocument || this . document || this , t = Y . access ( e , r ); t || e . addEventListener ( n , i , ! 0 ), Y . access ( e , r ,( t || 0 ) + 1 )}, teardown : function (){ var e = this . ownerDocument || this . document || this , t = Y . access ( e , r ) - 1 ; t ? Y . access ( e , r , t ) : ( e . removeEventListener ( n , i , ! 0 ), Y . remove ( e , r ))}}}); var bt = C . location , wt = { guid : Date . now ()}, Tt = /\?/ ; S . parseXML = function ( e ){ var t , n ; if ( ! e || "string" != typeof e ) return null ; try { t = ( new C . DOMParser ). parseFromString ( e , "text/xml" )} catch ( e ){} return n = t && t . getElementsByTagName ( "parsererror" )[ 0 ], t &&! n || S . error ( "Invalid XML: " + ( n ? S . map ( n . childNodes , function ( e ){ return e . textContent }). join ( "\n" ) : e )), t };
var Ct = /\[\]$/ , Et = /\r?\n/g , St = /^(?:submit|button|image|reset|file)$/i , kt = /^(?:input|select|textarea|keygen)/i ; function At ( n , e , r , i ){ var t ; if ( Array . isArray ( e )) S . each ( e , function ( e , t ){ r || Ct . test ( n ) ? i ( n , t ) : At ( n + "[" + ( "object" == typeof t && null != t ? e : "" ) + "]" , t , r , i )}); else if ( r || "object" !== w ( e )) i ( n , e ); else for ( t in e ) At ( n + "[" + t + "]" , e [ t ], r , i )} S . param = function ( e , t ){ var n , r = [], i = function ( e , t ){ var n = m ( t ) ? t () : t ; r [ r . length ] = encodeURIComponent ( e ) + "=" + encodeURIComponent ( null == n ? "" : n )}; if ( null == e ) return "" ; if ( Array . isArray ( e ) || e . jquery &&! S . isPlainObject ( e )) S . each ( e , function (){ i ( this . name , this . value )}); else for ( n in e ) At ( n , e [ n ], t , i ); return r . join ( "&" )}, S . fn . extend ({ serialize : function (){ return S . param ( this . serializeArray ())}, serializeArray : function (){ return this . map ( function (){ var e = S . prop ( this , "elements" ); return e ? S . makeArray ( e ) : this }). filter ( function (){ var e = this . type ; return this . name &&! S ( this ). is ( ":disabled" ) && kt . test ( this . nodeName ) &&! St . test ( e ) && ( this . checked ||! pe . test ( e ))}). map ( function ( e , t ){ var n = S ( this ). val ();
return null == n ? null : Array . isArray ( n ) ? S . map ( n , function ( e ){ return { name : t . name , value : e . replace ( Et , "\r\n" )}}) : { name : t . name , value : n . replace ( Et , "\r\n" )}}). get ()}}); var Nt = /%20/g , jt = /#.*$/ , Dt = /([?&])_=[^&]*/ , qt = /^(.*?):[ \t]*([^\r\n]*)$/gm , Lt = /^(?:GET|HEAD)$/ , Ht = /^\/\// , Ot = {}, Pt = {}, Rt = "*/" . concat ( "*" ), Mt = E . createElement ( "a" ); function It ( o ){ return function ( e , t ){ "string" != typeof e && ( t = e , e = "*" ); var n , r = 0 , i = e . toLowerCase (). match ( P ) || []; if ( m ( t )) while ( n = i [ r ++ ]) "+" === n [ 0 ] ? ( n = n . slice ( 1 ) || "*" ,( o [ n ] = o [ n ] || []). unshift ( t )) : ( o [ n ] = o [ n ] || []). push ( t )}} function Wt ( t , i , o , a ){ var s = {}, u = t === Pt ; function l ( e ){ var r ; return s [ e ] =! 0 , S . each ( t [ e ] || [], function ( e , t ){ var n = t ( i , o , a ); return "string" != typeof n || u || s [ n ] ? u ?! ( r = n ) : void 0 : ( i . dataTypes . unshift ( n ), l ( n ), ! 1 )}), r } return l ( i . dataTypes [ 0 ]) ||! s [ "*" ] && l ( "*" )} function Ft ( e , t ){ var n , r , i = S . ajaxSettings . flatOptions || {}; for ( n in t ) void 0 !== t [ n ] && (( i [ n ] ? e : r || ( r = {}))[ n ] = t [ n ]); return r && S . extend ( ! 0 , e , r ), e } Mt . href = bt . href , S . extend ({ active : 0 , lastModified : {}, etag : {}, ajaxSettings : { url : bt . href , type : "GET" ,
isLocal : /^(?:about|app|app-storage|.+-extension|file|res|widget):$/ . test ( bt . protocol ), global :! 0 , processData :! 0 , async :! 0 , contentType : "application/x-www-form-urlencoded; charset=UTF-8" , accepts : { "*" : Rt , text : "text/plain" , html : "text/html" , xml : "application/xml, text/xml" , json : "application/json, text/javascript" }, contents : { xml : /\bxml\b/ , html : /\bhtml/ , json : /\bjson\b/ }, responseFields : { xml : "responseXML" , text : "responseText" , json : "responseJSON" }, converters : { "* text" : String , "text html" :! 0 , "text json" : JSON . parse , "text xml" : S . parseXML }, flatOptions : { url :! 0 , context :! 0 }}, ajaxSetup : function ( e , t ){ return t ? Ft ( Ft ( e , S . ajaxSettings ), t ) : Ft ( S . ajaxSettings , e )}, ajaxPrefilter : It ( Ot ), ajaxTransport : It ( Pt ), ajax : function ( e , t ){ "object" == typeof e && ( t = e , e = void 0 ), t = t || {}; var c , f , p , n , d , r , h , g , i , o , v = S . ajaxSetup ({}, t ), y = v . context || v , m = v . context && ( y . nodeType || y . jquery ) ? S ( y ) : S . event , x = S . Deferred (), b = S . Callbacks ( "once memory" ), w = v . statusCode || {}, a = {}, s = {}, u = "canceled" , T = { readyState : 0 , getResponseHeader : function ( e ){ var t ; if ( h ){ if ( ! n ){ n = {}; while (
t = qt . exec ( p )) n [ t [ 1 ]. toLowerCase () + " " ] = ( n [ t [ 1 ]. toLowerCase () + " " ] || []). concat ( t [ 2 ])} t = n [ e . toLowerCase () + " " ]} return null == t ? null : t . join ( ", " )}, getAllResponseHeaders : function (){ return h ? p : null }, setRequestHeader : function ( e , t ){ return null == h && ( e = s [ e . toLowerCase ()] = s [ e . toLowerCase ()] || e , a [ e ] = t ), this }, overrideMimeType : function ( e ){ return null == h && ( v . mimeType = e ), this }, statusCode : function ( e ){ var t ; if ( e ) if ( h ) T . always ( e [ T . status ]); else for ( t in e ) w [ t ] = [ w [ t ], e [ t ]]; return this }, abort : function ( e ){ var t = e || u ; return c && c . abort ( t ), l ( 0 , t ), this }}; if ( x . promise ( T ), v . url = (( e || v . url || bt . href ) + "" ). replace ( Ht , bt . protocol + "//" ), v . type = t . method || t . type || v . method || v . type , v . dataTypes = ( v . dataType || "*" ). toLowerCase (). match ( P ) || [ "" ], null == v . crossDomain ){ r = E . createElement ( "a" ); try { r . href = v . url , r . href = r . href , v . crossDomain = Mt . protocol + "//" + Mt . host != r . protocol + "//" + r . host } catch ( e ){ v . crossDomain =! 0 }} if ( v . data && v . processData && "string" != typeof v . data && ( v . data = S . param ( v . data , v . traditional )), Wt ( Ot , v , t , T ), h ) return T ; for ( i in ( g = S . event && v . global
) && 0 == S . active ++&& S . event . trigger ( "ajaxStart" ), v . type = v . type . toUpperCase (), v . hasContent =! Lt . test ( v . type ), f = v . url . replace ( jt , "" ), v . hasContent ? v . data && v . processData && 0 === ( v . contentType || "" ). indexOf ( "application/x-www-form-urlencoded" ) && ( v . data = v . data . replace ( Nt , "+" )) : ( o = v . url . slice ( f . length ), v . data && ( v . processData || "string" == typeof v . data ) && ( f += ( Tt . test ( f ) ? "&" : "?" ) + v . data , delete v . data ), ! 1 === v . cache && ( f = f . replace ( Dt , "$1" ), o = ( Tt . test ( f ) ? "&" : "?" ) + "_=" + wt . guid +++ o ), v . url = f + o ), v . ifModified && ( S . lastModified [ f ] && T . setRequestHeader ( "If-Modified-Since" , S . lastModified [ f ]), S . etag [ f ] && T . setRequestHeader ( "If-None-Match" , S . etag [ f ])),( v . data && v . hasContent &&! 1 !== v . contentType || t . contentType ) && T . setRequestHeader ( "Content-Type" , v . contentType ), T . setRequestHeader ( "Accept" , v . dataTypes [ 0 ] && v . accepts [ v . dataTypes [ 0 ]] ? v . accepts [ v . dataTypes [ 0 ]] + ( "*" !== v . dataTypes [ 0 ] ? ", " + Rt + "; q=0.01" : "" ) : v . accepts [ "*" ]), v . headers ) T . setRequestHeader ( i , v . headers [ i ]); if ( v . beforeSend && ( ! 1 === v . beforeSend . call ( y , T , v ) || h )) return T . abort (); if ( u = "abort" , b . add (
v . complete ), T . done ( v . success ), T . fail ( v . error ), c = Wt ( Pt , v , t , T )){ if ( T . readyState = 1 , g && m . trigger ( "ajaxSend" ,[ T , v ]), h ) return T ; v . async && 0 < v . timeout && ( d = C . setTimeout ( function (){ T . abort ( "timeout" )}, v . timeout )); try { h =! 1 , c . send ( a , l )} catch ( e ){ if ( h ) throw e ; l ( - 1 , e )}} else l ( - 1 , "No Transport" ); function l ( e , t , n , r ){ var i , o , a , s , u , l = t ; h || ( h =! 0 , d && C . clearTimeout ( d ), c = void 0 , p = r || "" , T . readyState = 0 < e ? 4 : 0 , i = 200 <= e && e < 300 || 304 === e , n && ( s = function ( e , t , n ){ var r , i , o , a , s = e . contents , u = e . dataTypes ; while ( "*" === u [ 0 ]) u . shift (), void 0 === r && ( r = e . mimeType || t . getResponseHeader ( "Content-Type" )); if ( r ) for ( i in s ) if ( s [ i ] && s [ i ]. test ( r )){ u . unshift ( i ); break } if ( u [ 0 ] in n ) o = u [ 0 ]; else { for ( i in n ){ if ( ! u [ 0 ] || e . converters [ i + " " + u [ 0 ]]){ o = i ; break } a || ( a = i )} o = o || a } if ( o ) return o !== u [ 0 ] && u . unshift ( o ), n [ o ]}( v , T , n )), ! i &&- 1 < S . inArray ( "script" , v . dataTypes ) && S . inArray ( "json" , v . dataTypes ) < 0 && ( v . converters [ "text script" ] = function (){}), s = function ( e , t , n , r ){ var i , o , a , s , u , l = {}, c = e . dataTypes . slice (); if ( c [ 1 ]) for ( a in e . converters ) l [ a . toLowerCase ()] = e . converters [ a ]; o = c . shift ();
while ( o ) if ( e . responseFields [ o ] && ( n [ e . responseFields [ o ]] = t ), ! u && r && e . dataFilter && ( t = e . dataFilter ( t , e . dataType )), u = o , o = c . shift ()) if ( "*" === o ) o = u ; else if ( "*" !== u && u !== o ){ if ( ! ( a = l [ u + " " + o ] || l [ "* " + o ])) for ( i in l ) if (( s = i . split ( " " ))[ 1 ] === o && ( a = l [ u + " " + s [ 0 ]] || l [ "* " + s [ 0 ]])){ ! 0 === a ? a = l [ i ] :! 0 !== l [ i ] && ( o = s [ 0 ], c . unshift ( s [ 1 ])); break } if ( ! 0 !== a ) if ( a && e [ "throws" ]) t = a ( t ); else try { t = a ( t )} catch ( e ){ return { state : "parsererror" , error : a ? e : "No conversion from " + u + " to " + o }}} return { state : "success" , data : t }}( v , s , T , i ), i ? ( v . ifModified && (( u = T . getResponseHeader ( "Last-Modified" )) && ( S . lastModified [ f ] = u ),( u = T . getResponseHeader ( "etag" )) && ( S . etag [ f ] = u )), 204 === e || "HEAD" === v . type ? l = "nocontent" : 304 === e ? l = "notmodified" : ( l = s . state , o = s . data , i =! ( a = s . error ))) : ( a = l , ! e && l || ( l = "error" , e < 0 && ( e = 0 ))), T . status = e , T . statusText = ( t || l ) + "" , i ? x . resolveWith ( y ,[ o , l , T ]) : x . rejectWith ( y ,[ T , l , a ]), T . statusCode ( w ), w = void 0 , g && m . trigger ( i ? "ajaxSuccess" : "ajaxError" ,[ T , v , i ? o : a ]), b . fireWith ( y ,[ T , l ]), g && ( m . trigger ( "ajaxComplete" ,[ T , v ]), -- S . active || S . event . trigger ( "ajaxStop" )))
} return T }, getJSON : function ( e , t , n ){ return S . get ( e , t , n , "json" )}, getScript : function ( e , t ){ return S . get ( e , void 0 , t , "script" )}}), S . each ([ "get" , "post" ], function ( e , i ){ S [ i ] = function ( e , t , n , r ){ return m ( t ) && ( r = r || n , n = t , t = void 0 ), S . ajax ( S . extend ({ url : e , type : i , dataType : r , data : t , success : n }, S . isPlainObject ( e ) && e ))}}), S . ajaxPrefilter ( function ( e ){ var t ; for ( t in e . headers ) "content-type" === t . toLowerCase () && ( e . contentType = e . headers [ t ] || "" )}), S . _evalUrl = function ( e , t , n ){ return S . ajax ({ url : e , type : "GET" , dataType : "script" , cache :! 0 , async :! 1 , global :! 1 , converters : { "text script" : function (){}}, dataFilter : function ( e ){ S . globalEval ( e , t , n )}})}, S . fn . extend ({ wrapAll : function ( e ){ var t ; return this [ 0 ] && ( m ( e ) && ( e = e . call ( this [ 0 ])), t = S ( e , this [ 0 ]. ownerDocument ). eq ( 0 ). clone ( ! 0 ), this [ 0 ]. parentNode && t . insertBefore ( this [ 0 ]), t . map ( function (){ var e = this ; while ( e . firstElementChild ) e = e . firstElementChild ; return e }). append ( this )), this }, wrapInner : function ( n ){ return m ( n ) ? this . each ( function ( e ){ S ( this ). wrapInner ( n . call ( this , e ))}) : this . each ( function (){ var e = S ( this ),
t = e . contents (); t . length ? t . wrapAll ( n ) : e . append ( n )})}, wrap : function ( t ){ var n = m ( t ); return this . each ( function ( e ){ S ( this ). wrapAll ( n ? t . call ( this , e ) : t )})}, unwrap : function ( e ){ return this . parent ( e ). not ( "body" ). each ( function (){ S ( this ). replaceWith ( this . childNodes )}), this }}), S . expr . pseudos . hidden = function ( e ){ return ! S . expr . pseudos . visible ( e )}, S . expr . pseudos . visible = function ( e ){ return !! ( e . offsetWidth || e . offsetHeight || e . getClientRects (). length )}, S . ajaxSettings . xhr = function (){ try { return new C . XMLHttpRequest } catch ( e ){}}; var Bt = { 0 : 200 , 1223 : 204 }, $t = S . ajaxSettings . xhr (); y . cors =!! $t && "withCredentials" in $t , y . ajax = $t =!! $t , S . ajaxTransport ( function ( i ){ var o , a ; if ( y . cors || $t &&! i . crossDomain ) return { send : function ( e , t ){ var n , r = i . xhr (); if ( r . open ( i . type , i . url , i . async , i . username , i . password ), i . xhrFields ) for ( n in i . xhrFields ) r [ n ] = i . xhrFields [ n ]; for ( n in i . mimeType && r . overrideMimeType && r . overrideMimeType ( i . mimeType ), i . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ), e ) r . setRequestHeader ( n , e [ n ]); o = function ( e ){
return function (){ o && ( o = a = r . onload = r . onerror = r . onabort = r . ontimeout = r . onreadystatechange = null , "abort" === e ? r . abort () : "error" === e ? "number" != typeof r . status ? t ( 0 , "error" ) : t ( r . status , r . statusText ) : t ( Bt [ r . status ] || r . status , r . statusText , "text" !== ( r . responseType || "text" ) || "string" != typeof r . responseText ? { binary : r . response } : { text : r . responseText }, r . getAllResponseHeaders ()))}}, r . onload = o (), a = r . onerror = r . ontimeout = o ( "error" ), void 0 !== r . onabort ? r . onabort = a : r . onreadystatechange = function (){ 4 === r . readyState && C . setTimeout ( function (){ o && a ()})}, o = o ( "abort" ); try { r . send ( i . hasContent && i . data || null )} catch ( e ){ if ( o ) throw e }}, abort : function (){ o && o ()}}}), S . ajaxPrefilter ( function ( e ){ e . crossDomain && ( e . contents . script =! 1 )}), S . ajaxSetup ({ accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" }, contents : { script : /\b(?:java|ecma)script\b/ }, converters : { "text script" : function ( e ){ return S . globalEval ( e ), e }}}), S . ajaxPrefilter ( "script" , function ( e ){ void 0 === e . cache && ( e . cache =! 1 ), e . crossDomain && (
e . type = "GET" )}), S . ajaxTransport ( "script" , function ( n ){ var r , i ; if ( n . crossDomain || n . scriptAttrs ) return { send : function ( e , t ){ r = S ( "<script>" ). attr ( n . scriptAttrs || {}). prop ({ charset : n . scriptCharset , src : n . url }). on ( "load error" , i = function ( e ){ r . remove (), i = null , e && t ( "error" === e . type ? 404 : 200 , e . type )}), E . head . appendChild ( r [ 0 ])}, abort : function (){ i && i ()}}}); var _t , zt = [], Ut = /(=)\?(?=&|$)|\?\?/ ; S . ajaxSetup ({ jsonp : "callback" , jsonpCallback : function (){ var e = zt . pop () || S . expando + "_" + wt . guid ++ ; return this [ e ] =! 0 , e }}), S . ajaxPrefilter ( "json jsonp" , function ( e , t , n ){ var r , i , o , a =! 1 !== e . jsonp && ( Ut . test ( e . url ) ? "url" : "string" == typeof e . data && 0 === ( e . contentType || "" ). indexOf ( "application/x-www-form-urlencoded" ) && Ut . test ( e . data ) && "data" ); if ( a || "jsonp" === e . dataTypes [ 0 ]) return r = e . jsonpCallback = m ( e . jsonpCallback ) ? e . jsonpCallback () : e . jsonpCallback , a ? e [ a ] = e [ a ]. replace ( Ut , "$1" + r ) :! 1 !== e . jsonp && ( e . url += ( Tt . test ( e . url ) ? "&" : "?" ) + e . jsonp + "=" + r ), e . converters [ "script json" ] = function (){ return o || S . error ( r + " was not called" ), o [ 0 ]}, e . dataTypes [ 0 ] = "json" , i = C [ r ]
, C [ r ] = function (){ o = arguments }, n . always ( function (){ void 0 === i ? S ( C ). removeProp ( r ) : C [ r ] = i , e [ r ] && ( e . jsonpCallback = t . jsonpCallback , zt . push ( r )), o && m ( i ) && i ( o [ 0 ]), o = i = void 0 }), "script" }), y . createHTMLDocument = (( _t = E . implementation . createHTMLDocument ( "" ). body ). innerHTML = "<form></form><form></form>" , 2 === _t . childNodes . length ), S . parseHTML = function ( e , t , n ){ return "string" != typeof e ? [] : ( "boolean" == typeof t && ( n = t , t =! 1 ), t || ( y . createHTMLDocument ? (( r = ( t = E . implementation . createHTMLDocument ( "" )). createElement ( "base" )). href = E . location . href , t . head . appendChild ( r )) : t = E ), o =! n && [],( i = N . exec ( e )) ? [ t . createElement ( i [ 1 ])] : ( i = xe ([ e ], t , o ), o && o . length && S ( o ). remove (), S . merge ([], i . childNodes ))); var r , i , o }, S . fn . load = function ( e , t , n ){ var r , i , o , a = this , s = e . indexOf ( " " ); return - 1 < s && ( r = ht ( e . slice ( s )), e = e . slice ( 0 , s )), m ( t ) ? ( n = t , t = void 0 ) : t && "object" == typeof t && ( i = "POST" ), 0 < a . length && S . ajax ({ url : e , type : i || "GET" , dataType : "html" , data : t }). done ( function ( e ){ o = arguments , a . html ( r ? S ( "<div>" ). append ( S . parseHTML ( e )). find ( r ) : e )}). always ( n && function ( e , t ){ a . each (
function (){ n . apply ( this , o || [ e . responseText , t , e ])})}), this }, S . expr . pseudos . animated = function ( t ){ return S . grep ( S . timers , function ( e ){ return t === e . elem }). length }, S . offset = { setOffset : function ( e , t , n ){ var r , i , o , a , s , u , l = S . css ( e , "position" ), c = S ( e ), f = {}; "static" === l && ( e . style . position = "relative" ), s = c . offset (), o = S . css ( e , "top" ), u = S . css ( e , "left" ),( "absolute" === l || "fixed" === l ) &&- 1 < ( o + u ). indexOf ( "auto" ) ? ( a = ( r = c . position ()). top , i = r . left ) : ( a = parseFloat ( o ) || 0 , i = parseFloat ( u ) || 0 ), m ( t ) && ( t = t . call ( e , n , S . extend ({}, s ))), null != t . top && ( f . top = t . top - s . top + a ), null != t . left && ( f . left = t . left - s . left + i ), "using" in t ? t . using . call ( e , f ) : c . css ( f )}}, S . fn . extend ({ offset : function ( t ){ if ( arguments . length ) return void 0 === t ? this : this . each ( function ( e ){ S . offset . setOffset ( this , t , e )}); var e , n , r = this [ 0 ]; return r ? r . getClientRects (). length ? ( e = r . getBoundingClientRect (), n = r . ownerDocument . defaultView ,{ top : e . top + n . pageYOffset , left : e . left + n . pageXOffset }) : { top : 0 , left : 0 } : void 0 }, position : function (){ if ( this [ 0 ]){ var e , t , n , r = this [ 0 ], i = { top : 0 , left : 0 }; if ( "fixed" === S . css ( r ,
"position" )) t = r . getBoundingClientRect (); else { t = this . offset (), n = r . ownerDocument , e = r . offsetParent || n . documentElement ; while ( e && ( e === n . body || e === n . documentElement ) && "static" === S . css ( e , "position" )) e = e . parentNode ; e && e !== r && 1 === e . nodeType && (( i = S ( e ). offset ()). top += S . css ( e , "borderTopWidth" , ! 0 ), i . left += S . css ( e , "borderLeftWidth" , ! 0 ))} return { top : t . top - i . top - S . css ( r , "marginTop" , ! 0 ), left : t . left - i . left - S . css ( r , "marginLeft" , ! 0 )}}}, offsetParent : function (){ return this . map ( function (){ var e = this . offsetParent ; while ( e && "static" === S . css ( e , "position" )) e = e . offsetParent ; return e || re })}}), S . each ({ scrollLeft : "pageXOffset" , scrollTop : "pageYOffset" }, function ( t , i ){ var o = "pageYOffset" === i ; S . fn [ t ] = function ( e ){ return $ ( this , function ( e , t , n ){ var r ; if ( x ( e ) ? r = e : 9 === e . nodeType && ( r = e . defaultView ), void 0 === n ) return r ? r [ i ] : e [ t ]; r ? r . scrollTo ( o ? r . pageXOffset : n , o ? n : r . pageYOffset ) : e [ t ] = n }, t , e , arguments . length )}}), S . each ([ "top" , "left" ], function ( e , n ){ S . cssHooks [ n ] = Fe ( y . pixelPosition , function ( e , t ){ if ( t ) return t = We ( e , n ), Pe . test ( t ) ? S ( e ). position ()[ n ] + "px" : t })}
), S . each ({ Height : "height" , Width : "width" }, function ( a , s ){ S . each ({ padding : "inner" + a , content : s , "" : "outer" + a }, function ( r , o ){ S . fn [ o ] = function ( e , t ){ var n = arguments . length && ( r || "boolean" != typeof e ), i = r || ( ! 0 === e ||! 0 === t ? "margin" : "border" ); return $ ( this , function ( e , t , n ){ var r ; return x ( e ) ? 0 === o . indexOf ( "outer" ) ? e [ "inner" + a ] : e . document . documentElement [ "client" + a ] : 9 === e . nodeType ? ( r = e . documentElement , Math . max ( e . body [ "scroll" + a ], r [ "scroll" + a ], e . body [ "offset" + a ], r [ "offset" + a ], r [ "client" + a ])) : void 0 === n ? S . css ( e , t , i ) : S . style ( e , t , n , i )}, s , n ? e : void 0 , n )}})}), S . each ([ "ajaxStart" , "ajaxStop" , "ajaxComplete" , "ajaxError" , "ajaxSuccess" , "ajaxSend" ], function ( e , t ){ S . fn [ t ] = function ( e ){ return this . on ( t , e )}}), S . fn . extend ({ bind : function ( e , t , n ){ return this . on ( e , null , t , n )}, unbind : function ( e , t ){ return this . off ( e , null , t )}, delegate : function ( e , t , n , r ){ return this . on ( t , e , n , r )}, undelegate : function ( e , t , n ){ return 1 === arguments . length ? this . off ( e , "**" ) : this . off ( t , e || "**" , n )}, hover : function ( e , t ){ return this . mouseenter ( e ). mouseleave ( t || e )}}), S . each (
"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu" . split ( " " ), function ( e , n ){ S . fn [ n ] = function ( e , t ){ return 0 < arguments . length ? this . on ( n , null , e , t ) : this . trigger ( n )}}); var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g ; S . proxy = function ( e , t ){ var n , r , i ; if ( "string" == typeof t && ( n = e [ t ], t = e , e = n ), m ( e )) return r = s . call ( arguments , 2 ),( i = function (){ return e . apply ( t || this , r . concat ( s . call ( arguments )))}). guid = e . guid = e . guid || S . guid ++ , i }, S . holdReady = function ( e ){ e ? S . readyWait ++: S . ready ( ! 0 )}, S . isArray = Array . isArray , S . parseJSON = JSON . parse , S . nodeName = A , S . isFunction = m , S . isWindow = x , S . camelCase = X , S . type = w , S . now = Date . now , S . isNumeric = function ( e ){ var t = S . type ( e ); return ( "number" === t || "string" === t ) &&! isNaN ( e - parseFloat ( e ))}, S . trim = function ( e ){ return null == e ? "" : ( e + "" ). replace ( Xt , "" )}, "function" == typeof define && define . amd && define ( "jquery" ,[], function (){ return S }); var Vt = C . jQuery , Gt = C . $ ; return S . noConflict = function ( e ){
return C . $ === S && ( C . $ = Gt ), e && C . jQuery === S && ( C . jQuery = Vt ), S }, "undefined" == typeof e && ( C . jQuery = C . $ = S ), S });
2024-06-04 14:37:16 -07:00
/*! jQuery UI - v1.13.2 - 2022-08-01
2021-12-18 16:36:37 -08:00
* http://jqueryui.com
2024-06-04 14:37:16 -07:00
* Includes: widget.js, position.js, data.js, disable-selection.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/resizable.js, widgets/mouse.js
2025-01-03 17:56:15 -08:00
* Copyright jQuery Foundation and other contributors; Licensed MIT */ ! function ( t ){ "use strict" ; "function" == typeof define && define . amd ? define ([ "jquery" ], t ) : t ( jQuery )}( function ( y ){ "use strict" ; y . ui = y . ui || {}; y . ui . version = "1.13.2" ; var n , i = 0 , h = Array . prototype . hasOwnProperty , a = Array . prototype . slice ; y . cleanData = ( n = y . cleanData , function ( t ){ for ( var e , i , s = 0 ; null != ( i = t [ s ]); s ++ )( e = y . _data ( i , "events" )) && e . remove && y ( i ). triggerHandler ( "remove" ); n ( t )}), y . widget = function ( t , i , e ){ var s , n , o , h = {}, a = t . split ( "." )[ 0 ], r = a + "-" + ( t = t . split ( "." )[ 1 ]); return e || ( e = i , i = y . Widget ), Array . isArray ( e ) && ( e = y . extend . apply ( null ,[{}]. concat ( e ))), y . expr . pseudos [ r . toLowerCase ()] = function ( t ){ return !! y . data ( t , r )}, y [ a ] = y [ a ] || {}, s = y [ a ][ t ], n = y [ a ][ t ] = function ( t , e ){ if ( ! this ||! this . _createWidget ) return new n ( t , e ); arguments . length && this . _createWidget ( t , e )}, y . extend ( n , s ,{ version : e . version , _proto : y . extend ({}, e ), _childConstructors : []}),( o = new i ). options = y . widget . extend ({}, o . options ), y . each ( e , function ( e , s ){ function n (){ return i . prototype [ e ]. apply ( this , arguments )}
function o ( t ){ return i . prototype [ e ]. apply ( this , t )} h [ e ] = "function" == typeof s ? function (){ var t , e = this . _super , i = this . _superApply ; return this . _super = n , this . _superApply = o , t = s . apply ( this , arguments ), this . _super = e , this . _superApply = i , t } : s }), n . prototype = y . widget . extend ( o ,{ widgetEventPrefix : s && o . widgetEventPrefix || t }, h ,{ constructor : n , namespace : a , widgetName : t , widgetFullName : r }), s ? ( y . each ( s . _childConstructors , function ( t , e ){ var i = e . prototype ; y . widget ( i . namespace + "." + i . widgetName , n , e . _proto )}), delete s . _childConstructors ) : i . _childConstructors . push ( n ), y . widget . bridge ( t , n ), n }, y . widget . extend = function ( t ){ for ( var e , i , s = a . call ( arguments , 1 ), n = 0 , o = s . length ; n < o ; n ++ ) for ( e in s [ n ]) i = s [ n ][ e ], h . call ( s [ n ], e ) && void 0 !== i && ( y . isPlainObject ( i ) ? t [ e ] = y . isPlainObject ( t [ e ]) ? y . widget . extend ({}, t [ e ], i ) : y . widget . extend ({}, i ) : t [ e ] = i ); return t }, y . widget . bridge = function ( o , e ){ var h = e . prototype . widgetFullName || o ; y . fn [ o ] = function ( i ){ var t = "string" == typeof i , s = a . call ( arguments , 1 ), n = this ; return t ? this . length || "instance" !== i ? this . each ( function (){ var t ,
e = y . data ( this , h ); return "instance" === i ? ( n = e , ! 1 ) : e ? "function" != typeof e [ i ] || "_" === i . charAt ( 0 ) ? y . error ( "no such method '" + i + "' for " + o + " widget instance" ) : ( t = e [ i ]. apply ( e , s )) !== e && void 0 !== t ? ( n = t && t . jquery ? n . pushStack ( t . get ()) : t , ! 1 ) : void 0 : y . error ( "cannot call methods on " + o + " prior to initialization; attempted to call method '" + i + "'" )}) : n = void 0 : ( s . length && ( i = y . widget . extend . apply ( null ,[ i ]. concat ( s ))), this . each ( function (){ var t = y . data ( this , h ); t ? ( t . option ( i || {}), t . _init && t . _init ()) : y . data ( this , h , new e ( i , this ))})), n }}, y . Widget = function (){}, y . Widget . _childConstructors = [], y . Widget . prototype = { widgetName : "widget" , widgetEventPrefix : "" , defaultElement : "<div>" , options : { classes : {}, disabled :! 1 , create : null }, _createWidget : function ( t , e ){ e = y ( e || this . defaultElement || this )[ 0 ], this . element = y ( e ), this . uuid = i ++ , this . eventNamespace = "." + this . widgetName + this . uuid , this . bindings = y (), this . hoverable = y (), this . focusable = y (), this . classesElementLookup = {}, e !== this && ( y . data ( e , this . widgetFullName , this ), this . _on ( ! 0 , this . element ,{ remove : function ( t
){ t . target === e && this . destroy ()}}), this . document = y ( e . style ? e . ownerDocument : e . document || e ), this . window = y ( this . document [ 0 ]. defaultView || this . document [ 0 ]. parentWindow )), this . options = y . widget . extend ({}, this . options , this . _getCreateOptions (), t ), this . _create (), this . options . disabled && this . _setOptionDisabled ( this . options . disabled ), this . _trigger ( "create" , null , this . _getCreateEventData ()), this . _init ()}, _getCreateOptions : function (){ return {}}, _getCreateEventData : y . noop , _create : y . noop , _init : y . noop , destroy : function (){ var i = this ; this . _destroy (), y . each ( this . classesElementLookup , function ( t , e ){ i . _removeClass ( e , t )}), this . element . off ( this . eventNamespace ). removeData ( this . widgetFullName ), this . widget (). off ( this . eventNamespace ). removeAttr ( "aria-disabled" ), this . bindings . off ( this . eventNamespace )}, _destroy : y . noop , widget : function (){ return this . element }, option : function ( t , e ){ var i , s , n , o = t ; if ( 0 === arguments . length ) return y . widget . extend ({}, this . options ); if ( "string" == typeof t ) if ( o = {}, t = ( i = t . split ( "." )). shift (), i . length ){ for ( s = o [ t
] = y . widget . extend ({}, this . options [ t ]), n = 0 ; n < i . length - 1 ; n ++ ) s [ i [ n ]] = s [ i [ n ]] || {}, s = s [ i [ n ]]; if ( t = i . pop (), 1 === arguments . length ) return void 0 === s [ t ] ? null : s [ t ]; s [ t ] = e } else { if ( 1 === arguments . length ) return void 0 === this . options [ t ] ? null : this . options [ t ]; o [ t ] = e } return this . _setOptions ( o ), this }, _setOptions : function ( t ){ for ( var e in t ) this . _setOption ( e , t [ e ]); return this }, _setOption : function ( t , e ){ return "classes" === t && this . _setOptionClasses ( e ), this . options [ t ] = e , "disabled" === t && this . _setOptionDisabled ( e ), this }, _setOptionClasses : function ( t ){ var e , i , s ; for ( e in t ) s = this . classesElementLookup [ e ], t [ e ] !== this . options . classes [ e ] && s && s . length && ( i = y ( s . get ()), this . _removeClass ( s , e ), i . addClass ( this . _classes ({ element : i , keys : e , classes : t , add :! 0 })))}, _setOptionDisabled : function ( t ){ this . _toggleClass ( this . widget (), this . widgetFullName + "-disabled" , null , !! t ), t && ( this . _removeClass ( this . hoverable , null , "ui-state-hover" ), this . _removeClass ( this . focusable , null , "ui-state-focus" ))}, enable : function (){ return this . _setOptions ({ disabled :! 1 })},
disable : function (){ return this . _setOptions ({ disabled :! 0 })}, _classes : function ( n ){ var o = [], h = this ; function t ( t , e ){ for ( var i , s = 0 ; s < t . length ; s ++ ) i = h . classesElementLookup [ t [ s ]] || y (), i = n . add ? ( function (){ var i = []; n . element . each ( function ( t , e ){ y . map ( h . classesElementLookup , function ( t ){ return t }). some ( function ( t ){ return t . is ( e )}) || i . push ( e )}), h . _on ( y ( i ),{ remove : "_untrackClassesElement" })}(), y ( y . uniqueSort ( i . get (). concat ( n . element . get ())))) : y ( i . not ( n . element ). get ()), h . classesElementLookup [ t [ s ]] = i , o . push ( t [ s ]), e && n . classes [ t [ s ]] && o . push ( n . classes [ t [ s ]])} return ( n = y . extend ({ element : this . element , classes : this . options . classes || {}}, n )). keys && t ( n . keys . match ( /\S+/g ) || [], ! 0 ), n . extra && t ( n . extra . match ( /\S+/g ) || []), o . join ( " " )}, _untrackClassesElement : function ( i ){ var s = this ; y . each ( s . classesElementLookup , function ( t , e ){ - 1 !== y . inArray ( i . target , e ) && ( s . classesElementLookup [ t ] = y ( e . not ( i . target ). get ()))}), this . _off ( y ( i . target ))}, _removeClass : function ( t , e , i ){ return this . _toggleClass ( t , e , i , ! 1 )}, _addClass : function ( t , e , i ){
return this . _toggleClass ( t , e , i , ! 0 )}, _toggleClass : function ( t , e , i , s ){ var n = "string" == typeof t || null === t , i = { extra : n ? e : i , keys : n ? t : e , element : n ? this . element : t , add : s = "boolean" == typeof s ? s : i }; return i . element . toggleClass ( this . _classes ( i ), s ), this }, _on : function ( n , o , t ){ var h , a = this ; "boolean" != typeof n && ( t = o , o = n , n =! 1 ), t ? ( o = h = y ( o ), this . bindings = this . bindings . add ( o )) : ( t = o , o = this . element , h = this . widget ()), y . each ( t , function ( t , e ){ function i (){ if ( n ||! 0 !== a . options . disabled &&! y ( this ). hasClass ( "ui-state-disabled" )) return ( "string" == typeof e ? a [ e ] : e ). apply ( a , arguments )} "string" != typeof e && ( i . guid = e . guid = e . guid || i . guid || y . guid ++ ); var s = t . match ( /^([\w:-]*)\s*(.*)$/ ), t = s [ 1 ] + a . eventNamespace , s = s [ 2 ]; s ? h . on ( t , s , i ) : o . on ( t , i )})}, _off : function ( t , e ){ e = ( e || "" ). split ( " " ). join ( this . eventNamespace + " " ) + this . eventNamespace , t . off ( e ), this . bindings = y ( this . bindings . not ( t ). get ()), this . focusable = y ( this . focusable . not ( t ). get ()), this . hoverable = y ( this . hoverable . not ( t ). get ())}, _delay : function ( t , e ){ var i = this ; return setTimeout ( function (){ return (
"string" == typeof t ? i [ t ] : t ). apply ( i , arguments )}, e || 0 )}, _hoverable : function ( t ){ this . hoverable = this . hoverable . add ( t ), this . _on ( t ,{ mouseenter : function ( t ){ this . _addClass ( y ( t . currentTarget ), null , "ui-state-hover" )}, mouseleave : function ( t ){ this . _removeClass ( y ( t . currentTarget ), null , "ui-state-hover" )}})}, _focusable : function ( t ){ this . focusable = this . focusable . add ( t ), this . _on ( t ,{ focusin : function ( t ){ this . _addClass ( y ( t . currentTarget ), null , "ui-state-focus" )}, focusout : function ( t ){ this . _removeClass ( y ( t . currentTarget ), null , "ui-state-focus" )}})}, _trigger : function ( t , e , i ){ var s , n , o = this . options [ t ]; if ( i = i || {},( e = y . Event ( e )). type = ( t === this . widgetEventPrefix ? t : this . widgetEventPrefix + t ). toLowerCase (), e . target = this . element [ 0 ], n = e . originalEvent ) for ( s in n ) s in e || ( e [ s ] = n [ s ]); return this . element . trigger ( e , i ), ! ( "function" == typeof o &&! 1 === o . apply ( this . element [ 0 ],[ e ]. concat ( i )) || e . isDefaultPrevented ())}}, y . each ({ show : "fadeIn" , hide : "fadeOut" }, function ( o , h ){ y . Widget . prototype [ "_" + o ] = function ( e , t , i ){ var s , n = ( t = "string" == typeof t ? { effect : t } : t
) ?! 0 !== t && "number" != typeof t && t . effect || h : o ; "number" == typeof ( t = t || {}) ? t = { duration : t } :! 0 === t && ( t = {}), s =! y . isEmptyObject ( t ), t . complete = i , t . delay && e . delay ( t . delay ), s && y . effects && y . effects . effect [ n ] ? e [ o ]( t ) : n !== o && e [ n ] ? e [ n ]( t . duration , t . easing , i ) : e . queue ( function ( t ){ y ( this )[ o ](), i && i . call ( e [ 0 ]), t ()})}}); var s , x , D , o , r , l , u , p , W ; y . widget ; function E ( t , e , i ){ return [ parseFloat ( t [ 0 ]) * ( p . test ( t [ 0 ]) ? e / 100 : 1 ), parseFloat ( t [ 1 ]) * ( p . test ( t [ 1 ]) ? i / 100 : 1 )]} function H ( t , e ){ return parseInt ( y . css ( t , e ), 10 ) || 0 } function S ( t ){ return null != t && t === t . window } x = Math . max , D = Math . abs , o = /left|center|right/ , r = /top|center|bottom/ , l = /[\+\-]\d+(\.[\d]+)?%?/ , u = /^\w+/ , p = /%$/ , W = y . fn . position , y . position = { scrollbarWidth : function (){ if ( void 0 !== s ) return s ; var t , e = y ( "<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>" ), i = e . children ()[ 0 ]; return y ( "body" ). append ( e ), t = i . offsetWidth , e . css ( "overflow" , "scroll" ), t === ( i = i . offsetWidth ) && ( i = e [ 0 ]. clientWidth ), e . remove (), s = t - i },
getScrollInfo : function ( t ){ var e = t . isWindow || t . isDocument ? "" : t . element . css ( "overflow-x" ), i = t . isWindow || t . isDocument ? "" : t . element . css ( "overflow-y" ), e = "scroll" === e || "auto" === e && t . width < t . element [ 0 ]. scrollWidth ; return { width : "scroll" === i || "auto" === i && t . height < t . element [ 0 ]. scrollHeight ? y . position . scrollbarWidth () : 0 , height : e ? y . position . scrollbarWidth () : 0 }}, getWithinInfo : function ( t ){ var e = y ( t || window ), i = S ( e [ 0 ]), s =!! e [ 0 ] && 9 === e [ 0 ]. nodeType ; return { element : e , isWindow : i , isDocument : s , offset :! i &&! s ? y ( t ). offset () : { left : 0 , top : 0 }, scrollLeft : e . scrollLeft (), scrollTop : e . scrollTop (), width : e . outerWidth (), height : e . outerHeight ()}}}, y . fn . position = function ( p ){ if ( ! p ||! p . of ) return W . apply ( this , arguments ); var d , c , f , g , m , t , _ = "string" == typeof ( p = y . extend ({}, p )). of ? y ( document ). find ( p . of ) : y ( p . of ), w = y . position . getWithinInfo ( p . within ), v = y . position . getScrollInfo ( w ), b = ( p . collision || "flip" ). split ( " " ), z = {}, e = 9 === ( t = ( e = _ )[ 0 ]). nodeType ? { width : e . width (), height : e . height (), offset : { top : 0 , left : 0 }} : S ( t ) ? { width : e . width (), height : e . height (), offset : {
top : e . scrollTop (), left : e . scrollLeft ()}} : t . preventDefault ? { width : 0 , height : 0 , offset : { top : t . pageY , left : t . pageX }} : { width : e . outerWidth (), height : e . outerHeight (), offset : e . offset ()}; return _ [ 0 ]. preventDefault && ( p . at = "left top" ), c = e . width , f = e . height , m = y . extend ({}, g = e . offset ), y . each ([ "my" , "at" ], function (){ var t , e , i = ( p [ this ] || "" ). split ( " " );( i = 1 === i . length ? o . test ( i [ 0 ]) ? i . concat ([ "center" ]) : r . test ( i [ 0 ]) ? [ "center" ]. concat ( i ) : [ "center" , "center" ] : i )[ 0 ] = o . test ( i [ 0 ]) ? i [ 0 ] : "center" , i [ 1 ] = r . test ( i [ 1 ]) ? i [ 1 ] : "center" , t = l . exec ( i [ 0 ]), e = l . exec ( i [ 1 ]), z [ this ] = [ t ? t [ 0 ] : 0 , e ? e [ 0 ] : 0 ], p [ this ] = [ u . exec ( i [ 0 ])[ 0 ], u . exec ( i [ 1 ])[ 0 ]]}), 1 === b . length && ( b [ 1 ] = b [ 0 ]), "right" === p . at [ 0 ] ? m . left += c : "center" === p . at [ 0 ] && ( m . left += c / 2 ), "bottom" === p . at [ 1 ] ? m . top += f : "center" === p . at [ 1 ] && ( m . top += f / 2 ), d = E ( z . at , c , f ), m . left += d [ 0 ], m . top += d [ 1 ], this . each ( function (){ var i , t , h = y ( this ), a = h . outerWidth (), r = h . outerHeight (), e = H ( this , "marginLeft" ), s = H ( this , "marginTop" ), n = a + e + H ( this , "marginRight" ) + v . width , o = r + s + H ( this , "marginBottom" ) + v . height , l = y . extend ({}, m ), u = E ( z . my , h . outerWidth ()
, h . outerHeight ()); "right" === p . my [ 0 ] ? l . left -= a : "center" === p . my [ 0 ] && ( l . left -= a / 2 ), "bottom" === p . my [ 1 ] ? l . top -= r : "center" === p . my [ 1 ] && ( l . top -= r / 2 ), l . left += u [ 0 ], l . top += u [ 1 ], i = { marginLeft : e , marginTop : s }, y . each ([ "left" , "top" ], function ( t , e ){ y . ui . position [ b [ t ]] && y . ui . position [ b [ t ]][ e ]( l ,{ targetWidth : c , targetHeight : f , elemWidth : a , elemHeight : r , collisionPosition : i , collisionWidth : n , collisionHeight : o , offset : [ d [ 0 ] + u [ 0 ], d [ 1 ] + u [ 1 ]], my : p . my , at : p . at , within : w , elem : h })}), p . using && ( t = function ( t ){ var e = g . left - l . left , i = e + c - a , s = g . top - l . top , n = s + f - r , o = { target : { element : _ , left : g . left , top : g . top , width : c , height : f }, element : { element : h , left : l . left , top : l . top , width : a , height : r }, horizontal : i < 0 ? "left" : 0 < e ? "right" : "center" , vertical : n < 0 ? "top" : 0 < s ? "bottom" : "middle" }; c < a && D ( e + i ) < c && ( o . horizontal = "center" ), f < r && D ( s + n ) < f && ( o . vertical = "middle" ), x ( D ( e ), D ( i )) > x ( D ( s ), D ( n )) ? o . important = "horizontal" : o . important = "vertical" , p . using . call ( this , t , o )}), h . offset ( y . extend ( l ,{ using : t }))})}, y . ui . position = { fit : { left : function ( t , e ){ var i = e . within ,
s = i . isWindow ? i . scrollLeft : i . offset . left , n = i . width , o = t . left - e . collisionPosition . marginLeft , h = s - o , a = o + e . collisionWidth - n - s ; e . collisionWidth > n ? 0 < h && a <= 0 ? ( i = t . left + h + e . collisionWidth - n - s , t . left += h - i ) : t . left =! ( 0 < a && h <= 0 ) && a < h ? s + n - e . collisionWidth : s : 0 < h ? t . left += h : 0 < a ? t . left -= a : t . left = x ( t . left - o , t . left )}, top : function ( t , e ){ var i = e . within , s = i . isWindow ? i . scrollTop : i . offset . top , n = e . within . height , o = t . top - e . collisionPosition . marginTop , h = s - o , a = o + e . collisionHeight - n - s ; e . collisionHeight > n ? 0 < h && a <= 0 ? ( i = t . top + h + e . collisionHeight - n - s , t . top += h - i ) : t . top =! ( 0 < a && h <= 0 ) && a < h ? s + n - e . collisionHeight : s : 0 < h ? t . top += h : 0 < a ? t . top -= a : t . top = x ( t . top - o , t . top )}}, flip : { left : function ( t , e ){ var i = e . within , s = i . offset . left + i . scrollLeft , n = i . width , o = i . isWindow ? i . scrollLeft : i . offset . left , h = t . left - e . collisionPosition . marginLeft , a = h - o , r = h + e . collisionWidth - n - o , l = "left" === e . my [ 0 ] ?- e . elemWidth : "right" === e . my [ 0 ] ? e . elemWidth : 0 , i = "left" === e . at [ 0 ] ? e . targetWidth : "right" === e . at [ 0 ] ?- e . targetWidth : 0 , h =- 2 * e . offset [ 0 ]; a < 0 ? (( s = t . left + l + i + h + e . collisionWidth - n - s ) < 0 || s < D ( a )
) && ( t . left += l + i + h ) : 0 < r && ( 0 < ( o = t . left - e . collisionPosition . marginLeft + l + i + h - o ) || D ( o ) < r ) && ( t . left += l + i + h )}, top : function ( t , e ){ var i = e . within , s = i . offset . top + i . scrollTop , n = i . height , o = i . isWindow ? i . scrollTop : i . offset . top , h = t . top - e . collisionPosition . marginTop , a = h - o , r = h + e . collisionHeight - n - o , l = "top" === e . my [ 1 ] ?- e . elemHeight : "bottom" === e . my [ 1 ] ? e . elemHeight : 0 , i = "top" === e . at [ 1 ] ? e . targetHeight : "bottom" === e . at [ 1 ] ?- e . targetHeight : 0 , h =- 2 * e . offset [ 1 ]; a < 0 ? (( s = t . top + l + i + h + e . collisionHeight - n - s ) < 0 || s < D ( a )) && ( t . top += l + i + h ) : 0 < r && ( 0 < ( o = t . top - e . collisionPosition . marginTop + l + i + h - o ) || D ( o ) < r ) && ( t . top += l + i + h )}}, flipfit : { left : function (){ y . ui . position . flip . left . apply ( this , arguments ), y . ui . position . fit . left . apply ( this , arguments )}, top : function (){ y . ui . position . flip . top . apply ( this , arguments ), y . ui . position . fit . top . apply ( this , arguments )}}}; var t ; y . ui . position , y . extend ( y . expr . pseudos ,{ data : y . expr . createPseudo ? y . expr . createPseudo ( function ( e ){ return function ( t ){ return !! y . data ( t , e )}}) : function ( t , e , i ){ return !! y . data ( t , i [ 3 ])}}), y . fn . extend ({
disableSelection : ( t = "onselectstart" in document . createElement ( "div" ) ? "selectstart" : "mousedown" , function (){ return this . on ( t + ".ui-disableSelection" , function ( t ){ t . preventDefault ()})}), enableSelection : function (){ return this . off ( ".ui-disableSelection" )}}); y . ui . focusable = function ( t , e ){ var i , s , n , o , h = t . nodeName . toLowerCase (); return "area" === h ? ( s = ( i = t . parentNode ). name , ! ( ! t . href ||! s || "map" !== i . nodeName . toLowerCase ()) && ( 0 < ( s = y ( "img[usemap='#" + s + "']" )). length && s . is ( ":visible" ))) : ( /^(input|select|textarea|button|object)$/ . test ( h ) ? ( n =! t . disabled ) && ( o = y ( t ). closest ( "fieldset" )[ 0 ]) && ( n =! o . disabled ) : n = "a" === h && t . href || e , n && y ( t ). is ( ":visible" ) && function ( t ){ var e = t . css ( "visibility" ); for (; "inherit" === e ;) t = t . parent (), e = t . css ( "visibility" ); return "visible" === e }( y ( t )))}, y . extend ( y . expr . pseudos ,{ focusable : function ( t ){ return y . ui . focusable ( t , null != y . attr ( t , "tabindex" ))}}); var e , d ; y . ui . focusable , y . fn . _form = function (){ return "string" == typeof this [ 0 ]. form ? this . closest ( "form" ) : y ( this [ 0 ]. form )}, y . ui . formResetMixin = { _formResetHandler : function (
){ var e = y ( this ); setTimeout ( function (){ var t = e . data ( "ui-form-reset-instances" ); y . each ( t , function (){ this . refresh ()})})}, _bindFormResetHandler : function (){ var t ; this . form = this . element . _form (), this . form . length && (( t = this . form . data ( "ui-form-reset-instances" ) || []). length || this . form . on ( "reset.ui-form-reset" , this . _formResetHandler ), t . push ( this ), this . form . data ( "ui-form-reset-instances" , t ))}, _unbindFormResetHandler : function (){ var t ; this . form . length && (( t = this . form . data ( "ui-form-reset-instances" )). splice ( y . inArray ( this , t ), 1 ), t . length ? this . form . data ( "ui-form-reset-instances" , t ) : this . form . removeData ( "ui-form-reset-instances" ). off ( "reset.ui-form-reset" ))}}; y . expr . pseudos || ( y . expr . pseudos = y . expr [ ":" ]), y . uniqueSort || ( y . uniqueSort = y . unique ), y . escapeSelector || ( e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g , d = function ( t , e ){ return e ? "\0" === t ? "� " : t . slice ( 0 , - 1 ) + "\\" + t . charCodeAt ( t . length - 1 ). toString ( 16 ) + " " : "\\" + t }, y . escapeSelector = function ( t ){ return ( t + "" ). replace ( e , d )}), y . fn . even && y . fn . odd || y . fn . extend ({ even : function (){
return this . filter ( function ( t ){ return t % 2 == 0 })}, odd : function (){ return this . filter ( function ( t ){ return t % 2 == 1 })}}); y . ui . keyCode = { BACKSPACE : 8 , COMMA : 188 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , LEFT : 37 , PAGE_DOWN : 34 , PAGE_UP : 33 , PERIOD : 190 , RIGHT : 39 , SPACE : 32 , TAB : 9 , UP : 38 }, y . fn . labels = function (){ var t , e , i ; return this . length ? this [ 0 ]. labels && this [ 0 ]. labels . length ? this . pushStack ( this [ 0 ]. labels ) : ( e = this . eq ( 0 ). parents ( "label" ),( t = this . attr ( "id" )) && ( i = ( i = this . eq ( 0 ). parents (). last ()). add (( i . length ? i : this ). siblings ()), t = "label[for='" + y . escapeSelector ( t ) + "']" , e = e . add ( i . find ( t ). addBack ( t ))), this . pushStack ( e )) : this . pushStack ([])}, y . fn . scrollParent = function ( t ){ var e = this . css ( "position" ), i = "absolute" === e , s = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/ , t = this . parents (). filter ( function (){ var t = y ( this ); return ( ! i || "static" !== t . css ( "position" )) && s . test ( t . css ( "overflow" ) + t . css ( "overflow-y" ) + t . css ( "overflow-x" ))}). eq ( 0 ); return "fixed" !== e && t . length ? t : y ( this [ 0 ]. ownerDocument || document )}, y . extend ( y . expr . pseudos ,{ tabbable : function ( t ){
var e = y . attr ( t , "tabindex" ), i = null != e ; return ( ! i || 0 <= e ) && y . ui . focusable ( t , i )}}), y . fn . extend ({ uniqueId : ( c = 0 , function (){ return this . each ( function (){ this . id || ( this . id = "ui-id-" + ++ c )})}), removeUniqueId : function (){ return this . each ( function (){ /^ui-id-\d+$/ . test ( this . id ) && y ( this ). removeAttr ( "id" )})}}), y . ui . ie =!! /msie [\w.]+/ . exec ( navigator . userAgent . toLowerCase ()); var c , f =! 1 ; y ( document ). on ( "mouseup" , function (){ f =! 1 }); y . widget ( "ui.mouse" ,{ version : "1.13.2" , options : { cancel : "input, textarea, button, select, option" , distance : 1 , delay : 0 }, _mouseInit : function (){ var e = this ; this . element . on ( "mousedown." + this . widgetName , function ( t ){ return e . _mouseDown ( t )}). on ( "click." + this . widgetName , function ( t ){ if ( ! 0 === y . data ( t . target , e . widgetName + ".preventClickEvent" )) return y . removeData ( t . target , e . widgetName + ".preventClickEvent" ), t . stopImmediatePropagation (), ! 1 }), this . started =! 1 }, _mouseDestroy : function (){ this . element . off ( "." + this . widgetName ), this . _mouseMoveDelegate && this . document . off ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ). off (
"mouseup." + this . widgetName , this . _mouseUpDelegate )}, _mouseDown : function ( t ){ if ( ! f ){ this . _mouseMoved =! 1 , this . _mouseStarted && this . _mouseUp ( t ), this . _mouseDownEvent = t ; var e = this , i = 1 === t . which , s =! ( "string" != typeof this . options . cancel ||! t . target . nodeName ) && y ( t . target ). closest ( this . options . cancel ). length ; return i &&! s && this . _mouseCapture ( t ) ? ( this . mouseDelayMet =! this . options . delay , this . mouseDelayMet || ( this . _mouseDelayTimer = setTimeout ( function (){ e . mouseDelayMet =! 0 }, this . options . delay )), this . _mouseDistanceMet ( t ) && this . _mouseDelayMet ( t ) && ( this . _mouseStarted =! 1 !== this . _mouseStart ( t ), ! this . _mouseStarted ) ? ( t . preventDefault (), ! 0 ) : ( ! 0 === y . data ( t . target , this . widgetName + ".preventClickEvent" ) && y . removeData ( t . target , this . widgetName + ".preventClickEvent" ), this . _mouseMoveDelegate = function ( t ){ return e . _mouseMove ( t )}, this . _mouseUpDelegate = function ( t ){ return e . _mouseUp ( t )}, this . document . on ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ). on ( "mouseup." + this . widgetName , this . _mouseUpDelegate ), t . preventDefault (), f =! 0 )) :! 0 }},
_mouseMove : function ( t ){ if ( this . _mouseMoved ){ if ( y . ui . ie && ( ! document . documentMode || document . documentMode < 9 ) &&! t . button ) return this . _mouseUp ( t ); if ( ! t . which ) if ( t . originalEvent . altKey || t . originalEvent . ctrlKey || t . originalEvent . metaKey || t . originalEvent . shiftKey ) this . ignoreMissingWhich =! 0 ; else if ( ! this . ignoreMissingWhich ) return this . _mouseUp ( t )} return ( t . which || t . button ) && ( this . _mouseMoved =! 0 ), this . _mouseStarted ? ( this . _mouseDrag ( t ), t . preventDefault ()) : ( this . _mouseDistanceMet ( t ) && this . _mouseDelayMet ( t ) && ( this . _mouseStarted =! 1 !== this . _mouseStart ( this . _mouseDownEvent , t ), this . _mouseStarted ? this . _mouseDrag ( t ) : this . _mouseUp ( t )), ! this . _mouseStarted )}, _mouseUp : function ( t ){ this . document . off ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ). off ( "mouseup." + this . widgetName , this . _mouseUpDelegate ), this . _mouseStarted && ( this . _mouseStarted =! 1 , t . target === this . _mouseDownEvent . target && y . data ( t . target , this . widgetName + ".preventClickEvent" , ! 0 ), this . _mouseStop ( t )), this . _mouseDelayTimer && ( clearTimeout ( this . _mouseDelayTimer ),
delete this . _mouseDelayTimer ), this . ignoreMissingWhich =! 1 , f =! 1 , t . preventDefault ()}, _mouseDistanceMet : function ( t ){ return Math . max ( Math . abs ( this . _mouseDownEvent . pageX - t . pageX ), Math . abs ( this . _mouseDownEvent . pageY - t . pageY )) >= this . options . distance }, _mouseDelayMet : function (){ return this . mouseDelayMet }, _mouseStart : function (){}, _mouseDrag : function (){}, _mouseStop : function (){}, _mouseCapture : function (){ return ! 0 }}), y . ui . plugin = { add : function ( t , e , i ){ var s , n = y . ui [ t ]. prototype ; for ( s in i ) n . plugins [ s ] = n . plugins [ s ] || [], n . plugins [ s ]. push ([ e , i [ s ]])}, call : function ( t , e , i , s ){ var n , o = t . plugins [ e ]; if ( o && ( s || t . element [ 0 ]. parentNode && 11 !== t . element [ 0 ]. parentNode . nodeType )) for ( n = 0 ; n < o . length ; n ++ ) t . options [ o [ n ][ 0 ]] && o [ n ][ 1 ]. apply ( t . element , i )}}; y . widget ( "ui.resizable" , y . ui . mouse ,{ version : "1.13.2" , widgetEventPrefix : "resize" , options : { alsoResize :! 1 , animate :! 1 , animateDuration : "slow" , animateEasing : "swing" , aspectRatio :! 1 , autoHide :! 1 , classes : { "ui-resizable-se" : "ui-icon ui-icon-gripsmall-diagonal-se" }, containment :! 1 , ghost :! 1 , grid :! 1 ,
handles : "e,s,se" , helper :! 1 , maxHeight : null , maxWidth : null , minHeight : 10 , minWidth : 10 , zIndex : 90 , resize : null , start : null , stop : null }, _num : function ( t ){ return parseFloat ( t ) || 0 }, _isNumber : function ( t ){ return ! isNaN ( parseFloat ( t ))}, _hasScroll : function ( t , e ){ if ( "hidden" === y ( t ). css ( "overflow" )) return ! 1 ; var i = e && "left" === e ? "scrollLeft" : "scrollTop" , e =! 1 ; if ( 0 < t [ i ]) return ! 0 ; try { t [ i ] = 1 , e = 0 < t [ i ], t [ i ] = 0 } catch ( t ){} return e }, _create : function (){ var t , e = this . options , i = this ; this . _addClass ( "ui-resizable" ), y . extend ( this ,{ _aspectRatio :!! e . aspectRatio , aspectRatio : e . aspectRatio , originalElement : this . element , _proportionallyResizeElements : [], _helper : e . helper || e . ghost || e . animate ? e . helper || "ui-resizable-helper" : null }), this . element [ 0 ]. nodeName . match ( /^(canvas|textarea|input|select|button|img)$/i ) && ( this . element . wrap ( y ( "<div class='ui-wrapper'></div>" ). css ({ overflow : "hidden" , position : this . element . css ( "position" ), width : this . element . outerWidth (), height : this . element . outerHeight (), top : this . element . css ( "top" ), left : this . element . css ( "left" )})),
this . element = this . element . parent (). data ( "ui-resizable" , this . element . resizable ( "instance" )), this . elementIsWrapper =! 0 , t = { marginTop : this . originalElement . css ( "marginTop" ), marginRight : this . originalElement . css ( "marginRight" ), marginBottom : this . originalElement . css ( "marginBottom" ), marginLeft : this . originalElement . css ( "marginLeft" )}, this . element . css ( t ), this . originalElement . css ( "margin" , 0 ), this . originalResizeStyle = this . originalElement . css ( "resize" ), this . originalElement . css ( "resize" , "none" ), this . _proportionallyResizeElements . push ( this . originalElement . css ({ position : "static" , zoom : 1 , display : "block" })), this . originalElement . css ( t ), this . _proportionallyResize ()), this . _setupHandles (), e . autoHide && y ( this . element ). on ( "mouseenter" , function (){ e . disabled || ( i . _removeClass ( "ui-resizable-autohide" ), i . _handles . show ())}). on ( "mouseleave" , function (){ e . disabled || i . resizing || ( i . _addClass ( "ui-resizable-autohide" ), i . _handles . hide ())}), this . _mouseInit ()}, _destroy : function (){ this . _mouseDestroy (), this . _addedHandles . remove (); function t ( t ){ y ( t
). removeData ( "resizable" ). removeData ( "ui-resizable" ). off ( ".resizable" )} var e ; return this . elementIsWrapper && ( t ( this . element ), e = this . element , this . originalElement . css ({ position : e . css ( "position" ), width : e . outerWidth (), height : e . outerHeight (), top : e . css ( "top" ), left : e . css ( "left" )}). insertAfter ( e ), e . remove ()), this . originalElement . css ( "resize" , this . originalResizeStyle ), t ( this . originalElement ), this }, _setOption : function ( t , e ){ switch ( this . _super ( t , e ), t ){ case "handles" : this . _removeHandles (), this . _setupHandles (); break ; case "aspectRatio" : this . _aspectRatio =!! e }}, _setupHandles : function (){ var t , e , i , s , n , o = this . options , h = this ; if ( this . handles = o . handles || ( y ( ".ui-resizable-handle" , this . element ). length ? { n : ".ui-resizable-n" , e : ".ui-resizable-e" , s : ".ui-resizable-s" , w : ".ui-resizable-w" , se : ".ui-resizable-se" , sw : ".ui-resizable-sw" , ne : ".ui-resizable-ne" , nw : ".ui-resizable-nw" } : "e,s,se" ), this . _handles = y (), this . _addedHandles = y (), this . handles . constructor === String ) for ( "all" === this . handles && ( this . handles = "n,e,s,w,se,sw,ne,nw" ), i = this . handles . split (
"," ), this . handles = {}, e = 0 ; e < i . length ; e ++ ) s = "ui-resizable-" + ( t = String . prototype . trim . call ( i [ e ])), n = y ( "<div>" ), this . _addClass ( n , "ui-resizable-handle " + s ), n . css ({ zIndex : o . zIndex }), this . handles [ t ] = ".ui-resizable-" + t , this . element . children ( this . handles [ t ]). length || ( this . element . append ( n ), this . _addedHandles = this . _addedHandles . add ( n )); this . _renderAxis = function ( t ){ var e , i , s ; for ( e in t = t || this . element , this . handles ) this . handles [ e ]. constructor === String ? this . handles [ e ] = this . element . children ( this . handles [ e ]). first (). show () : ( this . handles [ e ]. jquery || this . handles [ e ]. nodeType ) && ( this . handles [ e ] = y ( this . handles [ e ]), this . _on ( this . handles [ e ],{ mousedown : h . _mouseDown })), this . elementIsWrapper && this . originalElement [ 0 ]. nodeName . match ( /^(textarea|input|select|button)$/i ) && ( i = y ( this . handles [ e ], this . element ), s = /sw|ne|nw|se|n|s/ . test ( e ) ? i . outerHeight () : i . outerWidth (), i = [ "padding" , /ne|nw|n/ . test ( e ) ? "Top" : /se|sw|s/ . test ( e ) ? "Bottom" : /^e$/ . test ( e ) ? "Right" : "Left" ]. join ( "" ), t . css ( i , s ), this . _proportionallyResize ()), this . _handles = this . _handles . add (
this . handles [ e ])}, this . _renderAxis ( this . element ), this . _handles = this . _handles . add ( this . element . find ( ".ui-resizable-handle" )), this . _handles . disableSelection (), this . _handles . on ( "mouseover" , function (){ h . resizing || ( this . className && ( n = this . className . match ( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i )), h . axis = n && n [ 1 ] ? n [ 1 ] : "se" )}), o . autoHide && ( this . _handles . hide (), this . _addClass ( "ui-resizable-autohide" ))}, _removeHandles : function (){ this . _addedHandles . remove ()}, _mouseCapture : function ( t ){ var e , i , s =! 1 ; for ( e in this . handles )( i = y ( this . handles [ e ])[ 0 ]) !== t . target &&! y . contains ( i , t . target ) || ( s =! 0 ); return ! this . options . disabled && s }, _mouseStart : function ( t ){ var e , i , s = this . options , n = this . element ; return this . resizing =! 0 , this . _renderProxy (), e = this . _num ( this . helper . css ( "left" )), i = this . _num ( this . helper . css ( "top" )), s . containment && ( e += y ( s . containment ). scrollLeft () || 0 , i += y ( s . containment ). scrollTop () || 0 ), this . offset = this . helper . offset (), this . position = { left : e , top : i }, this . size = this . _helper ? { width : this . helper . width (), height : this . helper . height ()} : {
width : n . width (), height : n . height ()}, this . originalSize = this . _helper ? { width : n . outerWidth (), height : n . outerHeight ()} : { width : n . width (), height : n . height ()}, this . sizeDiff = { width : n . outerWidth () - n . width (), height : n . outerHeight () - n . height ()}, this . originalPosition = { left : e , top : i }, this . originalMousePosition = { left : t . pageX , top : t . pageY }, this . aspectRatio = "number" == typeof s . aspectRatio ? s . aspectRatio : this . originalSize . width / this . originalSize . height || 1 , s = y ( ".ui-resizable-" + this . axis ). css ( "cursor" ), y ( "body" ). css ( "cursor" , "auto" === s ? this . axis + "-resize" : s ), this . _addClass ( "ui-resizable-resizing" ), this . _propagate ( "start" , t ), ! 0 }, _mouseDrag : function ( t ){ var e = this . originalMousePosition , i = this . axis , s = t . pageX - e . left || 0 , e = t . pageY - e . top || 0 , i = this . _change [ i ]; return this . _updatePrevProperties (), i && ( e = i . apply ( this ,[ t , s , e ]), this . _updateVirtualBoundaries ( t . shiftKey ),( this . _aspectRatio || t . shiftKey ) && ( e = this . _updateRatio ( e , t )), e = this . _respectSize ( e , t ), this . _updateCache ( e ), this . _propagate ( "resize" , t ), e = this . _applyChanges (),
! this . _helper && this . _proportionallyResizeElements . length && this . _proportionallyResize (), y . isEmptyObject ( e ) || ( this . _updatePrevProperties (), this . _trigger ( "resize" , t , this . ui ()), this . _applyChanges ())), ! 1 }, _mouseStop : function ( t ){ this . resizing =! 1 ; var e , i , s , n = this . options , o = this ; return this . _helper && ( s = ( e = ( i = this . _proportionallyResizeElements ). length && /textarea/i . test ( i [ 0 ]. nodeName )) && this . _hasScroll ( i [ 0 ], "left" ) ? 0 : o . sizeDiff . height , i = e ? 0 : o . sizeDiff . width , e = { width : o . helper . width () - i , height : o . helper . height () - s }, i = parseFloat ( o . element . css ( "left" )) + ( o . position . left - o . originalPosition . left ) || null , s = parseFloat ( o . element . css ( "top" )) + ( o . position . top - o . originalPosition . top ) || null , n . animate || this . element . css ( y . extend ( e ,{ top : s , left : i })), o . helper . height ( o . size . height ), o . helper . width ( o . size . width ), this . _helper &&! n . animate && this . _proportionallyResize ()), y ( "body" ). css ( "cursor" , "auto" ), this . _removeClass ( "ui-resizable-resizing" ), this . _propagate ( "stop" , t ), this . _helper && this . helper . remove (), ! 1 }, _updatePrevProperties : function (){
this . prevPosition = { top : this . position . top , left : this . position . left }, this . prevSize = { width : this . size . width , height : this . size . height }}, _applyChanges : function (){ var t = {}; return this . position . top !== this . prevPosition . top && ( t . top = this . position . top + "px" ), this . position . left !== this . prevPosition . left && ( t . left = this . position . left + "px" ), this . size . width !== this . prevSize . width && ( t . width = this . size . width + "px" ), this . size . height !== this . prevSize . height && ( t . height = this . size . height + "px" ), this . helper . css ( t ), t }, _updateVirtualBoundaries : function ( t ){ var e , i , s = this . options , n = { minWidth : this . _isNumber ( s . minWidth ) ? s . minWidth : 0 , maxWidth : this . _isNumber ( s . maxWidth ) ? s . maxWidth : 1 / 0 , minHeight : this . _isNumber ( s . minHeight ) ? s . minHeight : 0 , maxHeight : this . _isNumber ( s . maxHeight ) ? s . maxHeight : 1 / 0 };( this . _aspectRatio || t ) && ( e = n . minHeight * this . aspectRatio , i = n . minWidth / this . aspectRatio , s = n . maxHeight * this . aspectRatio , t = n . maxWidth / this . aspectRatio , e > n . minWidth && ( n . minWidth = e ), i > n . minHeight && ( n . minHeight = i ), s < n . maxWidth && ( n . maxWidth = s ), t < n . maxHeight && ( n . maxHeight = t )
), this . _vBoundaries = n }, _updateCache : function ( t ){ this . offset = this . helper . offset (), this . _isNumber ( t . left ) && ( this . position . left = t . left ), this . _isNumber ( t . top ) && ( this . position . top = t . top ), this . _isNumber ( t . height ) && ( this . size . height = t . height ), this . _isNumber ( t . width ) && ( this . size . width = t . width )}, _updateRatio : function ( t ){ var e = this . position , i = this . size , s = this . axis ; return this . _isNumber ( t . height ) ? t . width = t . height * this . aspectRatio : this . _isNumber ( t . width ) && ( t . height = t . width / this . aspectRatio ), "sw" === s && ( t . left = e . left + ( i . width - t . width ), t . top = null ), "nw" === s && ( t . top = e . top + ( i . height - t . height ), t . left = e . left + ( i . width - t . width )), t }, _respectSize : function ( t ){ var e = this . _vBoundaries , i = this . axis , s = this . _isNumber ( t . width ) && e . maxWidth && e . maxWidth < t . width , n = this . _isNumber ( t . height ) && e . maxHeight && e . maxHeight < t . height , o = this . _isNumber ( t . width ) && e . minWidth && e . minWidth > t . width , h = this . _isNumber ( t . height ) && e . minHeight && e . minHeight > t . height , a = this . originalPosition . left + this . originalSize . width , r = this . originalPosition . top + this . originalSize . height
, l = /sw|nw|w/ . test ( i ), i = /nw|ne|n/ . test ( i ); return o && ( t . width = e . minWidth ), h && ( t . height = e . minHeight ), s && ( t . width = e . maxWidth ), n && ( t . height = e . maxHeight ), o && l && ( t . left = a - e . minWidth ), s && l && ( t . left = a - e . maxWidth ), h && i && ( t . top = r - e . minHeight ), n && i && ( t . top = r - e . maxHeight ), t . width || t . height || t . left ||! t . top ? t . width || t . height || t . top ||! t . left || ( t . left = null ) : t . top = null , t }, _getPaddingPlusBorderDimensions : function ( t ){ for ( var e = 0 , i = [], s = [ t . css ( "borderTopWidth" ), t . css ( "borderRightWidth" ), t . css ( "borderBottomWidth" ), t . css ( "borderLeftWidth" )], n = [ t . css ( "paddingTop" ), t . css ( "paddingRight" ), t . css ( "paddingBottom" ), t . css ( "paddingLeft" )]; e < 4 ; e ++ ) i [ e ] = parseFloat ( s [ e ]) || 0 , i [ e ] += parseFloat ( n [ e ]) || 0 ; return { height : i [ 0 ] + i [ 2 ], width : i [ 1 ] + i [ 3 ]}}, _proportionallyResize : function (){ if ( this . _proportionallyResizeElements . length ) for ( var t , e = 0 , i = this . helper || this . element ; e < this . _proportionallyResizeElements . length ; e ++ ) t = this . _proportionallyResizeElements [ e ], this . outerDimensions || ( this . outerDimensions = this . _getPaddingPlusBorderDimensions ( t )), t . css ({
height : i . height () - this . outerDimensions . height || 0 , width : i . width () - this . outerDimensions . width || 0 })}, _renderProxy : function (){ var t = this . element , e = this . options ; this . elementOffset = t . offset (), this . _helper ? ( this . helper = this . helper || y ( "<div></div>" ). css ({ overflow : "hidden" }), this . _addClass ( this . helper , this . _helper ), this . helper . css ({ width : this . element . outerWidth (), height : this . element . outerHeight (), position : "absolute" , left : this . elementOffset . left + "px" , top : this . elementOffset . top + "px" , zIndex :++ e . zIndex }), this . helper . appendTo ( "body" ). disableSelection ()) : this . helper = this . element }, _change : { e : function ( t , e ){ return { width : this . originalSize . width + e }}, w : function ( t , e ){ var i = this . originalSize ; return { left : this . originalPosition . left + e , width : i . width - e }}, n : function ( t , e , i ){ var s = this . originalSize ; return { top : this . originalPosition . top + i , height : s . height - i }}, s : function ( t , e , i ){ return { height : this . originalSize . height + i }}, se : function ( t , e , i ){ return y . extend ( this . _change . s . apply ( this , arguments ), this . _change . e . apply ( this ,[ t , e , i ]))}, sw : function ( t , e ,
i ){ return y . extend ( this . _change . s . apply ( this , arguments ), this . _change . w . apply ( this ,[ t , e , i ]))}, ne : function ( t , e , i ){ return y . extend ( this . _change . n . apply ( this , arguments ), this . _change . e . apply ( this ,[ t , e , i ]))}, nw : function ( t , e , i ){ return y . extend ( this . _change . n . apply ( this , arguments ), this . _change . w . apply ( this ,[ t , e , i ]))}}, _propagate : function ( t , e ){ y . ui . plugin . call ( this , t ,[ e , this . ui ()]), "resize" !== t && this . _trigger ( t , e , this . ui ())}, plugins : {}, ui : function (){ return { originalElement : this . originalElement , element : this . element , helper : this . helper , position : this . position , size : this . size , originalSize : this . originalSize , originalPosition : this . originalPosition }}}), y . ui . plugin . add ( "resizable" , "animate" ,{ stop : function ( e ){ var i = y ( this ). resizable ( "instance" ), t = i . options , s = i . _proportionallyResizeElements , n = s . length && /textarea/i . test ( s [ 0 ]. nodeName ), o = n && i . _hasScroll ( s [ 0 ], "left" ) ? 0 : i . sizeDiff . height , h = n ? 0 : i . sizeDiff . width , n = { width : i . size . width - h , height : i . size . height - o }, h = parseFloat ( i . element . css ( "left" )) + ( i . position . left - i . originalPosition . left
) || null , o = parseFloat ( i . element . css ( "top" )) + ( i . position . top - i . originalPosition . top ) || null ; i . element . animate ( y . extend ( n , o && h ? { top : o , left : h } : {}),{ duration : t . animateDuration , easing : t . animateEasing , step : function (){ var t = { width : parseFloat ( i . element . css ( "width" )), height : parseFloat ( i . element . css ( "height" )), top : parseFloat ( i . element . css ( "top" )), left : parseFloat ( i . element . css ( "left" ))}; s && s . length && y ( s [ 0 ]). css ({ width : t . width , height : t . height }), i . _updateCache ( t ), i . _propagate ( "resize" , e )}})}}), y . ui . plugin . add ( "resizable" , "containment" ,{ start : function (){ var i , s , n = y ( this ). resizable ( "instance" ), t = n . options , e = n . element , o = t . containment , h = o instanceof y ? o . get ( 0 ) : /parent/ . test ( o ) ? e . parent (). get ( 0 ) : o ; h && ( n . containerElement = y ( h ), /document/ . test ( o ) || o === document ? ( n . containerOffset = { left : 0 , top : 0 }, n . containerPosition = { left : 0 , top : 0 }, n . parentData = { element : y ( document ), left : 0 , top : 0 , width : y ( document ). width (), height : y ( document ). height () || document . body . parentNode . scrollHeight }) : ( i = y ( h ), s = [], y ([ "Top" , "Right" , "Left" , "Bottom" ]). each ( function ( t , e
){ s [ t ] = n . _num ( i . css ( "padding" + e ))}), n . containerOffset = i . offset (), n . containerPosition = i . position (), n . containerSize = { height : i . innerHeight () - s [ 3 ], width : i . innerWidth () - s [ 1 ]}, t = n . containerOffset , e = n . containerSize . height , o = n . containerSize . width , o = n . _hasScroll ( h , "left" ) ? h . scrollWidth : o , e = n . _hasScroll ( h ) ? h . scrollHeight : e , n . parentData = { element : h , left : t . left , top : t . top , width : o , height : e }))}, resize : function ( t ){ var e = y ( this ). resizable ( "instance" ), i = e . options , s = e . containerOffset , n = e . position , o = e . _aspectRatio || t . shiftKey , h = { top : 0 , left : 0 }, a = e . containerElement , t =! 0 ; a [ 0 ] !== document && /static/ . test ( a . css ( "position" )) && ( h = s ), n . left < ( e . _helper ? s . left : 0 ) && ( e . size . width = e . size . width + ( e . _helper ? e . position . left - s . left : e . position . left - h . left ), o && ( e . size . height = e . size . width / e . aspectRatio , t =! 1 ), e . position . left = i . helper ? s . left : 0 ), n . top < ( e . _helper ? s . top : 0 ) && ( e . size . height = e . size . height + ( e . _helper ? e . position . top - s . top : e . position . top ), o && ( e . size . width = e . size . height * e . aspectRatio , t =! 1 ), e . position . top = e . _helper ? s . top : 0 ),
i = e . containerElement . get ( 0 ) === e . element . parent (). get ( 0 ), n = /relative|absolute/ . test ( e . containerElement . css ( "position" )), i && n ? ( e . offset . left = e . parentData . left + e . position . left , e . offset . top = e . parentData . top + e . position . top ) : ( e . offset . left = e . element . offset (). left , e . offset . top = e . element . offset (). top ), n = Math . abs ( e . sizeDiff . width + ( e . _helper ? e . offset . left - h . left : e . offset . left - s . left )), s = Math . abs ( e . sizeDiff . height + ( e . _helper ? e . offset . top - h . top : e . offset . top - s . top )), n + e . size . width >= e . parentData . width && ( e . size . width = e . parentData . width - n , o && ( e . size . height = e . size . width / e . aspectRatio , t =! 1 )), s + e . size . height >= e . parentData . height && ( e . size . height = e . parentData . height - s , o && ( e . size . width = e . size . height * e . aspectRatio , t =! 1 )), t || ( e . position . left = e . prevPosition . left , e . position . top = e . prevPosition . top , e . size . width = e . prevSize . width , e . size . height = e . prevSize . height )}, stop : function (){ var t = y ( this ). resizable ( "instance" ), e = t . options , i = t . containerOffset , s = t . containerPosition , n = t . containerElement , o = y ( t . helper ), h = o . offset (), a = o . outerWidth (
) - t . sizeDiff . width , o = o . outerHeight () - t . sizeDiff . height ; t . _helper &&! e . animate && /relative/ . test ( n . css ( "position" )) && y ( this ). css ({ left : h . left - s . left - i . left , width : a , height : o }), t . _helper &&! e . animate && /static/ . test ( n . css ( "position" )) && y ( this ). css ({ left : h . left - s . left - i . left , width : a , height : o })}}), y . ui . plugin . add ( "resizable" , "alsoResize" ,{ start : function (){ var t = y ( this ). resizable ( "instance" ). options ; y ( t . alsoResize ). each ( function (){ var t = y ( this ); t . data ( "ui-resizable-alsoresize" ,{ width : parseFloat ( t . width ()), height : parseFloat ( t . height ()), left : parseFloat ( t . css ( "left" )), top : parseFloat ( t . css ( "top" ))})})}, resize : function ( t , i ){ var e = y ( this ). resizable ( "instance" ), s = e . options , n = e . originalSize , o = e . originalPosition , h = { height : e . size . height - n . height || 0 , width : e . size . width - n . width || 0 , top : e . position . top - o . top || 0 , left : e . position . left - o . left || 0 }; y ( s . alsoResize ). each ( function (){ var t = y ( this ), s = y ( this ). data ( "ui-resizable-alsoresize" ), n = {}, e = t . parents ( i . originalElement [ 0 ]). length ? [ "width" , "height" ] : [ "width" , "height" , "top" , "left" ]; y . each ( e ,
function ( t , e ){ var i = ( s [ e ] || 0 ) + ( h [ e ] || 0 ); i && 0 <= i && ( n [ e ] = i || null )}), t . css ( n )})}, stop : function (){ y ( this ). removeData ( "ui-resizable-alsoresize" )}}), y . ui . plugin . add ( "resizable" , "ghost" ,{ start : function (){ var t = y ( this ). resizable ( "instance" ), e = t . size ; t . ghost = t . originalElement . clone (), t . ghost . css ({ opacity : . 25 , display : "block" , position : "relative" , height : e . height , width : e . width , margin : 0 , left : 0 , top : 0 }), t . _addClass ( t . ghost , "ui-resizable-ghost" ), ! 1 !== y . uiBackCompat && "string" == typeof t . options . ghost && t . ghost . addClass ( this . options . ghost ), t . ghost . appendTo ( t . helper )}, resize : function (){ var t = y ( this ). resizable ( "instance" ); t . ghost && t . ghost . css ({ position : "relative" , height : t . size . height , width : t . size . width })}, stop : function (){ var t = y ( this ). resizable ( "instance" ); t . ghost && t . helper && t . helper . get ( 0 ). removeChild ( t . ghost . get ( 0 ))}}), y . ui . plugin . add ( "resizable" , "grid" ,{ resize : function (){ var t , e = y ( this ). resizable ( "instance" ), i = e . options , s = e . size , n = e . originalSize , o = e . originalPosition , h = e . axis , a = "number" == typeof i . grid ? [ i . grid , i . grid ] : i . grid , r = a [ 0
] || 1 , l = a [ 1 ] || 1 , u = Math . round (( s . width - n . width ) / r ) * r , p = Math . round (( s . height - n . height ) / l ) * l , d = n . width + u , c = n . height + p , f = i . maxWidth && i . maxWidth < d , g = i . maxHeight && i . maxHeight < c , m = i . minWidth && i . minWidth > d , s = i . minHeight && i . minHeight > c ; i . grid = a , m && ( d += r ), s && ( c += l ), f && ( d -= r ), g && ( c -= l ), /^(se|s|e)$/ . test ( h ) ? ( e . size . width = d , e . size . height = c ) : /^(ne)$/ . test ( h ) ? ( e . size . width = d , e . size . height = c , e . position . top = o . top - p ) : /^(sw)$/ . test ( h ) ? ( e . size . width = d , e . size . height = c , e . position . left = o . left - u ) : (( c - l <= 0 || d - r <= 0 ) && ( t = e . _getPaddingPlusBorderDimensions ( this )), 0 < c - l ? ( e . size . height = c , e . position . top = o . top - p ) : ( c = l - t . height , e . size . height = c , e . position . top = o . top + n . height - c ), 0 < d - r ? ( e . size . width = d , e . position . left = o . left - u ) : ( d = r - t . width , e . size . width = d , e . position . left = o . left + n . width - d ))}}); y . ui . resizable });
/**
2021-12-18 16:36:37 -08:00
* Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
* Licensed under MIT
* @author Ariel Flesler
* @version 2.1.2
2025-01-03 17:56:15 -08:00
*/ ( function ( f ){ "use strict" ; "function" === typeof define && define . amd ? define ([ "jquery" ], f ) : "undefined" !== typeof module && module . exports ? module . exports = f ( require ( "jquery" )) : f ( jQuery )})( function ( $ ){ "use strict" ; function n ( a ){ return ! a . nodeName ||- 1 !== $ . inArray ( a . nodeName . toLowerCase (),[ "iframe" , "#document" , "html" , "body" ])} function h ( a ){ return $ . isFunction ( a ) || $ . isPlainObject ( a ) ? a : { top : a , left : a }} var p = $ . scrollTo = function ( a , d , b ){ return $ ( window ). scrollTo ( a , d , b )}; p . defaults = { axis : "xy" , duration : 0 , limit :! 0 }; $ . fn . scrollTo = function ( a , d , b ){ "object" === typeof d && ( b = d , d = 0 ); "function" === typeof b && ( b = { onAfter : b }); "max" === a && ( a = 9e9 ); b = $ . extend ({}, p . defaults , b ); d = d || b . duration ; var u = b . queue && 1 < b . axis . length ; u && ( d /= 2 ); b . offset = h ( b . offset ); b . over = h ( b . over ); return this . each ( function (){ function k ( a ){ var k = $ . extend ({}, b ,{ queue :! 0 , duration : d , complete : a && function (){ a . call ( q , e , b )}}); r . animate ( f , k )} if ( null !== a ){ var l = n ( this ), q = l ? this . contentWindow || window : this , r = $ ( q ), e = a , f = {}, t ; switch ( typeof e ){ case "number" : case "string" : if (
/^([+-]=?)?\d+(\.\d+)?(px|%)?$/ . test ( e )){ e = h ( e ); break } e = l ? $ ( e ) : $ ( e , q ); case "object" : if ( e . length === 0 ) return ; if ( e . is || e . style ) t = ( e = $ ( e )). offset ()} var v = $ . isFunction ( b . offset ) && b . offset ( q , e ) || b . offset ; $ . each ( b . axis . split ( "" ), function ( a , c ){ var d = "x" === c ? "Left" : "Top" , m = d . toLowerCase (), g = "scroll" + d , h = r [ g ](), n = p . max ( q , c ); t ? ( f [ g ] = t [ m ] + ( l ? 0 : h - r . offset ()[ m ]), b . margin && ( f [ g ] -= parseInt ( e . css ( "margin" + d ), 10 ) || 0 , f [ g ] -= parseInt ( e . css ( "border" + d + "Width" ), 10 ) || 0 ), f [ g ] += v [ m ] || 0 , b . over [ m ] && ( f [ g ] += e [ "x" === c ? "width" : "height" ]() * b . over [ m ])) : ( d = e [ m ], f [ g ] = d . slice && "%" === d . slice ( - 1 ) ? parseFloat ( d ) / 100 * n : d ); b . limit && /^\d+$/ . test ( f [ g ]) && ( f [ g ] = 0 >= f [ g ] ? 0 : Math . min ( f [ g ], n )); ! a && 1 < b . axis . length && ( h === f [ g ] ? f = {} : u && ( k ( b . onAfterFirst ), f = {}))}); k ( b . onAfter )}})}; p . max = function ( a , d ){ var b = "x" === d ? "Width" : "Height" , h = "scroll" + b ; if ( ! n ( a )) return a [ h ] - $ ( a )[ b . toLowerCase ()](); var b = "client" + b , k = a . ownerDocument || a . document , l = k . documentElement , k = k . body ; return Math . max ( l [ h ], k [ h ]) - Math . min ( l [ b ], k [ b ])};
$ . Tween . propHooks . scrollLeft = $ . Tween . propHooks . scrollTop = { get : function ( a ){ return $ ( a . elem )[ a . prop ]()}, set : function ( a ){ var d = this . get ( a ); if ( a . options . interrupt && a . _last && a . _last !== d ) return $ ( a . elem ). stop (); var b = Math . round ( a . now ); d !== b && ( $ ( a . elem )[ a . prop ]( b ), a . _last = this . get ( a ))}}; return p });
2019-06-22 10:30:09 -07:00
/*!
2021-12-18 16:36:37 -08:00
PowerTip v1.3.1 (2018-04-15)
https://stevenbenner.github.io/jquery-powertip/
Copyright (c) 2018 Steven Benner (http://stevenbenner.com/).
2019-06-22 10:30:09 -07:00
Released under MIT license.
https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
*/
2025-01-03 17:56:15 -08:00
( function ( root , factory ){ if ( typeof define === "function" && define . amd ){ define ([ "jquery" ], factory )} else if ( typeof module === "object" && module . exports ){ module . exports = factory ( require ( "jquery" ))} else { factory ( root . jQuery )}})( this , function ( $ ){ var $document = $ ( document ), $window = $ ( window ), $body = $ ( "body" ); var DATA_DISPLAYCONTROLLER = "displayController" , DATA_HASACTIVEHOVER = "hasActiveHover" , DATA_FORCEDOPEN = "forcedOpen" , DATA_HASMOUSEMOVE = "hasMouseMove" , DATA_MOUSEONTOTIP = "mouseOnToPopup" , DATA_ORIGINALTITLE = "originalTitle" , DATA_POWERTIP = "powertip" , DATA_POWERTIPJQ = "powertipjq" , DATA_POWERTIPTARGET = "powertiptarget" , EVENT_NAMESPACE = ".powertip" , RAD2DEG = 180 / Math . PI , MOUSE_EVENTS = [ "click" , "dblclick" , "mousedown" , "mouseup" , "mousemove" , "mouseover" , "mouseout" , "mouseenter" , "mouseleave" , "contextmenu" ]; var session = { tooltips : null , isTipOpen : false , isFixedTipOpen : false , isClosing : false , tipOpenImminent : false , activeHover : null , currentX : 0 , currentY : 0 , previousX : 0 , previousY : 0 , desyncTimeout : null , closeDelayTimeout : null , mouseTrackingActive : false ,
delayInProgress : false , windowWidth : 0 , windowHeight : 0 , scrollTop : 0 , scrollLeft : 0 }; var Collision = { none : 0 , top : 1 , bottom : 2 , left : 4 , right : 8 }; $ . fn . powerTip = function ( opts , arg ){ var targetElements = this , options , tipController ; if ( ! targetElements . length ){ return targetElements } if ( $ . type ( opts ) === "string" && $ . powerTip [ opts ]){ return $ . powerTip [ opts ]. call ( targetElements , targetElements , arg )} options = $ . extend ({}, $ . fn . powerTip . defaults , opts ); tipController = new TooltipController ( options ); initTracking (); targetElements . each ( function elementSetup (){ var $this = $ ( this ), dataPowertip = $this . data ( DATA_POWERTIP ), dataElem = $this . data ( DATA_POWERTIPJQ ), dataTarget = $this . data ( DATA_POWERTIPTARGET ), title = $this . attr ( "title" ); if ( ! dataPowertip &&! dataTarget &&! dataElem && title ){ $this . data ( DATA_POWERTIP , title ); $this . data ( DATA_ORIGINALTITLE , title ); $this . removeAttr ( "title" )} $this . data ( DATA_DISPLAYCONTROLLER , new DisplayController ( $this , options , tipController ))}); if ( ! options . manual ){ $ . each ( options . openEvents , function ( idx , evt ){ if ( $ . inArray ( evt , options . closeEvents ) >- 1 ){
targetElements . on ( evt + EVENT_NAMESPACE , function elementToggle ( event ){ $ . powerTip . toggle ( this , event )})} else { targetElements . on ( evt + EVENT_NAMESPACE , function elementOpen ( event ){ $ . powerTip . show ( this , event )})}}); $ . each ( options . closeEvents , function ( idx , evt ){ if ( $ . inArray ( evt , options . openEvents ) < 0 ){ targetElements . on ( evt + EVENT_NAMESPACE , function elementClose ( event ){ $ . powerTip . hide ( this , ! isMouseEvent ( event ))})}}); targetElements . on ( "keydown" + EVENT_NAMESPACE , function elementKeyDown ( event ){ if ( event . keyCode === 27 ){ $ . powerTip . hide ( this , true )}})} return targetElements }; $ . fn . powerTip . defaults = { fadeInTime : 200 , fadeOutTime : 100 , followMouse : false , popupId : "powerTip" , popupClass : null , intentSensitivity : 7 , intentPollInterval : 100 , closeDelay : 100 , placement : "n" , smartPlacement : false , offset : 10 , mouseOnToPopup : false , manual : false , openEvents : [ "mouseenter" , "focus" ], closeEvents : [ "mouseleave" , "blur" ]}; $ . fn . powerTip . smartPlacementLists = { n : [ "n" , "ne" , "nw" , "s" ], e : [ "e" , "ne" , "se" , "w" , "nw" , "sw" , "n" , "s" , "e" ], s : [ "s" , "se" , "sw" , "n" ], w : [ "w" , "nw" , "sw" , "e" , "ne" , "se" ,
"n" , "s" , "w" ], nw : [ "nw" , "w" , "sw" , "n" , "s" , "se" , "nw" ], ne : [ "ne" , "e" , "se" , "n" , "s" , "sw" , "ne" ], sw : [ "sw" , "w" , "nw" , "s" , "n" , "ne" , "sw" ], se : [ "se" , "e" , "ne" , "s" , "n" , "nw" , "se" ], "nw-alt" : [ "nw-alt" , "n" , "ne-alt" , "sw-alt" , "s" , "se-alt" , "w" , "e" ], "ne-alt" : [ "ne-alt" , "n" , "nw-alt" , "se-alt" , "s" , "sw-alt" , "e" , "w" ], "sw-alt" : [ "sw-alt" , "s" , "se-alt" , "nw-alt" , "n" , "ne-alt" , "w" , "e" ], "se-alt" : [ "se-alt" , "s" , "sw-alt" , "ne-alt" , "n" , "nw-alt" , "e" , "w" ]}; $ . powerTip = { show : function apiShowTip ( element , event ){ if ( isMouseEvent ( event )){ trackMouse ( event ); session . previousX = event . pageX ; session . previousY = event . pageY ; $ ( element ). data ( DATA_DISPLAYCONTROLLER ). show ()} else { $ ( element ). first (). data ( DATA_DISPLAYCONTROLLER ). show ( true , true )} return element }, reposition : function apiResetPosition ( element ){ $ ( element ). first (). data ( DATA_DISPLAYCONTROLLER ). resetPosition (); return element }, hide : function apiCloseTip ( element , immediate ){ var displayController ; immediate = element ? immediate : true ; if ( element ){ displayController = $ ( element ). first (). data ( DATA_DISPLAYCONTROLLER )} else if (
session . activeHover ){ displayController = session . activeHover . data ( DATA_DISPLAYCONTROLLER )} if ( displayController ){ displayController . hide ( immediate )} return element }, toggle : function apiToggle ( element , event ){ if ( session . activeHover && session . activeHover . is ( element )){ $ . powerTip . hide ( element , ! isMouseEvent ( event ))} else { $ . powerTip . show ( element , event )} return element }}; $ . powerTip . showTip = $ . powerTip . show ; $ . powerTip . closeTip = $ . powerTip . hide ; function CSSCoordinates (){ var me = this ; me . top = "auto" ; me . left = "auto" ; me . right = "auto" ; me . bottom = "auto" ; me . set = function ( property , value ){ if ( $ . isNumeric ( value )){ me [ property ] = Math . round ( value )}}} function DisplayController ( element , options , tipController ){ var hoverTimer = null , myCloseDelay = null ; function openTooltip ( immediate , forceOpen ){ cancelTimer (); if ( ! element . data ( DATA_HASACTIVEHOVER )){ if ( ! immediate ){ session . tipOpenImminent = true ; hoverTimer = setTimeout ( function intentDelay (){ hoverTimer = null ; checkForIntent ()}, options . intentPollInterval )} else { if ( forceOpen ){ element . data ( DATA_FORCEDOPEN , true )}
closeAnyDelayed (); tipController . showTip ( element )}} else { cancelClose ()}} function closeTooltip ( disableDelay ){ if ( myCloseDelay ){ myCloseDelay = session . closeDelayTimeout = clearTimeout ( myCloseDelay ); session . delayInProgress = false } cancelTimer (); session . tipOpenImminent = false ; if ( element . data ( DATA_HASACTIVEHOVER )){ element . data ( DATA_FORCEDOPEN , false ); if ( ! disableDelay ){ session . delayInProgress = true ; session . closeDelayTimeout = setTimeout ( function closeDelay (){ session . closeDelayTimeout = null ; tipController . hideTip ( element ); session . delayInProgress = false ; myCloseDelay = null }, options . closeDelay ); myCloseDelay = session . closeDelayTimeout } else { tipController . hideTip ( element )}}} function checkForIntent (){ var xDifference = Math . abs ( session . previousX - session . currentX ), yDifference = Math . abs ( session . previousY - session . currentY ), totalDifference = xDifference + yDifference ; if ( totalDifference < options . intentSensitivity ){ cancelClose (); closeAnyDelayed (); tipController . showTip ( element )} else { session . previousX = session . currentX ; session . previousY = session . currentY ;
openTooltip ()}} function cancelTimer ( stopClose ){ hoverTimer = clearTimeout ( hoverTimer ); if ( session . closeDelayTimeout && myCloseDelay === session . closeDelayTimeout || stopClose ){ cancelClose ()}} function cancelClose (){ session . closeDelayTimeout = clearTimeout ( session . closeDelayTimeout ); session . delayInProgress = false } function closeAnyDelayed (){ if ( session . delayInProgress && session . activeHover &&! session . activeHover . is ( element )){ session . activeHover . data ( DATA_DISPLAYCONTROLLER ). hide ( true )}} function repositionTooltip (){ tipController . resetPosition ( element )} this . show = openTooltip ; this . hide = closeTooltip ; this . cancel = cancelTimer ; this . resetPosition = repositionTooltip } function PlacementCalculator (){ function computePlacementCoords ( element , placement , tipWidth , tipHeight , offset ){ var placementBase = placement . split ( "-" )[ 0 ], coords = new CSSCoordinates , position ; if ( isSvgElement ( element )){ position = getSvgPlacement ( element , placementBase )} else { position = getHtmlPlacement ( element , placementBase )} switch ( placement ){ case "n" : coords . set ( "left" , position . left - tipWidth / 2
); coords . set ( "bottom" , session . windowHeight - position . top + offset ); break ; case "e" : coords . set ( "left" , position . left + offset ); coords . set ( "top" , position . top - tipHeight / 2 ); break ; case "s" : coords . set ( "left" , position . left - tipWidth / 2 ); coords . set ( "top" , position . top + offset ); break ; case "w" : coords . set ( "top" , position . top - tipHeight / 2 ); coords . set ( "right" , session . windowWidth - position . left + offset ); break ; case "nw" : coords . set ( "bottom" , session . windowHeight - position . top + offset ); coords . set ( "right" , session . windowWidth - position . left - 20 ); break ; case "nw-alt" : coords . set ( "left" , position . left ); coords . set ( "bottom" , session . windowHeight - position . top + offset ); break ; case "ne" : coords . set ( "left" , position . left - 20 ); coords . set ( "bottom" , session . windowHeight - position . top + offset ); break ; case "ne-alt" : coords . set ( "bottom" , session . windowHeight - position . top + offset ); coords . set ( "right" , session . windowWidth - position . left ); break ; case "sw" : coords . set ( "top" , position . top + offset ); coords . set ( "right" , session . windowWidth - position . left - 20 ); break ; case "sw-alt" : coords . set ( "left" ,
position . left ); coords . set ( "top" , position . top + offset ); break ; case "se" : coords . set ( "left" , position . left - 20 ); coords . set ( "top" , position . top + offset ); break ; case "se-alt" : coords . set ( "top" , position . top + offset ); coords . set ( "right" , session . windowWidth - position . left ); break } return coords } function getHtmlPlacement ( element , placement ){ var objectOffset = element . offset (), objectWidth = element . outerWidth (), objectHeight = element . outerHeight (), left , top ; switch ( placement ){ case "n" : left = objectOffset . left + objectWidth / 2 ; top = objectOffset . top ; break ; case "e" : left = objectOffset . left + objectWidth ; top = objectOffset . top + objectHeight / 2 ; break ; case "s" : left = objectOffset . left + objectWidth / 2 ; top = objectOffset . top + objectHeight ; break ; case "w" : left = objectOffset . left ; top = objectOffset . top + objectHeight / 2 ; break ; case "nw" : left = objectOffset . left ; top = objectOffset . top ; break ; case "ne" : left = objectOffset . left + objectWidth ; top = objectOffset . top ; break ; case "sw" : left = objectOffset . left ; top = objectOffset . top + objectHeight ; break ; case "se" : left = objectOffset . left + objectWidth ;
top = objectOffset . top + objectHeight ; break } return { top : top , left : left }} function getSvgPlacement ( element , placement ){ var svgElement = element . closest ( "svg" )[ 0 ], domElement = element [ 0 ], point = svgElement . createSVGPoint (), boundingBox = domElement . getBBox (), matrix = domElement . getScreenCTM (), halfWidth = boundingBox . width / 2 , halfHeight = boundingBox . height / 2 , placements = [], placementKeys = [ "nw" , "n" , "ne" , "e" , "se" , "s" , "sw" , "w" ], coords , rotation , steps , x ; function pushPlacement (){ placements . push ( point . matrixTransform ( matrix ))} point . x = boundingBox . x ; point . y = boundingBox . y ; pushPlacement (); point . x += halfWidth ; pushPlacement (); point . x += halfWidth ; pushPlacement (); point . y += halfHeight ; pushPlacement (); point . y += halfHeight ; pushPlacement (); point . x -= halfWidth ; pushPlacement (); point . x -= halfWidth ; pushPlacement (); point . y -= halfHeight ; pushPlacement (); if ( placements [ 0 ]. y !== placements [ 1 ]. y || placements [ 0 ]. x !== placements [ 7 ]. x ){ rotation = Math . atan2 ( matrix . b , matrix . a ) * RAD2DEG ; steps = Math . ceil (( rotation % 360 - 22.5 ) / 45 ); if ( steps < 1 ){ steps += 8 } while ( steps -- ){ placementKeys . push (
placementKeys . shift ())}} for ( x = 0 ; x < placements . length ; x ++ ){ if ( placementKeys [ x ] === placement ){ coords = placements [ x ]; break }} return { top : coords . y + session . scrollTop , left : coords . x + session . scrollLeft }} this . compute = computePlacementCoords } function TooltipController ( options ){ var placementCalculator = new PlacementCalculator , tipElement = $ ( "#" + options . popupId ); if ( tipElement . length === 0 ){ tipElement = $ ( "<div/>" ,{ id : options . popupId }); if ( $body . length === 0 ){ $body = $ ( "body" )} $body . append ( tipElement ); session . tooltips = session . tooltips ? session . tooltips . add ( tipElement ) : tipElement } if ( options . followMouse ){ if ( ! tipElement . data ( DATA_HASMOUSEMOVE )){ $document . on ( "mousemove" + EVENT_NAMESPACE , positionTipOnCursor ); $window . on ( "scroll" + EVENT_NAMESPACE , positionTipOnCursor ); tipElement . data ( DATA_HASMOUSEMOVE , true )}} function beginShowTip ( element ){ element . data ( DATA_HASACTIVEHOVER , true ); tipElement . queue ( function queueTipInit ( next ){ showTip ( element ); next ()})} function showTip ( element ){ var tipContent ; if ( ! element . data ( DATA_HASACTIVEHOVER )){ return } if (
session . isTipOpen ){ if ( ! session . isClosing ){ hideTip ( session . activeHover )} tipElement . delay ( 100 ). queue ( function queueTipAgain ( next ){ showTip ( element ); next ()}); return } element . trigger ( "powerTipPreRender" ); tipContent = getTooltipContent ( element ); if ( tipContent ){ tipElement . empty (). append ( tipContent )} else { return } element . trigger ( "powerTipRender" ); session . activeHover = element ; session . isTipOpen = true ; tipElement . data ( DATA_MOUSEONTOTIP , options . mouseOnToPopup ); tipElement . addClass ( options . popupClass ); if ( ! options . followMouse || element . data ( DATA_FORCEDOPEN )){ positionTipOnElement ( element ); session . isFixedTipOpen = true } else { positionTipOnCursor ()} if ( ! element . data ( DATA_FORCEDOPEN ) &&! options . followMouse ){ $document . on ( "click" + EVENT_NAMESPACE , function documentClick ( event ){ var target = event . target ; if ( target !== element [ 0 ]){ if ( options . mouseOnToPopup ){ if ( target !== tipElement [ 0 ] &&! $ . contains ( tipElement [ 0 ], target )){ $ . powerTip . hide ()}} else { $ . powerTip . hide ()}}})} if ( options . mouseOnToPopup &&! options . manual ){ tipElement . on ( "mouseenter" + EVENT_NAMESPACE ,
function tipMouseEnter (){ if ( session . activeHover ){ session . activeHover . data ( DATA_DISPLAYCONTROLLER ). cancel ()}}); tipElement . on ( "mouseleave" + EVENT_NAMESPACE , function tipMouseLeave (){ if ( session . activeHover ){ session . activeHover . data ( DATA_DISPLAYCONTROLLER ). hide ()}})} tipElement . fadeIn ( options . fadeInTime , function fadeInCallback (){ if ( ! session . desyncTimeout ){ session . desyncTimeout = setInterval ( closeDesyncedTip , 500 )} element . trigger ( "powerTipOpen" )})} function hideTip ( element ){ session . isClosing = true ; session . isTipOpen = false ; session . desyncTimeout = clearInterval ( session . desyncTimeout ); element . data ( DATA_HASACTIVEHOVER , false ); element . data ( DATA_FORCEDOPEN , false ); $document . off ( "click" + EVENT_NAMESPACE ); tipElement . off ( EVENT_NAMESPACE ); tipElement . fadeOut ( options . fadeOutTime , function fadeOutCallback (){ var coords = new CSSCoordinates ; session . activeHover = null ; session . isClosing = false ; session . isFixedTipOpen = false ; tipElement . removeClass (); coords . set ( "top" , session . currentY + options . offset ); coords . set ( "left" , session . currentX + options . offset );
tipElement . css ( coords ); element . trigger ( "powerTipClose" )})} function positionTipOnCursor (){ var tipWidth , tipHeight , coords , collisions , collisionCount ; if ( ! session . isFixedTipOpen && ( session . isTipOpen || session . tipOpenImminent && tipElement . data ( DATA_HASMOUSEMOVE ))){ tipWidth = tipElement . outerWidth (); tipHeight = tipElement . outerHeight (); coords = new CSSCoordinates ; coords . set ( "top" , session . currentY + options . offset ); coords . set ( "left" , session . currentX + options . offset ); collisions = getViewportCollisions ( coords , tipWidth , tipHeight ); if ( collisions !== Collision . none ){ collisionCount = countFlags ( collisions ); if ( collisionCount === 1 ){ if ( collisions === Collision . right ){ coords . set ( "left" , session . scrollLeft + session . windowWidth - tipWidth )} else if ( collisions === Collision . bottom ){ coords . set ( "top" , session . scrollTop + session . windowHeight - tipHeight )}} else { coords . set ( "left" , session . currentX - tipWidth - options . offset ); coords . set ( "top" , session . currentY - tipHeight - options . offset )}} tipElement . css ( coords )}} function positionTipOnElement ( element ){ var priorityList ,
finalPlacement ; if ( options . smartPlacement || options . followMouse && element . data ( DATA_FORCEDOPEN )){ priorityList = $ . fn . powerTip . smartPlacementLists [ options . placement ]; $ . each ( priorityList , function ( idx , pos ){ var collisions = getViewportCollisions ( placeTooltip ( element , pos ), tipElement . outerWidth (), tipElement . outerHeight ()); finalPlacement = pos ; return collisions !== Collision . none })} else { placeTooltip ( element , options . placement ); finalPlacement = options . placement } tipElement . removeClass ( "w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt" ); tipElement . addClass ( finalPlacement )} function placeTooltip ( element , placement ){ var iterationCount = 0 , tipWidth , tipHeight , coords = new CSSCoordinates ; coords . set ( "top" , 0 ); coords . set ( "left" , 0 ); tipElement . css ( coords ); do { tipWidth = tipElement . outerWidth (); tipHeight = tipElement . outerHeight (); coords = placementCalculator . compute ( element , placement , tipWidth , tipHeight , options . offset ); tipElement . css ( coords )} while ( ++ iterationCount <= 5 && ( tipWidth !== tipElement . outerWidth () || tipHeight !== tipElement . outerHeight ()));
return coords } function closeDesyncedTip (){ var isDesynced = false , hasDesyncableCloseEvent = $ . grep ([ "mouseleave" , "mouseout" , "blur" , "focusout" ], function ( eventType ){ return $ . inArray ( eventType , options . closeEvents ) !==- 1 }). length > 0 ; if ( session . isTipOpen &&! session . isClosing &&! session . delayInProgress && hasDesyncableCloseEvent ){ if ( session . activeHover . data ( DATA_HASACTIVEHOVER ) === false || session . activeHover . is ( ":disabled" )){ isDesynced = true } else if ( ! isMouseOver ( session . activeHover ) &&! session . activeHover . is ( ":focus" ) &&! session . activeHover . data ( DATA_FORCEDOPEN )){ if ( tipElement . data ( DATA_MOUSEONTOTIP )){ if ( ! isMouseOver ( tipElement )){ isDesynced = true }} else { isDesynced = true }} if ( isDesynced ){ hideTip ( session . activeHover )}}} this . showTip = beginShowTip ; this . hideTip = hideTip ; this . resetPosition = positionTipOnElement } function isSvgElement ( element ){ return Boolean ( window . SVGElement && element [ 0 ] instanceof SVGElement )} function isMouseEvent ( event ){ return Boolean ( event && $ . inArray ( event . type , MOUSE_EVENTS ) >- 1 && typeof event . pageX === "number" )}
function initTracking (){ if ( ! session . mouseTrackingActive ){ session . mouseTrackingActive = true ; getViewportDimensions (); $ ( getViewportDimensions ); $document . on ( "mousemove" + EVENT_NAMESPACE , trackMouse ); $window . on ( "resize" + EVENT_NAMESPACE , trackResize ); $window . on ( "scroll" + EVENT_NAMESPACE , trackScroll )}} function getViewportDimensions (){ session . scrollLeft = $window . scrollLeft (); session . scrollTop = $window . scrollTop (); session . windowWidth = $window . width (); session . windowHeight = $window . height ()} function trackResize (){ session . windowWidth = $window . width (); session . windowHeight = $window . height ()} function trackScroll (){ var x = $window . scrollLeft (), y = $window . scrollTop (); if ( x !== session . scrollLeft ){ session . currentX += x - session . scrollLeft ; session . scrollLeft = x } if ( y !== session . scrollTop ){ session . currentY += y - session . scrollTop ; session . scrollTop = y }} function trackMouse ( event ){ session . currentX = event . pageX ; session . currentY = event . pageY } function isMouseOver ( element ){ var elementPosition = element . offset (), elementBox = element [ 0 ]. getBoundingClientRect (),
elementWidth = elementBox . right - elementBox . left , elementHeight = elementBox . bottom - elementBox . top ; return session . currentX >= elementPosition . left && session . currentX <= elementPosition . left + elementWidth && session . currentY >= elementPosition . top && session . currentY <= elementPosition . top + elementHeight } function getTooltipContent ( element ){ var tipText = element . data ( DATA_POWERTIP ), tipObject = element . data ( DATA_POWERTIPJQ ), tipTarget = element . data ( DATA_POWERTIPTARGET ), targetElement , content ; if ( tipText ){ if ( $ . isFunction ( tipText )){ tipText = tipText . call ( element [ 0 ])} content = tipText } else if ( tipObject ){ if ( $ . isFunction ( tipObject )){ tipObject = tipObject . call ( element [ 0 ])} if ( tipObject . length > 0 ){ content = tipObject . clone ( true , true )}} else if ( tipTarget ){ targetElement = $ ( "#" + tipTarget ); if ( targetElement . length > 0 ){ content = targetElement . html ()}} return content } function getViewportCollisions ( coords , elementWidth , elementHeight ){ var viewportTop = session . scrollTop , viewportLeft = session . scrollLeft , viewportBottom = viewportTop + session . windowHeight ,
viewportRight = viewportLeft + session . windowWidth , collisions = Collision . none ; if ( coords . top < viewportTop || Math . abs ( coords . bottom - session . windowHeight ) - elementHeight < viewportTop ){ collisions |= Collision . top } if ( coords . top + elementHeight > viewportBottom || Math . abs ( coords . bottom - session . windowHeight ) > viewportBottom ){ collisions |= Collision . bottom } if ( coords . left < viewportLeft || coords . right + elementWidth > viewportRight ){ collisions |= Collision . left } if ( coords . left + elementWidth > viewportRight || coords . right < viewportLeft ){ collisions |= Collision . right } return collisions } function countFlags ( value ){ var count = 0 ; while ( value ){ value &= value - 1 ; count ++ } return count } return $ . powerTip });
/*!
2019-06-22 10:30:09 -07:00
* jQuery UI Touch Punch 0.2.3
*
* Copyright 2011– 2014, Dave Furfero
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* Depends:
* jquery.ui.widget.js
* jquery.ui.mouse.js
2025-01-03 17:56:15 -08:00
*/ ! function ( a ){ function f ( a , b ){ if ( ! ( a . originalEvent . touches . length > 1 )){ a . preventDefault (); var c = a . originalEvent . changedTouches [ 0 ], d = document . createEvent ( "MouseEvents" ); d . initMouseEvent ( b , ! 0 , ! 0 , window , 1 , c . screenX , c . screenY , c . clientX , c . clientY , ! 1 , ! 1 , ! 1 , ! 1 , 0 , null ), a . target . dispatchEvent ( d )}} if ( a . support . touch = "ontouchend" in document , a . support . touch ){ var e , b = a . ui . mouse . prototype , c = b . _mouseInit , d = b . _mouseDestroy ; b . _touchStart = function ( a ){ var b = this ; ! e && b . _mouseCapture ( a . originalEvent . changedTouches [ 0 ]) && ( e =! 0 , b . _touchMoved =! 1 , f ( a , "mouseover" ), f ( a , "mousemove" ), f ( a , "mousedown" ))}, b . _touchMove = function ( a ){ e && ( this . _touchMoved =! 0 , f ( a , "mousemove" ))}, b . _touchEnd = function ( a ){ e && ( f ( a , "mouseup" ), f ( a , "mouseout" ), this . _touchMoved || f ( a , "click" ), e =! 1 )}, b . _mouseInit = function (){ var b = this ; b . element . bind ({ touchstart : a . proxy ( b , "_touchStart" ), touchmove : a . proxy ( b , "_touchMove" ), touchend : a . proxy ( b , "_touchEnd" )}), c . call ( b )}, b . _mouseDestroy = function (){ var b = this ; b . element . unbind ({ touchstart : a . proxy ( b , "_touchStart" ), touchmove : a . proxy ( b ,
"_touchMove" ), touchend : a . proxy ( b , "_touchEnd" )}), d . call ( b )}}}( jQuery );
/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017
2019-06-22 10:30:09 -07:00
* http://www.smartmenus.org/
2025-01-03 17:56:15 -08:00
* Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */ ( function ( t ){ "function" == typeof define && define . amd ? define ([ "jquery" ], t ) : "object" == typeof module && "object" == typeof module . exports ? module . exports = t ( require ( "jquery" )) : t ( jQuery )})( function ( $ ){ function initMouseDetection ( t ){ var e = ".smartmenus_mouse" ; if ( mouseDetectionEnabled || t ) mouseDetectionEnabled && t && ( $ ( document ). off ( e ), mouseDetectionEnabled =! 1 ); else { var i =! 0 , s = null , o = { mousemove : function ( t ){ var e = { x : t . pageX , y : t . pageY , timeStamp : ( new Date ). getTime ()}; if ( s ){ var o = Math . abs ( s . x - e . x ), a = Math . abs ( s . y - e . y ); if (( o > 0 || a > 0 ) && 2 >= o && 2 >= a && 300 >= e . timeStamp - s . timeStamp && ( mouse =! 0 , i )){ var n = $ ( t . target ). closest ( "a" ); n . is ( "a" ) && $ . each ( menuTrees , function (){ return $ . contains ( this . $root [ 0 ], n [ 0 ]) ? ( this . itemEnter ({ currentTarget : n [ 0 ]}), ! 1 ) : void 0 }), i =! 1 }} s = e }}; o [ touchEvents ? "touchstart" : "pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut" ] = function ( t ){ isTouchEvent ( t . originalEvent ) && ( mouse =! 1 )}, $ ( document ). on ( getEventsNS ( o , e )),
mouseDetectionEnabled =! 0 }} function isTouchEvent ( t ){ return ! /^(4|mouse)$/ . test ( t . pointerType )} function getEventsNS ( t , e ){ e || ( e = "" ); var i = {}; for ( var s in t ) i [ s . split ( " " ). join ( e + " " ) + e ] = t [ s ]; return i } var menuTrees = [], mouse =! 1 , touchEvents = "ontouchstart" in window , mouseDetectionEnabled =! 1 , requestAnimationFrame = window . requestAnimationFrame || function ( t ){ return setTimeout ( t , 1e3 / 60 )}, cancelAnimationFrame = window . cancelAnimationFrame || function ( t ){ clearTimeout ( t )}, canAnimate =!! $ . fn . animate ; return $ . SmartMenus = function ( t , e ){ this . $root = $ ( t ), this . opts = e , this . rootId = "" , this . accessIdPrefix = "" , this . $subArrow = null , this . activatedItems = [], this . visibleSubMenus = [], this . showTimeout = 0 , this . hideTimeout = 0 , this . scrollTimeout = 0 , this . clickActivated =! 1 , this . focusActivated =! 1 , this . zIndexInc = 0 , this . idInc = 0 , this . $firstLink = null , this . $firstSub = null , this . disabled =! 1 , this . $disableOverlay = null , this . $touchScrollingSub = null , this . cssTransforms3d = "perspective" in t . style || "webkitPerspective" in t . style , this . wasCollapsible =! 1 , this . init ()}, $ . extend (
$ . SmartMenus ,{ hideAll : function (){ $ . each ( menuTrees , function (){ this . menuHideAll ()})}, destroy : function (){ for (; menuTrees . length ;) menuTrees [ 0 ]. destroy (); initMouseDetection ( ! 0 )}, prototype : { init : function ( t ){ var e = this ; if ( ! t ){ menuTrees . push ( this ), this . rootId = (( new Date ). getTime () + Math . random () + "" ). replace ( /\D/g , "" ), this . accessIdPrefix = "sm-" + this . rootId + "-" , this . $root . hasClass ( "sm-rtl" ) && ( this . opts . rightToLeftSubMenus =! 0 ); var i = ".smartmenus" ; this . $root . data ( "smartmenus" , this ). attr ( "data-smartmenus-id" , this . rootId ). dataSM ( "level" , 1 ). on ( getEventsNS ({ "mouseover focusin" : $ . proxy ( this . rootOver , this ), "mouseout focusout" : $ . proxy ( this . rootOut , this ), keydown : $ . proxy ( this . rootKeyDown , this )}, i )). on ( getEventsNS ({ mouseenter : $ . proxy ( this . itemEnter , this ), mouseleave : $ . proxy ( this . itemLeave , this ), mousedown : $ . proxy ( this . itemDown , this ), focus : $ . proxy ( this . itemFocus , this ), blur : $ . proxy ( this . itemBlur , this ), click : $ . proxy ( this . itemClick , this )}, i ), "a" ), i += this . rootId , this . opts . hideOnClick && $ ( document ). on ( getEventsNS ({ touchstart : $ . proxy (
this . docTouchStart , this ), touchmove : $ . proxy ( this . docTouchMove , this ), touchend : $ . proxy ( this . docTouchEnd , this ), click : $ . proxy ( this . docClick , this )}, i )), $ ( window ). on ( getEventsNS ({ "resize orientationchange" : $ . proxy ( this . winResize , this )}, i )), this . opts . subIndicators && ( this . $subArrow = $ ( "<span/>" ). addClass ( "sub-arrow" ), this . opts . subIndicatorsText && this . $subArrow . html ( this . opts . subIndicatorsText )), initMouseDetection ()} if ( this . $firstSub = this . $root . find ( "ul" ). each ( function (){ e . menuInit ( $ ( this ))}). eq ( 0 ), this . $firstLink = this . $root . find ( "a" ). eq ( 0 ), this . opts . markCurrentItem ){ var s = /(index|default)\.[^#\?\/]*/i , o = /#.*/ , a = window . location . href . replace ( s , "" ), n = a . replace ( o , "" ); this . $root . find ( "a" ). each ( function (){ var t = this . href . replace ( s , "" ), i = $ ( this );( t == a || t == n ) && ( i . addClass ( "current" ), e . opts . markCurrentTree && i . parentsUntil ( "[data-smartmenus-id]" , "ul" ). each ( function (){ $ ( this ). dataSM ( "parent-a" ). addClass ( "current" )}))})} this . wasCollapsible = this . isCollapsible ()}, destroy : function ( t ){ if ( ! t ){ var e = ".smartmenus" ; this . $root . removeData (
"smartmenus" ). removeAttr ( "data-smartmenus-id" ). removeDataSM ( "level" ). off ( e ), e += this . rootId , $ ( document ). off ( e ), $ ( window ). off ( e ), this . opts . subIndicators && ( this . $subArrow = null )} this . menuHideAll (); var i = this ; this . $root . find ( "ul" ). each ( function (){ var t = $ ( this ); t . dataSM ( "scroll-arrows" ) && t . dataSM ( "scroll-arrows" ). remove (), t . dataSM ( "shown-before" ) && (( i . opts . subMenusMinWidth || i . opts . subMenusMaxWidth ) && t . css ({ width : "" , minWidth : "" , maxWidth : "" }). removeClass ( "sm-nowrap" ), t . dataSM ( "scroll-arrows" ) && t . dataSM ( "scroll-arrows" ). remove (), t . css ({ zIndex : "" , top : "" , left : "" , marginLeft : "" , marginTop : "" , display : "" })), 0 == ( t . attr ( "id" ) || "" ). indexOf ( i . accessIdPrefix ) && t . removeAttr ( "id" )}). removeDataSM ( "in-mega" ). removeDataSM ( "shown-before" ). removeDataSM ( "scroll-arrows" ). removeDataSM ( "parent-a" ). removeDataSM ( "level" ). removeDataSM ( "beforefirstshowfired" ). removeAttr ( "role" ). removeAttr ( "aria-hidden" ). removeAttr ( "aria-labelledby" ). removeAttr ( "aria-expanded" ), this . $root . find ( "a.has-submenu" ). each ( function (){ var t = $ ( this ); 0 == t . attr ( "id"
). indexOf ( i . accessIdPrefix ) && t . removeAttr ( "id" )}). removeClass ( "has-submenu" ). removeDataSM ( "sub" ). removeAttr ( "aria-haspopup" ). removeAttr ( "aria-controls" ). removeAttr ( "aria-expanded" ). closest ( "li" ). removeDataSM ( "sub" ), this . opts . subIndicators && this . $root . find ( "span.sub-arrow" ). remove (), this . opts . markCurrentItem && this . $root . find ( "a.current" ). removeClass ( "current" ), t || ( this . $root = null , this . $firstLink = null , this . $firstSub = null , this . $disableOverlay && ( this . $disableOverlay . remove (), this . $disableOverlay = null ), menuTrees . splice ( $ . inArray ( this , menuTrees ), 1 ))}, disable : function ( t ){ if ( ! this . disabled ){ if ( this . menuHideAll (), ! t &&! this . opts . isPopup && this . $root . is ( ":visible" )){ var e = this . $root . offset (); this . $disableOverlay = $ ( '<div class="sm-jquery-disable-overlay"/>' ). css ({ position : "absolute" , top : e . top , left : e . left , width : this . $root . outerWidth (), height : this . $root . outerHeight (), zIndex : this . getStartZIndex ( ! 0 ), opacity : 0 }). appendTo ( document . body )} this . disabled =! 0 }}, docClick : function ( t ){ return this . $touchScrollingSub ? (
this . $touchScrollingSub = null , void 0 ) : (( this . visibleSubMenus . length &&! $ . contains ( this . $root [ 0 ], t . target ) || $ ( t . target ). closest ( "a" ). length ) && this . menuHideAll (), void 0 )}, docTouchEnd : function (){ if ( this . lastTouch ){ if ( ! ( ! this . visibleSubMenus . length || void 0 !== this . lastTouch . x2 && this . lastTouch . x1 != this . lastTouch . x2 || void 0 !== this . lastTouch . y2 && this . lastTouch . y1 != this . lastTouch . y2 || this . lastTouch . target && $ . contains ( this . $root [ 0 ], this . lastTouch . target ))){ this . hideTimeout && ( clearTimeout ( this . hideTimeout ), this . hideTimeout = 0 ); var t = this ; this . hideTimeout = setTimeout ( function (){ t . menuHideAll ()}, 350 )} this . lastTouch = null }}, docTouchMove : function ( t ){ if ( this . lastTouch ){ var e = t . originalEvent . touches [ 0 ]; this . lastTouch . x2 = e . pageX , this . lastTouch . y2 = e . pageY }}, docTouchStart : function ( t ){ var e = t . originalEvent . touches [ 0 ]; this . lastTouch = { x1 : e . pageX , y1 : e . pageY , target : e . target }}, enable : function (){ this . disabled && ( this . $disableOverlay && ( this . $disableOverlay . remove (), this . $disableOverlay = null ), this . disabled =! 1 )}, getClosestMenu : function ( t ){ for (
var e = $ ( t ). closest ( "ul" ); e . dataSM ( "in-mega" );) e = e . parent (). closest ( "ul" ); return e [ 0 ] || null }, getHeight : function ( t ){ return this . getOffset ( t , ! 0 )}, getOffset : function ( t , e ){ var i ; "none" == t . css ( "display" ) && ( i = { position : t [ 0 ]. style . position , visibility : t [ 0 ]. style . visibility }, t . css ({ position : "absolute" , visibility : "hidden" }). show ()); var s = t [ 0 ]. getBoundingClientRect && t [ 0 ]. getBoundingClientRect (), o = s && ( e ? s . height || s . bottom - s . top : s . width || s . right - s . left ); return o || 0 === o || ( o = e ? t [ 0 ]. offsetHeight : t [ 0 ]. offsetWidth ), i && t . hide (). css ( i ), o }, getStartZIndex : function ( t ){ var e = parseInt ( this [ t ? "$root" : "$firstSub" ]. css ( "z-index" )); return ! t && isNaN ( e ) && ( e = parseInt ( this . $root . css ( "z-index" ))), isNaN ( e ) ? 1 : e }, getTouchPoint : function ( t ){ return t . touches && t . touches [ 0 ] || t . changedTouches && t . changedTouches [ 0 ] || t }, getViewport : function ( t ){ var e = t ? "Height" : "Width" , i = document . documentElement [ "client" + e ], s = window [ "inner" + e ]; return s && ( i = Math . min ( i , s )), i }, getViewportHeight : function (){ return this . getViewport ( ! 0 )}, getViewportWidth : function (){
return this . getViewport ()}, getWidth : function ( t ){ return this . getOffset ( t )}, handleEvents : function (){ return ! this . disabled && this . isCSSOn ()}, handleItemEvents : function ( t ){ return this . handleEvents () &&! this . isLinkInMegaMenu ( t )}, isCollapsible : function (){ return "static" == this . $firstSub . css ( "position" )}, isCSSOn : function (){ return "inline" != this . $firstLink . css ( "display" )}, isFixed : function (){ var t = "fixed" == this . $root . css ( "position" ); return t || this . $root . parentsUntil ( "body" ). each ( function (){ return "fixed" == $ ( this ). css ( "position" ) ? ( t =! 0 , ! 1 ) : void 0 }), t }, isLinkInMegaMenu : function ( t ){ return $ ( this . getClosestMenu ( t [ 0 ])). hasClass ( "mega-menu" )}, isTouchMode : function (){ return ! mouse || this . opts . noMouseOver || this . isCollapsible ()}, itemActivate : function ( t , e ){ var i = t . closest ( "ul" ), s = i . dataSM ( "level" ); if ( s > 1 && ( ! this . activatedItems [ s - 2 ] || this . activatedItems [ s - 2 ][ 0 ] != i . dataSM ( "parent-a" )[ 0 ])){ var o = this ; $ ( i . parentsUntil ( "[data-smartmenus-id]" , "ul" ). get (). reverse ()). add ( i ). each ( function (){ o . itemActivate ( $ ( this ). dataSM ( "parent-a" ))})} if ((
! this . isCollapsible () || e ) && this . menuHideSubMenus ( this . activatedItems [ s - 1 ] && this . activatedItems [ s - 1 ][ 0 ] == t [ 0 ] ? s : s - 1 ), this . activatedItems [ s - 1 ] = t , this . $root . triggerHandler ( "activate.smapi" , t [ 0 ]) !==! 1 ){ var a = t . dataSM ( "sub" ); a && ( this . isTouchMode () ||! this . opts . showOnClick || this . clickActivated ) && this . menuShow ( a )}}, itemBlur : function ( t ){ var e = $ ( t . currentTarget ); this . handleItemEvents ( e ) && this . $root . triggerHandler ( "blur.smapi" , e [ 0 ])}, itemClick : function ( t ){ var e = $ ( t . currentTarget ); if ( this . handleItemEvents ( e )){ if ( this . $touchScrollingSub && this . $touchScrollingSub [ 0 ] == e . closest ( "ul" )[ 0 ]) return this . $touchScrollingSub = null , t . stopPropagation (), ! 1 ; if ( this . $root . triggerHandler ( "click.smapi" , e [ 0 ]) ===! 1 ) return ! 1 ; var i = $ ( t . target ). is ( ".sub-arrow" ), s = e . dataSM ( "sub" ), o = s ? 2 == s . dataSM ( "level" ) :! 1 , a = this . isCollapsible (), n = /toggle$/ . test ( this . opts . collapsibleBehavior ), r = /link$/ . test ( this . opts . collapsibleBehavior ), h = /^accordion/ . test ( this . opts . collapsibleBehavior ); if ( s &&! s . is ( ":visible" )){ if (( ! r ||! a || i ) && ( this . opts . showOnClick && o && (
this . clickActivated =! 0 ), this . itemActivate ( e , h ), s . is ( ":visible" ))) return this . focusActivated =! 0 , ! 1 } else if ( a && ( n || i )) return this . itemActivate ( e , h ), this . menuHide ( s ), n && ( this . focusActivated =! 1 ), ! 1 ; return this . opts . showOnClick && o || e . hasClass ( "disabled" ) || this . $root . triggerHandler ( "select.smapi" , e [ 0 ]) ===! 1 ?! 1 : void 0 }}, itemDown : function ( t ){ var e = $ ( t . currentTarget ); this . handleItemEvents ( e ) && e . dataSM ( "mousedown" , ! 0 )}, itemEnter : function ( t ){ var e = $ ( t . currentTarget ); if ( this . handleItemEvents ( e )){ if ( ! this . isTouchMode ()){ this . showTimeout && ( clearTimeout ( this . showTimeout ), this . showTimeout = 0 ); var i = this ; this . showTimeout = setTimeout ( function (){ i . itemActivate ( e )}, this . opts . showOnClick && 1 == e . closest ( "ul" ). dataSM ( "level" ) ? 1 : this . opts . showTimeout )} this . $root . triggerHandler ( "mouseenter.smapi" , e [ 0 ])}}, itemFocus : function ( t ){ var e = $ ( t . currentTarget ); this . handleItemEvents ( e ) && ( ! this . focusActivated || this . isTouchMode () && e . dataSM ( "mousedown" ) || this . activatedItems . length && this . activatedItems [ this . activatedItems . length - 1 ][ 0 ] == e [ 0
] || this . itemActivate ( e , ! 0 ), this . $root . triggerHandler ( "focus.smapi" , e [ 0 ]))}, itemLeave : function ( t ){ var e = $ ( t . currentTarget ); this . handleItemEvents ( e ) && ( this . isTouchMode () || ( e [ 0 ]. blur (), this . showTimeout && ( clearTimeout ( this . showTimeout ), this . showTimeout = 0 )), e . removeDataSM ( "mousedown" ), this . $root . triggerHandler ( "mouseleave.smapi" , e [ 0 ]))}, menuHide : function ( t ){ if ( this . $root . triggerHandler ( "beforehide.smapi" , t [ 0 ]) !==! 1 && ( canAnimate && t . stop ( ! 0 , ! 0 ), "none" != t . css ( "display" ))){ var e = function (){ t . css ( "z-index" , "" )}; this . isCollapsible () ? canAnimate && this . opts . collapsibleHideFunction ? this . opts . collapsibleHideFunction . call ( this , t , e ) : t . hide ( this . opts . collapsibleHideDuration , e ) : canAnimate && this . opts . hideFunction ? this . opts . hideFunction . call ( this , t , e ) : t . hide ( this . opts . hideDuration , e ), t . dataSM ( "scroll" ) && ( this . menuScrollStop ( t ), t . css ({ "touch-action" : "" , "-ms-touch-action" : "" , "-webkit-transform" : "" , transform : "" }). off ( ".smartmenus_scroll" ). removeDataSM ( "scroll" ). dataSM ( "scroll-arrows" ). hide ()), t . dataSM ( "parent-a" ). removeClass (
"highlighted" ). attr ( "aria-expanded" , "false" ), t . attr ({ "aria-expanded" : "false" , "aria-hidden" : "true" }); var i = t . dataSM ( "level" ); this . activatedItems . splice ( i - 1 , 1 ), this . visibleSubMenus . splice ( $ . inArray ( t , this . visibleSubMenus ), 1 ), this . $root . triggerHandler ( "hide.smapi" , t [ 0 ])}}, menuHideAll : function (){ this . showTimeout && ( clearTimeout ( this . showTimeout ), this . showTimeout = 0 ); for ( var t = this . opts . isPopup ? 1 : 0 , e = this . visibleSubMenus . length - 1 ; e >= t ; e -- ) this . menuHide ( this . visibleSubMenus [ e ]); this . opts . isPopup && ( canAnimate && this . $root . stop ( ! 0 , ! 0 ), this . $root . is ( ":visible" ) && ( canAnimate && this . opts . hideFunction ? this . opts . hideFunction . call ( this , this . $root ) : this . $root . hide ( this . opts . hideDuration ))), this . activatedItems = [], this . visibleSubMenus = [], this . clickActivated =! 1 , this . focusActivated =! 1 , this . zIndexInc = 0 , this . $root . triggerHandler ( "hideAll.smapi" )}, menuHideSubMenus : function ( t ){ for ( var e = this . activatedItems . length - 1 ; e >= t ; e -- ){ var i = this . activatedItems [ e ]. dataSM ( "sub" ); i && this . menuHide ( i )}}, menuInit : function ( t ){ if ( ! t . dataSM ( "in-mega" )){
t . hasClass ( "mega-menu" ) && t . find ( "ul" ). dataSM ( "in-mega" , ! 0 ); for ( var e = 2 , i = t [ 0 ];( i = i . parentNode . parentNode ) != this . $root [ 0 ];) e ++ ; var s = t . prevAll ( "a" ). eq ( - 1 ); s . length || ( s = t . prevAll (). find ( "a" ). eq ( - 1 )), s . addClass ( "has-submenu" ). dataSM ( "sub" , t ), t . dataSM ( "parent-a" , s ). dataSM ( "level" , e ). parent (). dataSM ( "sub" , t ); var o = s . attr ( "id" ) || this . accessIdPrefix + ++ this . idInc , a = t . attr ( "id" ) || this . accessIdPrefix + ++ this . idInc ; s . attr ({ id : o , "aria-haspopup" : "true" , "aria-controls" : a , "aria-expanded" : "false" }), t . attr ({ id : a , role : "group" , "aria-hidden" : "true" , "aria-labelledby" : o , "aria-expanded" : "false" }), this . opts . subIndicators && s [ this . opts . subIndicatorsPos ]( this . $subArrow . clone ())}}, menuPosition : function ( t ){ var e , i , s = t . dataSM ( "parent-a" ), o = s . closest ( "li" ), a = o . parent (), n = t . dataSM ( "level" ), r = this . getWidth ( t ), h = this . getHeight ( t ), u = s . offset (), l = u . left , c = u . top , d = this . getWidth ( s ), m = this . getHeight ( s ), p = $ ( window ), f = p . scrollLeft (), v = p . scrollTop (), b = this . getViewportWidth (), S = this . getViewportHeight (), g = a . parent (). is ( "[data-sm-horizontal-sub]"
) || 2 == n &&! a . hasClass ( "sm-vertical" ), M = this . opts . rightToLeftSubMenus &&! o . is ( "[data-sm-reverse]" ) ||! this . opts . rightToLeftSubMenus && o . is ( "[data-sm-reverse]" ), w = 2 == n ? this . opts . mainMenuSubOffsetX : this . opts . subMenusSubOffsetX , T = 2 == n ? this . opts . mainMenuSubOffsetY : this . opts . subMenusSubOffsetY ; if ( g ? ( e = M ? d - r - w : w , i = this . opts . bottomToTopSubMenus ?- h - T : m + T ) : ( e = M ? w - r : d - w , i = this . opts . bottomToTopSubMenus ? m - T - h : T ), this . opts . keepInViewport ){ var y = l + e , I = c + i ; if ( M && f > y ? e = g ? f - y + e : d - w :! M && y + r > f + b && ( e = g ? f + b - r - y + e : w - r ), g || ( S > h && I + h > v + S ? i += v + S - h - I : ( h >= S || v > I ) && ( i += v - I )), g && ( I + h > v + S + . 49 || v > I ) ||! g && h > S + . 49 ){ var x = this ; t . dataSM ( "scroll-arrows" ) || t . dataSM ( "scroll-arrows" , $ ([ $ ( '<span class="scroll-up"><span class="scroll-up-arrow"></span></span>' )[ 0 ], $ ( '<span class="scroll-down"><span class="scroll-down-arrow"></span></span>' )[ 0 ]]). on ({ mouseenter : function (){ t . dataSM ( "scroll" ). up = $ ( this ). hasClass ( "scroll-up" ), x . menuScroll ( t )}, mouseleave : function ( e ){ x . menuScrollStop ( t ), x . menuScrollOut ( t , e )}, "mousewheel DOMMouseScroll" : function ( t ){
t . preventDefault ()}}). insertAfter ( t )); var A = ".smartmenus_scroll" ; if ( t . dataSM ( "scroll" ,{ y : this . cssTransforms3d ? 0 : i - m , step : 1 , itemH : m , subH : h , arrowDownH : this . getHeight ( t . dataSM ( "scroll-arrows" ). eq ( 1 ))}). on ( getEventsNS ({ mouseover : function ( e ){ x . menuScrollOver ( t , e )}, mouseout : function ( e ){ x . menuScrollOut ( t , e )}, "mousewheel DOMMouseScroll" : function ( e ){ x . menuScrollMousewheel ( t , e )}}, A )). dataSM ( "scroll-arrows" ). css ({ top : "auto" , left : "0" , marginLeft : e + ( parseInt ( t . css ( "border-left-width" )) || 0 ), width : r - ( parseInt ( t . css ( "border-left-width" )) || 0 ) - ( parseInt ( t . css ( "border-right-width" )) || 0 ), zIndex : t . css ( "z-index" )}). eq ( g && this . opts . bottomToTopSubMenus ? 0 : 1 ). show (), this . isFixed ()){ var C = {}; C [ touchEvents ? "touchstart touchmove touchend" : "pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp" ] = function ( e ){ x . menuScrollTouch ( t , e )}, t . css ({ "touch-action" : "none" , "-ms-touch-action" : "none" }). on ( getEventsNS ( C , A ))}}} t . css ({ top : "auto" , left : "0" , marginLeft : e , marginTop : i - m })}, menuScroll : function ( t , e , i ){ var s , o = t . dataSM ( "scroll" ),
a = t . dataSM ( "scroll-arrows" ), n = o . up ? o . upEnd : o . downEnd ; if ( ! e && o . momentum ){ if ( o . momentum *= . 92 , s = o . momentum ,. 5 > s ) return this . menuScrollStop ( t ), void 0 } else s = i || ( e ||! this . opts . scrollAccelerate ? this . opts . scrollStep : Math . floor ( o . step )); var r = t . dataSM ( "level" ); if ( this . activatedItems [ r - 1 ] && this . activatedItems [ r - 1 ]. dataSM ( "sub" ) && this . activatedItems [ r - 1 ]. dataSM ( "sub" ). is ( ":visible" ) && this . menuHideSubMenus ( r - 1 ), o . y = o . up && o . y >= n ||! o . up && n >= o . y ? o . y : Math . abs ( n - o . y ) > s ? o . y + ( o . up ? s :- s ) : n , t . css ( this . cssTransforms3d ? { "-webkit-transform" : "translate3d(0, " + o . y + "px, 0)" , transform : "translate3d(0, " + o . y + "px, 0)" } : { marginTop : o . y }), mouse && ( o . up && o . y > o . downEnd ||! o . up && o . y < o . upEnd ) && a . eq ( o . up ? 1 : 0 ). show (), o . y == n ) mouse && a . eq ( o . up ? 0 : 1 ). hide (), this . menuScrollStop ( t ); else if ( ! e ){ this . opts . scrollAccelerate && o . step < this . opts . scrollStep && ( o . step += . 2 ); var h = this ; this . scrollTimeout = requestAnimationFrame ( function (){ h . menuScroll ( t )})}}, menuScrollMousewheel : function ( t , e ){ if ( this . getClosestMenu ( e . target ) == t [ 0 ]){ e = e . originalEvent ; var i = (
e . wheelDelta ||- e . detail ) > 0 ; t . dataSM ( "scroll-arrows" ). eq ( i ? 0 : 1 ). is ( ":visible" ) && ( t . dataSM ( "scroll" ). up = i , this . menuScroll ( t , ! 0 ))} e . preventDefault ()}, menuScrollOut : function ( t , e ){ mouse && ( /^scroll-(up|down)/ . test (( e . relatedTarget || "" ). className ) || ( t [ 0 ] == e . relatedTarget || $ . contains ( t [ 0 ], e . relatedTarget )) && this . getClosestMenu ( e . relatedTarget ) == t [ 0 ] || t . dataSM ( "scroll-arrows" ). css ( "visibility" , "hidden" ))}, menuScrollOver : function ( t , e ){ if ( mouse &&! /^scroll-(up|down)/ . test ( e . target . className ) && this . getClosestMenu ( e . target ) == t [ 0 ]){ this . menuScrollRefreshData ( t ); var i = t . dataSM ( "scroll" ), s = $ ( window ). scrollTop () - t . dataSM ( "parent-a" ). offset (). top - i . itemH ; t . dataSM ( "scroll-arrows" ). eq ( 0 ). css ( "margin-top" , s ). end (). eq ( 1 ). css ( "margin-top" , s + this . getViewportHeight () - i . arrowDownH ). end (). css ( "visibility" , "visible" )}}, menuScrollRefreshData : function ( t ){ var e = t . dataSM ( "scroll" ), i = $ ( window ). scrollTop () - t . dataSM ( "parent-a" ). offset (). top - e . itemH ; this . cssTransforms3d && ( i =- ( parseFloat ( t . css ( "margin-top" )) - i )), $ . extend ( e ,{ upEnd : i ,
downEnd : i + this . getViewportHeight () - e . subH })}, menuScrollStop : function ( t ){ return this . scrollTimeout ? ( cancelAnimationFrame ( this . scrollTimeout ), this . scrollTimeout = 0 , t . dataSM ( "scroll" ). step = 1 , ! 0 ) : void 0 }, menuScrollTouch : function ( t , e ){ if ( e = e . originalEvent , isTouchEvent ( e )){ var i = this . getTouchPoint ( e ); if ( this . getClosestMenu ( i . target ) == t [ 0 ]){ var s = t . dataSM ( "scroll" ); if ( /(start|down)$/i . test ( e . type )) this . menuScrollStop ( t ) ? ( e . preventDefault (), this . $touchScrollingSub = t ) : this . $touchScrollingSub = null , this . menuScrollRefreshData ( t ), $ . extend ( s ,{ touchStartY : i . pageY , touchStartTime : e . timeStamp }); else if ( /move$/i . test ( e . type )){ var o = void 0 !== s . touchY ? s . touchY : s . touchStartY ; if ( void 0 !== o && o != i . pageY ){ this . $touchScrollingSub = t ; var a = i . pageY > o ; void 0 !== s . up && s . up != a && $ . extend ( s ,{ touchStartY : i . pageY , touchStartTime : e . timeStamp }), $ . extend ( s ,{ up : a , touchY : i . pageY }), this . menuScroll ( t , ! 0 , Math . abs ( i . pageY - o ))} e . preventDefault ()} else void 0 !== s . touchY && (( s . momentum = 15 * Math . pow ( Math . abs ( i . pageY - s . touchStartY ) / ( e . timeStamp - s . touchStartTime ), 2 )
) && ( this . menuScrollStop ( t ), this . menuScroll ( t ), e . preventDefault ()), delete s . touchY )}}}, menuShow : function ( t ){ if (( t . dataSM ( "beforefirstshowfired" ) || ( t . dataSM ( "beforefirstshowfired" , ! 0 ), this . $root . triggerHandler ( "beforefirstshow.smapi" , t [ 0 ]) !==! 1 )) && this . $root . triggerHandler ( "beforeshow.smapi" , t [ 0 ]) !==! 1 && ( t . dataSM ( "shown-before" , ! 0 ), canAnimate && t . stop ( ! 0 , ! 0 ), ! t . is ( ":visible" ))){ var e = t . dataSM ( "parent-a" ), i = this . isCollapsible (); if (( this . opts . keepHighlighted || i ) && e . addClass ( "highlighted" ), i ) t . removeClass ( "sm-nowrap" ). css ({ zIndex : "" , width : "auto" , minWidth : "" , maxWidth : "" , top : "" , left : "" , marginLeft : "" , marginTop : "" }); else { if ( t . css ( "z-index" , this . zIndexInc = ( this . zIndexInc || this . getStartZIndex ()) + 1 ),( this . opts . subMenusMinWidth || this . opts . subMenusMaxWidth ) && ( t . css ({ width : "auto" , minWidth : "" , maxWidth : "" }). addClass ( "sm-nowrap" ), this . opts . subMenusMinWidth && t . css ( "min-width" , this . opts . subMenusMinWidth ), this . opts . subMenusMaxWidth )){ var s = this . getWidth ( t ); t . css ( "max-width" , this . opts . subMenusMaxWidth ), s > this . getWidth ( t
) && t . removeClass ( "sm-nowrap" ). css ( "width" , this . opts . subMenusMaxWidth )} this . menuPosition ( t )} var o = function (){ t . css ( "overflow" , "" )}; i ? canAnimate && this . opts . collapsibleShowFunction ? this . opts . collapsibleShowFunction . call ( this , t , o ) : t . show ( this . opts . collapsibleShowDuration , o ) : canAnimate && this . opts . showFunction ? this . opts . showFunction . call ( this , t , o ) : t . show ( this . opts . showDuration , o ), e . attr ( "aria-expanded" , "true" ), t . attr ({ "aria-expanded" : "true" , "aria-hidden" : "false" }), this . visibleSubMenus . push ( t ), this . $root . triggerHandler ( "show.smapi" , t [ 0 ])}}, popupHide : function ( t ){ this . hideTimeout && ( clearTimeout ( this . hideTimeout ), this . hideTimeout = 0 ); var e = this ; this . hideTimeout = setTimeout ( function (){ e . menuHideAll ()}, t ? 1 : this . opts . hideTimeout )}, popupShow : function ( t , e ){ if ( ! this . opts . isPopup ) return alert ( 'SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.' ), void 0 ; if ( this . hideTimeout && ( clearTimeout ( this . hideTimeout ), this . hideTimeout = 0 ), this . $root . dataSM ( "shown-before" , ! 0 ),
canAnimate && this . $root . stop ( ! 0 , ! 0 ), ! this . $root . is ( ":visible" )){ this . $root . css ({ left : t , top : e }); var i = this , s = function (){ i . $root . css ( "overflow" , "" )}; canAnimate && this . opts . showFunction ? this . opts . showFunction . call ( this , this . $root , s ) : this . $root . show ( this . opts . showDuration , s ), this . visibleSubMenus [ 0 ] = this . $root }}, refresh : function (){ this . destroy ( ! 0 ), this . init ( ! 0 )}, rootKeyDown : function ( t ){ if ( this . handleEvents ()) switch ( t . keyCode ){ case 27 : var e = this . activatedItems [ 0 ]; if ( e ){ this . menuHideAll (), e [ 0 ]. focus (); var i = e . dataSM ( "sub" ); i && this . menuHide ( i )} break ; case 32 : var s = $ ( t . target ); if ( s . is ( "a" ) && this . handleItemEvents ( s )){ var i = s . dataSM ( "sub" ); i &&! i . is ( ":visible" ) && ( this . itemClick ({ currentTarget : t . target }), t . preventDefault ())}}}, rootOut : function ( t ){ if ( this . handleEvents () &&! this . isTouchMode () && t . target != this . $root [ 0 ] && ( this . hideTimeout && ( clearTimeout ( this . hideTimeout ), this . hideTimeout = 0 ), ! this . opts . showOnClick ||! this . opts . hideOnClick )){ var e = this ; this . hideTimeout = setTimeout ( function (){ e . menuHideAll ()}, this . opts . hideTimeout )}},
rootOver : function ( t ){ this . handleEvents () &&! this . isTouchMode () && t . target != this . $root [ 0 ] && this . hideTimeout && ( clearTimeout ( this . hideTimeout ), this . hideTimeout = 0 )}, winResize : function ( t ){ if ( this . handleEvents ()){ if ( ! ( "onorientationchange" in window ) || "orientationchange" == t . type ){ var e = this . isCollapsible (); this . wasCollapsible && e || ( this . activatedItems . length && this . activatedItems [ this . activatedItems . length - 1 ][ 0 ]. blur (), this . menuHideAll ()), this . wasCollapsible = e }} else if ( this . $disableOverlay ){ var i = this . $root . offset (); this . $disableOverlay . css ({ top : i . top , left : i . left , width : this . $root . outerWidth (), height : this . $root . outerHeight ()})}}}}), $ . fn . dataSM = function ( t , e ){ return e ? this . data ( t + "_smartmenus" , e ) : this . data ( t + "_smartmenus" )}, $ . fn . removeDataSM = function ( t ){ return this . removeData ( t + "_smartmenus" )}, $ . fn . smartmenus = function ( options ){ if ( "string" == typeof options ){ var args = arguments , method = options ; return Array . prototype . shift . call ( args ), this . each ( function (){ var t = $ ( this ). data ( "smartmenus" ); t && t [ method ] && t [ method ]. apply ( t , args )})}
return this . each ( function (){ var dataOpts = $ ( this ). data ( "sm-options" ) || null ; if ( dataOpts ) try { dataOpts = eval ( "(" + dataOpts + ")" )} catch ( e ){ dataOpts = null , alert ( 'ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.' )} new $ . SmartMenus ( this , $ . extend ({}, $ . fn . smartmenus . defaults , options , dataOpts ))})}, $ . fn . smartmenus . defaults = { isPopup :! 1 , mainMenuSubOffsetX : 0 , mainMenuSubOffsetY : 0 , subMenusSubOffsetX : 0 , subMenusSubOffsetY : 0 , subMenusMinWidth : "10em" , subMenusMaxWidth : "20em" , subIndicators :! 0 , subIndicatorsPos : "append" , subIndicatorsText : "" , scrollStep : 30 , scrollAccelerate :! 0 , showTimeout : 250 , hideTimeout : 500 , showDuration : 0 , showFunction : null , hideDuration : 0 , hideFunction : function ( t , e ){ t . fadeOut ( 200 , e )}, collapsibleShowDuration : 0 , collapsibleShowFunction : function ( t , e ){ t . slideDown ( 200 , e )}, collapsibleHideDuration : 0 , collapsibleHideFunction : function ( t , e ){ t . slideUp ( 200 , e )}, showOnClick :! 1 , hideOnClick :! 0 , noMouseOver :! 1 , keepInViewport :! 0 , keepHighlighted :! 0 , markCurrentItem :! 1 , markCurrentTree :! 0 , rightToLeftSubMenus :! 1 ,
bottomToTopSubMenus :! 1 , collapsibleBehavior : "default" }, $ });