2020-11-12 10:05:25 +01:00
/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
! function ( a , b ) { "object" == typeof module && "object" == typeof module . exports ? module . exports = a . document ? b ( a , ! 0 ) : function ( a ) { if ( ! a . document ) throw new Error ( "jQuery requires a window with a document" ) ; return b ( a ) } : b ( a ) } ( "undefined" != typeof window ? window : this , function ( a , b ) { var c = [ ] , d = c . slice , e = c . concat , f = c . push , g = c . indexOf , h = { } , i = h . toString , j = h . hasOwnProperty , k = { } , l = a . document , m = "2.1.3" , n = function ( a , b ) { return new n . fn . init ( a , b ) } , o = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , p = /^-ms-/ , q = /-([\da-z])/gi , r = function ( a , b ) { return b . toUpperCase ( ) } ; n . fn = n . prototype = { jquery : m , constructor : n , selector : "" , length : 0 , toArray : function ( ) { return d . call ( this ) } , get : function ( a ) { return null != a ? 0 > a ? this [ a + this . length ] : this [ a ] : d . call ( this ) } , pushStack : function ( a ) { var b = n . merge ( this . constructor ( ) , a ) ; return b . prevObject = this , b . context = this . context , b } , each : function ( a , b ) { return n . each ( this , a , b ) } , map : function ( a ) { return this . pushStack ( n . map ( this , function ( b , c ) { return a . call ( b , c , b ) } ) ) } , slice : function ( ) { return this . pushStack ( d . apply ( this , arguments ) ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , eq : function ( a ) { var b = this . length , c = + a + ( 0 > a ? b : 0 ) ; return this . pushStack ( c >= 0 && b > c ? [ this [ c ] ] : [ ] ) } , end : function ( ) { return this . prevObject || this . constructor ( null ) } , push : f , sort : c . sort , splice : c . splice } , n . extend = n . fn . extend = function ( ) { var a , b , c , d , e , f , g = arguments [ 0 ] || { } , h = 1 , i = arguments . length , j = ! 1 ; for ( "boolean" == typeof g && ( j = g , g = arguments [ h ] || { } , h ++ ) , "object" == typeof g || n . isFunction ( g ) || ( g = { } ) , h === i && ( g = this , h -- ) ; i > h ; h ++ ) if ( null != ( a = arguments [ h ] ) ) for ( b in a ) c = g [ b ] , d = a [ b ] , g !== d && ( j && d && ( n . isPlainObject ( d ) || ( e = n . isArray ( d ) ) ) ? ( e ? ( e = ! 1 , f = c && n . isArray ( c ) ? c : [ ] ) : f = c && n . isPlainObject ( c ) ? c : { } , g [ b ] = n . extend ( j , f , d ) ) : void 0 !== d && ( g [ b ] = d ) ) ; return g } , n . extend ( { expando : "jQuery" + ( m + Math . random ( ) ) . replace ( /\D/g , "" ) , isReady : ! 0 , error : function ( a ) { throw new Error ( a ) } , noop : function ( ) { } , isFunction : function ( a ) { return "function" === n . type ( a ) } , isArray : Array . isArray , isWindow : function ( a ) { return null != a && a === a . window } , isNumeric : function ( a ) { return ! n . isArray ( a ) && a - parseFloat ( a ) + 1 >= 0 } , isPlainObject : function ( a ) { return "object" !== n . type ( a ) || a . nodeType || n . isWindow ( a ) ? ! 1 : a . constructor && ! j . call ( a . constructor . prototype , "isPrototypeOf" ) ? ! 1 : ! 0 } , isEmptyObject : function ( a ) { var b ; for ( b in a ) return ! 1 ; return ! 0 } , type : function ( a ) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h [ i . call ( a ) ] || "object" : typeof a } , globalEval : function ( a ) { var b , c = eval ; a = n . trim ( a ) , a && ( 1 === a . indexOf ( "use strict" ) ? ( b = l . createElement ( "script" ) , b . text = a , l . head . appendChild ( b ) . parentNode . removeChild ( b ) ) : c ( a ) ) } , camelCase : function ( a ) { return a . replace ( p , "ms-" ) . replace ( q , r ) } , nodeName : function ( a , b ) { return a . nodeName && a . nodeName . toLowerCase ( ) === b . toLowerCase ( ) } , each : function ( a , b , c ) { var d , e = 0 , f = a . length , g = s ( a ) ; if ( c ) { if ( g ) { for ( ; f > e ; e ++ ) if ( d = b . apply ( a [ e ] , c ) , d === ! 1 ) break } else for ( e in a ) if ( d = b . apply ( a [ e ] , c ) , d === ! 1 ) break } else if ( g ) { for ( ; f > e ; e ++ ) if ( d = b . call ( a [ e ] , e , a [ e ] ) , d === ! 1 ) break } else for ( e in a ) if ( d = b . call ( a [ e ] , e , a [ e ] ) , d === ! 1 ) break ; return a } , trim : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( o , "" ) } , makeArray : function ( a , b ) { var c = b || [ ] ; return null != a && ( s ( Object ( a ) ) ? n . merge ( c , "string" == typeof a ? [ a ] : a ) : f . call ( c , a ) ) , c } , inArray : function ( a , b , c ) { return null == b ? - 1 : g . call ( b , a , c ) } , merge : function ( a , b ) { for ( var c = + b . length , d = 0 , e = a . length ; c > d ; d ++ ) a [ e ++ ] = b [ d ] ; return a . length = e , a } , grep : function ( a , b , c ) { for ( var d , e = [ ] , f = 0 , g = a . length , h = ! c ; g > f ; f ++ ) d = ! b ( a [ f ] , f ) , d !== h && e . push ( a [ f ] ) ; return e } , map : function ( a , b , c ) { var d , f = 0 , g = a . length , h = s ( a ) , i = [ ] ; if ( h ) for ( ; g > f ; f ++ ) d = b ( a [ f ] , f , c ) , null != d && i . push ( d ) ; else for ( f in a ) d = b ( a [ f ] , f , c ) , null != d && i . push ( d ) ; return e . apply ( [ ] , i ) } , guid : 1 , proxy : function ( a , b ) { var c , e , f ; return "string" == typeof b && ( c = a [ b ] , b = a , a = c ) , n . isFunction ( a ) ? ( e = d . call ( arguments , 2 ) , f = function ( ) { return a . apply ( b || this , e . concat ( d . call ( arguments ) ) ) } , f . guid = a . guid = a . guid || n . guid ++ , f ) : void 0 } , now : Date . now , support : k } ) , n . each ( "Boolean Number String Function Array Date RegExp Object Error" . split ( " " ) , function ( a , b ) { h [ "[object " + b + "]" ] = b . toLowerCase ( ) } ) ; function s ( a ) { var b = a . length , c = n . type ( a ) ; return "function" === c || n . isWindow ( a ) ? ! 1 : 1 === a . nodeType && b ? ! 0 : "array" === c || 0 === b || " n
} , removeData : function ( a , b ) { M . remove ( a , b ) } , _data : function ( a , b , c ) { return L . access ( a , b , c ) } , _removeData : function ( a , b ) { L . remove ( a , b ) } } ) , n . fn . extend ( { data : function ( a , b ) { var c , d , e , f = this [ 0 ] , g = f && f . attributes ; if ( void 0 === a ) { if ( this . length && ( e = M . get ( f ) , 1 === f . nodeType && ! L . get ( f , "hasDataAttrs" ) ) ) { c = g . length ; while ( c -- ) g [ c ] && ( d = g [ c ] . name , 0 === d . indexOf ( "data-" ) && ( d = n . camelCase ( d . slice ( 5 ) ) , P ( f , d , e [ d ] ) ) ) ; L . set ( f , "hasDataAttrs" , ! 0 ) } return e } return "object" == typeof a ? this . each ( function ( ) { M . set ( this , a ) } ) : J ( this , function ( b ) { var c , d = n . camelCase ( a ) ; if ( f && void 0 === b ) { if ( c = M . get ( f , a ) , void 0 !== c ) return c ; if ( c = M . get ( f , d ) , void 0 !== c ) return c ; if ( c = P ( f , d , void 0 ) , void 0 !== c ) return c } else this . each ( function ( ) { var c = M . get ( this , d ) ; M . set ( this , d , b ) , - 1 !== a . indexOf ( "-" ) && void 0 !== c && M . set ( this , a , b ) } ) } , null , b , arguments . length > 1 , null , ! 0 ) } , removeData : function ( a ) { return this . each ( function ( ) { M . remove ( this , a ) } ) } } ) , n . extend ( { queue : function ( a , b , c ) { var d ; return a ? ( b = ( b || "fx" ) + "queue" , d = L . get ( a , b ) , c && ( ! d || n . isArray ( c ) ? d = L . access ( a , b , n . makeArray ( c ) ) : d . push ( c ) ) , d || [ ] ) : void 0 } , dequeue : function ( a , b ) { b = b || "fx" ; var c = n . queue ( a , b ) , d = c . length , e = c . shift ( ) , f = n . _queueHooks ( a , b ) , g = function ( ) { n . dequeue ( a , b ) } ; "inprogress" === e && ( e = c . shift ( ) , d -- ) , e && ( "fx" === b && c . unshift ( "inprogress" ) , delete f . stop , e . call ( a , g , f ) ) , ! d && f && f . empty . fire ( ) } , _queueHooks : function ( a , b ) { var c = b + "queueHooks" ; return L . get ( a , c ) || L . access ( a , c , { empty : n . Callbacks ( "once memory" ) . add ( function ( ) { L . remove ( a , [ b + "queue" , c ] ) } ) } ) } } ) , n . fn . extend ( { queue : function ( a , b ) { var c = 2 ; return "string" != typeof a && ( b = a , a = "fx" , c -- ) , arguments . length < c ? n . queue ( this [ 0 ] , a ) : void 0 === b ? this : this . each ( function ( ) { var c = n . queue ( this , a , b ) ; n . _queueHooks ( this , a ) , "fx" === a && "inprogress" !== c [ 0 ] && n . dequeue ( this , a ) } ) } , dequeue : function ( a ) { return this . each ( function ( ) { n . dequeue ( this , a ) } ) } , clearQueue : function ( a ) { return this . queue ( a || "fx" , [ ] ) } , promise : function ( a , b ) { var c , d = 1 , e = n . Deferred ( ) , f = this , g = this . length , h = function ( ) { -- d || e . resolveWith ( f , [ f ] ) } ; "string" != typeof a && ( b = a , a = void 0 ) , a = a || "fx" ; while ( g -- ) c = L . get ( f [ g ] , a + "queueHooks" ) , c && c . empty && ( d ++ , c . empty . add ( h ) ) ; return h ( ) , e . promise ( b ) } } ) ; var Q = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , R = [ "Top" , "Right" , "Bottom" , "Left" ] , S = function ( a , b ) { return a = b || a , "none" === n . css ( a , "display" ) || ! n . contains ( a . ownerDocument , a ) } , T = /^(?:checkbox|radio)$/i ; ! function ( ) { var a = l . createDocumentFragment ( ) , b = a . appendChild ( l . createElement ( "div" ) ) , c = l . createElement ( "input" ) ; c . setAttribute ( "type" , "radio" ) , c . setAttribute ( "checked" , "checked" ) , c . setAttribute ( "name" , "t" ) , b . appendChild ( c ) , k . checkClone = b . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked , b . innerHTML = "<textarea>x</textarea>" , k . noCloneChecked = ! ! b . cloneNode ( ! 0 ) . lastChild . defaultValue } ( ) ; var U = "undefined" ; k . focusinBubbles = "onfocusin" in a ; var V = /^key/ , W = /^(?:mouse|pointer|contextmenu)|click/ , X = /^(?:focusinfocus|focusoutblur)$/ , Y = /^([^.]*)(?:\.(.+)|)$/ ; function Z ( ) { return ! 0 } function $ ( ) { return ! 1 } function _ ( ) { try { return l . activeElement } catch ( a ) { } } n . event = { global : { } , add : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , o , p , q , r = L . get ( a ) ; if ( r ) { c . handler && ( f = c , c = f . handler , e = f . selector ) , c . guid || ( c . guid = n . guid ++ ) , ( i = r . events ) || ( i = r . events = { } ) , ( g = r . handle ) || ( g = r . handle = function ( b ) { return typeof n !== U && n . event . triggered !== b . type ? n . event . dispatch . apply ( a , arguments ) : void 0 } ) , b = ( b || "" ) . match ( E ) || [ "" ] , j = b . length ; while ( j -- ) h = Y . exec ( b [ j ] ) || [ ] , o = q = h [ 1 ] , p = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , o && ( l = n . event . special [ o ] || { } , o = ( e ? l . delegateType : l . bindType ) || o , l = n . event . special [ o ] || { } , k = n . extend ( { type : o , origType : q , data : d , handler : c , guid : c . guid , selector : e , needsContext : e && n . expr . match . needsContext . test ( e ) , namespace : p . join ( "." ) } , f ) , ( m = i [ o ] ) || ( m = i [ o ] = [ ] , m . delegateCount = 0 , l . setup && l . setup . call ( a , d , p , g ) !== ! 1 || a . addEventListener && a . addEventListener ( o , g , ! 1 ) ) , l . add && ( l . add . call ( a , k ) , k . handler . guid || ( k . handler . guid = c . guid ) ) , e ? m . splice ( m . delegateCount ++ , 0 , k ) : m . push ( k ) , n . event . global [ o ] = ! 0 ) } } , remove : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , o , p , q , r = L . hasData ( a ) && L . get ( a ) ; if ( r && ( i = r . events ) ) { b = ( b || "" ) . match ( E ) || [ "" ] , j = b . length ; while ( j -- ) if ( h = Y . exec ( b [ j ] ) || [ ] , o = q = h [ 1 ] , p = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , o ) { l = n . event . special [ o ] || { } , o = ( d ? l . delegateTyp
} , removeAttr : function ( a , b ) { var c , d , e = 0 , f = b && b . match ( E ) ; if ( f && 1 === a . nodeType ) while ( c = f [ e ++ ] ) d = n . propFix [ c ] || c , n . expr . match . bool . test ( c ) && ( a [ d ] = ! 1 ) , a . removeAttribute ( c ) } , attrHooks : { type : { set : function ( a , b ) { if ( ! k . radioValue && "radio" === b && n . nodeName ( a , "input" ) ) { var c = a . value ; return a . setAttribute ( "type" , b ) , c && ( a . value = c ) , b } } } } } ) , Zb = { set : function ( a , b , c ) { return b === ! 1 ? n . removeAttr ( a , c ) : a . setAttribute ( c , c ) , c } } , n . each ( n . expr . match . bool . source . match ( /\w+/g ) , function ( a , b ) { var c = $b [ b ] || n . find . attr ; $b [ b ] = function ( a , b , d ) { var e , f ; return d || ( f = $b [ b ] , $b [ b ] = e , e = null != c ( a , b , d ) ? b . toLowerCase ( ) : null , $b [ b ] = f ) , e } } ) ; var _b = /^(?:input|select|textarea|button)$/i ; n . fn . extend ( { prop : function ( a , b ) { return J ( this , n . prop , a , b , arguments . length > 1 ) } , removeProp : function ( a ) { return this . each ( function ( ) { delete this [ n . propFix [ a ] || a ] } ) } } ) , n . extend ( { propFix : { "for" : "htmlFor" , "class" : "className" } , prop : function ( a , b , c ) { var d , e , f , g = a . nodeType ; if ( a && 3 !== g && 8 !== g && 2 !== g ) return f = 1 !== g || ! n . isXMLDoc ( a ) , f && ( b = n . propFix [ b ] || b , e = n . propHooks [ b ] ) , void 0 !== c ? e && "set" in e && void 0 !== ( d = e . set ( a , c , b ) ) ? d : a [ b ] = c : e && "get" in e && null !== ( d = e . get ( a , b ) ) ? d : a [ b ] } , propHooks : { tabIndex : { get : function ( a ) { return a . hasAttribute ( "tabindex" ) || _b . test ( a . nodeName ) || a . href ? a . tabIndex : - 1 } } } } ) , k . optSelected || ( n . propHooks . selected = { get : function ( a ) { var b = a . parentNode ; return b && b . parentNode && b . parentNode . selectedIndex , null } } ) , n . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { n . propFix [ this . toLowerCase ( ) ] = this } ) ; var ac = /[\t\r\n\f]/g ; n . fn . extend ( { addClass : function ( a ) { var b , c , d , e , f , g , h = "string" == typeof a && a , i = 0 , j = this . length ; if ( n . isFunction ( a ) ) return this . each ( function ( b ) { n ( this ) . addClass ( a . call ( this , b , this . className ) ) } ) ; if ( h ) for ( b = ( a || "" ) . match ( E ) || [ ] ; j > i ; i ++ ) if ( c = this [ i ] , d = 1 === c . nodeType && ( c . className ? ( " " + c . className + " " ) . replace ( ac , " " ) : " " ) ) { f = 0 ; while ( e = b [ f ++ ] ) d . indexOf ( " " + e + " " ) < 0 && ( d += e + " " ) ; g = n . trim ( d ) , c . className !== g && ( c . className = g ) } return this } , removeClass : function ( a ) { var b , c , d , e , f , g , h = 0 === arguments . length || "string" == typeof a && a , i = 0 , j = this . length ; if ( n . isFunction ( a ) ) return this . each ( function ( b ) { n ( this ) . removeClass ( a . call ( this , b , this . className ) ) } ) ; if ( h ) for ( b = ( a || "" ) . match ( E ) || [ ] ; j > i ; i ++ ) if ( c = this [ i ] , d = 1 === c . nodeType && ( c . className ? ( " " + c . className + " " ) . replace ( ac , " " ) : "" ) ) { f = 0 ; while ( e = b [ f ++ ] ) while ( d . indexOf ( " " + e + " " ) >= 0 ) d = d . replace ( " " + e + " " , " " ) ; g = a ? n . trim ( d ) : "" , c . className !== g && ( c . className = g ) } return this } , toggleClass : function ( a , b ) { var c = typeof a ; return "boolean" == typeof b && "string" === c ? b ? this . addClass ( a ) : this . removeClass ( a ) : this . each ( n . isFunction ( a ) ? function ( c ) { n ( this ) . toggleClass ( a . call ( this , c , this . className , b ) , b ) } : function ( ) { if ( "string" === c ) { var b , d = 0 , e = n ( this ) , f = a . match ( E ) || [ ] ; while ( b = f [ d ++ ] ) e . hasClass ( b ) ? e . removeClass ( b ) : e . addClass ( b ) } else ( c === U || "boolean" === c ) && ( this . className && L . set ( this , "__className__" , this . className ) , this . className = this . className || a === ! 1 ? "" : L . get ( this , "__className__" ) || "" ) } ) } , hasClass : function ( a ) { for ( var b = " " + a + " " , c = 0 , d = this . length ; d > c ; c ++ ) if ( 1 === this [ c ] . nodeType && ( " " + this [ c ] . className + " " ) . replace ( ac , " " ) . indexOf ( b ) >= 0 ) return ! 0 ; return ! 1 } } ) ; var bc = /\r/g ; n . fn . extend ( { val : function ( a ) { var b , c , d , e = this [ 0 ] ; { if ( arguments . length ) return d = n . isFunction ( a ) , this . each ( function ( c ) { var e ; 1 === this . nodeType && ( e = d ? a . call ( this , c , n ( this ) . val ( ) ) : a , null == e ? e = "" : "number" == typeof e ? e += "" : n . isArray ( e ) && ( e = n . map ( e , function ( a ) { return null == a ? "" : a + "" } ) ) , b = n . valHooks [ this . type ] || n . valHooks [ this . nodeName . toLowerCase ( ) ] , b && "set" in b && void 0 !== b . set ( this , e , "value" ) || ( this . value = e ) ) } ) ; if ( e ) return b = n . valHooks [ e . type ] || n . valHooks [ e . nodeName . toLowerCase ( ) ] , b && "get" in b && void 0 !== ( c = b . get ( e , "value" ) ) ? c : ( c = e . value , "string" == typeof c ? c . replace ( bc , "" ) : null == c ? "" : c ) } } } ) , n . extend ( { valHooks : { option : { get : function ( a ) { var b = n . find . attr ( a , "value" ) ; return null != b ? b : n . trim ( n . text ( a ) ) } } , select : { get : function ( a ) { for ( var b , c , d = a . options , e = a . selectedIndex , f = "select-one" === a . type || 0 > e , g = f ? null : [ ] , h = f ? e + 1 : d . length , i = 0 > e ? h : f ? e : 0 ; h > i ; i ++ ) if ( c = d [ i ] , ! ( ! c . selected && i !== e || ( k . optDisabled ? c . disabled : null !== c . getAttribute ( "disabled" ) ) || c . par
! function ( a , b ) { "use strict" ; function c ( c , g ) { var h = this ; h . $el = a ( c ) , h . el = c , h . id = e ++ , h . $window = a ( b ) , h . $document = a ( document ) , h . $el . bind ( "destroyed" , a . proxy ( h . teardown , h ) ) , h . $clonedHeader = null , h . $originalHeader = null , h . isSticky = ! 1 , h . hasBeenSticky = ! 1 , h . leftOffset = null , h . topOffset = null , h . init = function ( ) { h . $el . each ( function ( ) { var b = a ( this ) ; b . css ( "padding" , 0 ) , h . $originalHeader = a ( "thead:first" , this ) , h . $clonedHeader = h . $originalHeader . clone ( ) , b . trigger ( "clonedHeader." + d , [ h . $clonedHeader ] ) , h . $clonedHeader . addClass ( "tableFloatingHeader" ) , h . $clonedHeader . css ( "display" , "none" ) , h . $originalHeader . addClass ( "tableFloatingHeaderOriginal" ) , h . $originalHeader . after ( h . $clonedHeader ) , h . $printStyle = a ( '<style type="text/css" media="print">.tableFloatingHeader{display:none !important;}.tableFloatingHeaderOriginal{position:static !important;}</style>' ) , a ( "head" ) . append ( h . $printStyle ) } ) , h . setOptions ( g ) , h . updateWidth ( ) , h . toggleHeaders ( ) , h . bind ( ) } , h . destroy = function ( ) { h . $el . unbind ( "destroyed" , h . teardown ) , h . teardown ( ) } , h . teardown = function ( ) { h . isSticky && h . $originalHeader . css ( "position" , "static" ) , a . removeData ( h . el , "plugin_" + d ) , h . unbind ( ) , h . $clonedHeader . remove ( ) , h . $originalHeader . removeClass ( "tableFloatingHeaderOriginal" ) , h . $originalHeader . css ( "visibility" , "visible" ) , h . $printStyle . remove ( ) , h . el = null , h . $el = null } , h . bind = function ( ) { h . $scrollableArea . on ( "scroll." + d , h . toggleHeaders ) , h . isWindowScrolling || ( h . $window . on ( "scroll." + d + h . id , h . setPositionValues ) , h . $window . on ( "resize." + d + h . id , h . toggleHeaders ) ) , h . $scrollableArea . on ( "resize." + d , h . toggleHeaders ) , h . $scrollableArea . on ( "resize." + d , h . updateWidth ) } , h . unbind = function ( ) { h . $scrollableArea . off ( "." + d , h . toggleHeaders ) , h . isWindowScrolling || ( h . $window . off ( "." + d + h . id , h . setPositionValues ) , h . $window . off ( "." + d + h . id , h . toggleHeaders ) ) , h . $scrollableArea . off ( "." + d , h . updateWidth ) } , h . toggleHeaders = function ( ) { h . $el && h . $el . each ( function ( ) { var b , c = a ( this ) , d = h . isWindowScrolling ? isNaN ( h . options . fixedOffset ) ? h . options . fixedOffset . outerHeight ( ) : h . options . fixedOffset : h . $scrollableArea . offset ( ) . top + ( isNaN ( h . options . fixedOffset ) ? 0 : h . options . fixedOffset ) , e = c . offset ( ) , f = h . $scrollableArea . scrollTop ( ) + d , g = h . $scrollableArea . scrollLeft ( ) , i = h . isWindowScrolling ? f > e . top : d > e . top , j = ( h . isWindowScrolling ? f : 0 ) < e . top + c . height ( ) - h . $clonedHeader . height ( ) - ( h . isWindowScrolling ? 0 : d ) ; i && j ? ( b = e . left - g + h . options . leftOffset , h . $originalHeader . css ( { position : "fixed" , "margin-top" : h . options . marginTop , left : b , "z-index" : 3 } ) , h . leftOffset = b , h . topOffset = d , h . $clonedHeader . css ( "display" , "" ) , h . isSticky || ( h . isSticky = ! 0 , h . updateWidth ( ) ) , h . setPositionValues ( ) ) : h . isSticky && ( h . $originalHeader . css ( "position" , "static" ) , h . $clonedHeader . css ( "display" , "none" ) , h . isSticky = ! 1 , h . resetWidth ( a ( "td,th" , h . $clonedHeader ) , a ( "td,th" , h . $originalHeader ) ) ) } ) } , h . setPositionValues = function ( ) { var a = h . $window . scrollTop ( ) , b = h . $window . scrollLeft ( ) ; ! h . isSticky || 0 > a || a + h . $window . height ( ) > h . $document . height ( ) || 0 > b || b + h . $window . width ( ) > h . $document . width ( ) || h . $originalHeader . css ( { top : h . topOffset - ( h . isWindowScrolling ? 0 : a ) , left : h . leftOffset - ( h . isWindowScrolling ? 0 : b ) } ) } , h . updateWidth = function ( ) { if ( h . isSticky ) { h . $originalHeaderCells || ( h . $originalHeaderCells = a ( "th,td" , h . $originalHeader ) ) , h . $clonedHeaderCells || ( h . $clonedHeaderCells = a ( "th,td" , h . $clonedHeader ) ) ; var b = h . getWidth ( h . $clonedHeaderCells ) ; h . setWidth ( b , h . $clonedHeaderCells , h . $originalHeaderCells ) , h . $originalHeader . css ( "width" , h . $clonedHeader . width ( ) ) } } , h . getWidth = function ( c ) { var d = [ ] ; return c . each ( function ( c ) { var e , f = a ( this ) ; if ( "border-box" === f . css ( "box-sizing" ) ) e = f [ 0 ] . getBoundingClientRect ( ) . width ; else { var g = a ( "th" , h . $originalHeader ) ; if ( "collapse" === g . css ( "border-collapse" ) ) if ( b . getComputedStyle ) e = parseFloat ( b . getComputedStyle ( this , null ) . width ) ; else { var i = parseFloat ( f . css ( "padding-left" ) ) , j = parseFloat ( f . css ( "padding-right" ) ) , k = parseFloat ( f . css ( "border-width" ) ) ; e = f . outerWidth ( ) - i - j - k } else e = f . width ( ) } d [ c ] = e } ) , d } , h . setWidth = function ( a , b , c ) { b . each ( function ( b ) { var d = a [ b ] ; c . eq ( b ) . css ( { "min-width" : d , "max-width" : d } ) } ) } , h . resetWidth = function ( b , c ) { b . each ( function ( b ) { var d = a ( this ) ; c . eq ( b ) . css ( { "min-width" : d . css ( "min-width" ) , "max-width" : d . css ( "max-width" ) } ) } ) } , h . setOp
* Bootstrap v3 . 3.4 ( http : //getbootstrap.com)
* Copyright 2011 - 2015 Twitter , Inc .
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* /
if ( "undefined" == typeof jQuery ) throw new Error ( "Bootstrap's JavaScript requires jQuery" ) ; + function ( a ) { "use strict" ; var b = a . fn . jquery . split ( " " ) [ 0 ] . split ( "." ) ; if ( b [ 0 ] < 2 && b [ 1 ] < 9 || 1 == b [ 0 ] && 9 == b [ 1 ] && b [ 2 ] < 1 ) throw new Error ( "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher" ) } ( jQuery ) , + function ( a ) { "use strict" ; function b ( ) { var a = document . createElement ( "bootstrap" ) , b = { WebkitTransition : "webkitTransitionEnd" , MozTransition : "transitionend" , OTransition : "oTransitionEnd otransitionend" , transition : "transitionend" } ; for ( var c in b ) if ( void 0 !== a . style [ c ] ) return { end : b [ c ] } ; return ! 1 } a . fn . emulateTransitionEnd = function ( b ) { var c = ! 1 , d = this ; a ( this ) . one ( "bsTransitionEnd" , function ( ) { c = ! 0 } ) ; var e = function ( ) { c || a ( d ) . trigger ( a . support . transition . end ) } ; return setTimeout ( e , b ) , this } , a ( function ( ) { a . support . transition = b ( ) , a . support . transition && ( a . event . special . bsTransitionEnd = { bindType : a . support . transition . end , delegateType : a . support . transition . end , handle : function ( b ) { return a ( b . target ) . is ( this ) ? b . handleObj . handler . apply ( this , arguments ) : void 0 } } ) } ) } ( jQuery ) , + function ( a ) { "use strict" ; function b ( b ) { return this . each ( function ( ) { var c = a ( this ) , e = c . data ( "bs.alert" ) ; e || c . data ( "bs.alert" , e = new d ( this ) ) , "string" == typeof b && e [ b ] . call ( c ) } ) } var c = '[data-dismiss="alert"]' , d = function ( b ) { a ( b ) . on ( "click" , c , this . close ) } ; d . VERSION = "3.3.4" , d . TRANSITION _DURATION = 150 , d . prototype . close = function ( b ) { function c ( ) { g . detach ( ) . trigger ( "closed.bs.alert" ) . remove ( ) } var e = a ( this ) , f = e . attr ( "data-target" ) ; f || ( f = e . attr ( "href" ) , f = f && f . replace ( /.*(?=#[^\s]*$)/ , "" ) ) ; var g = a ( f ) ; b && b . preventDefault ( ) , g . length || ( g = e . closest ( ".alert" ) ) , g . trigger ( b = a . Event ( "close.bs.alert" ) ) , b . isDefaultPrevented ( ) || ( g . removeClass ( "in" ) , a . support . transition && g . hasClass ( "fade" ) ? g . one ( "bsTransitionEnd" , c ) . emulateTransitionEnd ( d . TRANSITION _DURATION ) : c ( ) ) } ; var e = a . fn . alert ; a . fn . alert = b , a . fn . alert . Constructor = d , a . fn . alert . noConflict = function ( ) { return a . fn . alert = e , this } , a ( document ) . on ( "click.bs.alert.data-api" , c , d . prototype . close ) } ( jQuery ) , + function ( a ) { "use strict" ; function b ( b ) { return this . each ( function ( ) { var d = a ( this ) , e = d . data ( "bs.button" ) , f = "object" == typeof b && b ; e || d . data ( "bs.button" , e = new c ( this , f ) ) , "toggle" == b ? e . toggle ( ) : b && e . setState ( b ) } ) } var c = function ( b , d ) { this . $element = a ( b ) , this . options = a . extend ( { } , c . DEFAULTS , d ) , this . isLoading = ! 1 } ; c . VERSION = "3.3.4" , c . DEFAULTS = { loadingText : "loading..." } , c . prototype . setState = function ( b ) { var c = "disabled" , d = this . $element , e = d . is ( "input" ) ? "val" : "html" , f = d . data ( ) ; b += "Text" , null == f . resetText && d . data ( "resetText" , d [ e ] ( ) ) , setTimeout ( a . proxy ( function ( ) { d [ e ] ( null == f [ b ] ? this . options [ b ] : f [ b ] ) , "loadingText" == b ? ( this . isLoading = ! 0 , d . addClass ( c ) . attr ( c , c ) ) : this . isLoading && ( this . isLoading = ! 1 , d . removeClass ( c ) . removeAttr ( c ) ) } , this ) , 0 ) } , c . prototype . toggle = function ( ) { var a = ! 0 , b = this . $element . closest ( '[data-toggle="buttons"]' ) ; if ( b . length ) { var c = this . $element . find ( "input" ) ; "radio" == c . prop ( "type" ) && ( c . prop ( "checked" ) && this . $element . hasClass ( "active" ) ? a = ! 1 : b . find ( ".active" ) . removeClass ( "active" ) ) , a && c . prop ( "checked" , ! this . $element . hasClass ( "active" ) ) . trigger ( "change" ) } else this . $element . attr ( "aria-pressed" , ! this . $element . hasClass ( "active" ) ) ; a && this . $element . toggleClass ( "active" ) } ; var d = a . fn . button ; a . fn . button = b , a . fn . button . Constructor = c , a . fn . button . noConflict = function ( ) { return a . fn . button = d , this } , a ( document ) . on ( "click.bs.button.data-api" , '[data-toggle^="button"]' , function ( c ) { var d = a ( c . target ) ; d . hasClass ( "btn" ) || ( d = d . closest ( ".btn" ) ) , b . call ( d , "toggle" ) , c . preventDefault ( ) } ) . on ( "focus.bs.button.data-api blur.bs.button.data-api" , '[data-toggle^="button"]' , function ( b ) { a ( b . target ) . closest ( ".btn" ) . toggleClass ( "focus" , /^focus(in)?$/ . test ( b . type ) ) } ) } ( jQuery ) , + function ( a ) { "use strict" ; function b ( b ) { return this . each ( function ( ) { var d = a ( this ) , e = d . data ( "bs.carousel" ) , f = a . extend ( { } , c . DEFAULTS , d . data ( ) , "object" == typeof b && b ) , g = "string" == typeof b ? b : f . slide ; e || d . data ( "bs.carousel" , e = new c ( this , f ) ) , "number" == typeof b ? e . to ( b ) : g ? e [ g ] ( ) : f . interval && e . pause ( ) . cycle ( ) } ) } var c = function ( b , c ) { this . $element = a ( b ) , this . $indicators = this . $element . find ( ".carousel-indicators" ) , this . options = c , this . paused = null , this . sliding = null , this
var e = c . find ( ".active:last a" ) , f = a . Event ( "hide.bs.tab" , { relatedTarget : b [ 0 ] } ) , g = a . Event ( "show.bs.tab" , { relatedTarget : e [ 0 ] } ) ; if ( e . trigger ( f ) , b . trigger ( g ) , ! g . isDefaultPrevented ( ) && ! f . isDefaultPrevented ( ) ) { var h = a ( d ) ; this . activate ( b . closest ( "li" ) , c ) , this . activate ( h , h . parent ( ) , function ( ) { e . trigger ( { type : "hidden.bs.tab" , relatedTarget : b [ 0 ] } ) , b . trigger ( { type : "shown.bs.tab" , relatedTarget : e [ 0 ] } ) } ) } } } , c . prototype . activate = function ( b , d , e ) { function f ( ) { g . removeClass ( "active" ) . find ( "> .dropdown-menu > .active" ) . removeClass ( "active" ) . end ( ) . find ( '[data-toggle="tab"]' ) . attr ( "aria-expanded" , ! 1 ) , b . addClass ( "active" ) . find ( '[data-toggle="tab"]' ) . attr ( "aria-expanded" , ! 0 ) , h ? ( b [ 0 ] . offsetWidth , b . addClass ( "in" ) ) : b . removeClass ( "fade" ) , b . parent ( ".dropdown-menu" ) . length && b . closest ( "li.dropdown" ) . addClass ( "active" ) . end ( ) . find ( '[data-toggle="tab"]' ) . attr ( "aria-expanded" , ! 0 ) , e && e ( ) } var g = d . find ( "> .active" ) , h = e && a . support . transition && ( g . length && g . hasClass ( "fade" ) || ! ! d . find ( "> .fade" ) . length ) ; g . length && h ? g . one ( "bsTransitionEnd" , f ) . emulateTransitionEnd ( c . TRANSITION _DURATION ) : f ( ) , g . removeClass ( "in" ) } ; var d = a . fn . tab ; a . fn . tab = b , a . fn . tab . Constructor = c , a . fn . tab . noConflict = function ( ) { return a . fn . tab = d , this } ; var e = function ( c ) { c . preventDefault ( ) , b . call ( a ( this ) , "show" ) } ; a ( document ) . on ( "click.bs.tab.data-api" , '[data-toggle="tab"]' , e ) . on ( "click.bs.tab.data-api" , '[data-toggle="pill"]' , e ) } ( jQuery ) , + function ( a ) { "use strict" ; function b ( b ) { return this . each ( function ( ) { var d = a ( this ) , e = d . data ( "bs.affix" ) , f = "object" == typeof b && b ; e || d . data ( "bs.affix" , e = new c ( this , f ) ) , "string" == typeof b && e [ b ] ( ) } ) } var c = function ( b , d ) { this . options = a . extend ( { } , c . DEFAULTS , d ) , this . $target = a ( this . options . target ) . on ( "scroll.bs.affix.data-api" , a . proxy ( this . checkPosition , this ) ) . on ( "click.bs.affix.data-api" , a . proxy ( this . checkPositionWithEventLoop , this ) ) , this . $element = a ( b ) , this . affixed = null , this . unpin = null , this . pinnedOffset = null , this . checkPosition ( ) } ; c . VERSION = "3.3.4" , c . RESET = "affix affix-top affix-bottom" , c . DEFAULTS = { offset : 0 , target : window } , c . prototype . getState = function ( a , b , c , d ) { var e = this . $target . scrollTop ( ) , f = this . $element . offset ( ) , g = this . $target . height ( ) ; if ( null != c && "top" == this . affixed ) return c > e ? "top" : ! 1 ; if ( "bottom" == this . affixed ) return null != c ? e + this . unpin <= f . top ? ! 1 : "bottom" : a - d >= e + g ? ! 1 : "bottom" ; var h = null == this . affixed , i = h ? e : f . top , j = h ? g : b ; return null != c && c >= e ? "top" : null != d && i + j >= a - d ? "bottom" : ! 1 } , c . prototype . getPinnedOffset = function ( ) { if ( this . pinnedOffset ) return this . pinnedOffset ; this . $element . removeClass ( c . RESET ) . addClass ( "affix" ) ; var a = this . $target . scrollTop ( ) , b = this . $element . offset ( ) ; return this . pinnedOffset = b . top - a } , c . prototype . checkPositionWithEventLoop = function ( ) { setTimeout ( a . proxy ( this . checkPosition , this ) , 1 ) } , c . prototype . checkPosition = function ( ) { if ( this . $element . is ( ":visible" ) ) { var b = this . $element . height ( ) , d = this . options . offset , e = d . top , f = d . bottom , g = a ( document . body ) . height ( ) ; "object" != typeof d && ( f = e = d ) , "function" == typeof e && ( e = d . top ( this . $element ) ) , "function" == typeof f && ( f = d . bottom ( this . $element ) ) ; var h = this . getState ( g , b , e , f ) ; if ( this . affixed != h ) { null != this . unpin && this . $element . css ( "top" , "" ) ; var i = "affix" + ( h ? "-" + h : "" ) , j = a . Event ( i + ".bs.affix" ) ; if ( this . $element . trigger ( j ) , j . isDefaultPrevented ( ) ) return ; this . affixed = h , this . unpin = "bottom" == h ? this . getPinnedOffset ( ) : null , this . $element . removeClass ( c . RESET ) . addClass ( i ) . trigger ( i . replace ( "affix" , "affixed" ) + ".bs.affix" ) } "bottom" == h && this . $element . offset ( { top : g - b - f } ) } } ; var d = a . fn . affix ; a . fn . affix = b , a . fn . affix . Constructor = c , a . fn . affix . noConflict = function ( ) { return a . fn . affix = d , this } , a ( window ) . on ( "load" , function ( ) { a ( '[data-spy="affix"]' ) . each ( function ( ) { var c = a ( this ) , d = c . data ( ) ; d . offset = d . offset || { } , null != d . offsetBottom && ( d . offset . bottom = d . offsetBottom ) , null != d . offsetTop && ( d . offset . top = d . offsetTop ) , b . call ( c , d ) } ) } ) } ( jQuery ) ; $ ( function ( ) {
$ ( '.note' ) . before ( "<p class='admonition-title note'>Note</p>" ) ;
$ ( '.seealso' ) . before ( "<p class='admonition-title seealso'>See also</p>" ) ;
$ ( '.warning' ) . before ( "<p class='admonition-title warning'>Warning</p>" ) ;
$ ( '.caution' ) . before ( "<p class='admonition-title caution'>Caution</p>" ) ;
$ ( '.attention' ) . before ( "<p class='admonition-title attention'>Attention</p>" ) ;
$ ( '.tip' ) . before ( "<p class='admonition-title tip'>Tip</p>" ) ;
$ ( '.important' ) . before ( "<p class='admonition-title important'>Important</p>" ) ;
$ ( '.hint' ) . before ( "<p class='admonition-title hint'>Hint</p>" ) ;
$ ( '.error' ) . before ( "<p class='admonition-title error'>Error</p>" ) ;
$ ( '.danger' ) . before ( "<p class='admonition-title danger'>Danger</p>" ) ;
$ ( '.question' ) . before ( "<p class='admonition-title question'>Question</p>" ) ;
$ ( '.summary' ) . before ( "<p class='admonition-title hint'>Summary</p>" ) ;
} ) ;
$ ( document ) . ready ( function ( ) {
// Shift nav in mobile when clicking the menu.
$ ( document ) . on ( 'click' , "[data-toggle='wy-nav-top']" , function ( ) {
$ ( "[data-toggle='wy-nav-shift']" ) . toggleClass ( "shift" ) ;
$ ( "[data-toggle='rst-versions']" ) . toggleClass ( "shift" ) ;
} ) ;
// Close menu when you click a link.
$ ( document ) . on ( 'click' , ".wy-menu-vertical .current ul li a" , function ( ) {
$ ( "[data-toggle='wy-nav-shift']" ) . removeClass ( "shift" ) ;
$ ( "[data-toggle='rst-versions']" ) . toggleClass ( "shift" ) ;
} ) ;
$ ( document ) . on ( 'click' , "[data-toggle='rst-current-version']" , function ( ) {
$ ( "[data-toggle='rst-versions']" ) . toggleClass ( "shift-up" ) ;
} ) ;
// Make tables responsive
$ ( "table.docutils:not(.field-list)" ) . wrap ( "<div class='wy-table-responsive'></div>" ) ;
} ) ;
$ ( document ) . ready ( function ( ) {
$ ( '#text-table-of-contents ul' ) . first ( ) . addClass ( 'nav' ) ;
// ScrollSpy also requires that we use
// a Bootstrap nav component.
$ ( 'body' ) . scrollspy ( { target : '#text-table-of-contents' } ) ;
// add sticky table headers
$ ( 'table' ) . stickyTableHeaders ( ) ;
// set the height of tableOfContents
var $postamble = $ ( '#postamble' ) ;
var $tableOfContents = $ ( '#table-of-contents' ) ;
$tableOfContents . css ( { paddingBottom : $postamble . outerHeight ( ) } ) ;
// add TOC button
var toggleSidebar = $ ( '<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>' ) ;
$ ( '#content' ) . prepend ( toggleSidebar ) ;
// add close button when sidebar showed in mobile screen
var closeBtn = $ ( '<a class="close-sidebar" href="#">Close</a>' ) ;
var tocTitle = $ ( '#table-of-contents' ) . find ( 'h2' ) ;
tocTitle . append ( closeBtn ) ;
} ) ;
window . SphinxRtdTheme = ( function ( jquery ) {
var stickyNav = ( function ( ) {
var navBar ,
win ,
stickyNavCssClass = 'stickynav' ,
applyStickNav = function ( ) {
if ( navBar . height ( ) <= win . height ( ) ) {
navBar . addClass ( stickyNavCssClass ) ;
} else {
navBar . removeClass ( stickyNavCssClass ) ;
}
} ,
enable = function ( ) {
applyStickNav ( ) ;
win . on ( 'resize' , applyStickNav ) ;
} ,
init = function ( ) {
navBar = jquery ( 'nav.wy-nav-side:first' ) ;
win = jquery ( window ) ;
} ;
jquery ( init ) ;
return {
enable : enable
} ;
} ( ) ) ;
return {
StickyNav : stickyNav
} ;
} ( $ ) ) ;