2017-04-11 07:10:36 +00:00
! function ( a , l , h ) { function e ( d ) { return function ( ) { var k , a = arguments [ 0 ] ; k = "[" + ( d ? d + ":" : "" ) + a + "] http://errors.angularjs.org/1.4.14/" + ( d ? d + "/" : "" ) + a ; for ( a = 1 ; a < arguments . length ; a ++ ) { k = k + ( 1 == a ? "?" : "&" ) + "p" + ( a - 1 ) + "=" ; var u , b = encodeURIComponent ; u = arguments [ a ] ; u = "function" == typeof u ? u . toString ( ) . replace ( / \{[\s\S]*$/ , "" ) : "undefined" == typeof u ? "undefined" : "string" != typeof u ? JSON . stringify ( u ) : u ; k += b ( u ) } return Error ( k ) } } function c ( d ) { if ( null == d || O ( d ) ) return ! 1 ; if ( ha ( d ) || v ( d ) || Y && d instanceof Y ) return ! 0 ; var k =
"length" in Object ( d ) && d . length ; return I ( k ) && ( 0 <= k && ( k - 1 in d || d instanceof Array ) || "function" == typeof d . item ) } function b ( d , k , a ) { var u , G ; if ( d ) if ( J ( d ) ) for ( u in d ) "prototype" == u || "length" == u || "name" == u || d . hasOwnProperty && ! d . hasOwnProperty ( u ) || k . call ( a , d [ u ] , u , d ) ; else if ( ha ( d ) || c ( d ) ) { var e = "object" != typeof d ; u = 0 ; for ( G = d . length ; u < G ; u ++ ) ( e || u in d ) && k . call ( a , d [ u ] , u , d ) } else if ( d . forEach && d . forEach !== b ) d . forEach ( k , a , d ) ; else if ( null === d || "object" != typeof d || uc ( d ) ) if ( "function" == typeof d . hasOwnProperty ) for ( u in d ) d . hasOwnProperty ( u ) &&
k . call ( a , d [ u ] , u , d ) ; else for ( u in d ) ob . call ( d , u ) && k . call ( a , d [ u ] , u , d ) ; else for ( u in d ) k . call ( a , d [ u ] , u , d ) ; return d } function g ( d , k , a ) { for ( var u = Object . keys ( d ) . sort ( ) , b = 0 ; b < u . length ; b ++ ) k . call ( a , d [ u [ b ] ] , u [ b ] ) ; return u } function f ( d ) { return function ( k , a ) { d ( a , k ) } } function q ( ) { return ++ vc } function m ( d , k , a ) { for ( var b = d . $$hashKey , G = 0 , c = k . length ; G < c ; ++ G ) { var e = k [ G ] ; if ( p ( e ) || J ( e ) ) for ( var f = Object . keys ( e ) , h = 0 , g = f . length ; h < g ; h ++ ) { var l = f [ h ] , n = e [ l ] ; a && p ( n ) ? H ( n ) ? d [ l ] = new Date ( n . valueOf ( ) ) : K ( n ) ? d [ l ] = new RegExp ( n ) : n . nodeName ?
d [ l ] = n . cloneNode ( ! 0 ) : T ( n ) ? d [ l ] = n . clone ( ) : ( p ( d [ l ] ) || ( d [ l ] = ha ( n ) ? [ ] : { } ) , m ( d [ l ] , [ n ] , ! 0 ) ) : d [ l ] = n } } return b ? d . $$hashKey = b : delete d . $$hashKey , d } function n ( d ) { return m ( d , wb . call ( arguments , 1 ) , ! 1 ) } function t ( d ) { return m ( d , wb . call ( arguments , 1 ) , ! 0 ) } function x ( d , k ) { return n ( Object . create ( d ) , k ) } function r ( ) { } function y ( d ) { return d } function C ( d ) { return function ( ) { return d } } function A ( d ) { return J ( d . toString ) && d . toString !== pb } function E ( d ) { return "undefined" == typeof d } function F ( d ) { return "undefined" != typeof d } function p ( d ) { return null !==
d && "object" == typeof d } function v ( d ) { return "string" == typeof d } function I ( d ) { return "number" == typeof d } function H ( d ) { return "[object Date]" === pb . call ( d ) } function J ( d ) { return "function" == typeof d } function K ( d ) { return "[object RegExp]" === pb . call ( d ) } function O ( d ) { return d && d . window === d } function V ( d ) { return d && d . $evalAsync && d . $watch } function X ( d ) { return "boolean" == typeof d } function L ( d ) { return d && I ( d . length ) && xe . test ( pb . call ( d ) ) } function T ( d ) { return ! ( ! d || ! ( d . nodeName || d . prop && d . attr && d . find ) ) } function W ( d ) { var k =
{ } ; d = d . split ( "," ) ; var a ; for ( a = 0 ; a < d . length ; a ++ ) k [ d [ a ] ] = ! 0 ; return k } function ca ( d ) { return ma ( d . nodeName || d [ 0 ] && d [ 0 ] . nodeName ) } function B ( d , k ) { var a = d . indexOf ( k ) ; return 0 <= a && d . splice ( a , 1 ) , a } function P ( d , k ) { function a ( d , k ) { var a , b = k . $$hashKey ; if ( ha ( d ) ) { a = 0 ; for ( var G = d . length ; a < G ; a ++ ) k . push ( u ( d [ a ] ) ) } else if ( null === d || "object" != typeof d || uc ( d ) ) if ( d && "function" == typeof d . hasOwnProperty ) for ( a in d ) d . hasOwnProperty ( a ) && ( k [ a ] = u ( d [ a ] ) ) ; else for ( a in d ) ob . call ( d , a ) && ( k [ a ] = u ( d [ a ] ) ) ; else for ( a in d ) k [ a ] = u ( d [ a ] ) ;
return b ? k . $$hashKey = b : delete k . $$hashKey , k } function u ( d ) { if ( ! p ( d ) ) return d ; var k = c . indexOf ( d ) ; if ( - 1 !== k ) return e [ k ] ; if ( O ( d ) || V ( d ) ) throw Pa ( "cpws" ) ; var b , k = ! 1 ; return ha ( d ) ? ( b = [ ] , k = ! 0 ) : L ( d ) ? b = new d . constructor ( d ) : H ( d ) ? b = new Date ( d . getTime ( ) ) : K ( d ) ? ( b = new RegExp ( d . source , d . toString ( ) . match ( /[^\/]*$/ ) [ 0 ] ) , b . lastIndex = d . lastIndex ) : "[object Blob]" === pb . call ( d ) ? b = new d . constructor ( [ d ] , { type : d . type } ) : J ( d . cloneNode ) ? b = d . cloneNode ( ! 0 ) : ( b = Object . create ( uc ( d ) ) , k = ! 0 ) , c . push ( d ) , e . push ( b ) , k ? a ( d , b ) : b } var c = [ ] , e =
[ ] ; if ( k ) { if ( L ( k ) ) throw Pa ( "cpta" ) ; if ( d === k ) throw Pa ( "cpi" ) ; return ha ( k ) ? k . length = 0 : b ( k , function ( d , a ) { "$$hashKey" !== a && delete k [ a ] } ) , c . push ( d ) , e . push ( k ) , a ( d , k ) } return u ( d ) } function na ( d , k ) { if ( ha ( d ) ) { k = k || [ ] ; for ( var a = 0 , b = d . length ; a < b ; a ++ ) k [ a ] = d [ a ] } else if ( p ( d ) ) for ( a in k = k || { } , d ) "$" === a . charAt ( 0 ) && "$" === a . charAt ( 1 ) || ( k [ a ] = d [ a ] ) ; return k || d } function U ( d , k ) { if ( d === k ) return ! 0 ; if ( null === d || null === k ) return ! 1 ; if ( d !== d && k !== k ) return ! 0 ; var a , b = typeof d ; if ( b == typeof k && "object" == b ) { if ( ! ha ( d ) ) { if ( H ( d ) ) return ! ! H ( k ) &&
U ( d . getTime ( ) , k . getTime ( ) ) ; if ( K ( d ) ) return ! ! K ( k ) && d . toString ( ) == k . toString ( ) ; if ( V ( d ) || V ( k ) || O ( d ) || O ( k ) || ha ( k ) || H ( k ) || K ( k ) ) return ! 1 ; b = Fa ( ) ; for ( a in d ) if ( "$" !== a . charAt ( 0 ) && ! J ( d [ a ] ) ) { if ( ! U ( d [ a ] , k [ a ] ) ) return ! 1 ; b [ a ] = ! 0 } for ( a in k ) if ( ! ( a in b ) && "$" !== a . charAt ( 0 ) && F ( k [ a ] ) && ! J ( k [ a ] ) ) return ! 1 ; return ! 0 } if ( ! ha ( k ) ) return ! 1 ; if ( ( b = d . length ) == k . length ) { for ( a = 0 ; a < b ; a ++ ) if ( ! U ( d [ a ] , k [ a ] ) ) return ! 1 ; return ! 0 } } return ! 1 } function S ( d , k , a ) { return d . concat ( wb . call ( k , a ) ) } function da ( d , k ) { var a = 2 < arguments . length ? wb . call ( arguments ,
2 ) : [ ] ; return ! J ( k ) || k instanceof RegExp ? k : a . length ? function ( ) { return arguments . length ? k . apply ( d , S ( a , arguments , 0 ) ) : k . apply ( d , a ) } : function ( ) { return arguments . length ? k . apply ( d , arguments ) : k . call ( d ) } } function Q ( d , a ) { var k = a ; return "string" == typeof d && "$" === d . charAt ( 0 ) && "$" === d . charAt ( 1 ) ? k = h : O ( a ) ? k = "$WINDOW" : a && l === a ? k = "$DOCUMENT" : V ( a ) && ( k = "$SCOPE" ) , k } function ka ( d , a ) { return E ( d ) ? h : ( I ( a ) || ( a = a ? 2 : null ) , JSON . stringify ( d , Q , a ) ) } function ga ( d ) { return v ( d ) ? JSON . parse ( d ) : d } function Z ( d , a ) { d = d . replace ( Bd , "" ) ; var k =
Date . parse ( "Jan 01, 1970 00:00:00 " + d ) / 6E4 ; return isNaN ( k ) ? a : k } function va ( d , a , b ) { b = b ? - 1 : 1 ; var k = d . getTimezoneOffset ( ) ; return a = Z ( a , k ) , b *= a - k , d = new Date ( d . getTime ( ) ) , d . setMinutes ( d . getMinutes ( ) + b ) , d } function sa ( d ) { d = Y ( d ) . clone ( ) ; try { d . empty ( ) } catch ( G ) { } var a = Y ( "<div>" ) . append ( d ) . html ( ) ; try { return d [ 0 ] . nodeType === Mb ? ma ( a ) : a . match ( /^(<[^>]+>)/ ) [ 1 ] . replace ( /^<([\w\-]+)/ , function ( d , a ) { return "<" + ma ( a ) } ) } catch ( G ) { return ma ( a ) } } function ja ( d ) { try { return decodeURIComponent ( d ) } catch ( k ) { } } function Ga ( d ) { var a =
{ } ; return b ( ( d || "" ) . split ( "&" ) , function ( d ) { var k , b , G ; d && ( b = d = d . replace ( /\+/g , "%20" ) , k = d . indexOf ( "=" ) , - 1 !== k && ( b = d . substring ( 0 , k ) , G = d . substring ( k + 1 ) ) , b = ja ( b ) , F ( b ) && ( G = ! F ( G ) || ja ( G ) , ob . call ( a , b ) ? ha ( a [ b ] ) ? a [ b ] . push ( G ) : a [ b ] = [ a [ b ] , G ] : a [ b ] = G ) ) } ) , a } function wa ( d ) { var a = [ ] ; return b ( d , function ( d , k ) { ha ( d ) ? b ( d , function ( d ) { a . push ( ra ( k , ! 0 ) + ( ! 0 === d ? "" : "=" + ra ( d , ! 0 ) ) ) } ) : a . push ( ra ( k , ! 0 ) + ( ! 0 === d ? "" : "=" + ra ( d , ! 0 ) ) ) } ) , a . length ? a . join ( "&" ) : "" } function qa ( d ) { return ra ( d , ! 0 ) . replace ( /%26/gi , "&" ) . replace ( /%3D/gi , "=" ) . replace ( /%2B/gi ,
"+" ) } function ra ( d , a ) { return encodeURIComponent ( d ) . replace ( /%40/gi , "@" ) . replace ( /%3A/gi , ":" ) . replace ( /%24/g , "$" ) . replace ( /%2C/gi , "," ) . replace ( /%3B/gi , ";" ) . replace ( /%20/g , a ? "%20" : "+" ) } function Aa ( d , a ) { var k , b , c = bc . length ; for ( b = 0 ; b < c ; ++ b ) if ( k = bc [ b ] + a , v ( k = d . getAttribute ( k ) ) ) return k ; return null } function qb ( d , a ) { var k , u , c = { } ; b ( bc , function ( a ) { a += "app" ; ! k && d . hasAttribute && d . hasAttribute ( a ) && ( k = d , u = d . getAttribute ( a ) ) } ) ; b ( bc , function ( a ) { a += "app" ; var b ; ! k && ( b = d . querySelector ( "[" + a . replace ( ":" , "\\:" ) + "]" ) ) &&
( k = b , u = b . getAttribute ( a ) ) } ) ; k && ( c . strictDi = null !== Aa ( k , "strict-di" ) , a ( k , u ? [ u ] : [ ] , c ) ) } function ba ( d , k , G ) { p ( G ) || ( G = { } ) ; G = n ( { strictDi : ! 1 } , G ) ; var u = function ( ) { if ( d = Y ( d ) , d . injector ( ) ) { var a = d [ 0 ] === l ? "document" : sa ( d ) ; throw Pa ( "btstrpd" , a . replace ( /</ , "<" ) . replace ( />/ , ">" ) ) ; } return k = k || [ ] , k . unshift ( [ "$provide" , function ( a ) { a . value ( "$rootElement" , d ) } ] ) , G . debugInfoEnabled && k . push ( [ "$compileProvider" , function ( d ) { d . debugInfoEnabled ( ! 0 ) } ] ) , k . unshift ( "ng" ) , a = ab ( k , G . strictDi ) , a . invoke ( [ "$rootScope" , "$rootElement" ,
"$compile" , "$injector" , function ( d , a , k , b ) { d . $apply ( function ( ) { a . data ( "$injector" , b ) ; k ( a ) ( d ) } ) } ] ) , a } , c = /^NG_ENABLE_DEBUG_INFO!/ , e = /^NG_DEFER_BOOTSTRAP!/ ; return a && c . test ( a . name ) && ( G . debugInfoEnabled = ! 0 , a . name = a . name . replace ( c , "" ) ) , a && ! e . test ( a . name ) ? u ( ) : ( a . name = a . name . replace ( e , "" ) , Ha . resumeBootstrap = function ( d ) { return b ( d , function ( d ) { k . push ( d ) } ) , u ( ) } , void ( J ( Ha . resumeDeferredBootstrap ) && Ha . resumeDeferredBootstrap ( ) ) ) } function xb ( ) { a . name = "NG_ENABLE_DEBUG_INFO!" + a . name ; a . location . reload ( ) } function La ( d ) { if ( d =
Ha . element ( d ) . injector ( ) , ! d ) throw Pa ( "test" ) ; return d . get ( "$$testability" ) } function jb ( d , a ) { return a = a || "_" , d . replace ( ye , function ( d , k ) { return ( k ? a : "" ) + d . toLowerCase ( ) } ) } function Sa ( ) { var d ; if ( ! Cd ) { var k = wc ( ) ; ( xa = E ( k ) ? a . jQuery : k ? a [ k ] : h ) && xa . fn . on ? ( Y = xa , n ( xa . fn , { scope : Nb . scope , isolateScope : Nb . isolateScope , controller : Nb . controller , injector : Nb . injector , inheritedData : Nb . inheritedData } ) , d = xa . cleanData , xa . cleanData = function ( a ) { var k ; if ( Yc ) Yc = ! 1 ; else for ( var b , G = 0 ; null != ( b = a [ G ] ) ; G ++ ) ( k = xa . _data ( b , "events" ) ) &&
k . $destroy && xa ( b ) . triggerHandler ( "$destroy" ) ; d ( a ) } ) : Y = Ia ; Ha . element = Y ; Cd = ! 0 } } function Ta ( d , a , b ) { if ( ! d ) throw Pa ( "areq" , a || "?" , b || "required" ) ; return d } function rb ( d , a , b ) { return b && ha ( d ) && ( d = d [ d . length - 1 ] ) , Ta ( J ( d ) , a , "not a function, got " + ( d && "object" == typeof d ? d . constructor . name || "Object" : typeof d ) ) , d } function Ob ( d , a ) { if ( "hasOwnProperty" === d ) throw Pa ( "badname" , a ) ; } function cc ( d , a , b ) { if ( ! a ) return d ; a = a . split ( "." ) ; for ( var k , G = d , c = a . length , e = 0 ; e < c ; e ++ ) k = a [ e ] , d && ( d = ( G = d ) [ k ] ) ; return ! b && J ( d ) ? da ( G , d ) : d } function Zc ( d ) { for ( var a ,
b = d [ 0 ] , u = d [ d . length - 1 ] , c = 1 ; b !== u && ( b = b . nextSibling ) ; c ++ ) ( a || d [ c ] !== b ) && ( a || ( a = Y ( wb . call ( d , 0 , c ) ) ) , a . push ( b ) ) ; return a || d } function Fa ( ) { return Object . create ( null ) } function Pf ( d ) { function a ( d , a , k ) { return d [ a ] || ( d [ a ] = k ( ) ) } var b = e ( "$injector" ) , u = e ( "ng" ) ; return d = a ( d , "angular" , Object ) , d . $$minErr = d . $$minErr || e , a ( d , "module" , function ( ) { var d = { } ; return function ( k , G , c ) { if ( "hasOwnProperty" === k ) throw u ( "badname" , "module" ) ; return G && d . hasOwnProperty ( k ) && ( d [ k ] = null ) , a ( d , k , function ( ) { function d ( d , a , k , b ) { return b ||
( b = u ) , function ( ) { return b [ k || "push" ] ( [ d , a , arguments ] ) , g } } function a ( d , a ) { return function ( b , G ) { return G && J ( G ) && ( G . $$moduleName = k ) , u . push ( [ d , a , arguments ] ) , g } } if ( ! G ) throw b ( "nomod" , k ) ; var u = [ ] , e = [ ] , f = [ ] , h = d ( "$injector" , "invoke" , "push" , e ) , g = { _invokeQueue : u , _configBlocks : e , _runBlocks : f , requires : G , name : k , provider : a ( "$provide" , "provider" ) , factory : a ( "$provide" , "factory" ) , service : a ( "$provide" , "service" ) , value : d ( "$provide" , "value" ) , constant : d ( "$provide" , "constant" , "unshift" ) , decorator : a ( "$provide" , "decorator" ) ,
animation : a ( "$animateProvider" , "register" ) , filter : a ( "$filterProvider" , "register" ) , controller : a ( "$controllerProvider" , "register" ) , directive : a ( "$compileProvider" , "directive" ) , config : h , run : function ( d ) { return f . push ( d ) , this } } ; return c && h ( c ) , g } ) } } ) } function ze ( d ) { n ( d , { bootstrap : ba , copy : P , extend : n , merge : t , equals : U , element : Y , forEach : b , injector : ab , noop : r , bind : da , toJson : ka , fromJson : ga , identity : y , isUndefined : E , isDefined : F , isString : v , isFunction : J , isObject : p , isNumber : I , isElement : T , isArray : ha , version : Ae , isDate : H ,
lowercase : ma , uppercase : fb , callbacks : { counter : 0 } , getTestability : La , $$minErr : e , $$csp : Qb , reloadWithDebugInfo : xb } ) ; ( Eb = Pf ( a ) ) ( "ng" , [ "ngLocale" ] , [ "$provide" , function ( d ) { d . provider ( { $$sanitizeUri : ad } ) ; d . provider ( "$compile" , Fb ) . directive ( { a : bd , input : mc , textarea : mc , form : Be , script : Qf , select : Rf , style : Sf , option : Tf , ngBind : Dd , ngBindHtml : Ce , ngBindTemplate : De , ngClass : yc , ngClassEven : Uf , ngClassOdd : Ee , ngCloak : Vf , ngController : Wf , ngForm : Qa , ngHide : Xf , ngIf : Yf , ngInclude : Zf , ngInit : $f , ngNonBindable : ag , ngPluralize : bg , ngRepeat : zc ,
ngShow : Fe , ngStyle : Ge , ngSwitch : cg , ngSwitchWhen : dg , ngSwitchDefault : eg , ngOptions : He , ngTransclude : fg , ngModel : Ie , ngList : gg , ngChange : Ed , pattern : cd , ngPattern : cd , required : ia , ngRequired : ia , minlength : Je , ngMinlength : Je , maxlength : dd , ngMaxlength : dd , ngValue : Fd , ngModelOptions : hg } ) . directive ( { ngInclude : ig } ) . directive ( yb ) . directive ( Ke ) ; d . provider ( { $anchorScroll : Gd , $animate : Rb , $animateCss : Le , $$animateJs : Me , $$animateQueue : Hd , $$AnimateRunner : ed , $$animateAsyncRun : Ne , $browser : Ac , $cacheFactory : Id , $controller : sb , $document : oa ,
$exceptionHandler : Ag , $filter : Bc , $$forceReflow : dc , $interpolate : Jd , $interval : Cc , $http : Bg , $httpParamSerializer : Cg , $httpParamSerializerJQLike : Ya , $httpBackend : Oe , $xhrFactory : Dg , $location : Pe , $log : Gb , $parse : Eg , $rootScope : Kd , $q : Qe , $$q : Re , $sce : gb , $sceDelegate : Se , $sniffer : Te , $templateCache : zb , $templateRequest : Ue , $$testability : Ve , $timeout : fd , $window : We , $$rAF : Ld , $$jqLite : Ba , $$HashMap : Xe , $$cookieReader : gd } ) } ] ) } function nc ( d ) { return d . replace ( Md , function ( d , a , b , c ) { return c ? b . toUpperCase ( ) : b } ) . replace ( hd , "Moz$1" ) }
function Ye ( d ) { return d = d . nodeType , 1 === d || ! d || 9 === d } function Ze ( d , a ) { var k , u , c = a . createDocumentFragment ( ) , e = [ ] ; if ( Dc . test ( d ) ) { k = k || c . appendChild ( a . createElement ( "div" ) ) ; u = ( ta . exec ( d ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ; u = Ma [ u ] || Ma . _default ; k . innerHTML = u [ 1 ] + d . replace ( $e , "<$1></$2>" ) + u [ 2 ] ; for ( u = u [ 0 ] ; u -- ; ) k = k . lastChild ; e = S ( e , k . childNodes ) ; k = c . firstChild ; k . textContent = "" } else e . push ( a . createTextNode ( d ) ) ; return c . textContent = "" , c . innerHTML = "" , b ( e , function ( d ) { c . appendChild ( d ) } ) , c } function af ( d , a ) { var k = d . parentNode ;
k && k . replaceChild ( a , d ) ; a . appendChild ( d ) } function Ia ( d ) { if ( d instanceof Ia ) return d ; var a ; if ( v ( d ) && ( d = ya ( d ) , a = ! 0 ) , ! ( this instanceof Ia ) ) { if ( a && "<" != d . charAt ( 0 ) ) throw id ( "nosel" ) ; return new Ia ( d ) } if ( a ) { a = l ; var b ; d = ( b = bf . exec ( d ) ) ? [ a . createElement ( b [ 1 ] ) ] : ( b = Ze ( d , a ) ) ? b . childNodes : [ ] } Sb ( this , d ) } function jd ( d ) { return d . cloneNode ( ! 0 ) } function kd ( d , a ) { if ( a || ld ( d ) , d . querySelectorAll ) for ( var k = d . querySelectorAll ( "*" ) , b = 0 , c = k . length ; b < c ; b ++ ) ld ( k [ b ] ) } function cf ( d , a , c , u ) { if ( F ( u ) ) throw id ( "offargs" ) ; var k = ( u = Ec ( d ) ) &&
u . events , G = u && u . handle ; if ( G ) if ( a ) { var e = function ( a ) { var b = k [ a ] ; F ( c ) && B ( b || [ ] , c ) ; F ( c ) && b && 0 < b . length || ( d . removeEventListener ( a , G , ! 1 ) , delete k [ a ] ) } ; b ( a . split ( " " ) , function ( d ) { e ( d ) ; Fc [ d ] && e ( Fc [ d ] ) } ) } else for ( a in k ) "$destroy" !== a && d . removeEventListener ( a , G , ! 1 ) , delete k [ a ] } function ld ( d , a ) { var k = d . ng339 , b = k && ec [ k ] ; b && ( a ? delete b . data [ a ] : ( b . handle && ( b . events . $destroy && b . handle ( { } , "$destroy" ) , cf ( d ) ) , delete ec [ k ] , d . ng339 = h ) ) } function Ec ( d , a ) { var k = d . ng339 , k = k && ec [ k ] ; return a && ! k && ( d . ng339 = k = ++ Nd , k = ec [ k ] =
{ events : { } , data : { } , handle : h } ) , k } function Od ( d , a , b ) { if ( Ye ( d ) ) { var k = F ( b ) , c = ! k && a && ! p ( a ) , e = ! a ; if ( d = ( d = Ec ( d , ! c ) ) && d . data , k ) d [ a ] = b ; else { if ( e ) return d ; if ( c ) return d && d [ a ] ; n ( d , a ) } } } function md ( d , a ) { return ! ! d . getAttribute && - 1 < ( " " + ( d . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) . indexOf ( " " + a + " " ) } function Hb ( d , a ) { a && d . setAttribute && b ( a . split ( " " ) , function ( a ) { d . setAttribute ( "class" , ya ( ( " " + ( d . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) . replace ( " " + ya ( a ) + " " , " " ) ) ) } ) } function fc ( d , a ) { if ( a &&
d . setAttribute ) { var k = ( " " + ( d . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) ; b ( a . split ( " " ) , function ( d ) { d = ya ( d ) ; - 1 === k . indexOf ( " " + d + " " ) && ( k += d + " " ) } ) ; d . setAttribute ( "class" , ya ( k ) ) } } function Sb ( d , a ) { if ( a ) if ( a . nodeType ) d [ d . length ++ ] = a ; else { var k = a . length ; if ( "number" == typeof k && a . window !== a ) { if ( k ) for ( var b = 0 ; b < k ; b ++ ) d [ d . length ++ ] = a [ b ] } else d [ d . length ++ ] = a } } function Gc ( d , a ) { return Ib ( d , "$" + ( a || "ngController" ) + "Controller" ) } function Ib ( d , a , b ) { 9 == d . nodeType && ( d = d . documentElement ) ; for ( a = ha ( a ) ?
a : [ a ] ; d ; ) { for ( var k = 0 , c = a . length ; k < c ; k ++ ) if ( F ( b = Y . data ( d , a [ k ] ) ) ) return b ; d = d . parentNode || 11 === d . nodeType && d . host } } function oc ( d ) { for ( kd ( d , ! 0 ) ; d . firstChild ; ) d . removeChild ( d . firstChild ) } function Hc ( d , a ) { a || kd ( d ) ; var k = d . parentNode ; k && k . removeChild ( d ) } function Tb ( d , k ) { k = k || a ; "complete" === k . document . readyState ? k . setTimeout ( d ) : Y ( k ) . on ( "load" , d ) } function df ( d , a ) { var k = Ab [ a . toLowerCase ( ) ] ; return k && za [ ca ( d ) ] && k } function jg ( d , a ) { var k = function ( k , b ) { k . isDefaultPrevented = function ( ) { return k . defaultPrevented } ;
var u = a [ b || k . type ] , c = u ? u . length : 0 ; if ( c ) { if ( E ( k . immediatePropagationStopped ) ) { var e = k . stopImmediatePropagation ; k . stopImmediatePropagation = function ( ) { k . immediatePropagationStopped = ! 0 ; k . stopPropagation && k . stopPropagation ( ) ; e && e . call ( k ) } } k . isImmediatePropagationStopped = function ( ) { return ! 0 === k . immediatePropagationStopped } ; var f = u . specialHandlerWrapper || kg ; 1 < c && ( u = na ( u ) ) ; for ( var G = 0 ; G < c ; G ++ ) k . isImmediatePropagationStopped ( ) || f ( d , k , u [ G ] ) } } ; return k . elem = d , k } function kg ( d , a , b ) { b . call ( d , a ) } function Ca ( d , a ,
b ) { var k = a . relatedTarget ; k && ( k === d || ef . call ( d , k ) ) || b . call ( d , a ) } function Ba ( ) { this . $get = function ( ) { return n ( Ia , { hasClass : function ( d , a ) { return d . attr && ( d = d [ 0 ] ) , md ( d , a ) } , addClass : function ( d , a ) { return d . attr && ( d = d [ 0 ] ) , fc ( d , a ) } , removeClass : function ( d , a ) { return d . attr && ( d = d [ 0 ] ) , Hb ( d , a ) } } ) } } function kb ( d , a ) { var k = d && d . $$hashKey ; return k ? ( "function" == typeof k && ( k = d . $$hashKey ( ) ) , k ) : ( k = typeof d , "function" == k || "object" == k && null !== d ? d . $$hashKey = k + ":" + ( a || q ) ( ) : k + ":" + d ) } function Jb ( d , a ) { if ( a ) { var k = 0 ; this . nextUid =
function ( ) { return ++ k } } b ( d , this . put , this ) } function Pd ( d ) { return ( d = d . toString ( ) . replace ( gc , "" ) . match ( Ic ) ) ? "function(" + ( d [ 1 ] || "" ) . replace ( /[\s\r\n]+/ , " " ) + ")" : "fn" } function ab ( d , a ) { function k ( d ) { return function ( a , k ) { return p ( a ) ? void b ( a , f ( d ) ) : d ( a , k ) } } function u ( d , a ) { if ( Ob ( d , "service" ) , ( J ( a ) || ha ( a ) ) && ( a = t . instantiate ( a ) ) , ! a . $get ) throw Ub ( "pget" , d ) ; return q [ d + "Provider" ] = a } function c ( d , a ) { return function ( ) { var k = B . invoke ( a , this ) ; if ( E ( k ) ) throw Ub ( "undef" , d ) ; return k } } function e ( d , a , k ) { return u ( d , { $get : ! 1 !==
k ? c ( d , a ) : a } ) } function g ( d ) { Ta ( E ( d ) || ha ( d ) , "modulesToLoad" , "not an array" ) ; var a , k = [ ] ; return b ( d , function ( d ) { function b ( d ) { var a , k ; a = 0 ; for ( k = d . length ; a < k ; a ++ ) { var b = d [ a ] , u = t . get ( b [ 0 ] ) ; u [ b [ 1 ] ] . apply ( u , b [ 2 ] ) } } if ( ! r . get ( d ) ) { r . put ( d , ! 0 ) ; try { v ( d ) ? ( a = Eb ( d ) , k = k . concat ( g ( a . requires ) ) . concat ( a . _runBlocks ) , b ( a . _invokeQueue ) , b ( a . _configBlocks ) ) : J ( d ) ? k . push ( t . invoke ( d ) ) : ha ( d ) ? k . push ( t . invoke ( d ) ) : rb ( d , "module" ) } catch ( lb ) { throw ha ( d ) && ( d = d [ d . length - 1 ] ) , lb . message && lb . stack && - 1 == lb . stack . indexOf ( lb . message ) && ( lb =
lb . message + "\n" + lb . stack ) , Ub ( "modulerr" , d , lb . stack || lb . message || lb ) ; } } } ) , k } function m ( d , k ) { function b ( a , b ) { if ( d . hasOwnProperty ( a ) ) { if ( d [ a ] === l ) throw Ub ( "cdep" , a + " <- " + n . join ( " <- " ) ) ; return d [ a ] } try { return n . unshift ( a ) , d [ a ] = l , d [ a ] = k ( a , b ) } catch ( Qd ) { throw d [ a ] === l && delete d [ a ] , Qd ; } finally { n . shift ( ) } } function u ( d , k , u , c ) { "string" == typeof u && ( c = u , u = null ) ; var e , f , G , w = [ ] , z = ab . $$annotate ( d , a , c ) ; f = 0 ; for ( e = z . length ; f < e ; f ++ ) { if ( G = z [ f ] , "string" != typeof G ) throw Ub ( "itkn" , G ) ; w . push ( u && u . hasOwnProperty ( G ) ? u [ G ] :
b ( G , c ) ) } return ha ( d ) && ( d = d [ e ] ) , d . apply ( k , w ) } return { invoke : u , instantiate : function ( d , a , k ) { var b = Object . create ( ( ha ( d ) ? d [ d . length - 1 ] : d ) . prototype || null ) ; return d = u ( d , b , a , k ) , p ( d ) || J ( d ) ? d : b } , get : b , annotate : ab . $$annotate , has : function ( a ) { return q . hasOwnProperty ( a + "Provider" ) || d . hasOwnProperty ( a ) } } } a = ! 0 === a ; var l = { } , n = [ ] , r = new Jb ( [ ] , ! 0 ) , q = { $provide : { provider : k ( u ) , factory : k ( e ) , service : k ( function ( d , a ) { return e ( d , [ "$injector" , function ( d ) { return d . instantiate ( a ) } ] ) } ) , value : k ( function ( d , a ) { return e ( d , C ( a ) , ! 1 ) } ) ,
constant : k ( function ( d , a ) { Ob ( d , "constant" ) ; q [ d ] = a ; x [ d ] = a } ) , decorator : function ( d , a ) { var k = t . get ( d + "Provider" ) , b = k . $get ; k . $get = function ( ) { var d = B . invoke ( b , k ) ; return B . invoke ( a , null , { $delegate : d } ) } } } } , t = q . $injector = m ( q , function ( d , a ) { throw Ha . isString ( a ) && n . push ( a ) , Ub ( "unpr" , n . join ( " <- " ) ) ; } ) , x = { } , B = x . $injector = m ( x , function ( d , a ) { var k = t . get ( d + "Provider" , a ) ; return B . invoke ( k . $get , k , h , d ) } ) ; return b ( g ( d ) , function ( d ) { d && B . invoke ( d ) } ) , B } function Gd ( ) { var d = ! 0 ; this . disableAutoScrolling = function ( ) { d = ! 1 } ; this . $get =
[ "$window" , "$location" , "$rootScope" , function ( a , b , u ) { function k ( d ) { var a = null ; return Array . prototype . some . call ( d , function ( d ) { if ( "a" === ca ( d ) ) return a = d , ! 0 } ) , a } function c ( d ) { if ( d ) { d . scrollIntoView ( ) ; var k ; k = e . yOffset ; J ( k ) ? k = k ( ) : T ( k ) ? ( k = k [ 0 ] , k = "fixed" !== a . getComputedStyle ( k ) . position ? 0 : k . getBoundingClientRect ( ) . bottom ) : I ( k ) || ( k = 0 ) ; k && ( d = d . getBoundingClientRect ( ) . top , a . scrollBy ( 0 , d - k ) ) } else a . scrollTo ( 0 , 0 ) } function e ( d ) { d = v ( d ) ? d : b . hash ( ) ; var a ; d ? ( a = f . getElementById ( d ) ) ? c ( a ) : ( a = k ( f . getElementsByName ( d ) ) ) ?
c ( a ) : "top" === d && c ( null ) : c ( null ) } var f = a . document ; return d && u . $watch ( function ( ) { return b . hash ( ) } , function ( d , a ) { d === a && "" === d || Tb ( function ( ) { u . $evalAsync ( e ) } ) } ) , e } ] } function Bb ( d , a ) { return d || a ? d ? a ? ( ha ( d ) && ( d = d . join ( " " ) ) , ha ( a ) && ( a = a . join ( " " ) ) , d + " " + a ) : d : a : "" } function tb ( d ) { v ( d ) && ( d = d . split ( " " ) ) ; var a = Fa ( ) ; return b ( d , function ( d ) { d . length && ( a [ d ] = ! 0 ) } ) , a } function Ua ( d ) { return p ( d ) ? d : { } } function Rd ( d , a , c , u ) { function k ( d ) { try { d . apply ( null , wb . call ( arguments , 1 ) ) } finally { if ( q -- , 0 === q ) for ( ; t . length ; ) try { t . pop ( ) ( ) } catch ( mg ) { c . error ( mg ) } } }
function e ( ) { A = null ; f ( ) ; h ( ) } function f ( ) { a : { try { x = m . state ; break a } catch ( tg ) { } x = void 0 } x = E ( x ) ? null : x ; U ( x , F ) && ( x = F ) ; F = x } function h ( ) { B === G . url ( ) && v === x || ( B = G . url ( ) , v = x , b ( C , function ( d ) { d ( G . url ( ) , x ) } ) ) } var G = this , g = d . location , m = d . history , l = d . setTimeout , n = d . clearTimeout , p = { } ; G . isMock = ! 1 ; var q = 0 , t = [ ] ; G . $$completeOutstandingRequest = k ; G . $$incOutstandingRequestCount = function ( ) { q ++ } ; G . notifyWhenNoOutstandingRequests = function ( d ) { 0 === q ? d ( ) : t . push ( d ) } ; var x , v , B = g . href , y = a . find ( "base" ) , A = null ; f ( ) ; v = x ; G . url = function ( a ,
k , w ) { if ( E ( w ) && ( w = null ) , g !== d . location && ( g = d . location ) , m !== d . history && ( m = d . history ) , a ) { var z = v === w ; if ( B === a && ( ! u . history || z ) ) return G ; var b = B && Vb ( B ) === Vb ( a ) ; return B = a , v = w , ! u . history || b && z ? ( b && ! A || ( A = a ) , k ? g . replace ( a ) : b ? ( k = g , w = a . indexOf ( "#" ) , w = - 1 === w ? "" : a . substr ( w ) , k . hash = w ) : g . href = a , g . href !== a && ( A = a ) ) : ( m [ k ? "replaceState" : "pushState" ] ( w , "" , a ) , f ( ) , v = x ) , G } return A || g . href . replace ( /%27/g , "'" ) } ; G . state = function ( ) { return x } ; var C = [ ] , P = ! 1 , F = null ; G . onUrlChange = function ( a ) { return P || ( u . history && Y ( d ) . on ( "popstate" ,
e ) , Y ( d ) . on ( "hashchange" , e ) , P = ! 0 ) , C . push ( a ) , a } ; G . $$applicationDestroyed = function ( ) { Y ( d ) . off ( "hashchange popstate" , e ) } ; G . $$checkUrlChange = h ; G . baseHref = function ( ) { var d = y . attr ( "href" ) ; return d ? d . replace ( /^(https?\:)?\/\/[^\/]*/ , "" ) : "" } ; G . defer = function ( d , a ) { var w ; return q ++ , w = l ( function ( ) { delete p [ w ] ; k ( d ) } , a || 0 ) , p [ w ] = ! 0 , w } ; G . defer . cancel = function ( d ) { return ! ! p [ d ] && ( delete p [ d ] , n ( d ) , k ( r ) , ! 0 ) } } function Ac ( ) { this . $get = [ "$window" , "$log" , "$sniffer" , "$document" , function ( d , a , b , u ) { return new Rd ( d , u , a , b ) } ] } function Id ( ) { this . $get =
function ( ) { function d ( d , k ) { function b ( d ) { d != m && ( l ? l == d && ( l = d . n ) : l = d , u ( d . n , d . p ) , u ( d , m ) , m = d , m . n = null ) } function u ( d , a ) { d != a && ( d && ( d . p = a ) , a && ( a . n = d ) ) } if ( d in a ) throw e ( "$cacheFactory" ) ( "iid" , d ) ; var c = 0 , f = n ( { } , k , { id : d } ) , G = Fa ( ) , h = k && k . capacity || Number . MAX _VALUE , g = Fa ( ) , m = null , l = null ; return a [ d ] = { put : function ( d , a ) { if ( ! E ( a ) ) { if ( h < Number . MAX _VALUE ) { var k = g [ d ] || ( g [ d ] = { key : d } ) ; b ( k ) } return d in G || c ++ , G [ d ] = a , c > h && this . remove ( l . key ) , a } } , get : function ( d ) { if ( h < Number . MAX _VALUE ) { var a = g [ d ] ; if ( ! a ) return ; b ( a ) } return G [ d ] } ,
remove : function ( d ) { if ( h < Number . MAX _VALUE ) { var a = g [ d ] ; if ( ! a ) return ; a == m && ( m = a . p ) ; a == l && ( l = a . n ) ; u ( a . n , a . p ) ; delete g [ d ] } d in G && ( delete G [ d ] , c -- ) } , removeAll : function ( ) { G = Fa ( ) ; c = 0 ; g = Fa ( ) ; m = l = null } , destroy : function ( ) { g = f = G = null ; delete a [ d ] } , info : function ( ) { return n ( { } , f , { size : c } ) } } } var a = { } ; return d . info = function ( ) { var d = { } ; return b ( a , function ( a , k ) { d [ k ] = a . info ( ) } ) , d } , d . get = function ( d ) { return a [ d ] } , d } } function zb ( ) { this . $get = [ "$cacheFactory" , function ( d ) { return d ( "templates" ) } ] } function Fb ( d , a ) { function k ( d ,
a , k ) { var u = /^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/ , c = Fa ( ) ; return b ( d , function ( d , b ) { if ( d in A ) c [ b ] = A [ d ] ; else { var e = d . match ( u ) ; if ( ! e ) throw Va ( "iscp" , a , b , d , k ? "controller bindings definition" : "isolate scope definition" ) ; c [ b ] = { mode : e [ 1 ] [ 0 ] , collection : "*" === e [ 2 ] , optional : "?" === e [ 3 ] , attrName : e [ 4 ] || b } ; e [ 4 ] && ( A [ d ] = c [ b ] ) } } ) , c } function u ( d ) { var a = d . charAt ( 0 ) ; if ( ! a || a !== ma ( a ) ) throw Va ( "baddir" , d ) ; if ( d !== d . trim ( ) ) throw Va ( "baddir" , d ) ; } var c = { } , e = /^\s*directive\:\s*([\w\-]+)\s+(.*)$/ , g = /(([\w\-]+)(?:\:([^;]+))?;?)/ ,
m = W ( "ngSrc,ngSrcset,src,srcset" ) , q = /^(?:(\^\^?)?(\?)?(\^\^?)?)?/ , t = /^(on[a-z]+|formaction)$/ , A = Fa ( ) ; this . directive = function $c ( a , k ) { return Ob ( a , "directive" ) , v ( a ) ? ( u ( a ) , Ta ( k , "directiveFactory" ) , c . hasOwnProperty ( a ) || ( c [ a ] = [ ] , d . factory ( a + "Directive" , [ "$injector" , "$exceptionHandler" , function ( d , k ) { var u = [ ] ; return b ( c [ a ] , function ( b , c ) { try { var e = d . invoke ( b ) ; J ( e ) ? e = { compile : C ( e ) } : ! e . compile && e . link && ( e . compile = C ( e . link ) ) ; e . priority = e . priority || 0 ; e . index = c ; e . name = e . name || a ; e . require = e . require || e . controller &&
e . name ; e . restrict = e . restrict || "EA" ; e . $$moduleName = b . $$moduleName ; u . push ( e ) } catch ( pc ) { k ( pc ) } } ) , u } ] ) ) , c [ a ] . push ( k ) ) : b ( a , f ( $c ) ) , this } ; this . aHrefSanitizationWhitelist = function ( d ) { return F ( d ) ? ( a . aHrefSanitizationWhitelist ( d ) , this ) : a . aHrefSanitizationWhitelist ( ) } ; this . imgSrcSanitizationWhitelist = function ( d ) { return F ( d ) ? ( a . imgSrcSanitizationWhitelist ( d ) , this ) : a . imgSrcSanitizationWhitelist ( ) } ; var P = ! 0 ; this . debugInfoEnabled = function ( d ) { return F ( d ) ? ( P = d , this ) : P } ; this . $get = [ "$injector" , "$interpolate" , "$exceptionHandler" ,
"$templateRequest" , "$parse" , "$controller" , "$rootScope" , "$sce" , "$animate" , "$$sanitizeUri" , function ( d , a , u , f , G , aa , M , fa , pa , A ) { function C ( d , a ) { try { d . addClass ( a ) } catch ( Ng ) { } } function Oa ( d , a , w , z , k ) { d instanceof Y || ( d = Y ( d ) ) ; for ( var b = /\S+/ , N = 0 , u = d . length ; N < u ; N ++ ) { var c = d [ N ] ; c . nodeType === Mb && c . nodeValue . match ( b ) && af ( c , d [ N ] = l . createElement ( "span" ) ) } var e = Ea ( d , a , d , w , z , k ) ; Oa . $$addScopeClass ( d ) ; var f = null ; return function ( a , w , z ) { Ta ( a , "scope" ) ; k && k . needsNewScope && ( a = a . $parent . $new ( ) ) ; z = z || { } ; var b = z . parentBoundTranscludeFn ,
N = z . transcludeControllers ; if ( z = z . futureParentElement , b && b . $$boundTransclude && ( b = b . $$boundTransclude ) , f || ( f = ( z = z && z [ 0 ] ) && "foreignobject" !== ca ( z ) && z . toString ( ) . match ( /SVG/ ) ? "svg" : "html" ) , z = "html" !== f ? Y ( xc ( f , Y ( "<div>" ) . append ( d ) . html ( ) ) ) : w ? Nb . clone . call ( d ) : d , N ) for ( var u in N ) z . data ( "$" + u + "Controller" , N [ u ] . instance ) ; return Oa . $$addScopeInfo ( z , a ) , w && w ( z , a ) , e && e ( a , z , z , b ) , z } } function Ea ( d , a , k , b , N , u ) { function c ( d , z , k , b ) { var N , u , c , e , f , G , g ; if ( m ) for ( g = Array ( z . length ) , e = 0 ; e < l . length ; e += 3 ) N = l [ e ] , g [ N ] = z [ N ] ; else g =
z ; e = 0 ; for ( f = l . length ; e < f ; ) u = g [ l [ e ++ ] ] , z = l [ e ++ ] , N = l [ e ++ ] , z ? ( z . scope ? ( c = d . $new ( ) , Oa . $$addScopeInfo ( Y ( u ) , c ) ) : c = d , G = z . transcludeOnThisElement ? w ( d , z . transclude , b ) : ! z . templateOnThisElement && b ? b : ! b && a ? w ( d , a ) : null , z ( N , c , u , k , G ) ) : N && N ( d , u . childNodes , h , b ) } for ( var e , f , G , g , m , l = [ ] , n = 0 ; n < d . length ; n ++ ) e = new Q , f = z ( d [ n ] , [ ] , e , 0 === n ? b : h , N ) , ( u = f . length ? hb ( f , d [ n ] , e , a , k , null , [ ] , [ ] , u ) : null ) && u . scope && Oa . $$addScopeClass ( e . $$element ) , e = u && u . terminal || ! ( G = d [ n ] . childNodes ) || ! G . length ? null : Ea ( G , u ? ( u . transcludeOnThisElement ||
! u . templateOnThisElement ) && u . transclude : a ) , ( u || e ) && ( l . push ( n , u , e ) , g = ! 0 , m = m || u ) , u = null ; return g ? c : null } function w ( d , a , w ) { return function ( z , k , b , N , u ) { return z || ( z = d . $new ( ! 1 , u ) , z . $$transcluded = ! 0 ) , a ( z , k , { parentBoundTranscludeFn : w , transcludeControllers : b , futureParentElement : N } ) } } function z ( d , a , w , z , k ) { var b , N = w . $attr ; switch ( d . nodeType ) { case 1 : b = ca ( d ) ; H ( a , mb ( b ) , "E" , z , k ) ; for ( var u , c , f , G , h = d . attributes , m = 0 , l = h && h . length ; m < l ; m ++ ) { var n = ! 1 , ea = ! 1 ; u = h [ m ] ; c = u . name ; f = ya ( u . value ) ; u = mb ( c ) ; ( G = qa . test ( u ) ) && ( c = c . replace ( Sd ,
"" ) . substr ( 8 ) . replace ( /_(.)/g , function ( d , a ) { return a . toUpperCase ( ) } ) ) ; ( u = u . match ( Aa ) ) && K ( u [ 1 ] ) && ( n = c , ea = c . substr ( 0 , c . length - 5 ) + "end" , c = c . substr ( 0 , c . length - 6 ) ) ; u = mb ( c . toLowerCase ( ) ) ; N [ u ] = c ; ! G && w . hasOwnProperty ( u ) || ( w [ u ] = f , df ( d , u ) && ( w [ u ] = ! 0 ) ) ; La ( d , a , f , u , G ) ; H ( a , u , "A" , z , k , n , ea ) } if ( "input" === b && "hidden" === d . getAttribute ( "type" ) && d . setAttribute ( "autocomplete" , "off" ) , d = d . className , p ( d ) && ( d = d . animVal ) , v ( d ) && "" !== d ) for ( ; b = g . exec ( d ) ; ) u = mb ( b [ 2 ] ) , H ( a , u , "C" , z , k ) && ( w [ u ] = ya ( b [ 3 ] ) ) , d = d . substr ( b . index + b [ 0 ] . length ) ;
break ; case Mb : if ( 11 === hc ) for ( ; d . parentNode && d . nextSibling && d . nextSibling . nodeType === Mb ; ) d . nodeValue += d . nextSibling . nodeValue , d . parentNode . removeChild ( d . nextSibling ) ; I ( a , d . nodeValue ) ; break ; case 8 : try { ( b = e . exec ( d . nodeValue ) ) && ( u = mb ( b [ 1 ] ) , H ( a , u , "M" , z , k ) && ( w [ u ] = ya ( b [ 2 ] ) ) ) } catch ( Og ) { } } return a . sort ( W ) , a } function N ( d , a , w ) { var z = [ ] , k = 0 ; if ( a && d . hasAttribute && d . hasAttribute ( a ) ) { do { if ( ! d ) throw Va ( "uterdir" , a , w ) ; 1 == d . nodeType && ( d . hasAttribute ( a ) && k ++ , d . hasAttribute ( w ) && k -- ) ; z . push ( d ) ; d = d . nextSibling } while ( 0 <
k ) } else z . push ( d ) ; return Y ( z ) } function ea ( d , a , w ) { return function ( z , k , b , u , c ) { return k = N ( k [ 0 ] , a , w ) , d ( z , k , b , u , c ) } } function hb ( d , a , w , k , b , c , e , f , G ) { function g ( d , a , w , z ) { d && ( w && ( d = ea ( d , w , z ) ) , d . require = M . require , d . directiveName = fa , ( A === M || M . $$isolateScope ) && ( d = cc ( d , { isolateScope : ! 0 } ) ) , e . push ( d ) ) ; a && ( w && ( a = ea ( a , w , z ) ) , a . require = M . require , a . directiveName = fa , ( A === M || M . $$isolateScope ) && ( a = cc ( a , { isolateScope : ! 0 } ) ) , f . push ( a ) ) } function m ( d , a , w , z ) { var k ; if ( v ( a ) ) { var b = a . match ( q ) ; a = a . substring ( b [ 0 ] . length ) ; var N = b [ 1 ] ||
b [ 3 ] , b = "?" === b [ 2 ] ; if ( "^^" === N ? w = w . parent ( ) : k = ( k = z && z [ a ] ) && k . instance , k || ( z = "$" + a + "Controller" , k = N ? w . inheritedData ( z ) : w . data ( z ) ) , ! k && ! b ) throw Va ( "ctreq" , a , d ) ; } else if ( ha ( a ) ) for ( k = [ ] , N = 0 , b = a . length ; N < b ; N ++ ) k [ N ] = m ( d , a [ N ] , w , z ) ; return k || null } function n ( d , a , w , z , k , b ) { var N , u = Fa ( ) ; for ( N in z ) { var c = z [ N ] , e = { $scope : c === A || c . $$isolateScope ? k : b , $element : d , $attrs : a , $transclude : w } , f = c . controller ; "@" == f && ( f = a [ c . name ] ) ; e = aa ( f , e , ! 0 , c . controllerAs ) ; u [ c . name ] = e ; d . data ( "$" + c . name + "Controller" , e . instance ) } return u } function r ( d ,
z , k , b , N ) { function u ( d , a , w ) { var z ; return V ( d ) || ( w = a , a = d , d = h ) , F && ( z = l ) , w || ( w = F ? ea . parent ( ) : ea ) , N ( d , a , z , w , q ) } var c , G , g , l , M , ea , r ; a === k ? ( b = w , ea = w . $$element ) : ( ea = Y ( k ) , b = new Q ( ea , w ) ) ; g = z ; A ? G = z . $new ( ! 0 ) : hb && ( g = z . $parent ) ; N && ( M = u , M . $$boundTransclude = N ) ; B && ( l = n ( ea , b , M , B , G , z ) ) ; A && ( Oa . $$addScopeInfo ( ea , G , ! 0 , ! ( y && ( y === A || y === A . $$originalDirective ) ) ) , Oa . $$addScopeClass ( ea , ! 0 ) , G . $$isolateBindings = A . $$isolateBindings , ( r = Db ( z , b , G , G . $$isolateBindings , A ) ) && G . $on ( "$destroy" , r ) ) ; for ( var aa in l ) { r = B [ aa ] ; var p = l [ aa ] , fa =
r . $$bindings . bindToController ; p . identifier && fa && ( c = Db ( g , b , p . instance , fa , r ) ) ; var t = p ( ) ; t !== p . instance && ( p . instance = t , ea . data ( "$" + r . name + "Controller" , t ) , c && c ( ) , c = Db ( g , b , p . instance , fa , r ) ) } K = 0 ; for ( Td = e . length ; K < Td ; K ++ ) c = e [ K ] , pc ( c , c . isolateScope ? G : z , ea , b , c . require && m ( c . directiveName , c . require , ea , l ) , M ) ; var q = z ; A && ( A . template || null === A . templateUrl ) && ( q = G ) ; d && d ( q , k . childNodes , h , N ) ; for ( K = f . length - 1 ; 0 <= K ; K -- ) c = f [ K ] , pc ( c , c . isolateScope ? G : z , ea , b , c . require && m ( c . directiveName , c . require , ea , l ) , M ) } G = G || { } ; for ( var M ,
fa , t , x , pa = - Number . MAX _VALUE , hb = G . newScopeDirective , B = G . controllerDirectives , A = G . newIsolateScopeDirective , y = G . templateDirective , C = G . nonTlbTranscludeDirective , P = ! 1 , E = ! 1 , F = G . hasElementTranscludeDirective , Ea = w . $$element = Y ( a ) , H = k , K = 0 , Td = d . length ; K < Td ; K ++ ) { M = d [ K ] ; var D = M . $$start , X = M . $$end ; if ( D && ( Ea = N ( a , D , X ) ) , t = h , pa > M . priority ) break ; if ( ( t = M . scope ) && ( M . templateUrl || ( p ( t ) ? ( L ( "new/isolated scope" , A || hb , M , Ea ) , A = M ) : L ( "new/isolated scope" , A , M , Ea ) ) , hb = hb || M ) , fa = M . name , ! M . templateUrl && M . controller && ( t = M . controller ,
B = B || Fa ( ) , L ( "'" + fa + "' controller" , B [ fa ] , M , Ea ) , B [ fa ] = M ) , ( t = M . transclude ) && ( P = ! 0 , M . $$tlb || ( L ( "transclusion" , C , M , Ea ) , C = M ) , "element" == t ? ( F = ! 0 , pa = M . priority , t = Ea , Ea = w . $$element = Y ( l . createComment ( " " + fa + ": " + w [ fa ] + " " ) ) , a = Ea [ 0 ] , O ( b , wb . call ( t , 0 ) , a ) , H = Oa ( t , k , pa , c && c . name , { nonTlbTranscludeDirective : C } ) ) : ( t = Y ( jd ( a ) ) . contents ( ) , Ea . empty ( ) , H = Oa ( t , k , h , h , { needsNewScope : M . $$isolateScope || M . $$newScope } ) ) ) , M . template ) if ( E = ! 0 , L ( "template" , y , M , Ea ) , y = M , t = J ( M . template ) ? M . template ( Ea , w ) : M . template , t = S ( t ) , M . replace ) { if ( c =
M , t = Dc . test ( t ) ? ug ( xc ( M . templateNamespace , ya ( t ) ) ) : [ ] , a = t [ 0 ] , 1 != t . length || 1 !== a . nodeType ) throw Va ( "tplrt" , fa , "" ) ; O ( b , Ea , a ) ; t = { $attr : { } } ; var W = z ( a , [ ] , t ) , U = d . splice ( K + 1 , d . length - ( K + 1 ) ) ; ( A || hb ) && we ( W , A , hb ) ; d = d . concat ( W ) . concat ( U ) ; T ( w , t ) ; Td = d . length } else Ea . html ( t ) ; if ( M . templateUrl ) E = ! 0 , L ( "template" , y , M , Ea ) , y = M , M . replace && ( c = M ) , r = na ( d . splice ( K , d . length - K ) , Ea , w , b , P && H , e , f , { controllerDirectives : B , newScopeDirective : hb !== M && hb , newIsolateScopeDirective : A , templateDirective : y , nonTlbTranscludeDirective : C } ) , Td =
d . length ; else if ( M . compile ) try { x = M . compile ( Ea , w , H ) , J ( x ) ? g ( null , x , D , X ) : x && g ( x . pre , x . post , D , X ) } catch ( Jg ) { u ( Jg , sa ( Ea ) ) } M . terminal && ( r . terminal = ! 0 , pa = Math . max ( pa , M . priority ) ) } return r . scope = hb && ! 0 === hb . scope , r . transcludeOnThisElement = P , r . templateOnThisElement = E , r . transclude = H , G . hasElementTranscludeDirective = F , r } function we ( d , a , w ) { for ( var z = 0 , k = d . length ; z < k ; z ++ ) d [ z ] = x ( d [ z ] , { $$isolateScope : a , $$newScope : w } ) } function H ( a , w , z , b , N , e , f ) { if ( w === N ) return null ; if ( N = null , c . hasOwnProperty ( w ) ) { var G ; w = d . get ( w + "Directive" ) ;
for ( var g = 0 , h = w . length ; g < h ; g ++ ) try { if ( G = w [ g ] , ( E ( b ) || b > G . priority ) && - 1 != G . restrict . indexOf ( z ) ) { if ( e && ( G = x ( G , { $$start : e , $$end : f } ) ) , ! G . $$bindings ) { var m = G , l = G , n = G . name , ea = { isolateScope : null , bindToController : null } ; if ( p ( l . scope ) && ( ! 0 === l . bindToController ? ( ea . bindToController = k ( l . scope , n , ! 0 ) , ea . isolateScope = { } ) : ea . isolateScope = k ( l . scope , n , ! 1 ) ) , p ( l . bindToController ) && ( ea . bindToController = k ( l . bindToController , n , ! 0 ) ) , p ( ea . bindToController ) ) { var M = l . controller , r = l . controllerAs ; if ( ! M ) throw Va ( "noctrl" , n ) ; var aa ;
a : { var l = M , fa = r ; if ( fa && v ( fa ) ) aa = fa ; else { if ( v ( l ) ) { var t = Jc . exec ( l ) ; if ( t ) { aa = t [ 3 ] ; break a } } aa = void 0 } } if ( ! aa ) throw Va ( "noident" , n ) ; } var q = m . $$bindings = ea ; p ( q . isolateScope ) && ( G . $$isolateBindings = q . isolateScope ) } a . push ( G ) ; N = G } } catch ( Hg ) { u ( Hg ) } } return N } function K ( a ) { if ( c . hasOwnProperty ( a ) ) for ( var w = d . get ( a + "Directive" ) , z = 0 , k = w . length ; z < k ; z ++ ) if ( a = w [ z ] , a . multiElement ) return ! 0 ; return ! 1 } function T ( d , a ) { var w = a . $attr , z = d . $attr , k = d . $$element ; b ( d , function ( z , k ) { "$" != k . charAt ( 0 ) && ( a [ k ] && a [ k ] !== z && ( z += ( "style" ===
k ? ";" : " " ) + a [ k ] ) , d . $set ( k , z , ! 0 , w [ k ] ) ) } ) ; b ( a , function ( a , b ) { "class" == b ? ( C ( k , a ) , d [ "class" ] = ( d [ "class" ] ? d [ "class" ] + " " : "" ) + a ) : "style" == b ? ( k . attr ( "style" , k . attr ( "style" ) + ";" + a ) , d . style = ( d . style ? d . style + ";" : "" ) + a ) : "$" == b . charAt ( 0 ) || d . hasOwnProperty ( b ) || ( d [ b ] = a , z [ b ] = w [ b ] ) } ) } function na ( d , a , k , N , u , c , e , G ) { var g , h , m = [ ] , l = a [ 0 ] , n = d . shift ( ) , ea = x ( n , { templateUrl : null , transclude : null , replace : null , $$originalDirective : n } ) , M = J ( n . templateUrl ) ? n . templateUrl ( a , k ) : n . templateUrl , r = n . templateNamespace ; return a . empty ( ) , f ( M ) . then ( function ( f ) { var aa ,
fa ; if ( f = S ( f ) , n . replace ) { if ( f = Dc . test ( f ) ? ug ( xc ( r , ya ( f ) ) ) : [ ] , aa = f [ 0 ] , 1 != f . length || 1 !== aa . nodeType ) throw Va ( "tplrt" , n . name , M ) ; f = { $attr : { } } ; O ( N , a , aa ) ; var t = z ( aa , [ ] , f ) ; p ( n . scope ) && we ( t , ! 0 ) ; d = t . concat ( d ) ; T ( k , f ) } else aa = l , a . html ( f ) ; d . unshift ( ea ) ; g = hb ( d , aa , k , u , a , n , c , e , G ) ; b ( N , function ( d , w ) { d == aa && ( N [ w ] = a [ 0 ] ) } ) ; for ( h = Ea ( a [ 0 ] . childNodes , u ) ; m . length ; ) { f = m . shift ( ) ; fa = m . shift ( ) ; var q = m . shift ( ) , x = m . shift ( ) , t = a [ 0 ] ; if ( ! f . $$destroyed ) { if ( fa !== l ) { var pa = fa . className ; G . hasElementTranscludeDirective && n . replace || ( t = jd ( aa ) ) ;
O ( q , Y ( fa ) , t ) ; C ( Y ( t ) , pa ) } fa = g . transcludeOnThisElement ? w ( f , g . transclude , x ) : x ; g ( h , f , t , N , fa ) } } m = null } ) , function ( d , a , z , k , b ) { d = b ; a . $$destroyed || ( m ? m . push ( a , z , k , d ) : ( g . transcludeOnThisElement && ( d = w ( a , g . transclude , b ) ) , g ( h , a , z , k , d ) ) ) } } function W ( d , a ) { var w = a . priority - d . priority ; return 0 !== w ? w : d . name !== a . name ? d . name < a . name ? - 1 : 1 : d . index - a . index } function L ( d , a , w , z ) { function k ( d ) { return d ? " (module: " + d + ")" : "" } if ( a ) throw Va ( "multidir" , a . name , k ( a . $$moduleName ) , w . name , k ( w . $$moduleName ) , d , sa ( z ) ) ; } function I ( d , w ) { var z =
a ( w , ! 0 ) ; z && d . push ( { priority : 0 , compile : function ( d ) { d = d . parent ( ) ; var a = ! ! d . length ; return a && Oa . $$addBindingClass ( d ) , function ( d , w ) { var k = w . parent ( ) ; a || Oa . $$addBindingClass ( k ) ; Oa . $$addBindingInfo ( k , z . expressions ) ; d . $watch ( z , function ( d ) { w [ 0 ] . nodeValue = d } ) } } } ) } function xc ( d , a ) { switch ( d = ma ( d || "html" ) ) { case "svg" : case "math" : var w = l . createElement ( "div" ) ; return w . innerHTML = "<" + d + ">" + a + "</" + d + ">" , w . childNodes [ 0 ] . childNodes ; default : return a } } function Of ( d , a ) { if ( "srcdoc" == a ) return fa . HTML ; var w = ca ( d ) ; return "xlinkHref" ==
a || "form" == w && "action" == a || "img" != w && ( "src" == a || "ngSrc" == a ) ? fa . RESOURCE _URL : void 0 } function La ( d , w , z , k , b ) { var N = Of ( d , k ) ; b = m [ k ] || b ; var u = a ( z , ! 0 , N , b ) ; if ( u ) { if ( "multiple" === k && "select" === ca ( d ) ) throw Va ( "selmulti" , sa ( d ) ) ; w . push ( { priority : 100 , compile : function ( ) { return { pre : function ( d , w , c ) { if ( w = c . $$observers || ( c . $$observers = Fa ( ) ) , t . test ( k ) ) throw Va ( "nodomevents" ) ; var e = c [ k ] ; e !== z && ( u = e && a ( e , ! 0 , N , b ) , z = e ) ; u && ( c [ k ] = u ( d ) , ( w [ k ] || ( w [ k ] = [ ] ) ) . $$inter = ! 0 , ( c . $$observers && c . $$observers [ k ] . $$scope || d ) . $watch ( u , function ( d ,
a ) { "class" === k && d != a ? c . $updateClass ( d , a ) : c . $set ( k , d ) } ) ) } } } } ) } } function O ( d , a , w ) { var z , k , b = a [ 0 ] , N = a . length , u = b . parentNode ; if ( d ) for ( z = 0 , k = d . length ; z < k ; z ++ ) if ( d [ z ] == b ) { d [ z ++ ] = w ; k = z + N - 1 ; for ( var c = d . length ; z < c ; z ++ , k ++ ) k < c ? d [ z ] = d [ k ] : delete d [ z ] ; d . length -= N - 1 ; d . context === b && ( d . context = w ) ; break } u && u . replaceChild ( w , b ) ; d = l . createDocumentFragment ( ) ; d . appendChild ( b ) ; Y . hasData ( b ) && ( Y . data ( w , Y . data ( b ) ) , xa ? ( Yc = ! 0 , xa . cleanData ( [ b ] ) ) : delete Y . cache [ b [ Y . expando ] ] ) ; b = 1 ; for ( N = a . length ; b < N ; b ++ ) u = a [ b ] , Y ( u ) . remove ( ) , d . appendChild ( u ) ,
delete a [ b ] ; a [ 0 ] = w ; a . length = 1 } function cc ( d , a ) { return n ( function ( ) { return d . apply ( null , arguments ) } , d , a ) } function pc ( d , a , w , z , k , b ) { try { d ( a , w , z , k , b ) } catch ( Fg ) { u ( Fg , sa ( w ) ) } } function Db ( d , w , z , k , N ) { var u = [ ] ; return b ( k , function ( k , b ) { var c , e , f , g , h = k . attrName , m = k . optional ; switch ( k . mode ) { case "@" : m || ob . call ( w , h ) || ( z [ b ] = w [ h ] = void 0 ) ; w . $observe ( h , function ( d ) { v ( d ) && ( z [ b ] = d ) } ) ; w . $$observers [ h ] . $$scope = d ; c = w [ h ] ; v ( c ) ? z [ b ] = a ( c ) ( d ) : X ( c ) && ( z [ b ] = c ) ; break ; case "=" : if ( ! ob . call ( w , h ) ) { if ( m ) break ; w [ h ] = void 0 } if ( m && ! w [ h ] ) break ;
e = G ( w [ h ] ) ; g = e . literal ? U : function ( d , a ) { return d === a || d !== d && a !== a } ; f = e . assign || function ( ) { throw c = z [ b ] = e ( d ) , Va ( "nonassign" , w [ h ] , h , N . name ) ; } ; c = z [ b ] = e ( d ) ; m = function ( a ) { return g ( a , z [ b ] ) || ( g ( a , c ) ? f ( d , a = z [ b ] ) : z [ b ] = a ) , c = a } ; m . $stateful = ! 0 ; m = k . collection ? d . $watchCollection ( w [ h ] , m ) : d . $watch ( G ( w [ h ] , m ) , null , e . literal ) ; u . push ( m ) ; break ; case "&" : ( e = w . hasOwnProperty ( h ) ? G ( w [ h ] ) : r , e === r && m ) || ( z [ b ] = function ( a ) { return e ( d , a ) } ) } } ) , u . length && function ( ) { for ( var d = 0 , a = u . length ; d < a ; ++ d ) u [ d ] ( ) } } var Q = function ( d , a ) { if ( a ) { var w ,
z , k , b = Object . keys ( a ) ; w = 0 ; for ( z = b . length ; w < z ; w ++ ) k = b [ w ] , this [ k ] = a [ k ] } else this . $attr = { } ; this . $$element = d } ; Q . prototype = { $normalize : mb , $addClass : function ( d ) { d && 0 < d . length && pa . addClass ( this . $$element , d ) } , $removeClass : function ( d ) { d && 0 < d . length && pa . removeClass ( this . $$element , d ) } , $updateClass : function ( d , a ) { var w = D ( d , a ) ; w && w . length && pa . addClass ( this . $$element , w ) ; ( w = D ( a , d ) ) && w . length && pa . removeClass ( this . $$element , w ) } , $set : function ( d , a , w , z ) { var k = df ( this . $$element [ 0 ] , d ) , N = Vd [ d ] , c = d ; if ( k ? ( this . $$element . prop ( d ,
a ) , z = k ) : N && ( this [ N ] = a , c = N ) , this [ d ] = a , z ? this . $attr [ d ] = z : ( z = this . $attr [ d ] ) || ( this . $attr [ d ] = z = jb ( d , "-" ) ) , k = ca ( this . $$element ) , "a" === k && "href" === d || "img" === k && "src" === d ) this [ d ] = a = A ( a , "src" === d ) ; else if ( "img" === k && "srcset" === d && F ( a ) ) { for ( var k = "" , N = ya ( a ) , e = /(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/ , e = /\s/ . test ( N ) ? e : /(,)/ , N = N . split ( e ) , e = Math . floor ( N . length / 2 ) , f = 0 ; f < e ; f ++ ) var G = 2 * f , k = k + A ( ya ( N [ G ] ) , ! 0 ) , k = k + ( " " + ya ( N [ G + 1 ] ) ) ; N = ya ( N [ 2 * f ] ) . split ( /\s/ ) ; k += A ( ya ( N [ 0 ] ) , ! 0 ) ; 2 === N . length && ( k += " " + ya ( N [ 1 ] ) ) ; this [ d ] = a = k } ! 1 !==
w && ( null === a || E ( a ) ? this . $$element . removeAttr ( z ) : this . $$element . attr ( z , a ) ) ; ( d = this . $$observers ) && b ( d [ c ] , function ( d ) { try { d ( a ) } catch ( Gg ) { u ( Gg ) } } ) } , $observe : function ( d , a ) { var w = this , z = w . $$observers || ( w . $$observers = Fa ( ) ) , k = z [ d ] || ( z [ d ] = [ ] ) ; return k . push ( a ) , M . $evalAsync ( function ( ) { k . $$inter || ! w . hasOwnProperty ( d ) || E ( w [ d ] ) || a ( w [ d ] ) } ) , function ( ) { B ( k , a ) } } } ; var Pb = a . startSymbol ( ) , ra = a . endSymbol ( ) , S = "{{" == Pb && "}}" == ra ? y : function ( d ) { return d . replace ( /\{\{/g , Pb ) . replace ( /}}/g , ra ) } , qa = /^ngAttr[A-Z]/ , Aa = /^(.+)Start$/ ;
return Oa . $$addBindingInfo = P ? function ( d , a ) { var w = d . data ( "$binding" ) || [ ] ; ha ( a ) ? w = w . concat ( a ) : w . push ( a ) ; d . data ( "$binding" , w ) } : r , Oa . $$addBindingClass = P ? function ( d ) { C ( d , "ng-binding" ) } : r , Oa . $$addScopeInfo = P ? function ( d , a , w , z ) { d . data ( w ? z ? "$isolateScopeNoTemplate" : "$isolateScope" : "$scope" , a ) } : r , Oa . $$addScopeClass = P ? function ( d , a ) { C ( d , a ? "ng-isolate-scope" : "ng-scope" ) } : r , Oa } ] } function mb ( d ) { return nc ( d . replace ( Sd , "" ) ) } function D ( d , a ) { var k = "" , b = d . split ( /\s+/ ) , c = a . split ( /\s+/ ) , e = 0 ; a : for ( ; e < b . length ; e ++ ) { for ( var f =
b [ e ] , g = 0 ; g < c . length ; g ++ ) if ( f == c [ g ] ) continue a ; k += ( 0 < k . length ? " " : "" ) + f } return k } function ug ( d ) { d = Y ( d ) ; var a = d . length ; if ( 1 >= a ) return d ; for ( ; a -- ; ) 8 === d [ a ] . nodeType && ff . call ( d , a , 1 ) ; return d } function sb ( ) { var d = { } , a = ! 1 ; this . register = function ( a , k ) { Ob ( a , "controller" ) ; p ( a ) ? n ( d , a ) : d [ a ] = k } ; this . allowGlobals = function ( ) { a = ! 0 } ; this . $get = [ "$injector" , "$window" , function ( k , b ) { function u ( d , a , k , b ) { if ( ! d || ! p ( d . $scope ) ) throw e ( "$controller" ) ( "noscp" , b , a ) ; d . $scope [ a ] = k } return function ( c , e , f , G ) { var g , m , l ; if ( f = ! 0 === f ,
G && v ( G ) && ( l = G ) , v ( c ) ) { if ( G = c . match ( Jc ) , ! G ) throw gf ( "ctrlfmt" , c ) ; m = G [ 1 ] ; l = l || G [ 3 ] ; c = d . hasOwnProperty ( m ) ? d [ m ] : cc ( e . $scope , m , ! 0 ) || ( a ? cc ( b , m , ! 0 ) : h ) ; rb ( c , m , ! 0 ) } return f ? ( f = ( ha ( c ) ? c [ c . length - 1 ] : c ) . prototype , g = Object . create ( f || null ) , l && u ( e , l , g , m || c . name ) , n ( function ( ) { var d = k . invoke ( c , g , e , m ) ; return d !== g && ( p ( d ) || J ( d ) ) && ( g = d , l && u ( e , l , g , m || c . name ) ) , g } , { instance : g , identifier : l } ) ) : ( g = k . instantiate ( c , e , m ) , l && u ( e , l , g , m || c . name ) , g ) } } ] } function oa ( ) { this . $get = [ "$window" , function ( d ) { return Y ( d . document ) } ] } function Ag ( ) { this . $get =
[ "$log" , function ( d ) { return function ( a , b ) { d . error . apply ( d , arguments ) } } ] } function ng ( d ) { return p ( d ) ? H ( d ) ? d . toISOString ( ) : ka ( d ) : d } function Cg ( ) { this . $get = function ( ) { return function ( d ) { if ( ! d ) return "" ; var a = [ ] ; return g ( d , function ( d , k ) { null === d || E ( d ) || ( ha ( d ) ? b ( d , function ( d , b ) { a . push ( ra ( k ) + "=" + ra ( ng ( d ) ) ) } ) : a . push ( ra ( k ) + "=" + ra ( ng ( d ) ) ) ) } ) , a . join ( "&" ) } } } function Ya ( ) { this . $get = function ( ) { return function ( d ) { function a ( d , k , e ) { null === d || E ( d ) || ( ha ( d ) ? b ( d , function ( d , b ) { a ( d , k + "[" + ( p ( d ) ? b : "" ) + "]" ) } ) : p ( d ) && ! H ( d ) ? g ( d ,
function ( d , b ) { a ( d , k + ( e ? "" : "[" ) + b + ( e ? "" : "]" ) ) } ) : c . push ( ra ( k ) + "=" + ra ( ng ( d ) ) ) ) } if ( ! d ) return "" ; var c = [ ] ; return a ( d , "" , ! 0 ) , c . join ( "&" ) } } } function ib ( d , a ) { if ( v ( d ) ) { var k = d . replace ( Da , "" ) . trim ( ) ; if ( k ) { var b = a ( "Content-Type" ) ; ( b = b && 0 === b . indexOf ( Wd ) ) || ( b = ( b = k . match ( hf ) ) && od [ b [ 0 ] ] . test ( k ) ) ; b && ( d = ga ( k ) ) } } return d } function vg ( d ) { var a , c = Fa ( ) ; return v ( d ) ? b ( d . split ( "\n" ) , function ( d ) { a = d . indexOf ( ":" ) ; var k = ma ( ya ( d . substr ( 0 , a ) ) ) ; d = ya ( d . substr ( a + 1 ) ) ; k && ( c [ k ] = c [ k ] ? c [ k ] + ", " + d : d ) } ) : p ( d ) && b ( d , function ( d , a ) { var k = ma ( a ) ,
b = ya ( d ) ; k && ( c [ k ] = c [ k ] ? c [ k ] + ", " + b : b ) } ) , c } function wg ( d ) { var a ; return function ( k ) { return a || ( a = vg ( d ) ) , k ? ( k = a [ ma ( k ) ] , void 0 === k && ( k = null ) , k ) : a } } function ic ( d , a , c , u ) { return J ( u ) ? u ( d , a , c ) : ( b ( u , function ( k ) { d = k ( d , a , c ) } ) , d ) } function Bg ( ) { var d = this . defaults = { transformResponse : [ ib ] , transformRequest : [ function ( d ) { return p ( d ) && "[object File]" !== pb . call ( d ) && "[object Blob]" !== pb . call ( d ) && "[object FormData]" !== pb . call ( d ) ? ka ( d ) : d } ] , headers : { common : { Accept : "application/json, text/plain, */*" } , post : na ( Kc ) , put : na ( Kc ) ,
patch : na ( Kc ) } , xsrfCookieName : "XSRF-TOKEN" , xsrfHeaderName : "X-XSRF-TOKEN" , paramSerializer : "$httpParamSerializer" } , a = ! 1 ; this . useApplyAsync = function ( d ) { return F ( d ) ? ( a = ! ! d , this ) : a } ; var c = ! 0 ; this . useLegacyPromiseExtensions = function ( d ) { return F ( d ) ? ( c = ! ! d , this ) : c } ; var u = this . interceptors = [ ] ; this . $get = [ "$httpBackend" , "$$cookieReader" , "$cacheFactory" , "$rootScope" , "$q" , "$injector" , function ( k , f , g , G , m , l ) { function r ( a ) { function k ( d ) { var a = n ( { } , d ) ; return a . data = ic ( d . data , d . headers , d . status , f . transformResponse ) ,
d = d . status , 200 <= d && 300 > d ? a : m . reject ( a ) } function u ( d , a ) { var k , c = { } ; return b ( d , function ( d , z ) { J ( d ) ? ( k = d ( a ) , null != k && ( c [ z ] = k ) ) : c [ z ] = d } ) , c } if ( ! Ha . isObject ( a ) ) throw e ( "$http" ) ( "badreq" , a ) ; if ( ! v ( a . url ) ) throw e ( "$http" ) ( "badreq" , a . url ) ; var f = n ( { method : "get" , transformRequest : d . transformRequest , transformResponse : d . transformResponse , paramSerializer : d . paramSerializer } , a ) ; f . headers = function ( a ) { var k , b , c , w = d . headers , z = n ( { } , a . headers ) , w = n ( { } , w . common , w [ ma ( a . method ) ] ) ; a : for ( k in w ) { b = ma ( k ) ; for ( c in z ) if ( ma ( c ) ===
b ) continue a ; z [ k ] = w [ k ] } return u ( z , na ( a ) ) } ( a ) ; f . method = fb ( f . method ) ; f . paramSerializer = v ( f . paramSerializer ) ? l . get ( f . paramSerializer ) : f . paramSerializer ; var g = [ function ( a ) { var c = a . headers , u = ic ( a . data , wg ( c ) , h , a . transformRequest ) ; return E ( u ) && b ( c , function ( d , a ) { "content-type" === ma ( a ) && delete c [ a ] } ) , E ( a . withCredentials ) && ! E ( d . withCredentials ) && ( a . withCredentials = d . withCredentials ) , M ( a , u ) . then ( k , k ) } , h ] , G = m . when ( f ) ; for ( b ( fa , function ( d ) { ( d . request || d . requestError ) && g . unshift ( d . request , d . requestError ) ; ( d . response ||
d . responseError ) && g . push ( d . response , d . responseError ) } ) ; g . length ; ) { a = g . shift ( ) ; var r = g . shift ( ) , G = G . then ( a , r ) } return c ? ( G . success = function ( d ) { return rb ( d , "fn" ) , G . then ( function ( a ) { d ( a . data , a . status , a . headers , f ) } ) , G } , G . error = function ( d ) { return rb ( d , "fn" ) , G . then ( null , function ( a ) { d ( a . data , a . status , a . headers , f ) } ) , G } ) : ( G . success = jf ( "success" ) , G . error = jf ( "error" ) ) , G } function M ( b , c ) { function u ( d , k , b , c ) { function z ( ) { e ( k , d , b , c ) } n && ( 200 <= d && 300 > d ? n . put ( w , [ d , k , vg ( b ) , c ] ) : n . remove ( w ) ) ; a ? G . $applyAsync ( z ) : ( z ( ) , G . $$phase ||
G . $apply ( ) ) } function e ( d , a , w , k ) { a = - 1 <= a ? a : 0 ; ( 200 <= a && 300 > a ? fa . resolve : fa . reject ) ( { data : d , status : a , headers : wg ( w ) , config : b , statusText : k } ) } function g ( d ) { e ( d . data , d . status , na ( d . headers ( ) ) , d . statusText ) } function l ( ) { var d = r . pendingRequests . indexOf ( b ) ; - 1 !== d && r . pendingRequests . splice ( d , 1 ) } var n , M , fa = m . defer ( ) , q = fa . promise , x = b . headers , w = aa ( b . url , b . paramSerializer ( b . params ) ) ; return r . pendingRequests . push ( b ) , q . then ( l , l ) , ! b . cache && ! d . cache || ! 1 === b . cache || "GET" !== b . method && "JSONP" !== b . method || ( n = p ( b . cache ) ?
b . cache : p ( d . cache ) ? d . cache : t ) , n && ( M = n . get ( w ) , F ( M ) ? M && J ( M . then ) ? M . then ( g , g ) : ha ( M ) ? e ( M [ 1 ] , M [ 0 ] , na ( M [ 2 ] ) , M [ 3 ] ) : e ( M , 200 , { } , "OK" ) : n . put ( w , q ) ) , E ( M ) && ( ( M = Xd ( b . url ) ? f ( ) [ b . xsrfCookieName || d . xsrfCookieName ] : h ) && ( x [ b . xsrfHeaderName || d . xsrfHeaderName ] = M ) , k ( b . method , w , c , u , x , b . timeout , b . withCredentials , b . responseType ) ) , q } function aa ( d , a ) { return 0 < a . length && ( d += ( - 1 == d . indexOf ( "?" ) ? "?" : "&" ) + a ) , d } var t = g ( "$http" ) ; d . paramSerializer = v ( d . paramSerializer ) ? l . get ( d . paramSerializer ) : d . paramSerializer ; var fa = [ ] ; return b ( u ,
function ( d ) { fa . unshift ( v ( d ) ? l . get ( d ) : l . invoke ( d ) ) } ) , r . pendingRequests = [ ] , function ( d ) { b ( arguments , function ( d ) { r [ d ] = function ( a , k ) { return r ( n ( { } , k || { } , { method : d , url : a } ) ) } } ) } ( "get" , "delete" , "head" , "jsonp" ) , function ( d ) { b ( arguments , function ( d ) { r [ d ] = function ( a , k , b ) { return r ( n ( { } , b || { } , { method : d , url : a , data : k } ) ) } } ) } ( "post" , "put" , "patch" ) , r . defaults = d , r } ] } function Dg ( ) { this . $get = function ( ) { return function ( ) { return new a . XMLHttpRequest } } } function Oe ( ) { this . $get = [ "$browser" , "$window" , "$document" , "$xhrFactory" ,
function ( d , a , b , c ) { return kf ( d , c , d . defer , a . angular . callbacks , b [ 0 ] ) } ] } function kf ( d , a , c , u , e ) { function k ( d , a , k ) { var b = e . createElement ( "script" ) , c = null ; return b . type = "text/javascript" , b . src = d , b . async = ! 0 , c = function ( d ) { b . removeEventListener ( "load" , c , ! 1 ) ; b . removeEventListener ( "error" , c , ! 1 ) ; e . body . removeChild ( b ) ; b = null ; var f = - 1 , g = "unknown" ; d && ( "load" !== d . type || u [ a ] . called || ( d = { type : "error" } ) , g = d . type , f = "error" === d . type ? 404 : 200 ) ; k && k ( f , g ) } , b . addEventListener ( "load" , c , ! 1 ) , b . addEventListener ( "error" , c , ! 1 ) , e . body . appendChild ( b ) ,
c } return function ( e , f , g , h , G , m , l , n ) { function M ( ) { t && t ( ) ; q && q . abort ( ) } function p ( a , k , b , u , e ) { F ( fa ) && c . cancel ( fa ) ; t = q = null ; a ( k , b , u , e ) ; d . $$completeOutstandingRequest ( r ) } if ( d . $$incOutstandingRequestCount ( ) , f = f || d . url ( ) , "jsonp" == ma ( e ) ) { var aa = "_" + ( u . counter ++ ) . toString ( 36 ) ; u [ aa ] = function ( d ) { u [ aa ] . data = d ; u [ aa ] . called = ! 0 } ; var t = k ( f . replace ( "JSON_CALLBACK" , "angular.callbacks." + aa ) , aa , function ( d , a ) { p ( h , d , u [ aa ] . data , "" , a ) ; u [ aa ] = r } ) } else { var q = a ( e , f ) ; if ( q . open ( e , f , ! 0 ) , b ( G , function ( d , a ) { F ( d ) && q . setRequestHeader ( a ,
d ) } ) , q . onload = function ( ) { var d = q . statusText || "" , a = "response" in q ? q . response : q . responseText , k = 1223 === q . status ? 204 : q . status ; 0 === k && ( k = a ? 200 : "file" == Kb ( f ) . protocol ? 404 : 0 ) ; p ( h , k , a , q . getAllResponseHeaders ( ) , d ) } , e = function ( ) { p ( h , - 1 , null , null , "" ) } , q . onerror = e , q . onabort = e , l && ( q . withCredentials = ! 0 ) , n ) try { q . responseType = n } catch ( lb ) { if ( "json" !== n ) throw lb ; } q . send ( E ( g ) ? null : g ) } if ( 0 < m ) var fa = c ( M , m ) ; else m && J ( m . then ) && m . then ( M ) } } function Jd ( ) { var d = "{{" , a = "}}" ; this . startSymbol = function ( a ) { return a ? ( d = a , this ) : d } ;
this . endSymbol = function ( d ) { return d ? ( a = d , this ) : a } ; this . $get = [ "$parse" , "$exceptionHandler" , "$sce" , function ( k , b , c ) { function u ( d ) { return "\\\\\\" + d } function e ( u , e , m , l ) { function r ( d ) { try { var a = d ; d = m ? c . getTrusted ( m , a ) : c . valueOf ( a ) ; var z ; if ( l && ! F ( d ) ) z = d ; else if ( null == d ) z = "" ; else { switch ( typeof d ) { case "string" : break ; case "number" : d = "" + d ; break ; default : d = ka ( d ) } z = d } return z } catch ( N ) { b ( Wb . interr ( u , N ) ) } } l = ! ! l ; for ( var M , p , aa = 0 , t = [ ] , q = [ ] , fa = u . length , x = [ ] , B = [ ] ; aa < fa ; ) { if ( - 1 == ( M = u . indexOf ( d , aa ) ) || - 1 == ( p = u . indexOf ( a ,
M + f ) ) ) { aa !== fa && x . push ( u . substring ( aa ) . replace ( h , d ) . replace ( G , a ) ) ; break } aa !== M && x . push ( u . substring ( aa , M ) . replace ( h , d ) . replace ( G , a ) ) ; aa = u . substring ( M + f , p ) ; t . push ( aa ) ; q . push ( k ( aa , r ) ) ; aa = p + g ; B . push ( x . length ) ; x . push ( "" ) } if ( m && 1 < x . length && Wb . throwNoconcat ( u ) , ! e || t . length ) { var v = function ( d ) { for ( var a = 0 , z = t . length ; a < z ; a ++ ) { if ( l && E ( d [ a ] ) ) return ; x [ B [ a ] ] = d [ a ] } return x . join ( "" ) } ; return n ( function ( d ) { var a = 0 , z = t . length , k = Array ( z ) ; try { for ( ; a < z ; a ++ ) k [ a ] = q [ a ] ( d ) ; return v ( k ) } catch ( ea ) { b ( Wb . interr ( u , ea ) ) } } , { exp : u ,
expressions : t , $$watchDelegate : function ( d , a ) { var w ; return d . $watchGroup ( q , function ( z , k ) { var b = v ( z ) ; J ( a ) && a . call ( this , b , z !== k ? w : b , d ) ; w = b } ) } } ) } } var f = d . length , g = a . length , h = new RegExp ( d . replace ( /./g , u ) , "g" ) , G = new RegExp ( a . replace ( /./g , u ) , "g" ) ; return e . startSymbol = function ( ) { return d } , e . endSymbol = function ( ) { return a } , e } ] } function Cc ( ) { this . $get = [ "$rootScope" , "$window" , "$q" , "$$q" , function ( d , a , b , c ) { function k ( k , e , f , g ) { var h = 4 < arguments . length , G = h ? wb . call ( arguments , 4 ) : [ ] , m = a . setInterval , l = a . clearInterval ,
n = 0 , r = F ( g ) && ! g , M = ( r ? c : b ) . defer ( ) , aa = M . promise ; return f = F ( f ) ? f : 0 , aa . then ( null , null , h ? function ( ) { k . apply ( null , G ) } : k ) , aa . $$intervalId = m ( function ( ) { M . notify ( n ++ ) ; 0 < f && n >= f && ( M . resolve ( n ) , l ( aa . $$intervalId ) , delete u [ aa . $$intervalId ] ) ; r || d . $apply ( ) } , e ) , u [ aa . $$intervalId ] = M , aa } var u = { } ; return k . cancel = function ( d ) { return ! ! ( d && d . $$intervalId in u ) && ( u [ d . $$intervalId ] . reject ( "canceled" ) , a . clearInterval ( d . $$intervalId ) , delete u [ d . $$intervalId ] , ! 0 ) } , k } ] } function pd ( d ) { d = d . split ( "/" ) ; for ( var a = d . length ; a -- ; ) d [ a ] =
qa ( d [ a ] ) ; return d . join ( "/" ) } function Yd ( d , a ) { var k = Kb ( d ) ; a . $$protocol = k . protocol ; a . $$host = k . hostname ; a . $$port = parseInt ( k . port , 10 ) || lf [ k . protocol ] || null } function Lc ( d , a ) { var k = "/" !== d . charAt ( 0 ) ; k && ( d = "/" + d ) ; var b = Kb ( d ) ; a . $$path = decodeURIComponent ( k && "/" === b . pathname . charAt ( 0 ) ? b . pathname . substring ( 1 ) : b . pathname ) ; a . $$search = Ga ( b . search ) ; a . $$hash = decodeURIComponent ( b . hash ) ; a . $$path && "/" != a . $$path . charAt ( 0 ) && ( a . $$path = "/" + a . $$path ) } function Wa ( d , a ) { if ( 0 === a . indexOf ( d ) ) return a . substr ( d . length ) } function Vb ( d ) { var a =
d . indexOf ( "#" ) ; return - 1 == a ? d : d . substr ( 0 , a ) } function Lb ( d ) { return d . replace ( /(#.+)|#$/ , "$1" ) } function Zd ( d , a , b ) { this . $$html5 = ! 0 ; b = b || "" ; Yd ( d , this ) ; this . $$parse = function ( d ) { var k = Wa ( a , d ) ; if ( ! v ( k ) ) throw Cb ( "ipthprfx" , d , a ) ; Lc ( k , this ) ; this . $$path || ( this . $$path = "/" ) ; this . $$compose ( ) } ; this . $$compose = function ( ) { var d = wa ( this . $$search ) , k = this . $$hash ? "#" + qa ( this . $$hash ) : "" ; this . $$url = pd ( this . $$path ) + ( d ? "?" + d : "" ) + k ; this . $$absUrl = a + this . $$url . substr ( 1 ) } ; this . $$parseLinkUrl = function ( k , c ) { if ( c && "#" === c [ 0 ] ) return this . hash ( c . slice ( 1 ) ) ,
! 0 ; var u , e ; return F ( u = Wa ( d , k ) ) ? ( e = u , e = F ( u = Wa ( b , u ) ) ? a + ( Wa ( "/" , u ) || u ) : d + e ) : F ( u = Wa ( a , k ) ) ? e = a + u : a == k + "/" && ( e = a ) , e && this . $$parse ( e ) , ! ! e } } function $d ( d , a , b ) { Yd ( d , this ) ; this . $$parse = function ( k ) { var c , u = Wa ( d , k ) || Wa ( a , k ) ; E ( u ) || "#" !== u . charAt ( 0 ) ? this . $$html5 ? c = u : ( c = "" , E ( u ) && ( d = k , this . replace ( ) ) ) : ( c = Wa ( b , u ) , E ( c ) && ( c = u ) ) ; Lc ( c , this ) ; k = this . $$path ; var u = d , e = /^\/[A-Z]:(\/.*)/ ; 0 === c . indexOf ( u ) && ( c = c . replace ( u , "" ) ) ; e . exec ( c ) || ( k = ( c = e . exec ( k ) ) ? c [ 1 ] : k ) ; this . $$path = k ; this . $$compose ( ) } ; this . $$compose = function ( ) { var a =
wa ( this . $$search ) , k = this . $$hash ? "#" + qa ( this . $$hash ) : "" ; this . $$url = pd ( this . $$path ) + ( a ? "?" + a : "" ) + k ; this . $$absUrl = d + ( this . $$url ? b + this . $$url : "" ) } ; this . $$parseLinkUrl = function ( a , k ) { return Vb ( d ) == Vb ( a ) && ( this . $$parse ( a ) , ! 0 ) } } function ae ( d , a , b ) { this . $$html5 = ! 0 ; $d . apply ( this , arguments ) ; this . $$parseLinkUrl = function ( k , c ) { if ( c && "#" === c [ 0 ] ) return this . hash ( c . slice ( 1 ) ) , ! 0 ; var e , u ; return d == Vb ( k ) ? e = k : ( u = Wa ( a , k ) ) ? e = d + b + u : a === k + "/" && ( e = a ) , e && this . $$parse ( e ) , ! ! e } ; this . $$compose = function ( ) { var a = wa ( this . $$search ) ,
k = this . $$hash ? "#" + qa ( this . $$hash ) : "" ; this . $$url = pd ( this . $$path ) + ( a ? "?" + a : "" ) + k ; this . $$absUrl = d + b + this . $$url } } function Mc ( d ) { return function ( ) { return this [ d ] } } function Za ( d , a ) { return function ( k ) { return E ( k ) ? this [ d ] : ( this [ d ] = a ( k ) , this . $$compose ( ) , this ) } } function Pe ( ) { var d = "" , a = { enabled : ! 1 , requireBase : ! 0 , rewriteLinks : ! 0 } ; this . hashPrefix = function ( a ) { return F ( a ) ? ( d = a , this ) : d } ; this . html5Mode = function ( d ) { return X ( d ) ? ( a . enabled = d , this ) : p ( d ) ? ( X ( d . enabled ) && ( a . enabled = d . enabled ) , X ( d . requireBase ) && ( a . requireBase =
d . requireBase ) , X ( d . rewriteLinks ) && ( a . rewriteLinks = d . rewriteLinks ) , this ) : a } ; this . $get = [ "$rootScope" , "$browser" , "$sniffer" , "$rootElement" , "$window" , function ( k , b , c , e , f ) { function u ( d , a , k ) { var c = h . url ( ) , e = h . $$state ; try { b . url ( d , a , k ) , h . $$state = b . state ( ) } catch ( Qd ) { throw h . url ( c ) , h . $$state = e , Qd ; } } function g ( d , a ) { k . $broadcast ( "$locationChangeSuccess" , h . absUrl ( ) , d , h . $$state , a ) } var h , m ; m = b . baseHref ( ) ; var l , G = b . url ( ) ; if ( a . enabled ) { if ( ! m && a . requireBase ) throw Cb ( "nobase" ) ; l = G . substring ( 0 , G . indexOf ( "/" , G . indexOf ( "//" ) +
2 ) ) + ( m || "/" ) ; m = c . history ? Zd : ae } else l = Vb ( G ) , m = $d ; var n = l . substr ( 0 , Vb ( l ) . lastIndexOf ( "/" ) + 1 ) ; h = new m ( l , n , "#" + d ) ; h . $$parseLinkUrl ( G , G ) ; h . $$state = b . state ( ) ; var r = /^\s*(javascript|mailto):/i ; e . on ( "click" , function ( d ) { if ( a . rewriteLinks && ! d . ctrlKey && ! d . metaKey && ! d . shiftKey && 2 != d . which && 2 != d . button ) { for ( var c = Y ( d . target ) ; "a" !== ca ( c [ 0 ] ) ; ) if ( c [ 0 ] === e [ 0 ] || ! ( c = c . parent ( ) ) [ 0 ] ) return ; var u = c . prop ( "href" ) , g = c . attr ( "href" ) || c . attr ( "xlink:href" ) ; p ( u ) && "[object SVGAnimatedString]" === u . toString ( ) && ( u = Kb ( u . animVal ) . href ) ;
r . test ( u ) || ! u || c . attr ( "target" ) || d . isDefaultPrevented ( ) || ! h . $$parseLinkUrl ( u , g ) || ( d . preventDefault ( ) , h . absUrl ( ) != b . url ( ) && ( k . $apply ( ) , f . angular [ "ff-684208-preventDefault" ] = ! 0 ) ) } } ) ; Lb ( h . absUrl ( ) ) != Lb ( G ) && b . url ( h . absUrl ( ) , ! 0 ) ; var M = ! 0 ; return b . onUrlChange ( function ( d , a ) { E ( Wa ( n , d ) ) ? f . location . href = d : ( k . $evalAsync ( function ( ) { var b , c = h . absUrl ( ) , e = h . $$state ; d = Lb ( d ) ; h . $$parse ( d ) ; h . $$state = a ; b = k . $broadcast ( "$locationChangeStart" , d , c , a , e ) . defaultPrevented ; h . absUrl ( ) === d && ( b ? ( h . $$parse ( c ) , h . $$state = e , u ( c , ! 1 ,
e ) ) : ( M = ! 1 , g ( c , e ) ) ) } ) , k . $$phase || k . $digest ( ) ) } ) , k . $watch ( function ( ) { var d = Lb ( b . url ( ) ) , a = Lb ( h . absUrl ( ) ) , e = b . state ( ) , f = h . $$replace , m = d !== a || h . $$html5 && c . history && e !== h . $$state ; ( M || m ) && ( M = ! 1 , k . $evalAsync ( function ( ) { var a = h . absUrl ( ) , b = k . $broadcast ( "$locationChangeStart" , a , d , h . $$state , e ) . defaultPrevented ; h . absUrl ( ) === a && ( b ? ( h . $$parse ( d ) , h . $$state = e ) : ( m && u ( a , f , e === h . $$state ? null : h . $$state ) , g ( d , e ) ) ) } ) ) ; h . $$replace = ! 1 } ) , h } ] } function Gb ( ) { var d = ! 0 , a = this ; this . debugEnabled = function ( a ) { return F ( a ) ? ( d = a , this ) :
d } ; this . $get = [ "$window" , function ( k ) { function c ( d ) { return d instanceof Error && ( d . stack ? d = d . message && - 1 === d . stack . indexOf ( d . message ) ? "Error: " + d . message + "\n" + d . stack : d . stack : d . sourceURL && ( d = d . message + "\n" + d . sourceURL + ":" + d . line ) ) , d } function e ( d ) { var a = k . console || { } , e = a [ d ] || a . log || r ; d = ! 1 ; try { d = ! ! e . apply } catch ( Oa ) { } return d ? function ( ) { var d = [ ] ; return b ( arguments , function ( a ) { d . push ( c ( a ) ) } ) , e . apply ( a , d ) } : function ( d , a ) { e ( d , null == a ? "" : a ) } } return { log : e ( "log" ) , info : e ( "info" ) , warn : e ( "warn" ) , error : e ( "error" ) ,
debug : function ( ) { var k = e ( "debug" ) ; return function ( ) { d && k . apply ( a , arguments ) } } ( ) } } ] } function Xb ( d , a ) { if ( "__defineGetter__" === d || "__defineSetter__" === d || "__lookupGetter__" === d || "__lookupSetter__" === d || "__proto__" === d ) throw Xa ( "isecfld" , a ) ; return d } function qd ( d , a ) { if ( d += "" , ! v ( d ) ) throw Xa ( "iseccst" , a ) ; return d } function bb ( d , a ) { if ( d ) { if ( d . constructor === d ) throw Xa ( "isecfn" , a ) ; if ( d . window === d ) throw Xa ( "isecwindow" , a ) ; if ( d . children && ( d . nodeName || d . prop && d . attr && d . find ) ) throw Xa ( "isecdom" , a ) ; if ( d === Object ) throw Xa ( "isecobj" ,
a ) ; } return d } function Nc ( d , a ) { if ( d ) { if ( d . constructor === d ) throw Xa ( "isecfn" , a ) ; if ( d === nb || d === mf || d === be ) throw Xa ( "isecff" , a ) ; } } function Oc ( d , a ) { if ( d && ( d === ( 0 ) . constructor || d === ( ! 1 ) . constructor || d === "" . constructor || d === { } . constructor || d === [ ] . constructor || d === Function . constructor ) ) throw Xa ( "isecaf" , a ) ; } function ce ( d , a ) { return "undefined" != typeof d ? d : a } function qc ( d , a ) { return "undefined" == typeof d ? a : "undefined" == typeof a ? d : d + a } function Na ( d , a ) { var k , c ; switch ( d . type ) { case R . Program : k = ! 0 ; b ( d . body , function ( d ) { Na ( d . expression ,
a ) ; k = k && d . expression . constant } ) ; d . constant = k ; break ; case R . Literal : d . constant = ! 0 ; d . toWatch = [ ] ; break ; case R . UnaryExpression : Na ( d . argument , a ) ; d . constant = d . argument . constant ; d . toWatch = d . argument . toWatch ; break ; case R . BinaryExpression : Na ( d . left , a ) ; Na ( d . right , a ) ; d . constant = d . left . constant && d . right . constant ; d . toWatch = d . left . toWatch . concat ( d . right . toWatch ) ; break ; case R . LogicalExpression : Na ( d . left , a ) ; Na ( d . right , a ) ; d . constant = d . left . constant && d . right . constant ; d . toWatch = d . constant ? [ ] : [ d ] ; break ; case R . ConditionalExpression : Na ( d . test ,
a ) ; Na ( d . alternate , a ) ; Na ( d . consequent , a ) ; d . constant = d . test . constant && d . alternate . constant && d . consequent . constant ; d . toWatch = d . constant ? [ ] : [ d ] ; break ; case R . Identifier : d . constant = ! 1 ; d . toWatch = [ d ] ; break ; case R . MemberExpression : Na ( d . object , a ) ; d . computed && Na ( d . property , a ) ; d . constant = d . object . constant && ( ! d . computed || d . property . constant ) ; d . toWatch = [ d ] ; break ; case R . CallExpression : k = ! ! d . filter && ! a ( d . callee . name ) . $stateful ; c = [ ] ; b ( d . arguments , function ( d ) { Na ( d , a ) ; k = k && d . constant ; d . constant || c . push . apply ( c , d . toWatch ) } ) ;
d . constant = k ; d . toWatch = d . filter && ! a ( d . callee . name ) . $stateful ? c : [ d ] ; break ; case R . AssignmentExpression : Na ( d . left , a ) ; Na ( d . right , a ) ; d . constant = d . left . constant && d . right . constant ; d . toWatch = [ d ] ; break ; case R . ArrayExpression : k = ! 0 ; c = [ ] ; b ( d . elements , function ( d ) { Na ( d , a ) ; k = k && d . constant ; d . constant || c . push . apply ( c , d . toWatch ) } ) ; d . constant = k ; d . toWatch = c ; break ; case R . ObjectExpression : k = ! 0 ; c = [ ] ; b ( d . properties , function ( d ) { Na ( d . value , a ) ; k = k && d . value . constant ; d . value . constant || c . push . apply ( c , d . value . toWatch ) } ) ; d . constant =
k ; d . toWatch = c ; break ; case R . ThisExpression : d . constant = ! 1 , d . toWatch = [ ] } } function de ( d ) { if ( 1 == d . length ) { d = d [ 0 ] . expression ; var a = d . toWatch ; return 1 !== a . length ? a : a [ 0 ] !== d ? a : h } } function rd ( d ) { return d . type === R . Identifier || d . type === R . MemberExpression } function nf ( d ) { if ( 1 === d . body . length && rd ( d . body [ 0 ] . expression ) ) return { type : R . AssignmentExpression , left : d . body [ 0 ] . expression , right : { type : R . NGValueParameter } , operator : "=" } } function ee ( d ) { return 0 === d . body . length || 1 === d . body . length && ( d . body [ 0 ] . expression . type ===
R . Literal || d . body [ 0 ] . expression . type === R . ArrayExpression || d . body [ 0 ] . expression . type === R . ObjectExpression ) } function sd ( d , a ) { this . astBuilder = d ; this . $filter = a } function of ( d , a ) { this . astBuilder = d ; this . $filter = a } function cb ( d ) { return J ( d . valueOf ) ? d . valueOf ( ) : Kg . call ( d ) } function Eg ( ) { var d = Fa ( ) , a = Fa ( ) ; this . $get = [ "$filter" , function ( k ) { function c ( b , c , u ) { var f , h , p ; switch ( u = u || x , typeof b ) { case "string" : p = b = b . trim ( ) ; var M = u ? a : d ; if ( f = M [ p ] , ! f ) { ":" === b . charAt ( 0 ) && ":" === b . charAt ( 1 ) && ( h = ! 0 , b = b . substring ( 2 ) ) ; f = u ? q :
t ; var aa = new Ja ( f ) ; f = ( new $a ( aa , k , f ) ) . parse ( b ) ; f . constant ? f . $$watchDelegate = G : h ? f . $$watchDelegate = f . literal ? l : m : f . inputs && ( f . $$watchDelegate = g ) ; u && ( f = e ( f ) ) ; M [ p ] = f } return n ( f , c ) ; case "function" : return n ( b , c ) ; default : return n ( r , c ) } } function e ( d ) { function a ( a , b , k , c ) { var e = x ; x = ! 0 ; try { return d ( a , b , k , c ) } finally { x = e } } if ( ! d ) return d ; a . $$watchDelegate = d . $$watchDelegate ; a . assign = e ( d . assign ) ; a . constant = d . constant ; a . literal = d . literal ; for ( var b = 0 ; d . inputs && b < d . inputs . length ; ++ b ) d . inputs [ b ] = e ( d . inputs [ b ] ) ; return a . inputs =
d . inputs , a } function f ( d , a ) { return null == d || null == a ? d === a : ( "object" != typeof d || ( d = cb ( d ) , "object" != typeof d ) ) && ( d === a || d !== d && a !== a ) } function g ( d , a , b , k , c ) { var e , u = k . inputs ; if ( 1 === u . length ) { var g = f , u = u [ 0 ] ; return d . $watch ( function ( d ) { var a = u ( d ) ; return f ( a , g ) || ( e = k ( d , h , h , [ a ] ) , g = a && cb ( a ) ) , e } , a , b , c ) } for ( var m = [ ] , l = [ ] , G = 0 , w = u . length ; G < w ; G ++ ) m [ G ] = f , l [ G ] = null ; return d . $watch ( function ( d ) { for ( var a = ! 1 , w = 0 , b = u . length ; w < b ; w ++ ) { var z = u [ w ] ( d ) ; ( a || ( a = ! f ( z , m [ w ] ) ) ) && ( l [ w ] = z , m [ w ] = z && cb ( z ) ) } return a && ( e = k ( d , h , h , l ) ) , e } ,
a , b , c ) } function m ( d , a , b , k ) { var c , e ; return c = d . $watch ( function ( d ) { return k ( d ) } , function ( d , b , k ) { e = d ; J ( a ) && a . apply ( this , arguments ) ; F ( d ) && k . $$postDigest ( function ( ) { F ( e ) && c ( ) } ) } , b ) } function l ( d , a , k , c ) { function e ( d ) { var a = ! 0 ; return b ( d , function ( d ) { F ( d ) || ( a = ! 1 ) } ) , a } var u , f ; return u = d . $watch ( function ( d ) { return c ( d ) } , function ( d , b , k ) { f = d ; J ( a ) && a . call ( this , d , b , k ) ; e ( d ) && k . $$postDigest ( function ( ) { e ( f ) && u ( ) } ) } , k ) } function G ( d , a , b , k ) { var c ; return c = d . $watch ( function ( d ) { return k ( d ) } , function ( d , b , k ) { J ( a ) && a . apply ( this ,
arguments ) ; c ( ) } , b ) } function n ( d , a ) { if ( ! a ) return d ; var b = d . $$watchDelegate , k = ! 1 , b = b !== l && b !== m ? function ( b , c , e , u ) { return e = k && u ? u [ 0 ] : d ( b , c , e , u ) , a ( e , b , c ) } : function ( b , k , c , e ) { return c = d ( b , k , c , e ) , b = a ( c , b , k ) , F ( c ) ? b : c } ; return d . $$watchDelegate && d . $$watchDelegate !== g ? b . $$watchDelegate = d . $$watchDelegate : a . $stateful || ( b . $$watchDelegate = g , k = ! d . inputs , b . inputs = d . inputs ? d . inputs : [ d ] ) , b } var p = Qb ( ) . noUnsafeEval , t = { csp : p , expensiveChecks : ! 1 } , q = { csp : p , expensiveChecks : ! 0 } , x = ! 1 ; return c . $$runningExpensiveChecks = function ( ) { return x } ,
c } ] } function Qe ( ) { this . $get = [ "$rootScope" , "$exceptionHandler" , function ( d , a ) { return pf ( function ( a ) { d . $evalAsync ( a ) } , a ) } ] } function Re ( ) { this . $get = [ "$browser" , "$exceptionHandler" , function ( d , a ) { return pf ( function ( a ) { d . defer ( a ) } , a ) } ] } function pf ( d , a ) { function k ( d , a , b ) { function k ( a ) { return function ( b ) { c || ( c = ! 0 , a . call ( d , b ) ) } } var c = ! 1 ; return [ k ( a ) , k ( b ) ] } function c ( ) { this . $$state = { status : 0 } } function f ( d , a ) { return function ( b ) { a . call ( d , b ) } } function g ( b ) { ! b . processScheduled && b . pending && ( b . processScheduled = ! 0 ,
d ( function ( ) { var d , k , c ; c = b . pending ; b . processScheduled = ! 1 ; b . pending = h ; for ( var e = 0 , u = c . length ; e < u ; ++ e ) { k = c [ e ] [ 0 ] ; d = c [ e ] [ b . status ] ; try { J ( d ) ? k . resolve ( d ( b . value ) ) : 1 === b . status ? k . resolve ( b . value ) : k . reject ( b . value ) } catch ( Pb ) { k . reject ( Pb ) , a ( Pb ) } } } ) ) } function m ( ) { this . promise = new c ; this . resolve = f ( this , this . resolve ) ; this . reject = f ( this , this . reject ) ; this . notify = f ( this , this . notify ) } var l = e ( "$q" , TypeError ) ; n ( c . prototype , { then : function ( d , a , b ) { if ( E ( d ) && E ( a ) && E ( b ) ) return this ; var k = new m ; return this . $$state . pending =
this . $$state . pending || [ ] , this . $$state . pending . push ( [ k , d , a , b ] ) , 0 < this . $$state . status && g ( this . $$state ) , k . promise } , "catch" : function ( d ) { return this . then ( null , d ) } , "finally" : function ( d , a ) { return this . then ( function ( a ) { return t ( a , ! 0 , d ) } , function ( a ) { return t ( a , ! 1 , d ) } , a ) } } ) ; n ( m . prototype , { resolve : function ( d ) { this . promise . $$state . status || ( d === this . promise ? this . $$reject ( l ( "qcycle" , d ) ) : this . $$resolve ( d ) ) } , $$resolve : function ( d ) { var b , c ; c = k ( this , this . $$resolve , this . $$reject ) ; try { ( p ( d ) || J ( d ) ) && ( b = d && d . then ) , J ( b ) ?
( this . promise . $$state . status = - 1 , b . call ( d , c [ 0 ] , c [ 1 ] , this . notify ) ) : ( this . promise . $$state . value = d , this . promise . $$state . status = 1 , g ( this . promise . $$state ) ) } catch ( Db ) { c [ 1 ] ( Db ) , a ( Db ) } } , reject : function ( d ) { this . promise . $$state . status || this . $$reject ( d ) } , $$reject : function ( d ) { this . promise . $$state . value = d ; this . promise . $$state . status = 2 ; g ( this . promise . $$state ) } , notify : function ( b ) { var k = this . promise . $$state . pending ; 0 >= this . promise . $$state . status && k && k . length && d ( function ( ) { for ( var d , c , e = 0 , u = k . length ; e < u ; e ++ ) { c = k [ e ] [ 0 ] ;
d = k [ e ] [ 3 ] ; try { c . notify ( J ( d ) ? d ( b ) : b ) } catch ( Pb ) { a ( Pb ) } } } ) } } ) ; var r = function ( d , a ) { var b = new m ; return a ? b . resolve ( d ) : b . reject ( d ) , b . promise } , t = function ( d , a , b ) { var k = null ; try { J ( b ) && ( k = b ( ) ) } catch ( xc ) { return r ( xc , ! 1 ) } return k && J ( k . then ) ? k . then ( function ( ) { return r ( d , a ) } , function ( d ) { return r ( d , ! 1 ) } ) : r ( d , a ) } , q = function ( d , a , b , k ) { var c = new m ; return c . resolve ( d ) , c . promise . then ( a , b , k ) } , x = function $c ( d ) { if ( ! J ( d ) ) throw l ( "norslvr" , d ) ; if ( ! ( this instanceof $c ) ) return new $c ( d ) ; var a = new m ; return d ( function ( d ) { a . resolve ( d ) } ,
function ( d ) { a . reject ( d ) } ) , a . promise } ; return x . defer = function ( ) { return new m } , x . reject = function ( d ) { var a = new m ; return a . reject ( d ) , a . promise } , x . when = q , x . resolve = q , x . all = function ( d ) { var a = new m , k = 0 , c = ha ( d ) ? [ ] : { } ; return b ( d , function ( d , b ) { k ++ ; q ( d ) . then ( function ( d ) { c . hasOwnProperty ( b ) || ( c [ b ] = d , -- k || a . resolve ( c ) ) } , function ( d ) { c . hasOwnProperty ( b ) || a . reject ( d ) } ) } ) , 0 === k && a . resolve ( c ) , a . promise } , x } function Ld ( ) { this . $get = [ "$window" , "$timeout" , function ( d , a ) { var b = d . requestAnimationFrame || d . webkitRequestAnimationFrame ,
k = d . cancelAnimationFrame || d . webkitCancelAnimationFrame || d . webkitCancelRequestAnimationFrame , c = ! ! b , e = c ? function ( d ) { var a = b ( d ) ; return function ( ) { k ( a ) } } : function ( d ) { var b = a ( d , 16.66 , ! 1 ) ; return function ( ) { a . cancel ( b ) } } ; return e . supported = c , e } ] } function Kd ( ) { function d ( d ) { function a ( ) { this . $$watchers = this . $$nextSibling = this . $$childHead = this . $$childTail = null ; this . $$listeners = { } ; this . $$listenerCount = { } ; this . $$watchersCount = 0 ; this . $id = ++ vc ; this . $$ChildScope = null } return a . prototype = d , a } var a = 10 , f = e ( "$rootScope" ) ,
u = null , g = null ; this . digestTtl = function ( d ) { return arguments . length && ( a = d ) , a } ; this . $get = [ "$injector" , "$exceptionHandler" , "$parse" , "$browser" , function ( k , e , h , m ) { function l ( d ) { d . currentScope . $$destroyed = ! 0 } function G ( d ) { 9 === hc && ( d . $$childHead && G ( d . $$childHead ) , d . $$nextSibling && G ( d . $$nextSibling ) ) ; d . $parent = d . $$nextSibling = d . $$prevSibling = d . $$childHead = d . $$childTail = d . $root = d . $$watchers = null } function n ( ) { this . $id = ++ vc ; this . $$phase = this . $parent = this . $$watchers = this . $$nextSibling = this . $$prevSibling = this . $$childHead =
this . $$childTail = null ; this . $root = this ; this . $$destroyed = ! 1 ; this . $$listeners = { } ; this . $$listenerCount = { } ; this . $$watchersCount = 0 ; this . $$isolateBindings = null } function t ( d ) { if ( v . $$phase ) throw f ( "inprog" , v . $$phase ) ; v . $$phase = d } function q ( d , a ) { do d . $$watchersCount += a ; while ( d = d . $parent ) } function M ( d , a , b ) { do d . $$listenerCount [ b ] -= a , 0 === d . $$listenerCount [ b ] && delete d . $$listenerCount [ b ] ; while ( d = d . $parent ) } function x ( ) { } function aa ( ) { for ( ; pa . length ; ) try { pa . shift ( ) ( ) } catch ( pc ) { e ( pc ) } g = null } function fa ( ) { null ===
g && ( g = m . defer ( function ( ) { v . $apply ( aa ) } ) ) } n . prototype = { constructor : n , $new : function ( a , b ) { var k ; return b = b || this , a ? ( k = new n , k . $root = this . $root ) : ( this . $$ChildScope || ( this . $$ChildScope = d ( this ) ) , k = new this . $$ChildScope ) , k . $parent = b , k . $$prevSibling = b . $$childTail , b . $$childHead ? ( b . $$childTail . $$nextSibling = k , b . $$childTail = k ) : b . $$childHead = b . $$childTail = k , ( a || b != this ) && k . $on ( "$destroy" , l ) , k } , $watch : function ( d , a , b , k ) { var w = h ( d ) ; if ( w . $$watchDelegate ) return w . $$watchDelegate ( this , a , b , w , d ) ; var z = this , c = z . $$watchers ,
e = { fn : a , last : x , get : w , exp : k || d , eq : ! ! b } ; return u = null , J ( a ) || ( e . fn = r ) , c || ( c = z . $$watchers = [ ] ) , c . unshift ( e ) , q ( this , 1 ) , function ( ) { 0 <= B ( c , e ) && q ( z , - 1 ) ; u = null } } , $watchGroup : function ( d , a ) { function k ( ) { u = ! 1 ; f ? ( f = ! 1 , a ( w , w , e ) ) : a ( w , c , e ) } var c = Array ( d . length ) , w = Array ( d . length ) , z = [ ] , e = this , u = ! 1 , f = ! 0 ; if ( ! d . length ) { var g = ! 0 ; return e . $evalAsync ( function ( ) { g && a ( w , w , e ) } ) , function ( ) { g = ! 1 } } return 1 === d . length ? this . $watch ( d [ 0 ] , function ( d , b , k ) { w [ 0 ] = d ; c [ 0 ] = b ; a ( w , d === b ? w : c , k ) } ) : ( b ( d , function ( d , a ) { var b = e . $watch ( d , function ( d ,
b ) { w [ a ] = d ; c [ a ] = b ; u || ( u = ! 0 , e . $evalAsync ( k ) ) } ) ; z . push ( b ) } ) , function ( ) { for ( ; z . length ; ) z . shift ( ) ( ) } ) } , $watchCollection : function ( d , a ) { function b ( d ) { k = d ; var a , b , z , e ; if ( ! E ( k ) ) { if ( p ( k ) ) if ( c ( k ) ) for ( w !== m && ( w = m , n = w . length = 0 , f ++ ) , d = k . length , n !== d && ( f ++ , w . length = n = d ) , a = 0 ; a < d ; a ++ ) e = w [ a ] , z = k [ a ] , ( b = e !== e && z !== z ) || e === z || ( f ++ , w [ a ] = z ) ; else { w !== l && ( w = l = { } , n = 0 , f ++ ) ; d = 0 ; for ( a in k ) ob . call ( k , a ) && ( d ++ , z = k [ a ] , e = w [ a ] , a in w ? ( b = e !== e && z !== z , b || e === z || ( f ++ , w [ a ] = z ) ) : ( n ++ , w [ a ] = z , f ++ ) ) ; if ( n > d ) for ( a in f ++ , w ) ob . call ( k , a ) || ( n -- ,
delete w [ a ] ) } else w !== k && ( w = k , f ++ ) ; return f } } b . $stateful = ! 0 ; var k , w , z , e = this , u = 1 < a . length , f = 0 , g = h ( d , b ) , m = [ ] , l = { } , G = ! 0 , n = 0 ; return this . $watch ( g , function ( ) { if ( G ? ( G = ! 1 , a ( k , k , e ) ) : a ( k , z , e ) , u ) if ( p ( k ) ) if ( c ( k ) ) { z = Array ( k . length ) ; for ( var d = 0 ; d < k . length ; d ++ ) z [ d ] = k [ d ] } else for ( d in z = { } , k ) ob . call ( k , d ) && ( z [ d ] = k [ d ] ) ; else z = k } ) } , $digest : function ( ) { var d , b , k , c , w , z , N , h , l , n , G , r = a , p = [ ] ; t ( "$digest" ) ; m . $$checkUrlChange ( ) ; this === v && null !== g && ( m . defer . cancel ( g ) , aa ( ) ) ; u = null ; do { h = ! 1 ; for ( l = this ; A . length ; ) { try { G = A . shift ( ) ,
G . scope . $eval ( G . expression , G . locals ) } catch ( Ud ) { e ( Ud ) } u = null } a : do { if ( z = l . $$watchers ) for ( N = z . length ; N -- ; ) try { if ( d = z [ N ] ) if ( w = d . get , ( b = w ( l ) ) === ( k = d . last ) || ( d . eq ? U ( b , k ) : "number" == typeof b && "number" == typeof k && isNaN ( b ) && isNaN ( k ) ) ) { if ( d === u ) { h = ! 1 ; break a } } else h = ! 0 , u = d , d . last = d . eq ? P ( b , null ) : b , c = d . fn , c ( b , k === x ? b : k , l ) , 5 > r && ( n = 4 - r , p [ n ] || ( p [ n ] = [ ] ) , p [ n ] . push ( { msg : J ( d . exp ) ? "fn: " + ( d . exp . name || d . exp . toString ( ) ) : d . exp , newVal : b , oldVal : k } ) ) } catch ( Ud ) { e ( Ud ) } if ( ! ( z = l . $$watchersCount && l . $$childHead || l !== this && l . $$nextSibling ) ) for ( ; l !==
this && ! ( z = l . $$nextSibling ) ; ) l = l . $parent } while ( l = z ) ; if ( ( h || A . length ) && ! r -- ) throw v . $$phase = null , f ( "infdig" , a , p ) ; } while ( h || A . length ) ; for ( v . $$phase = null ; y . length ; ) try { y . shift ( ) ( ) } catch ( Ud ) { e ( Ud ) } } , $destroy : function ( ) { if ( ! this . $$destroyed ) { var d = this . $parent ; this . $broadcast ( "$destroy" ) ; this . $$destroyed = ! 0 ; this === v && m . $$applicationDestroyed ( ) ; q ( this , - this . $$watchersCount ) ; for ( var a in this . $$listenerCount ) M ( this , this . $$listenerCount [ a ] , a ) ; d && d . $$childHead == this && ( d . $$childHead = this . $$nextSibling ) ; d && d . $$childTail ==
this && ( d . $$childTail = this . $$prevSibling ) ; this . $$prevSibling && ( this . $$prevSibling . $$nextSibling = this . $$nextSibling ) ; this . $$nextSibling && ( this . $$nextSibling . $$prevSibling = this . $$prevSibling ) ; this . $destroy = this . $digest = this . $apply = this . $evalAsync = this . $applyAsync = r ; this . $on = this . $watch = this . $watchGroup = function ( ) { return r } ; this . $$listeners = { } ; this . $$nextSibling = null ; G ( this ) } } , $eval : function ( d , a ) { return h ( d ) ( this , a ) } , $evalAsync : function ( d , a ) { v . $$phase || A . length || m . defer ( function ( ) { A . length && v . $digest ( ) } ) ;
A . push ( { scope : this , expression : h ( d ) , locals : a } ) } , $$postDigest : function ( d ) { y . push ( d ) } , $apply : function ( d ) { try { t ( "$apply" ) ; try { return this . $eval ( d ) } finally { v . $$phase = null } } catch ( nd ) { e ( nd ) } finally { try { v . $digest ( ) } catch ( nd ) { throw e ( nd ) , nd ; } } } , $applyAsync : function ( d ) { function a ( ) { b . $eval ( d ) } var b = this ; d && pa . push ( a ) ; d = h ( d ) ; fa ( ) } , $on : function ( d , a ) { var b = this . $$listeners [ d ] ; b || ( this . $$listeners [ d ] = b = [ ] ) ; b . push ( a ) ; var k = this ; do k . $$listenerCount [ d ] || ( k . $$listenerCount [ d ] = 0 ) , k . $$listenerCount [ d ] ++ ; while ( k = k . $parent ) ;
var w = this ; return function ( ) { var k = b . indexOf ( a ) ; - 1 !== k && ( b [ k ] = null , M ( w , 1 , d ) ) } } , $emit : function ( d , a ) { var b , k , w , z = [ ] , c = this , u = ! 1 , f = { name : d , targetScope : c , stopPropagation : function ( ) { u = ! 0 } , preventDefault : function ( ) { f . defaultPrevented = ! 0 } , defaultPrevented : ! 1 } , g = S ( [ f ] , arguments , 1 ) ; do { b = c . $$listeners [ d ] || z ; f . currentScope = c ; k = 0 ; for ( w = b . length ; k < w ; k ++ ) if ( b [ k ] ) try { b [ k ] . apply ( null , g ) } catch ( Ig ) { e ( Ig ) } else b . splice ( k , 1 ) , k -- , w -- ; if ( u ) break ; c = c . $parent } while ( c ) ; return f . currentScope = null , f } , $broadcast : function ( d ,
a ) { var b = this , k = this , w = { name : d , targetScope : this , preventDefault : function ( ) { w . defaultPrevented = ! 0 } , defaultPrevented : ! 1 } ; if ( ! this . $$listenerCount [ d ] ) return w ; for ( var z , c , u = S ( [ w ] , arguments , 1 ) ; b = k ; ) { w . currentScope = b ; k = b . $$listeners [ d ] || [ ] ; z = 0 ; for ( c = k . length ; z < c ; z ++ ) if ( k [ z ] ) try { k [ z ] . apply ( null , u ) } catch ( hb ) { e ( hb ) } else k . splice ( z , 1 ) , z -- , c -- ; if ( ! ( k = b . $$listenerCount [ d ] && b . $$childHead || b !== this && b . $$nextSibling ) ) for ( ; b !== this && ! ( k = b . $$nextSibling ) ; ) b = b . $parent } return w . currentScope = null , w } } ; var v = new n , A = v . $$asyncQueue =
[ ] , y = v . $$postDigestQueue = [ ] , pa = v . $$applyAsyncQueue = [ ] ; return v } ] } function ad ( ) { var d = /^\s*(https?|ftp|mailto|tel|file):/ , a = /^\s*((https?|ftp|file|blob):|data:image\/)/ ; this . aHrefSanitizationWhitelist = function ( a ) { return F ( a ) ? ( d = a , this ) : d } ; this . imgSrcSanitizationWhitelist = function ( d ) { return F ( d ) ? ( a = d , this ) : a } ; this . $get = function ( ) { return function ( b , k ) { var c , e = k ? a : d ; return c = Kb ( b ) . href , "" === c || c . match ( e ) ? b : "unsafe:" + c } } } function qf ( d ) { if ( "self" === d ) return d ; if ( v ( d ) ) { if ( - 1 < d . indexOf ( "***" ) ) throw Yb ( "iwcard" ,
d ) ; return d = rc ( d ) . replace ( "\\*\\*" , ".*" ) . replace ( "\\*" , "[^:/.?&;]*" ) , new RegExp ( "^" + d + "$" ) } if ( K ( d ) ) return new RegExp ( "^" + d . source + "$" ) ; throw Yb ( "imatcher" ) ; } function td ( d ) { var a = [ ] ; return F ( d ) && b ( d , function ( d ) { a . push ( qf ( d ) ) } ) , a } function Se ( ) { this . SCE _CONTEXTS = ub ; var d = [ "self" ] , a = [ ] ; this . resourceUrlWhitelist = function ( a ) { return arguments . length && ( d = td ( a ) ) , d } ; this . resourceUrlBlacklist = function ( d ) { return arguments . length && ( a = td ( d ) ) , a } ; this . $get = [ "$injector" , function ( b ) { function k ( d , a ) { return "self" ===
d ? Xd ( a ) : ! ! d . exec ( a . href ) } function c ( d ) { var a = function ( d ) { this . $$unwrapTrustedValue = function ( ) { return d } } ; return d && ( a . prototype = new d ) , a . prototype . valueOf = function ( ) { return this . $$unwrapTrustedValue ( ) } , a . prototype . toString = function ( ) { return this . $$unwrapTrustedValue ( ) . toString ( ) } , a } var e = function ( d ) { throw Yb ( "unsafe" ) ; } ; b . has ( "$sanitize" ) && ( e = b . get ( "$sanitize" ) ) ; var f = c ( ) , g = { } ; return g [ ub . HTML ] = c ( f ) , g [ ub . CSS ] = c ( f ) , g [ ub . URL ] = c ( f ) , g [ ub . JS ] = c ( f ) , g [ ub . RESOURCE _URL ] = c ( g [ ub . URL ] ) , { trustAs : function ( d , a ) { var b =
g . hasOwnProperty ( d ) ? g [ d ] : null ; if ( ! b ) throw Yb ( "icontext" , d , a ) ; if ( null === a || E ( a ) || "" === a ) return a ; if ( "string" != typeof a ) throw Yb ( "itype" , d ) ; return new b ( a ) } , getTrusted : function ( b , c ) { if ( null === c || E ( c ) || "" === c ) return c ; var u = g . hasOwnProperty ( b ) ? g [ b ] : null ; if ( u && c instanceof u ) return c . $$unwrapTrustedValue ( ) ; if ( b === ub . RESOURCE _URL ) { var f , h , u = Kb ( c . toString ( ) ) , m = ! 1 ; f = 0 ; for ( h = d . length ; f < h ; f ++ ) if ( k ( d [ f ] , u ) ) { m = ! 0 ; break } if ( m ) for ( f = 0 , h = a . length ; f < h ; f ++ ) if ( k ( a [ f ] , u ) ) { m = ! 1 ; break } if ( m ) return c ; throw Yb ( "insecurl" ,
c . toString ( ) ) ; } if ( b === ub . HTML ) return e ( c ) ; throw Yb ( "unsafe" ) ; } , valueOf : function ( d ) { return d instanceof f ? d . $$unwrapTrustedValue ( ) : d } } } ] } function gb ( ) { var d = ! 0 ; this . enabled = function ( a ) { return arguments . length && ( d = ! ! a ) , d } ; this . $get = [ "$parse" , "$sceDelegate" , function ( a , c ) { if ( d && 8 > hc ) throw Yb ( "iequirks" ) ; var k = na ( ub ) ; k . isEnabled = function ( ) { return d } ; k . trustAs = c . trustAs ; k . getTrusted = c . getTrusted ; k . valueOf = c . valueOf ; d || ( k . trustAs = k . getTrusted = function ( d , a ) { return a } , k . valueOf = y ) ; k . parseAs = function ( d , b ) { var c =
a ( b ) ; return c . literal && c . constant ? c : a ( b , function ( a ) { return k . getTrusted ( d , a ) } ) } ; var e = k . parseAs , f = k . getTrusted , g = k . trustAs ; return b ( ub , function ( d , a ) { var b = ma ( a ) ; k [ nc ( "parse_as_" + b ) ] = function ( a ) { return e ( d , a ) } ; k [ nc ( "get_trusted_" + b ) ] = function ( a ) { return f ( d , a ) } ; k [ nc ( "trust_as_" + b ) ] = function ( a ) { return g ( d , a ) } } ) , k } ] } function Te ( ) { this . $get = [ "$window" , "$document" , function ( d , a ) { var b , k = { } , c = parseInt ( ( /android (\d+)/ . exec ( ma ( ( d . navigator || { } ) . userAgent ) ) || [ ] ) [ 1 ] , 10 ) , e = /Boxee/i . test ( ( d . navigator || { } ) . userAgent ) ,
f = a [ 0 ] || { } , g = /^(Moz|webkit|ms)(?=[A-Z])/ , h = f . body && f . body . style , m = ! 1 , l = ! 1 ; if ( h ) { for ( var n in h ) if ( m = g . exec ( n ) ) { b = m [ 0 ] ; b = b . substr ( 0 , 1 ) . toUpperCase ( ) + b . substr ( 1 ) ; break } b || ( b = "WebkitOpacity" in h && "webkit" ) ; m = ! ! ( "transition" in h || b + "Transition" in h ) ; l = ! ! ( "animation" in h || b + "Animation" in h ) ; ! c || m && l || ( m = v ( h . webkitTransition ) , l = v ( h . webkitAnimation ) ) } return { history : ! ( ! d . history || ! d . history . pushState || 4 > c || e ) , hasEvent : function ( d ) { if ( "input" === d && 11 >= hc ) return ! 1 ; if ( E ( k [ d ] ) ) { var a = f . createElement ( "div" ) ; k [ d ] =
"on" + d in a } return k [ d ] } , csp : Qb ( ) , vendorPrefix : b , transitions : m , animations : l , android : c } } ] } function Ue ( ) { this . $get = [ "$templateCache" , "$http" , "$q" , "$sce" , function ( d , a , b , c ) { function k ( e , f ) { k . totalPendingRequests ++ ; v ( e ) && ! E ( d . get ( e ) ) || ( e = c . getTrustedResourceUrl ( e ) ) ; var u = a . defaults && a . defaults . transformResponse ; return ha ( u ) ? u = u . filter ( function ( d ) { return d !== ib } ) : u === ib && ( u = null ) , a . get ( e , { cache : d , transformResponse : u } ) [ "finally" ] ( function ( ) { k . totalPendingRequests -- } ) . then ( function ( a ) { return d . put ( e , a . data ) ,
a . data } , function ( d ) { if ( ! f ) throw Va ( "tpload" , e , d . status , d . statusText ) ; return b . reject ( d ) } ) } return k . totalPendingRequests = 0 , k } ] } function Ve ( ) { this . $get = [ "$rootScope" , "$browser" , "$location" , function ( d , a , c ) { return { findBindings : function ( d , a , k ) { d = d . getElementsByClassName ( "ng-binding" ) ; var c = [ ] ; return b ( d , function ( d ) { var e = Ha . element ( d ) . data ( "$binding" ) ; e && b ( e , function ( b ) { k ? ( new RegExp ( "(^|\\s)" + rc ( a ) + "(\\s|\\||$)" ) ) . test ( b ) && c . push ( d ) : - 1 != b . indexOf ( a ) && c . push ( d ) } ) } ) , c } , findModels : function ( d , a , b ) { for ( var k =
[ "ng-" , "data-ng-" , "ng\\:" ] , c = 0 ; c < k . length ; ++ c ) { var e = d . querySelectorAll ( "[" + k [ c ] + "model" + ( b ? "=" : "*=" ) + '"' + a + '"]' ) ; if ( e . length ) return e } } , getLocation : function ( ) { return c . url ( ) } , setLocation : function ( a ) { a !== c . url ( ) && ( c . url ( a ) , d . $digest ( ) ) } , whenStable : function ( d ) { a . notifyWhenNoOutstandingRequests ( d ) } } } ] } function fd ( ) { this . $get = [ "$rootScope" , "$browser" , "$q" , "$$q" , "$exceptionHandler" , function ( d , a , b , c , e ) { function k ( k , u , g ) { J ( k ) || ( g = u , u = k , k = r ) ; var h , m = wb . call ( arguments , 3 ) , l = F ( g ) && ! g , n = ( l ? c : b ) . defer ( ) , G = n . promise ;
return h = a . defer ( function ( ) { try { n . resolve ( k . apply ( null , m ) ) } catch ( Db ) { n . reject ( Db ) , e ( Db ) } finally { delete f [ G . $$timeoutId ] } l || d . $apply ( ) } , u ) , G . $$timeoutId = h , f [ h ] = n , G } var f = { } ; return k . cancel = function ( d ) { return ! ! ( d && d . $$timeoutId in f ) && ( f [ d . $$timeoutId ] . reject ( "canceled" ) , delete f [ d . $$timeoutId ] , a . defer . cancel ( d . $$timeoutId ) ) } , k } ] } function Kb ( d ) { return hc && ( Ka . setAttribute ( "href" , d ) , d = Ka . href ) , Ka . setAttribute ( "href" , d ) , { href : Ka . href , protocol : Ka . protocol ? Ka . protocol . replace ( /:$/ , "" ) : "" , host : Ka . host , search : Ka . search ?
Ka . search . replace ( /^\?/ , "" ) : "" , hash : Ka . hash ? Ka . hash . replace ( /^#/ , "" ) : "" , hostname : Ka . hostname , port : Ka . port , pathname : "/" === Ka . pathname . charAt ( 0 ) ? Ka . pathname : "/" + Ka . pathname } } function Xd ( d ) { return d = v ( d ) ? Kb ( d ) : d , d . protocol === rf . protocol && d . host === rf . host } function We ( ) { this . $get = C ( a ) } function sf ( d ) { function a ( d ) { try { return decodeURIComponent ( d ) } catch ( fa ) { return d } } var b = d [ 0 ] || { } , c = { } , e = "" ; return function ( ) { var d , k , f , u , g ; if ( d = b . cookie || "" , d !== e ) for ( e = d , d = e . split ( "; " ) , c = { } , f = 0 ; f < d . length ; f ++ ) k = d [ f ] , u =
k . indexOf ( "=" ) , 0 < u && ( g = a ( k . substring ( 0 , u ) ) , E ( c [ g ] ) && ( c [ g ] = a ( k . substring ( u + 1 ) ) ) ) ; return c } } function gd ( ) { this . $get = sf } function Bc ( d ) { function a ( k , c ) { if ( p ( k ) ) { var e = { } ; return b ( k , function ( d , b ) { e [ b ] = a ( b , d ) } ) , e } return d . factory ( k + "Filter" , c ) } this . register = a ; this . $get = [ "$injector" , function ( d ) { return function ( a ) { return d . get ( a + "Filter" ) } } ] ; a ( "currency" , fe ) ; a ( "date" , ge ) ; a ( "filter" , tf ) ; a ( "json" , Lg ) ; a ( "limitTo" , he ) ; a ( "lowercase" , uf ) ; a ( "number" , ie ) ; a ( "orderBy" , je ) ; a ( "uppercase" , ud ) } function tf ( ) { return function ( d ,
a , b ) { if ( ! c ( d ) ) { if ( null == d ) return d ; throw e ( "filter" ) ( "notarray" , d ) ; } var k ; switch ( vd ( a ) ) { case "function" : break ; case "boolean" : case "null" : case "number" : case "string" : k = ! 0 ; case "object" : a = vf ( a , b , k ) ; break ; default : return d } return Array . prototype . filter . call ( d , a ) } } function vf ( d , a , b ) { var k = p ( d ) && "$" in d ; return ! 0 === a ? a = U : J ( a ) || ( a = function ( d , a ) { return ! E ( d ) && ( null === d || null === a ? d === a : ! ( p ( a ) || p ( d ) && ! A ( d ) ) && ( d = ma ( "" + d ) , a = ma ( "" + a ) , - 1 !== d . indexOf ( a ) ) ) } ) , function ( c ) { return k && ! p ( c ) ? Zb ( c , d . $ , a , ! 1 ) : Zb ( c , d , a , b ) } }
function Zb ( d , a , b , c , e ) { var k = vd ( d ) , f = vd ( a ) ; if ( "string" === f && "!" === a . charAt ( 0 ) ) return ! Zb ( d , a . substring ( 1 ) , b , c ) ; if ( ha ( d ) ) return d . some ( function ( d ) { return Zb ( d , a , b , c ) } ) ; switch ( k ) { case "object" : var u ; if ( c ) { for ( u in d ) if ( "$" !== u . charAt ( 0 ) && Zb ( d [ u ] , a , b , ! 0 ) ) return ! 0 ; return ! e && Zb ( d , a , b , ! 1 ) } if ( "object" === f ) { for ( u in a ) if ( e = a [ u ] , ! J ( e ) && ! E ( e ) && ( k = "$" === u , ! Zb ( k ? d : d [ u ] , e , b , k , k ) ) ) return ! 1 ; return ! 0 } return b ( d , a ) ; case "function" : return ! 1 ; default : return b ( d , a ) } } function vd ( d ) { return null === d ? "null" : typeof d } function fe ( d ) { var a =
d . NUMBER _FORMATS ; return function ( d , b , k ) { return E ( b ) && ( b = a . CURRENCY _SYM ) , E ( k ) && ( k = a . PATTERNS [ 1 ] . maxFrac ) , null == d ? d : ke ( d , a . PATTERNS [ 1 ] , a . GROUP _SEP , a . DECIMAL _SEP , k ) . replace ( /\u00A4/g , b ) } } function ie ( d ) { var a = d . NUMBER _FORMATS ; return function ( d , b ) { return null == d ? d : ke ( d , a . PATTERNS [ 0 ] , a . GROUP _SEP , a . DECIMAL _SEP , b ) } } function wf ( d ) { var a , b , c , e , f , g = 0 ; - 1 < ( b = d . indexOf ( xf ) ) && ( d = d . replace ( xf , "" ) ) ; 0 < ( c = d . search ( /e/i ) ) ? ( 0 > b && ( b = c ) , b += + d . slice ( c + 1 ) , d = d . substring ( 0 , c ) ) : 0 > b && ( b = d . length ) ; for ( c = 0 ; d . charAt ( c ) == sc ; c ++ ) ;
if ( c == ( f = d . length ) ) a = [ 0 ] , b = 1 ; else { for ( f -- ; d . charAt ( f ) == sc ; ) f -- ; b -= c ; a = [ ] ; for ( e = 0 ; c <= f ; c ++ , e ++ ) a [ e ] = + d . charAt ( c ) } return b > yf && ( a = a . splice ( 0 , yf - 1 ) , g = b - 1 , b = 1 ) , { d : a , e : g , i : b } } function zf ( d , a , b , c ) { var k = d . d , e = k . length - d . i ; if ( a = E ( a ) ? Math . min ( Math . max ( b , e ) , c ) : + a , b = a + d . i , c = k [ b ] , 0 < b ) k . splice ( b ) ; else { d . i = 1 ; k . length = b = a + 1 ; for ( var f = 0 ; f < b ; f ++ ) k [ f ] = 0 } for ( 5 <= c && k [ b - 1 ] ++ ; e < a ; e ++ ) k . push ( 0 ) ; ( a = k . reduceRight ( function ( d , a , b , k ) { return a += d , k [ b ] = a % 10 , Math . floor ( a / 10 ) } , 0 ) ) && ( k . unshift ( a ) , d . i ++ ) } function ke ( d , a , b , c , e ) { if ( ! v ( d ) &&
! I ( d ) || isNaN ( d ) ) return "" ; var k = ! isFinite ( d ) , f = ! 1 , u = Math . abs ( d ) + "" , g = "" ; if ( k ) g = "\u221e" ; else { f = wf ( u ) ; zf ( f , e , a . minFrac , a . maxFrac ) ; g = f . d ; u = f . i ; e = f . e ; k = [ ] ; for ( f = g . reduce ( function ( d , a ) { return d && ! a } , ! 0 ) ; 0 > u ; ) g . unshift ( 0 ) , u ++ ; 0 < u ? k = g . splice ( u , g . length ) : ( k = g , g = [ 0 ] ) ; u = [ ] ; for ( g . length >= a . lgSize && u . unshift ( g . splice ( - a . lgSize , g . length ) . join ( "" ) ) ; g . length > a . gSize ; ) u . unshift ( g . splice ( - a . gSize , g . length ) . join ( "" ) ) ; g . length && u . unshift ( g . join ( "" ) ) ; g = u . join ( b ) ; k . length && ( g += c + k . join ( "" ) ) ; e && ( g += "e+" + e ) } return 0 > d &&
! f ? a . negPre + g + a . negSuf : a . posPre + g + a . posSuf } function Pc ( d , a , b ) { var k = "" ; 0 > d && ( k = "-" , d = - d ) ; for ( d = "" + d ; d . length < a ; ) d = sc + d ; return b && ( d = d . substr ( d . length - a ) ) , k + d } function Ra ( d , a , b , c ) { return b = b || 0 , function ( k ) { return k = k [ "get" + d ] ( ) , ( 0 < b || k > - b ) && ( k += b ) , 0 === k && - 12 == b && ( k = 12 ) , Pc ( k , a , c ) } } function Qc ( d , a ) { return function ( b , k ) { var c = b [ "get" + d ] ( ) , e = fb ( a ? "SHORT" + d : d ) ; return k [ e ] [ c ] } } function le ( d ) { var a = ( new Date ( d , 0 , 1 ) ) . getDay ( ) ; return new Date ( d , 0 , ( 4 >= a ? 5 : 12 ) - a ) } function me ( d ) { return function ( a ) { var b = le ( a . getFullYear ( ) ) ;
return a = + new Date ( a . getFullYear ( ) , a . getMonth ( ) , a . getDate ( ) + ( 4 - a . getDay ( ) ) ) - + b , a = 1 + Math . round ( a / 6048E5 ) , Pc ( a , d ) } } function Rc ( d , a ) { return 0 >= d . getFullYear ( ) ? a . ERAS [ 0 ] : a . ERAS [ 1 ] } function ge ( d ) { function a ( d ) { var a ; if ( a = d . match ( c ) ) { d = new Date ( 0 ) ; var b = 0 , k = 0 , e = a [ 8 ] ? d . setUTCFullYear : d . setFullYear , f = a [ 8 ] ? d . setUTCHours : d . setHours ; a [ 9 ] && ( b = parseInt ( a [ 9 ] + a [ 10 ] , 10 ) , k = parseInt ( a [ 9 ] + a [ 11 ] , 10 ) ) ; e . call ( d , parseInt ( a [ 1 ] , 10 ) , parseInt ( a [ 2 ] , 10 ) - 1 , parseInt ( a [ 3 ] , 10 ) ) ; b = parseInt ( a [ 4 ] || 0 , 10 ) - b ; k = parseInt ( a [ 5 ] || 0 , 10 ) - k ; e =
parseInt ( a [ 6 ] || 0 , 10 ) ; a = Math . round ( 1E3 * parseFloat ( "0." + ( a [ 7 ] || 0 ) ) ) ; f . call ( d , b , k , e , a ) } return d } var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/ ; return function ( k , c , e ) { var f , g , u = "" , h = [ ] ; if ( c = c || "mediumDate" , c = d . DATETIME _FORMATS [ c ] || c , v ( k ) && ( k = Af . test ( k ) ? parseInt ( k , 10 ) : a ( k ) ) , I ( k ) && ( k = new Date ( k ) ) , ! H ( k ) || ! isFinite ( k . getTime ( ) ) ) return k ; for ( ; c ; ) ( g = Bf . exec ( c ) ) ? ( h = S ( h , g , 1 ) , c = h . pop ( ) ) : ( h . push ( c ) , c = null ) ; var m = k . getTimezoneOffset ( ) ; return e && ( m = Z ( e ,
m ) , k = va ( k , e , ! 0 ) ) , b ( h , function ( a ) { f = wd [ a ] ; u += f ? f ( k , d . DATETIME _FORMATS , m ) : "''" === a ? "'" : a . replace ( /(^'|'$)/g , "" ) . replace ( /''/g , "'" ) } ) , u } } function Lg ( ) { return function ( d , a ) { return E ( a ) && ( a = 2 ) , ka ( d , a ) } } function he ( ) { return function ( d , a , b ) { return a = 1 / 0 === Math . abs ( Number ( a ) ) ? Number ( a ) : parseInt ( a , 10 ) , isNaN ( a ) ? d : ( I ( d ) && ( d = d . toString ( ) ) , ha ( d ) || v ( d ) ? ( b = ! b || isNaN ( b ) ? 0 : parseInt ( b , 10 ) , b = 0 > b ? Math . max ( 0 , d . length + b ) : b , 0 <= a ? d . slice ( b , b + a ) : 0 === b ? d . slice ( a , d . length ) : d . slice ( Math . max ( 0 , b + a ) , b ) ) : d ) } } function je ( d ) { function a ( a ,
b ) { return b = b ? - 1 : 1 , a . map ( function ( a ) { var k = 1 , c = y ; if ( J ( a ) ) c = a ; else if ( v ( a ) && ( "+" != a . charAt ( 0 ) && "-" != a . charAt ( 0 ) || ( k = "-" == a . charAt ( 0 ) ? - 1 : 1 , a = a . substring ( 1 ) ) , "" !== a && ( c = d ( a ) , c . constant ) ) ) var e = c ( ) , c = function ( d ) { return d [ e ] } ; return { get : c , descending : k * b } } ) } function b ( d ) { switch ( typeof d ) { case "number" : case "boolean" : case "string" : return ! 0 ; default : return ! 1 } } return function ( d , k , e ) { if ( ! c ( d ) ) return d ; ha ( k ) || ( k = [ k ] ) ; 0 === k . length && ( k = [ "+" ] ) ; var f = a ( k , e ) ; return f . push ( { get : function ( ) { return { } } , descending : e ? - 1 :
1 } ) , d = Array . prototype . map . call ( d , function ( d , a ) { return { value : d , predicateValues : f . map ( function ( k ) { var c = k . get ( d ) ; return k = typeof c , null === c ? ( k = "string" , c = "null" ) : "string" === k ? c = c . toLowerCase ( ) : "object" === k && ( "function" == typeof c . valueOf && ( c = c . valueOf ( ) , b ( c ) ) || A ( c ) && ( c = c . toString ( ) , b ( c ) ) || ( c = a ) ) , { value : c , type : k } } ) } } ) , d . sort ( function ( d , a ) { for ( var b = 0 , k = 0 , c = f . length ; k < c ; ++ k ) { var b = d . predicateValues [ k ] , e = a . predicateValues [ k ] , g = 0 ; if ( b . type === e . type ? b . value !== e . value && ( g = b . value < e . value ? - 1 : 1 ) : g = b . type < e . type ?
- 1 : 1 , b = g * f [ k ] . descending ) break } return b } ) , d = d . map ( function ( d ) { return d . value } ) } } function db ( d ) { return J ( d ) && ( d = { link : d } ) , d . restrict = d . restrict || "AC" , C ( d ) } function Cf ( d , a , c , e , f ) { var k = this , g = [ ] ; k . $error = { } ; k . $$success = { } ; k . $pending = h ; k . $name = f ( a . name || a . ngForm || "" ) ( c ) ; k . $dirty = ! 1 ; k . $pristine = ! 0 ; k . $valid = ! 0 ; k . $invalid = ! 1 ; k . $submitted = ! 1 ; k . $$parentForm = xd ; k . $rollbackViewValue = function ( ) { b ( g , function ( d ) { d . $rollbackViewValue ( ) } ) } ; k . $commitViewValue = function ( ) { b ( g , function ( d ) { d . $commitViewValue ( ) } ) } ; k . $addControl =
function ( d ) { Ob ( d . $name , "input" ) ; g . push ( d ) ; d . $name && ( k [ d . $name ] = d ) ; d . $$parentForm = k } ; k . $$renameControl = function ( d , a ) { var b = d . $name ; k [ b ] === d && delete k [ b ] ; k [ a ] = d ; d . $name = a } ; k . $removeControl = function ( d ) { d . $name && k [ d . $name ] === d && delete k [ d . $name ] ; b ( k . $pending , function ( a , b ) { k . $setValidity ( b , null , d ) } ) ; b ( k . $error , function ( a , b ) { k . $setValidity ( b , null , d ) } ) ; b ( k . $$success , function ( a , b ) { k . $setValidity ( b , null , d ) } ) ; B ( g , d ) ; d . $$parentForm = xd } ; Df ( { ctrl : this , $element : d , set : function ( d , a , b ) { var k = d [ a ] ; k ? - 1 === k . indexOf ( b ) &&
k . push ( b ) : d [ a ] = [ b ] } , unset : function ( d , a , b ) { var k = d [ a ] ; k && ( B ( k , b ) , 0 === k . length && delete d [ a ] ) } , $animate : e } ) ; k . $setDirty = function ( ) { e . removeClass ( d , tc ) ; e . addClass ( d , yd ) ; k . $dirty = ! 0 ; k . $pristine = ! 1 ; k . $$parentForm . $setDirty ( ) } ; k . $setPristine = function ( ) { e . setClass ( d , tc , yd + " ng-submitted" ) ; k . $dirty = ! 1 ; k . $pristine = ! 0 ; k . $submitted = ! 1 ; b ( g , function ( d ) { d . $setPristine ( ) } ) } ; k . $setUntouched = function ( ) { b ( g , function ( d ) { d . $setUntouched ( ) } ) } ; k . $setSubmitted = function ( ) { e . addClass ( d , "ng-submitted" ) ; k . $submitted = ! 0 ; k . $$parentForm . $setSubmitted ( ) } }
function ne ( d ) { d . $formatters . push ( function ( a ) { return d . $isEmpty ( a ) ? a : a . toString ( ) } ) } function Sc ( d , a , b , c , e , f ) { var k = ma ( a [ 0 ] . type ) ; if ( ! e . android ) { var g = ! 1 ; a . on ( "compositionstart" , function ( d ) { g = ! 0 } ) ; a . on ( "compositionend" , function ( ) { g = ! 1 ; u ( ) } ) } var h , u = function ( d ) { if ( h && ( f . defer . cancel ( h ) , h = null ) , ! g ) { var e = a . val ( ) ; d = d && d . type ; "password" === k || b . ngTrim && "false" === b . ngTrim || ( e = ya ( e ) ) ; ( c . $viewValue !== e || "" === e && c . $$hasNativeValidators ) && c . $setViewValue ( e , d ) } } ; if ( e . hasEvent ( "input" ) ) a . on ( "input" , u ) ; else { var m =
function ( d , a , b ) { h || ( h = f . defer ( function ( ) { h = null ; a && a . value === b || u ( d ) } ) ) } ; a . on ( "keydown" , function ( d ) { var a = d . keyCode ; 91 === a || 15 < a && 19 > a || 37 <= a && 40 >= a || m ( d , this , this . value ) } ) ; e . hasEvent ( "paste" ) && a . on ( "paste cut" , m ) } a . on ( "change" , u ) ; Tc [ k ] && c . $$hasNativeValidators && k === b . type && a . on ( "keydown wheel mousedown" , function ( d ) { if ( ! h ) { var a = this . validity , b = a . badInput , k = a . typeMismatch ; h = f . defer ( function ( ) { h = null ; a . badInput === b && a . typeMismatch === k || u ( d ) } ) } } ) ; c . $render = function ( ) { var d = c . $isEmpty ( c . $viewValue ) ?
"" : c . $viewValue ; a . val ( ) !== d && a . val ( d ) } } function ua ( d , a ) { return function ( k , c ) { var e , f ; if ( H ( k ) ) return k ; if ( v ( k ) ) { if ( '"' == k . charAt ( 0 ) && '"' == k . charAt ( k . length - 1 ) && ( k = k . substring ( 1 , k . length - 1 ) ) , eb . test ( k ) ) return new Date ( k ) ; if ( d . lastIndex = 0 , e = d . exec ( k ) ) return e . shift ( ) , f = c ? { yyyy : c . getFullYear ( ) , MM : c . getMonth ( ) + 1 , dd : c . getDate ( ) , HH : c . getHours ( ) , mm : c . getMinutes ( ) , ss : c . getSeconds ( ) , sss : c . getMilliseconds ( ) / 1E3 } : { yyyy : 1970 , MM : 1 , dd : 1 , HH : 0 , mm : 0 , ss : 0 , sss : 0 } , b ( e , function ( d , b ) { b < a . length && ( f [ a [ b ] ] = + d ) } ) , new Date ( f . yyyy ,
f . MM - 1 , f . dd , f . HH , f . mm , f . ss || 0 , 1E3 * f . sss || 0 ) } return NaN } } function $b ( d , a , b , c ) { return function ( k , e , f , g , u , m , l ) { function n ( d ) { return d && ! ( d . getTime && d . getTime ( ) !== d . getTime ( ) ) } function r ( d ) { return F ( d ) && ! H ( d ) ? b ( d ) || h : d } jc ( k , e , f , g ) ; Sc ( k , e , f , g , u , m ) ; var p , t = g && g . $options && g . $options . timezone ; if ( g . $$parserName = d , g . $parsers . push ( function ( d ) { return g . $isEmpty ( d ) ? null : a . test ( d ) ? ( d = b ( d , p ) , t && ( d = va ( d , t ) ) , d ) : h } ) , g . $formatters . push ( function ( d ) { if ( d && ! H ( d ) ) throw Uc ( "datefmt" , d ) ; return n ( d ) ? ( ( p = d ) && t && ( p = va ( p , t , ! 0 ) ) ,
l ( "date" ) ( d , c , t ) ) : ( p = null , "" ) } ) , F ( f . min ) || f . ngMin ) { var q ; g . $validators . min = function ( d ) { return ! n ( d ) || E ( q ) || b ( d ) >= q } ; f . $observe ( "min" , function ( d ) { q = r ( d ) ; g . $validate ( ) } ) } if ( F ( f . max ) || f . ngMax ) { var G ; g . $validators . max = function ( d ) { return ! n ( d ) || E ( G ) || b ( d ) <= G } ; f . $observe ( "max" , function ( d ) { G = r ( d ) ; g . $validate ( ) } ) } } } function jc ( d , a , b , c ) { ( c . $$hasNativeValidators = p ( a [ 0 ] . validity ) ) && c . $parsers . push ( function ( d ) { var b = a . prop ( "validity" ) || { } ; return b . badInput && ! b . typeMismatch ? h : d } ) } function oe ( d , a , b , c , e ) { if ( F ( c ) ) { if ( d =
d ( c ) , ! d . constant ) throw Uc ( "constexpr" , b , c ) ; return d ( a ) } return e } function ac ( d , a ) { return d = "ngClass" + d , [ "$animate" , function ( k ) { function c ( d , a ) { var b = [ ] , k = 0 ; a : for ( ; k < d . length ; k ++ ) { for ( var c = d [ k ] , e = 0 ; e < a . length ; e ++ ) if ( c == a [ e ] ) continue a ; b . push ( c ) } return b } function e ( d ) { var a = [ ] ; return ha ( d ) ? ( b ( d , function ( d ) { a = a . concat ( e ( d ) ) } ) , a ) : v ( d ) ? d . split ( " " ) : p ( d ) ? ( b ( d , function ( d , b ) { d && ( a = a . concat ( b . split ( " " ) ) ) } ) , a ) : d } return { restrict : "AC" , link : function ( f , g , h ) { function u ( d ) { d = m ( d , 1 ) ; h . $addClass ( d ) } function m ( d , a ) { var k =
g . data ( "$classCounts" ) || Fa ( ) , c = [ ] ; return b ( d , function ( d ) { ( 0 < a || k [ d ] ) && ( k [ d ] = ( k [ d ] || 0 ) + a , k [ d ] === + ( 0 < a ) && c . push ( d ) ) } ) , g . data ( "$classCounts" , k ) , c . join ( " " ) } function l ( d , a ) { var b = c ( a , d ) , e = c ( d , a ) , b = m ( b , 1 ) , e = m ( e , - 1 ) ; b && b . length && k . addClass ( g , b ) ; e && e . length && k . removeClass ( g , e ) } function n ( d ) { if ( ! 0 === a || f . $index % 2 === a ) { var b = e ( d || [ ] ) ; if ( r ) { if ( ! U ( d , r ) ) { var k = e ( r ) ; l ( k , b ) } } else u ( b ) } r = ha ( d ) ? d . map ( function ( d ) { return na ( d ) } ) : na ( d ) } var r ; f . $watch ( h [ d ] , n , ! 0 ) ; h . $observe ( "class" , function ( a ) { n ( f . $eval ( h [ d ] ) ) } ) ; "ngClass" !==
d && f . $watch ( "$index" , function ( b , k ) { var c = 1 & b ; if ( c !== ( 1 & k ) ) { var g = e ( f . $eval ( h [ d ] ) ) ; c === a ? u ( g ) : ( c = m ( g , - 1 ) , h . $removeClass ( c ) ) } } ) } } } ] } function Df ( d ) { function a ( d , a ) { a && ! f [ d ] ? ( l . addClass ( e , d ) , f [ d ] = ! 0 ) : ! a && f [ d ] && ( l . removeClass ( e , d ) , f [ d ] = ! 1 ) } function b ( d , b ) { d = d ? "-" + jb ( d , "-" ) : "" ; a ( Vc + d , ! 0 === b ) ; a ( Ef + d , ! 1 === b ) } var c = d . ctrl , e = d . $element , f = { } , g = d . set , m = d . unset , l = d . $animate ; f [ Ef ] = ! ( f [ Vc ] = e . hasClass ( Vc ) ) ; c . $setValidity = function ( d , k , e ) { E ( k ) ? ( c . $pending || ( c . $pending = { } ) , g ( c . $pending , d , e ) ) : ( c . $pending && m ( c . $pending ,
d , e ) , Ff ( c . $pending ) && ( c . $pending = h ) ) ; X ( k ) ? k ? ( m ( c . $error , d , e ) , g ( c . $$success , d , e ) ) : ( g ( c . $error , d , e ) , m ( c . $$success , d , e ) ) : ( m ( c . $error , d , e ) , m ( c . $$success , d , e ) ) ; c . $pending ? ( a ( zd , ! 0 ) , c . $valid = c . $invalid = h , b ( "" , null ) ) : ( a ( zd , ! 1 ) , c . $valid = Ff ( c . $error ) , c . $invalid = ! c . $valid , b ( "" , c . $valid ) ) ; k = c . $pending && c . $pending [ d ] ? h : ! c . $error [ d ] && ( ! ! c . $$success [ d ] || null ) ; b ( d , k ) ; c . $$parentForm . $setValidity ( d , k , c ) } } function Ff ( d ) { if ( d ) for ( var a in d ) if ( d . hasOwnProperty ( a ) ) return ! 1 ; return ! 0 } var hc , Y , xa , Eb , la = /^\/(.+)\/([a-z]*)$/ ,
ma = function ( d ) { return v ( d ) ? d . toLowerCase ( ) : d } , ob = Object . prototype . hasOwnProperty , fb = function ( d ) { return v ( d ) ? d . toUpperCase ( ) : d } , wb = [ ] . slice , ff = [ ] . splice , Gf = [ ] . push , pb = Object . prototype . toString , uc = Object . getPrototypeOf , Pa = e ( "ng" ) , Ha = a . angular || ( a . angular = { } ) , vc = 0 ; hc = l . documentMode ; r . $inject = [ ] ; y . $inject = [ ] ; var Yc , ha = Array . isArray , xe = /^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/ , ya = function ( d ) { return v ( d ) ? d . trim ( ) : d } , rc = function ( d ) { return d . replace ( /([-()\[\]{}+?*.$\^|,:#<!\\])/g ,
"\\$1" ) . replace ( /\x08/g , "\\x08" ) } , Qb = function ( ) { if ( ! F ( Qb . rules ) ) { var d = l . querySelector ( "[ng-csp]" ) || l . querySelector ( "[data-ng-csp]" ) ; if ( d ) { var a = d . getAttribute ( "ng-csp" ) || d . getAttribute ( "data-ng-csp" ) ; Qb . rules = { noUnsafeEval : ! a || - 1 !== a . indexOf ( "no-unsafe-eval" ) , noInlineStyle : ! a || - 1 !== a . indexOf ( "no-inline-style" ) } } else { d = Qb ; try { new Function ( "" ) , a = ! 1 } catch ( G ) { a = ! 0 } d . rules = { noUnsafeEval : a , noInlineStyle : ! 1 } } } return Qb . rules } , wc = function ( ) { if ( F ( wc . name _ ) ) return wc . name _ ; var d , a , b , c , e = bc . length ; for ( a = 0 ; a <
e ; ++ a ) if ( b = bc [ a ] , d = l . querySelector ( "[" + b . replace ( ":" , "\\:" ) + "jq]" ) ) { c = d . getAttribute ( b + "jq" ) ; break } return wc . name _ = c } , Bd = /:/g , bc = [ "ng-" , "data-ng-" , "ng:" , "x-ng-" ] , ye = /[A-Z]/g , Cd = ! 1 , Mb = 3 , Ae = { full : "1.4.14" , major : 1 , minor : 4 , dot : 14 , codeName : "material-distinction" } ; Ia . expando = "ng339" ; var ec = Ia . cache = { } , Nd = 1 ; Ia . _data = function ( d ) { return this . cache [ d [ this . expando ] ] || { } } ; var Md = /([\:\-\_]+(.))/g , hd = /^moz([A-Z])/ , Fc = { mouseleave : "mouseout" , mouseenter : "mouseover" } , id = e ( "jqLite" ) , bf = /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/ ,
Dc = /<|&#?\w+;/ , ta = /<([\w:-]+)/ , $e = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi , Ma = { option : [ 1 , '<select multiple="multiple">' , "</select>" ] , thead : [ 1 , "<table>" , "</table>" ] , col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : [ 0 , "" , "" ] } ; Ma . optgroup = Ma . option ; Ma . tbody = Ma . tfoot = Ma . colgroup = Ma . caption = Ma . thead ; Ma . th = Ma . td ; var ef = Node . prototype . contains || function ( d ) { return ! ! ( 16 &
this . compareDocumentPosition ( d ) ) } , Nb = Ia . prototype = { ready : function ( d ) { function b ( ) { c || ( c = ! 0 , d ( ) ) } var c = ! 1 ; "complete" === l . readyState ? setTimeout ( b ) : ( this . on ( "DOMContentLoaded" , b ) , Ia ( a ) . on ( "load" , b ) ) } , toString : function ( ) { var d = [ ] ; return b ( this , function ( a ) { d . push ( "" + a ) } ) , "[" + d . join ( ", " ) + "]" } , eq : function ( d ) { return Y ( 0 <= d ? this [ d ] : this [ this . length + d ] ) } , length : 0 , push : Gf , sort : [ ] . sort , splice : [ ] . splice } , Ab = { } ; b ( "multiple selected checked disabled readOnly required open" . split ( " " ) , function ( d ) { Ab [ ma ( d ) ] = d } ) ;
var za = { } ; b ( "input select option textarea button form details" . split ( " " ) , function ( d ) { za [ d ] = ! 0 } ) ; var Vd = { ngMinlength : "minlength" , ngMaxlength : "maxlength" , ngMin : "min" , ngMax : "max" , ngPattern : "pattern" } ; b ( { data : Od , removeData : ld , hasData : function ( d ) { for ( var a in ec [ d . ng339 ] ) return ! 0 ; return ! 1 } } , function ( d , a ) { Ia [ a ] = d } ) ; b ( { data : Od , inheritedData : Ib , scope : function ( d ) { return Y . data ( d , "$scope" ) || Ib ( d . parentNode || d , [ "$isolateScope" , "$scope" ] ) } , isolateScope : function ( d ) { return Y . data ( d , "$isolateScope" ) || Y . data ( d ,
"$isolateScopeNoTemplate" ) } , controller : Gc , injector : function ( d ) { return Ib ( d , "$injector" ) } , removeAttr : function ( d , a ) { d . removeAttribute ( a ) } , hasClass : md , css : function ( d , a , b ) { return a = nc ( a ) , F ( b ) ? void ( d . style [ a ] = b ) : d . style [ a ] } , attr : function ( d , a , b ) { var k = d . nodeType ; if ( k !== Mb && 2 !== k && 8 !== k ) if ( k = ma ( a ) , Ab [ k ] ) { if ( ! F ( b ) ) return d [ a ] || ( d . attributes . getNamedItem ( a ) || r ) . specified ? k : h ; b ? ( d [ a ] = ! 0 , d . setAttribute ( a , k ) ) : ( d [ a ] = ! 1 , d . removeAttribute ( k ) ) } else if ( F ( b ) ) d . setAttribute ( a , b ) ; else if ( d . getAttribute ) return d = d . getAttribute ( a ,
2 ) , null === d ? h : d } , prop : function ( d , a , b ) { return F ( b ) ? void ( d [ a ] = b ) : d [ a ] } , text : function ( ) { function d ( d , a ) { if ( E ( a ) ) { var b = d . nodeType ; return 1 === b || b === Mb ? d . textContent : "" } d . textContent = a } return d . $dv = "" , d } ( ) , val : function ( d , a ) { if ( E ( a ) ) { if ( d . multiple && "select" === ca ( d ) ) { var k = [ ] ; return b ( d . options , function ( d ) { d . selected && k . push ( d . value || d . text ) } ) , 0 === k . length ? null : k } return d . value } d . value = a } , html : function ( d , a ) { return E ( a ) ? d . innerHTML : ( kd ( d , ! 0 ) , void ( d . innerHTML = a ) ) } , empty : oc } , function ( d , a ) { Ia . prototype [ a ] =
function ( a , b ) { var k , c , e = this . length ; if ( d !== oc && E ( 2 == d . length && d !== md && d !== Gc ? a : b ) ) { if ( p ( a ) ) { for ( k = 0 ; k < e ; k ++ ) if ( d === Od ) d ( this [ k ] , a ) ; else for ( c in a ) d ( this [ k ] , c , a [ c ] ) ; return this } k = d . $dv ; e = E ( k ) ? Math . min ( e , 1 ) : e ; for ( c = 0 ; c < e ; c ++ ) { var f = d ( this [ c ] , a , b ) ; k = k ? k + f : f } return k } for ( k = 0 ; k < e ; k ++ ) d ( this [ k ] , a , b ) ; return this } } ) ; b ( { removeData : ld , on : function ( d , a , b , c ) { if ( F ( c ) ) throw id ( "onargs" ) ; if ( Ye ( d ) ) { c = Ec ( d , ! 0 ) ; var k = c . events , e = c . handle ; e || ( e = c . handle = jg ( d , k ) ) ; c = 0 <= a . indexOf ( " " ) ? a . split ( " " ) : [ a ] ; for ( var f = c . length ,
g = function ( a , c , f ) { var g = k [ a ] ; g || ( g = k [ a ] = [ ] , g . specialHandlerWrapper = c , "$destroy" === a || f || d . addEventListener ( a , e , ! 1 ) ) ; g . push ( b ) } ; f -- ; ) a = c [ f ] , Fc [ a ] ? ( g ( Fc [ a ] , Ca ) , g ( a , h , ! 0 ) ) : g ( a ) } } , off : cf , one : function ( d , a , b ) { d = Y ( d ) ; d . on ( a , function aa ( ) { d . off ( a , b ) ; d . off ( a , aa ) } ) ; d . on ( a , b ) } , replaceWith : function ( d , a ) { var k , c = d . parentNode ; kd ( d ) ; b ( new Ia ( a ) , function ( a ) { k ? c . insertBefore ( a , k . nextSibling ) : c . replaceChild ( a , d ) ; k = a } ) } , children : function ( d ) { var a = [ ] ; return b ( d . childNodes , function ( d ) { 1 === d . nodeType && a . push ( d ) } ) , a } , contents : function ( d ) { return d . contentDocument ||
d . childNodes || [ ] } , append : function ( d , a ) { var b = d . nodeType ; if ( 1 === b || 11 === b ) { a = new Ia ( a ) ; for ( var b = 0 , k = a . length ; b < k ; b ++ ) d . appendChild ( a [ b ] ) } } , prepend : function ( d , a ) { if ( 1 === d . nodeType ) { var k = d . firstChild ; b ( new Ia ( a ) , function ( a ) { d . insertBefore ( a , k ) } ) } } , wrap : function ( d , a ) { af ( d , Y ( a ) . eq ( 0 ) . clone ( ) [ 0 ] ) } , remove : Hc , detach : function ( d ) { Hc ( d , ! 0 ) } , after : function ( d , a ) { var b = d , k = d . parentNode ; a = new Ia ( a ) ; for ( var c = 0 , e = a . length ; c < e ; c ++ ) { var f = a [ c ] ; k . insertBefore ( f , b . nextSibling ) ; b = f } } , addClass : fc , removeClass : Hb , toggleClass : function ( d ,
a , c ) { a && b ( a . split ( " " ) , function ( a ) { var b = c ; E ( b ) && ( b = ! md ( d , a ) ) ; ( b ? fc : Hb ) ( d , a ) } ) } , parent : function ( d ) { return ( d = d . parentNode ) && 11 !== d . nodeType ? d : null } , next : function ( d ) { return d . nextElementSibling } , find : function ( d , a ) { return d . getElementsByTagName ? d . getElementsByTagName ( a ) : [ ] } , clone : jd , triggerHandler : function ( d , a , c ) { var k , e , f = a . type || a , g = Ec ( d ) ; ( g = ( g = g && g . events ) && g [ f ] ) && ( k = { preventDefault : function ( ) { this . defaultPrevented = ! 0 } , isDefaultPrevented : function ( ) { return ! 0 === this . defaultPrevented } , stopImmediatePropagation : function ( ) { this . immediatePropagationStopped =
! 0 } , isImmediatePropagationStopped : function ( ) { return ! 0 === this . immediatePropagationStopped } , stopPropagation : r , type : f , target : d } , a . type && ( k = n ( k , a ) ) , a = na ( g ) , e = c ? [ k ] . concat ( c ) : [ k ] , b ( a , function ( a ) { k . isImmediatePropagationStopped ( ) || a . apply ( d , e ) } ) ) } } , function ( d , a ) { Ia . prototype [ a ] = function ( a , b , k ) { for ( var c , e = 0 , f = this . length ; e < f ; e ++ ) E ( c ) ? ( c = d ( this [ e ] , a , b , k ) , F ( c ) && ( c = Y ( c ) ) ) : Sb ( c , d ( this [ e ] , a , b , k ) ) ; return F ( c ) ? c : this } ; Ia . prototype . bind = Ia . prototype . on ; Ia . prototype . unbind = Ia . prototype . off } ) ; Jb . prototype = { put : function ( d ,
a ) { this [ kb ( d , this . nextUid ) ] = a } , get : function ( d ) { return this [ kb ( d , this . nextUid ) ] } , remove : function ( d ) { var a = this [ d = kb ( d , this . nextUid ) ] ; return delete this [ d ] , a } } ; var Xe = [ function ( ) { this . $get = [ function ( ) { return Jb } ] } ] , Ic = /^[^\(]*\(\s*([^\)]*)\)/m , Hf = /,/ , pe = /^\s*(_?)(\S+?)\1\s*$/ , gc = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm , Ub = e ( "$injector" ) ; ab . $$annotate = function ( d , a , c ) { var k ; if ( "function" == typeof d ) { if ( ! ( k = d . $inject ) ) { if ( k = [ ] , d . length ) { if ( a ) throw v ( c ) && c || ( c = d . name || Pd ( d ) ) , Ub ( "strictdi" , c ) ; a = d . toString ( ) . replace ( gc ,
"" ) ; a = a . match ( Ic ) ; b ( a [ 1 ] . split ( Hf ) , function ( d ) { d . replace ( pe , function ( d , a , b ) { k . push ( b ) } ) } ) } d . $inject = k } } else ha ( d ) ? ( a = d . length - 1 , rb ( d [ a ] , "fn" ) , k = d . slice ( 0 , a ) ) : rb ( d , "fn" , ! 0 ) ; return k } ; var qe = e ( "$animate" ) , Me = function ( ) { this . $get = function ( ) { } } , Hd = function ( ) { var d = new Jb , a = [ ] ; this . $get = [ "$$AnimateRunner" , "$rootScope" , function ( k , c ) { function e ( d , a , k ) { var c = ! 1 ; return a && ( a = v ( a ) ? a . split ( " " ) : ha ( a ) ? a : [ ] , b ( a , function ( a ) { a && ( c = ! 0 , d [ a ] = k ) } ) ) , c } function f ( ) { b ( a , function ( a ) { var k = d . get ( a ) ; if ( k ) { var c = tb ( a . attr ( "class" ) ) ,
e = "" , f = "" ; b ( k , function ( d , a ) { d !== ! ! c [ a ] && ( d ? e += ( e . length ? " " : "" ) + a : f += ( f . length ? " " : "" ) + a ) } ) ; b ( a , function ( d ) { e && fc ( d , e ) ; f && Hb ( d , f ) } ) ; d . remove ( a ) } } ) ; a . length = 0 } return { enabled : r , on : r , off : r , pin : r , push : function ( b , g , h , m ) { return m && m ( ) , h = h || { } , h . from && b . css ( h . from ) , h . to && b . css ( h . to ) , ( h . addClass || h . removeClass ) && ( g = h . addClass , m = h . removeClass , h = d . get ( b ) || { } , g = e ( h , g , ! 0 ) , m = e ( h , m , ! 1 ) , ( g || m ) && ( d . put ( b , h ) , a . push ( b ) , 1 === a . length && c . $$postDigest ( f ) ) ) , b = new k , b . complete ( ) , b } } } ] } , Rb = [ "$provide" , function ( d ) { var a = this ;
this . $$registeredAnimations = Object . create ( null ) ; this . register = function ( b , k ) { if ( b && "." !== b . charAt ( 0 ) ) throw qe ( "notcsel" , b ) ; var c = b + "-animation" ; a . $$registeredAnimations [ b . substr ( 1 ) ] = c ; d . factory ( c , k ) } ; this . classNameFilter = function ( d ) { if ( 1 === arguments . length && ( this . $$classNameFilter = d instanceof RegExp ? d : null ) && /(\s+|\/)ng-animate(\s+|\/)/ . test ( this . $$classNameFilter . toString ( ) ) ) throw qe ( "nongcls" , "ng-animate" ) ; return this . $$classNameFilter } ; this . $get = [ "$$animateQueue" , function ( d ) { function a ( d , a , b ) { if ( b ) { var k ;
a : { for ( k = 0 ; k < b . length ; k ++ ) { var c = b [ k ] ; if ( 1 === c . nodeType ) { k = c ; break a } } k = void 0 } ! k || k . parentNode || k . previousElementSibling || ( b = null ) } b ? b . after ( d ) : a . prepend ( d ) } return { on : d . on , off : d . off , pin : d . pin , enabled : d . enabled , cancel : function ( d ) { d . end && d . end ( ) } , enter : function ( b , k , c , e ) { return k = k && Y ( k ) , c = c && Y ( c ) , k = k || c . parent ( ) , a ( b , k , c ) , d . push ( b , "enter" , Ua ( e ) ) } , move : function ( b , k , c , e ) { return k = k && Y ( k ) , c = c && Y ( c ) , k = k || c . parent ( ) , a ( b , k , c ) , d . push ( b , "move" , Ua ( e ) ) } , leave : function ( a , b ) { return d . push ( a , "leave" , Ua ( b ) , function ( ) { a . remove ( ) } ) } ,
addClass : function ( a , b , k ) { return k = Ua ( k ) , k . addClass = Bb ( k . addclass , b ) , d . push ( a , "addClass" , k ) } , removeClass : function ( a , b , k ) { return k = Ua ( k ) , k . removeClass = Bb ( k . removeClass , b ) , d . push ( a , "removeClass" , k ) } , setClass : function ( a , b , k , c ) { return c = Ua ( c ) , c . addClass = Bb ( c . addClass , b ) , c . removeClass = Bb ( c . removeClass , k ) , d . push ( a , "setClass" , c ) } , animate : function ( a , b , k , c , e ) { return e = Ua ( e ) , e . from = e . from ? n ( e . from , b ) : b , e . to = e . to ? n ( e . to , k ) : k , e . tempClasses = Bb ( e . tempClasses , c || "ng-inline-animate" ) , d . push ( a , "animate" , e ) } } } ] } ] , Ne =
function ( ) { this . $get = [ "$$rAF" , function ( d ) { function a ( a ) { b . push ( a ) ; 1 < b . length || d ( function ( ) { for ( var d = 0 ; d < b . length ; d ++ ) b [ d ] ( ) ; b = [ ] } ) } var b = [ ] ; return function ( ) { var d = ! 1 ; return a ( function ( ) { d = ! 0 } ) , function ( b ) { d ? b ( ) : a ( b ) } } } ] } , ed = function ( ) { this . $get = [ "$q" , "$sniffer" , "$$animateAsyncRun" , "$document" , "$timeout" , function ( d , a , c , e , f ) { function k ( d ) { this . setHost ( d ) ; var a = c ( ) ; this . _doneCallbacks = [ ] ; this . _tick = function ( d ) { var b = e [ 0 ] ; b && b . hidden ? f ( d , 0 , ! 1 ) : a ( d ) } ; this . _state = 0 } return k . chain = function ( d , a ) { function b ( ) { k ===
d . length ? a ( ! 0 ) : d [ k ] ( function ( d ) { ! 1 === d ? a ( ! 1 ) : ( k ++ , b ( ) ) } ) } var k = 0 ; b ( ) } , k . all = function ( d , a ) { function k ( b ) { e = e && b ; ++ c === d . length && a ( e ) } var c = 0 , e = ! 0 ; b ( d , function ( d ) { d . done ( k ) } ) } , k . prototype = { setHost : function ( d ) { this . host = d || { } } , done : function ( d ) { 2 === this . _state ? d ( ) : this . _doneCallbacks . push ( d ) } , progress : r , getPromise : function ( ) { if ( ! this . promise ) { var a = this ; this . promise = d ( function ( d , b ) { a . done ( function ( a ) { ! 1 === a ? b ( ) : d ( ) } ) } ) } return this . promise } , then : function ( d , a ) { return this . getPromise ( ) . then ( d , a ) } , "catch" : function ( d ) { return this . getPromise ( ) [ "catch" ] ( d ) } ,
"finally" : function ( d ) { return this . getPromise ( ) [ "finally" ] ( d ) } , pause : function ( ) { this . host . pause && this . host . pause ( ) } , resume : function ( ) { this . host . resume && this . host . resume ( ) } , end : function ( ) { this . host . end && this . host . end ( ) ; this . _resolve ( ! 0 ) } , cancel : function ( ) { this . host . cancel && this . host . cancel ( ) ; this . _resolve ( ! 1 ) } , complete : function ( d ) { var a = this ; 0 === a . _state && ( a . _state = 1 , a . _tick ( function ( ) { a . _resolve ( d ) } ) ) } , _resolve : function ( d ) { 2 !== this . _state && ( b ( this . _doneCallbacks , function ( a ) { a ( d ) } ) , this . _doneCallbacks . length =
0 , this . _state = 2 ) } } , k } ] } , Le = function ( ) { this . $get = [ "$$rAF" , "$q" , "$$AnimateRunner" , function ( d , a , b ) { return function ( a , k ) { function c ( ) { return d ( function ( ) { e . addClass && ( a . addClass ( e . addClass ) , e . addClass = null ) ; e . removeClass && ( a . removeClass ( e . removeClass ) , e . removeClass = null ) ; e . to && ( a . css ( e . to ) , e . to = null ) ; f || g . complete ( ) ; f = ! 0 } ) , g } var e = k || { } ; e . $$prepared || ( e = P ( e ) ) ; e . cleanupStyles && ( e . from = e . to = null ) ; e . from && ( a . css ( e . from ) , e . from = null ) ; var f , g = new b ; return { start : c , end : c } } } ] } , Va = e ( "$compile" ) ; Fb . $inject = [ "$provide" ,
"$$sanitizeUriProvider" ] ; var Sd = /^((?:x|data)[\:\-_])/i , gf = e ( "$controller" ) , Jc = /^(\S+)(\s+as\s+([\w$]+))?$/ , dc = function ( ) { this . $get = [ "$document" , function ( d ) { return function ( a ) { return a ? ! a . nodeType && a instanceof Y && ( a = a [ 0 ] ) : a = d [ 0 ] . body , a . offsetWidth + 1 } } ] } , Wd = "application/json" , Kc = { "Content-Type" : Wd + ";charset=utf-8" } , hf = /^\[|^\{(?!\{)/ , od = { "[" : /]$/ , "{" : /}$/ } , Da = /^\)\]\}',?\n/ , If = e ( "$http" ) , jf = function ( d ) { return function ( ) { throw If ( "legacy" , d ) ; } } , Wb = Ha . $interpolateMinErr = e ( "$interpolate" ) ; Wb . throwNoconcat =
function ( d ) { throw Wb ( "noconcat" , d ) ; } ; Wb . interr = function ( d , a ) { return Wb ( "interr" , d , a . toString ( ) ) } ; var kc = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/ , lf = { http : 80 , https : 443 , ftp : 21 } , Cb = e ( "$location" ) , re = { $$html5 : ! 1 , $$replace : ! 1 , absUrl : Mc ( "$$absUrl" ) , url : function ( d ) { if ( E ( d ) ) return this . $$url ; var a = kc . exec ( d ) ; return ( a [ 1 ] || "" === d ) && this . path ( decodeURIComponent ( a [ 1 ] ) ) , ( a [ 2 ] || a [ 1 ] || "" === d ) && this . search ( a [ 3 ] || "" ) , this . hash ( a [ 5 ] || "" ) , this } , protocol : Mc ( "$$protocol" ) , host : Mc ( "$$host" ) , port : Mc ( "$$port" ) , path : Za ( "$$path" ,
function ( d ) { return d = null !== d ? d . toString ( ) : "" , "/" == d . charAt ( 0 ) ? d : "/" + d } ) , search : function ( d , a ) { switch ( arguments . length ) { case 0 : return this . $$search ; case 1 : if ( v ( d ) || I ( d ) ) d = d . toString ( ) , this . $$search = Ga ( d ) ; else { if ( ! p ( d ) ) throw Cb ( "isrcharg" ) ; d = P ( d , { } ) ; b ( d , function ( a , b ) { null == a && delete d [ b ] } ) ; this . $$search = d } break ; default : E ( a ) || null === a ? delete this . $$search [ d ] : this . $$search [ d ] = a } return this . $$compose ( ) , this } , hash : Za ( "$$hash" , function ( d ) { return null !== d ? d . toString ( ) : "" } ) , replace : function ( ) { return this . $$replace =
! 0 , this } } ; b ( [ ae , $d , Zd ] , function ( d ) { d . prototype = Object . create ( re ) ; d . prototype . state = function ( a ) { if ( ! arguments . length ) return this . $$state ; if ( d !== Zd || ! this . $$html5 ) throw Cb ( "nostate" ) ; return this . $$state = E ( a ) ? null : a , this } } ) ; var Xa = e ( "$parse" ) , nb = Function . prototype . call , mf = Function . prototype . apply , be = Function . prototype . bind , Ad = Fa ( ) ; b ( "+ - * / % === !== == != < > <= >= && || ! = |" . split ( " " ) , function ( d ) { Ad [ d ] = ! 0 } ) ; var Jf = { n : "\n" , f : "\f" , r : "\r" , t : "\t" , v : "\x0B" , "'" : "'" , '"' : '"' } , Ja = function ( d ) { this . options =
d } ; Ja . prototype = { constructor : Ja , lex : function ( d ) { this . text = d ; this . index = 0 ; for ( this . tokens = [ ] ; this . index < this . text . length ; ) if ( d = this . text . charAt ( this . index ) , '"' === d || "'" === d ) this . readString ( d ) ; else if ( this . isNumber ( d ) || "." === d && this . isNumber ( this . peek ( ) ) ) this . readNumber ( ) ; else if ( this . isIdent ( d ) ) this . readIdent ( ) ; else if ( this . is ( d , "(){}[].,;:?" ) ) this . tokens . push ( { index : this . index , text : d } ) , this . index ++ ; else if ( this . isWhitespace ( d ) ) this . index ++ ; else { var a = d + this . peek ( ) , b = a + this . peek ( 2 ) , c = Ad [ a ] , e = Ad [ b ] ;
Ad [ d ] || c || e ? ( d = e ? b : c ? a : d , this . tokens . push ( { index : this . index , text : d , operator : ! 0 } ) , this . index += d . length ) : this . throwError ( "Unexpected next character " , this . index , this . index + 1 ) } return this . tokens } , is : function ( d , a ) { return - 1 !== a . indexOf ( d ) } , peek : function ( d ) { return d = d || 1 , this . index + d < this . text . length && this . text . charAt ( this . index + d ) } , isNumber : function ( d ) { return "0" <= d && "9" >= d && "string" == typeof d } , isWhitespace : function ( d ) { return " " === d || "\r" === d || "\t" === d || "\n" === d || "\x0B" === d || "\u00a0" === d } , isIdent : function ( d ) { return "a" <=
d && "z" >= d || "A" <= d && "Z" >= d || "_" === d || "$" === d } , isExpOperator : function ( d ) { return "-" === d || "+" === d || this . isNumber ( d ) } , throwError : function ( d , a , b ) { throw b = b || this . index , a = F ( a ) ? "s " + a + "-" + this . index + " [" + this . text . substring ( a , b ) + "]" : " " + b , Xa ( "lexerr" , d , a , this . text ) ; } , readNumber : function ( ) { for ( var d = "" , a = this . index ; this . index < this . text . length ; ) { var b = ma ( this . text . charAt ( this . index ) ) ; if ( "." == b || this . isNumber ( b ) ) d += b ; else { var c = this . peek ( ) ; if ( "e" == b && this . isExpOperator ( c ) ) d += b ; else if ( this . isExpOperator ( b ) &&
c && this . isNumber ( c ) && "e" == d . charAt ( d . length - 1 ) ) d += b ; else { if ( ! this . isExpOperator ( b ) || c && this . isNumber ( c ) || "e" != d . charAt ( d . length - 1 ) ) break ; this . throwError ( "Invalid exponent" ) } } this . index ++ } this . tokens . push ( { index : a , text : d , constant : ! 0 , value : Number ( d ) } ) } , readIdent : function ( ) { for ( var d = this . index ; this . index < this . text . length ; ) { var a = this . text . charAt ( this . index ) ; if ( ! this . isIdent ( a ) && ! this . isNumber ( a ) ) break ; this . index ++ } this . tokens . push ( { index : d , text : this . text . slice ( d , this . index ) , identifier : ! 0 } ) } , readString : function ( d ) { var a =
this . index ; this . index ++ ; for ( var b = "" , c = d , e = ! 1 ; this . index < this . text . length ; ) { var f = this . text . charAt ( this . index ) , c = c + f ; if ( e ) "u" === f ? ( e = this . text . substring ( this . index + 1 , this . index + 5 ) , e . match ( /[\da-f]{4}/i ) || this . throwError ( "Invalid unicode escape [\\u" + e + "]" ) , this . index += 4 , b += String . fromCharCode ( parseInt ( e , 16 ) ) ) : b += Jf [ f ] || f , e = ! 1 ; else if ( "\\" === f ) e = ! 0 ; else { if ( f === d ) return this . index ++ , void this . tokens . push ( { index : a , text : c , constant : ! 0 , value : b } ) ; b += f } this . index ++ } this . throwError ( "Unterminated quote" , a ) } } ;
var R = function ( d , a ) { this . lexer = d ; this . options = a } ; R . Program = "Program" ; R . ExpressionStatement = "ExpressionStatement" ; R . AssignmentExpression = "AssignmentExpression" ; R . ConditionalExpression = "ConditionalExpression" ; R . LogicalExpression = "LogicalExpression" ; R . BinaryExpression = "BinaryExpression" ; R . UnaryExpression = "UnaryExpression" ; R . CallExpression = "CallExpression" ; R . MemberExpression = "MemberExpression" ; R . Identifier = "Identifier" ; R . Literal = "Literal" ; R . ArrayExpression = "ArrayExpression" ; R . Property = "Property" ; R . ObjectExpression =
"ObjectExpression" ; R . ThisExpression = "ThisExpression" ; R . NGValueParameter = "NGValueParameter" ; R . prototype = { ast : function ( d ) { return this . text = d , this . tokens = this . lexer . lex ( d ) , d = this . program ( ) , 0 !== this . tokens . length && this . throwError ( "is an unexpected token" , this . tokens [ 0 ] ) , d } , program : function ( ) { for ( var d = [ ] ; ; ) if ( 0 < this . tokens . length && ! this . peek ( "}" , ")" , ";" , "]" ) && d . push ( this . expressionStatement ( ) ) , ! this . expect ( ";" ) ) return { type : R . Program , body : d } } , expressionStatement : function ( ) { return { type : R . ExpressionStatement ,
expression : this . filterChain ( ) } } , filterChain : function ( ) { for ( var d = this . expression ( ) ; this . expect ( "|" ) ; ) d = this . filter ( d ) ; return d } , expression : function ( ) { return this . assignment ( ) } , assignment : function ( ) { var d = this . ternary ( ) ; return this . expect ( "=" ) && ( d = { type : R . AssignmentExpression , left : d , right : this . assignment ( ) , operator : "=" } ) , d } , ternary : function ( ) { var d , a , b = this . logicalOR ( ) ; return this . expect ( "?" ) && ( d = this . expression ( ) , this . consume ( ":" ) ) ? ( a = this . expression ( ) , { type : R . ConditionalExpression , test : b , alternate : d ,
consequent : a } ) : b } , logicalOR : function ( ) { for ( var d = this . logicalAND ( ) ; this . expect ( "||" ) ; ) d = { type : R . LogicalExpression , operator : "||" , left : d , right : this . logicalAND ( ) } ; return d } , logicalAND : function ( ) { for ( var d = this . equality ( ) ; this . expect ( "&&" ) ; ) d = { type : R . LogicalExpression , operator : "&&" , left : d , right : this . equality ( ) } ; return d } , equality : function ( ) { for ( var d , a = this . relational ( ) ; d = this . expect ( "==" , "!=" , "===" , "!==" ) ; ) a = { type : R . BinaryExpression , operator : d . text , left : a , right : this . relational ( ) } ; return a } , relational : function ( ) { for ( var d ,
a = this . additive ( ) ; d = this . expect ( "<" , ">" , "<=" , ">=" ) ; ) a = { type : R . BinaryExpression , operator : d . text , left : a , right : this . additive ( ) } ; return a } , additive : function ( ) { for ( var d , a = this . multiplicative ( ) ; d = this . expect ( "+" , "-" ) ; ) a = { type : R . BinaryExpression , operator : d . text , left : a , right : this . multiplicative ( ) } ; return a } , multiplicative : function ( ) { for ( var d , a = this . unary ( ) ; d = this . expect ( "*" , "/" , "%" ) ; ) a = { type : R . BinaryExpression , operator : d . text , left : a , right : this . unary ( ) } ; return a } , unary : function ( ) { var d ; return ( d = this . expect ( "+" ,
"-" , "!" ) ) ? { type : R . UnaryExpression , operator : d . text , prefix : ! 0 , argument : this . unary ( ) } : this . primary ( ) } , primary : function ( ) { var d ; this . expect ( "(" ) ? ( d = this . filterChain ( ) , this . consume ( ")" ) ) : this . expect ( "[" ) ? d = this . arrayDeclaration ( ) : this . expect ( "{" ) ? d = this . object ( ) : this . constants . hasOwnProperty ( this . peek ( ) . text ) ? d = P ( this . constants [ this . consume ( ) . text ] ) : this . peek ( ) . identifier ? d = this . identifier ( ) : this . peek ( ) . constant ? d = this . constant ( ) : this . throwError ( "not a primary expression" , this . peek ( ) ) ; for ( var a ; a = this . expect ( "(" ,
"[" , "." ) ; ) "(" === a . text ? ( d = { type : R . CallExpression , callee : d , arguments : this . parseArguments ( ) } , this . consume ( ")" ) ) : "[" === a . text ? ( d = { type : R . MemberExpression , object : d , property : this . expression ( ) , computed : ! 0 } , this . consume ( "]" ) ) : "." === a . text ? d = { type : R . MemberExpression , object : d , property : this . identifier ( ) , computed : ! 1 } : this . throwError ( "IMPOSSIBLE" ) ; return d } , filter : function ( d ) { d = [ d ] ; for ( var a = { type : R . CallExpression , callee : this . identifier ( ) , arguments : d , filter : ! 0 } ; this . expect ( ":" ) ; ) d . push ( this . expression ( ) ) ; return a } ,
parseArguments : function ( ) { var d = [ ] ; if ( ")" !== this . peekToken ( ) . text ) { do d . push ( this . expression ( ) ) ; while ( this . expect ( "," ) ) } return d } , identifier : function ( ) { var d = this . consume ( ) ; return d . identifier || this . throwError ( "is not a valid identifier" , d ) , { type : R . Identifier , name : d . text } } , constant : function ( ) { return { type : R . Literal , value : this . consume ( ) . value } } , arrayDeclaration : function ( ) { var d = [ ] ; if ( "]" !== this . peekToken ( ) . text ) { do { if ( this . peek ( "]" ) ) break ; d . push ( this . expression ( ) ) } while ( this . expect ( "," ) ) } return this . consume ( "]" ) ,
{ type : R . ArrayExpression , elements : d } } , object : function ( ) { var d , a = [ ] ; if ( "}" !== this . peekToken ( ) . text ) { do { if ( this . peek ( "}" ) ) break ; d = { type : R . Property , kind : "init" } ; this . peek ( ) . constant ? d . key = this . constant ( ) : this . peek ( ) . identifier ? d . key = this . identifier ( ) : this . throwError ( "invalid key" , this . peek ( ) ) ; this . consume ( ":" ) ; d . value = this . expression ( ) ; a . push ( d ) } while ( this . expect ( "," ) ) } return this . consume ( "}" ) , { type : R . ObjectExpression , properties : a } } , throwError : function ( d , a ) { throw Xa ( "syntax" , a . text , d , a . index + 1 , this . text ,
this . text . substring ( a . index ) ) ; } , consume : function ( d ) { if ( 0 === this . tokens . length ) throw Xa ( "ueoe" , this . text ) ; var a = this . expect ( d ) ; return a || this . throwError ( "is unexpected, expecting [" + d + "]" , this . peek ( ) ) , a } , peekToken : function ( ) { if ( 0 === this . tokens . length ) throw Xa ( "ueoe" , this . text ) ; return this . tokens [ 0 ] } , peek : function ( d , a , b , c ) { return this . peekAhead ( 0 , d , a , b , c ) } , peekAhead : function ( d , a , b , c , e ) { if ( this . tokens . length > d ) { d = this . tokens [ d ] ; var k = d . text ; if ( k === a || k === b || k === c || k === e || ! ( a || b || c || e ) ) return d } return ! 1 } ,
expect : function ( d , a , b , c ) { return ! ! ( d = this . peek ( d , a , b , c ) ) && ( this . tokens . shift ( ) , d ) } , constants : { "true" : { type : R . Literal , value : ! 0 } , "false" : { type : R . Literal , value : ! 1 } , "null" : { type : R . Literal , value : null } , undefined : { type : R . Literal , value : h } , "this" : { type : R . ThisExpression } } } ; sd . prototype = { compile : function ( d , a ) { var c = this , k = this . astBuilder . ast ( d ) ; this . state = { nextId : 0 , filters : { } , expensiveChecks : a , fn : { vars : [ ] , body : [ ] , own : { } } , assign : { vars : [ ] , body : [ ] , own : { } } , inputs : [ ] } ; Na ( k , c . $filter ) ; var e , f = "" ; return this . stage =
"assign" , ( e = nf ( k ) ) && ( this . state . computing = "assign" , f = this . nextId ( ) , this . recurse ( e , f ) , this . return _ ( f ) , f = "fn.assign=" + this . generateFunction ( "assign" , "s,v,l" ) ) , e = de ( k . body ) , c . stage = "inputs" , b ( e , function ( d , a ) { var b = "fn" + a ; c . state [ b ] = { vars : [ ] , body : [ ] , own : { } } ; c . state . computing = b ; var k = c . nextId ( ) ; c . recurse ( d , k ) ; c . return _ ( k ) ; c . state . inputs . push ( b ) ; d . watchId = a } ) , this . state . computing = "fn" , this . stage = "main" , this . recurse ( k ) , f = '"' + this . USE + " " + this . STRICT + '";\n' + this . filterPrefix ( ) + "var fn=" + this . generateFunction ( "fn" ,
"s,l,a,i" ) + f + this . watchFns ( ) + "return fn;" , f = ( new Function ( "$filter" , "ensureSafeMemberName" , "ensureSafeObject" , "ensureSafeFunction" , "getStringValue" , "ensureSafeAssignContext" , "ifDefined" , "plus" , "text" , f ) ) ( this . $filter , Xb , bb , Nc , qd , Oc , ce , qc , d ) , this . state = this . stage = h , f . literal = ee ( k ) , f . constant = k . constant , f } , USE : "use" , STRICT : "strict" , watchFns : function ( ) { var d = [ ] , a = this . state . inputs , c = this ; return b ( a , function ( a ) { d . push ( "var " + a + "=" + c . generateFunction ( a , "s" ) ) } ) , a . length && d . push ( "fn.inputs=[" + a . join ( "," ) +
"];" ) , d . join ( "" ) } , generateFunction : function ( d , a ) { return "function(" + a + "){" + this . varsPrefix ( d ) + this . body ( d ) + "};" } , filterPrefix : function ( ) { var d = [ ] , a = this ; return b ( this . state . filters , function ( b , c ) { d . push ( b + "=$filter(" + a . escape ( c ) + ")" ) } ) , d . length ? "var " + d . join ( "," ) + ";" : "" } , varsPrefix : function ( d ) { return this . state [ d ] . vars . length ? "var " + this . state [ d ] . vars . join ( "," ) + ";" : "" } , body : function ( d ) { return this . state [ d ] . body . join ( "" ) } , recurse : function ( d , a , c , e , f , g ) { var k , m , l , n , u = this ; if ( e = e || r , ! g && F ( d . watchId ) ) a =
a || this . nextId ( ) , this . if _ ( "i" , this . lazyAssign ( a , this . computedMember ( "i" , d . watchId ) ) , this . lazyRecurse ( d , a , c , e , f , ! 0 ) ) ; else switch ( d . type ) { case R . Program : b ( d . body , function ( a , b ) { u . recurse ( a . expression , h , h , function ( d ) { m = d } ) ; b !== d . body . length - 1 ? u . current ( ) . body . push ( m , ";" ) : u . return _ ( m ) } ) ; break ; case R . Literal : n = this . escape ( d . value ) ; this . assign ( a , n ) ; e ( n ) ; break ; case R . UnaryExpression : this . recurse ( d . argument , h , h , function ( d ) { m = d } ) ; n = d . operator + "(" + this . ifDefined ( m , 0 ) + ")" ; this . assign ( a , n ) ; e ( n ) ; break ; case R . BinaryExpression : this . recurse ( d . left ,
h , h , function ( d ) { k = d } ) ; this . recurse ( d . right , h , h , function ( d ) { m = d } ) ; n = "+" === d . operator ? this . plus ( k , m ) : "-" === d . operator ? this . ifDefined ( k , 0 ) + d . operator + this . ifDefined ( m , 0 ) : "(" + k + ")" + d . operator + "(" + m + ")" ; this . assign ( a , n ) ; e ( n ) ; break ; case R . LogicalExpression : a = a || this . nextId ( ) ; u . recurse ( d . left , a ) ; u . if _ ( "&&" === d . operator ? a : u . not ( a ) , u . lazyRecurse ( d . right , a ) ) ; e ( a ) ; break ; case R . ConditionalExpression : a = a || this . nextId ( ) ; u . recurse ( d . test , a ) ; u . if _ ( a , u . lazyRecurse ( d . alternate , a ) , u . lazyRecurse ( d . consequent , a ) ) ; e ( a ) ;
break ; case R . Identifier : a = a || this . nextId ( ) ; c && ( c . context = "inputs" === u . stage ? "s" : this . assign ( this . nextId ( ) , this . getHasOwnProperty ( "l" , d . name ) + "?l:s" ) , c . computed = ! 1 , c . name = d . name ) ; Xb ( d . name ) ; u . if _ ( "inputs" === u . stage || u . not ( u . getHasOwnProperty ( "l" , d . name ) ) , function ( ) { u . if _ ( "inputs" === u . stage || "s" , function ( ) { f && 1 !== f && u . if _ ( u . not ( u . nonComputedMember ( "s" , d . name ) ) , u . lazyAssign ( u . nonComputedMember ( "s" , d . name ) , "{}" ) ) ; u . assign ( a , u . nonComputedMember ( "s" , d . name ) ) } ) } , a && u . lazyAssign ( a , u . nonComputedMember ( "l" ,
d . name ) ) ) ; ( u . state . expensiveChecks || "constructor" == d . name ) && u . addEnsureSafeObject ( a ) ; e ( a ) ; break ; case R . MemberExpression : k = c && ( c . context = this . nextId ( ) ) || this . nextId ( ) ; a = a || this . nextId ( ) ; u . recurse ( d . object , k , h , function ( ) { u . if _ ( u . notNull ( k ) , function ( ) { f && 1 !== f && u . addEnsureSafeAssignContext ( k ) ; d . computed ? ( m = u . nextId ( ) , u . recurse ( d . property , m ) , u . getStringValue ( m ) , u . addEnsureSafeMemberName ( m ) , f && 1 !== f && u . if _ ( u . not ( u . computedMember ( k , m ) ) , u . lazyAssign ( u . computedMember ( k , m ) , "{}" ) ) , n = u . ensureSafeObject ( u . computedMember ( k ,
m ) ) , u . assign ( a , n ) , c && ( c . computed = ! 0 , c . name = m ) ) : ( Xb ( d . property . name ) , f && 1 !== f && u . if _ ( u . not ( u . nonComputedMember ( k , d . property . name ) ) , u . lazyAssign ( u . nonComputedMember ( k , d . property . name ) , "{}" ) ) , n = u . nonComputedMember ( k , d . property . name ) , ( u . state . expensiveChecks || "constructor" == d . property . name ) && ( n = u . ensureSafeObject ( n ) ) , u . assign ( a , n ) , c && ( c . computed = ! 1 , c . name = d . property . name ) ) } , function ( ) { u . assign ( a , "undefined" ) } ) ; e ( a ) } , ! ! f ) ; break ; case R . CallExpression : a = a || this . nextId ( ) ; d . filter ? ( m = u . filter ( d . callee . name ) ,
l = [ ] , b ( d . arguments , function ( d ) { var a = u . nextId ( ) ; u . recurse ( d , a ) ; l . push ( a ) } ) , n = m + "(" + l . join ( "," ) + ")" , u . assign ( a , n ) , e ( a ) ) : ( m = u . nextId ( ) , k = { } , l = [ ] , u . recurse ( d . callee , m , k , function ( ) { u . if _ ( u . notNull ( m ) , function ( ) { u . addEnsureSafeFunction ( m ) ; b ( d . arguments , function ( d ) { u . recurse ( d , u . nextId ( ) , h , function ( d ) { l . push ( u . ensureSafeObject ( d ) ) } ) } ) ; k . name ? ( u . state . expensiveChecks || u . addEnsureSafeObject ( k . context ) , n = u . member ( k . context , k . name , k . computed ) + "(" + l . join ( "," ) + ")" ) : n = m + "(" + l . join ( "," ) + ")" ; n = u . ensureSafeObject ( n ) ;
u . assign ( a , n ) } , function ( ) { u . assign ( a , "undefined" ) } ) ; e ( a ) } ) ) ; break ; case R . AssignmentExpression : if ( m = this . nextId ( ) , k = { } , ! rd ( d . left ) ) throw Xa ( "lval" ) ; this . recurse ( d . left , h , k , function ( ) { u . if _ ( u . notNull ( k . context ) , function ( ) { u . recurse ( d . right , m ) ; u . addEnsureSafeObject ( u . member ( k . context , k . name , k . computed ) ) ; u . addEnsureSafeAssignContext ( k . context ) ; n = u . member ( k . context , k . name , k . computed ) + d . operator + m ; u . assign ( a , n ) ; e ( a || n ) } ) } , 1 ) ; break ; case R . ArrayExpression : l = [ ] ; b ( d . elements , function ( d ) { u . recurse ( d , u . nextId ( ) ,
h , function ( d ) { l . push ( d ) } ) } ) ; n = "[" + l . join ( "," ) + "]" ; this . assign ( a , n ) ; e ( n ) ; break ; case R . ObjectExpression : l = [ ] ; b ( d . properties , function ( d ) { u . recurse ( d . value , u . nextId ( ) , h , function ( a ) { l . push ( u . escape ( d . key . type === R . Identifier ? d . key . name : "" + d . key . value ) + ":" + a ) } ) } ) ; n = "{" + l . join ( "," ) + "}" ; this . assign ( a , n ) ; e ( n ) ; break ; case R . ThisExpression : this . assign ( a , "s" ) ; e ( "s" ) ; break ; case R . NGValueParameter : this . assign ( a , "v" ) , e ( "v" ) } } , getHasOwnProperty : function ( d , a ) { var b = d + "." + a , c = this . current ( ) . own ; return c . hasOwnProperty ( b ) ||
( c [ b ] = this . nextId ( ! 1 , d + "&&(" + this . escape ( a ) + " in " + d + ")" ) ) , c [ b ] } , assign : function ( d , a ) { if ( d ) return this . current ( ) . body . push ( d , "=" , a , ";" ) , d } , filter : function ( d ) { return this . state . filters . hasOwnProperty ( d ) || ( this . state . filters [ d ] = this . nextId ( ! 0 ) ) , this . state . filters [ d ] } , ifDefined : function ( d , a ) { return "ifDefined(" + d + "," + this . escape ( a ) + ")" } , plus : function ( d , a ) { return "plus(" + d + "," + a + ")" } , return _ : function ( d ) { this . current ( ) . body . push ( "return " , d , ";" ) } , if _ : function ( d , a , b ) { if ( ! 0 === d ) a ( ) ; else { var c = this . current ( ) . body ;
c . push ( "if(" , d , "){" ) ; a ( ) ; c . push ( "}" ) ; b && ( c . push ( "else{" ) , b ( ) , c . push ( "}" ) ) } } , not : function ( d ) { return "!(" + d + ")" } , notNull : function ( d ) { return d + "!=null" } , nonComputedMember : function ( d , a ) { return d + "." + a } , computedMember : function ( d , a ) { return d + "[" + a + "]" } , member : function ( d , a , b ) { return b ? this . computedMember ( d , a ) : this . nonComputedMember ( d , a ) } , addEnsureSafeObject : function ( d ) { this . current ( ) . body . push ( this . ensureSafeObject ( d ) , ";" ) } , addEnsureSafeMemberName : function ( d ) { this . current ( ) . body . push ( this . ensureSafeMemberName ( d ) ,
";" ) } , addEnsureSafeFunction : function ( d ) { this . current ( ) . body . push ( this . ensureSafeFunction ( d ) , ";" ) } , addEnsureSafeAssignContext : function ( d ) { this . current ( ) . body . push ( this . ensureSafeAssignContext ( d ) , ";" ) } , ensureSafeObject : function ( d ) { return "ensureSafeObject(" + d + ",text)" } , ensureSafeMemberName : function ( d ) { return "ensureSafeMemberName(" + d + ",text)" } , ensureSafeFunction : function ( d ) { return "ensureSafeFunction(" + d + ",text)" } , getStringValue : function ( d ) { this . assign ( d , "getStringValue(" + d + ",text)" ) } , ensureSafeAssignContext : function ( d ) { return "ensureSafeAssignContext(" +
d + ",text)" } , lazyRecurse : function ( d , a , b , c , e , f ) { var k = this ; return function ( ) { k . recurse ( d , a , b , c , e , f ) } } , lazyAssign : function ( d , a ) { var b = this ; return function ( ) { b . assign ( d , a ) } } , stringEscapeRegex : /[^ a-zA-Z0-9]/g , stringEscapeFn : function ( d ) { return "\\u" + ( "0000" + d . charCodeAt ( 0 ) . toString ( 16 ) ) . slice ( - 4 ) } , escape : function ( d ) { if ( v ( d ) ) return "'" + d . replace ( this . stringEscapeRegex , this . stringEscapeFn ) + "'" ; if ( I ( d ) ) return d . toString ( ) ; if ( ! 0 === d ) return "true" ; if ( ! 1 === d ) return "false" ; if ( null === d ) return "null" ; if ( "undefined" ==
typeof d ) return "undefined" ; throw Xa ( "esc" ) ; } , nextId : function ( d , a ) { var b = "v" + this . state . nextId ++ ; return d || this . current ( ) . vars . push ( b + ( a ? "=" + a : "" ) ) , b } , current : function ( ) { return this . state [ this . state . computing ] } } ; of . prototype = { compile : function ( d , a ) { var c = this , k = this . astBuilder . ast ( d ) ; this . expression = d ; this . expensiveChecks = a ; Na ( k , c . $filter ) ; var e , f ; ( e = nf ( k ) ) && ( f = this . recurse ( e ) ) ; e = de ( k . body ) ; var g ; e && ( g = [ ] , b ( e , function ( d , a ) { var b = c . recurse ( d ) ; d . input = b ; g . push ( b ) ; d . watchId = a } ) ) ; var h = [ ] ; return b ( k . body ,
function ( d ) { h . push ( c . recurse ( d . expression ) ) } ) , e = 0 === k . body . length ? function ( ) { } : 1 === k . body . length ? h [ 0 ] : function ( d , a ) { var c ; return b ( h , function ( b ) { c = b ( d , a ) } ) , c } , f && ( e . assign = function ( d , a , b ) { return f ( d , b , a ) } ) , g && ( e . inputs = g ) , e . literal = ee ( k ) , e . constant = k . constant , e } , recurse : function ( d , a , c ) { var k , e , f , g = this ; if ( d . input ) return this . inputs ( d . input , d . watchId ) ; switch ( d . type ) { case R . Literal : return this . value ( d . value , a ) ; case R . UnaryExpression : return e = this . recurse ( d . argument ) , this [ "unary" + d . operator ] ( e , a ) ; case R . BinaryExpression : return k =
this . recurse ( d . left ) , e = this . recurse ( d . right ) , this [ "binary" + d . operator ] ( k , e , a ) ; case R . LogicalExpression : return k = this . recurse ( d . left ) , e = this . recurse ( d . right ) , this [ "binary" + d . operator ] ( k , e , a ) ; case R . ConditionalExpression : return this [ "ternary?:" ] ( this . recurse ( d . test ) , this . recurse ( d . alternate ) , this . recurse ( d . consequent ) , a ) ; case R . Identifier : return Xb ( d . name , g . expression ) , g . identifier ( d . name , g . expensiveChecks || "constructor" == d . name , a , c , g . expression ) ; case R . MemberExpression : return k = this . recurse ( d . object ,
! 1 , ! ! c ) , d . computed || ( Xb ( d . property . name , g . expression ) , e = d . property . name ) , d . computed && ( e = this . recurse ( d . property ) ) , d . computed ? this . computedMember ( k , e , a , c , g . expression ) : this . nonComputedMember ( k , e , g . expensiveChecks , a , c , g . expression ) ; case R . CallExpression : return f = [ ] , b ( d . arguments , function ( d ) { f . push ( g . recurse ( d ) ) } ) , d . filter && ( e = this . $filter ( d . callee . name ) ) , d . filter || ( e = this . recurse ( d . callee , ! 0 ) ) , d . filter ? function ( d , b , c , k ) { for ( var g = [ ] , m = 0 ; m < f . length ; ++ m ) g . push ( f [ m ] ( d , b , c , k ) ) ; return d = e . apply ( h , g , k ) , a ?
{ context : h , name : h , value : d } : d } : function ( d , b , c , k ) { var h , m = e ( d , b , c , k ) ; if ( null != m . value ) { bb ( m . context , g . expression ) ; Nc ( m . value , g . expression ) ; h = [ ] ; for ( var l = 0 ; l < f . length ; ++ l ) h . push ( bb ( f [ l ] ( d , b , c , k ) , g . expression ) ) ; h = bb ( m . value . apply ( m . context , h ) , g . expression ) } return a ? { value : h } : h } ; case R . AssignmentExpression : return k = this . recurse ( d . left , ! 0 , 1 ) , e = this . recurse ( d . right ) , function ( d , b , c , f ) { var h = k ( d , b , c , f ) ; return d = e ( d , b , c , f ) , bb ( h . value , g . expression ) , Oc ( h . context ) , h . context [ h . name ] = d , a ? { value : d } : d } ; case R . ArrayExpression : return f =
[ ] , b ( d . elements , function ( d ) { f . push ( g . recurse ( d ) ) } ) , function ( d , b , c , k ) { for ( var e = [ ] , g = 0 ; g < f . length ; ++ g ) e . push ( f [ g ] ( d , b , c , k ) ) ; return a ? { value : e } : e } ; case R . ObjectExpression : return f = [ ] , b ( d . properties , function ( d ) { f . push ( { key : d . key . type === R . Identifier ? d . key . name : "" + d . key . value , value : g . recurse ( d . value ) } ) } ) , function ( d , b , c , k ) { for ( var e = { } , g = 0 ; g < f . length ; ++ g ) e [ f [ g ] . key ] = f [ g ] . value ( d , b , c , k ) ; return a ? { value : e } : e } ; case R . ThisExpression : return function ( d ) { return a ? { value : d } : d } ; case R . NGValueParameter : return function ( d ,
b , c , k ) { return a ? { value : c } : c } } } , "unary+" : function ( d , a ) { return function ( b , c , k , e ) { return b = d ( b , c , k , e ) , b = F ( b ) ? + b : 0 , a ? { value : b } : b } } , "unary-" : function ( d , a ) { return function ( b , c , k , e ) { return b = d ( b , c , k , e ) , b = F ( b ) ? - b : 0 , a ? { value : b } : b } } , "unary!" : function ( d , a ) { return function ( b , c , k , e ) { return b = ! d ( b , c , k , e ) , a ? { value : b } : b } } , "binary+" : function ( d , a , b ) { return function ( c , k , e , f ) { var g = d ( c , k , e , f ) ; return c = a ( c , k , e , f ) , g = qc ( g , c ) , b ? { value : g } : g } } , "binary-" : function ( d , a , b ) { return function ( c , k , e , f ) { var g = d ( c , k , e , f ) ; return c = a ( c ,
k , e , f ) , g = ( F ( g ) ? g : 0 ) - ( F ( c ) ? c : 0 ) , b ? { value : g } : g } } , "binary*" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) * a ( c , k , e , f ) , b ? { value : c } : c } } , "binary/" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) / a ( c , k , e , f ) , b ? { value : c } : c } } , "binary%" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) % a ( c , k , e , f ) , b ? { value : c } : c } } , "binary===" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) === a ( c , k , e , f ) , b ? { value : c } : c } } , "binary!==" : function ( d , a , b ) { return function ( c , k , e , f ) { return c =
d ( c , k , e , f ) !== a ( c , k , e , f ) , b ? { value : c } : c } } , "binary==" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) == a ( c , k , e , f ) , b ? { value : c } : c } } , "binary!=" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) != a ( c , k , e , f ) , b ? { value : c } : c } } , "binary<" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) < a ( c , k , e , f ) , b ? { value : c } : c } } , "binary>" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) > a ( c , k , e , f ) , b ? { value : c } : c } } , "binary<=" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c ,
k , e , f ) <= a ( c , k , e , f ) , b ? { value : c } : c } } , "binary>=" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) >= a ( c , k , e , f ) , b ? { value : c } : c } } , "binary&&" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) && a ( c , k , e , f ) , b ? { value : c } : c } } , "binary||" : function ( d , a , b ) { return function ( c , k , e , f ) { return c = d ( c , k , e , f ) || a ( c , k , e , f ) , b ? { value : c } : c } } , "ternary?:" : function ( d , a , b , c ) { return function ( k , e , f , g ) { return k = d ( k , e , f , g ) ? a ( k , e , f , g ) : b ( k , e , f , g ) , c ? { value : k } : k } } , value : function ( d , a ) { return function ( ) { return a ? { context : h ,
name : h , value : d } : d } } , identifier : function ( d , a , b , c , e ) { return function ( k , f , g , m ) { return k = f && d in f ? f : k , c && 1 !== c && k && ! k [ d ] && ( k [ d ] = { } ) , f = k ? k [ d ] : h , a && bb ( f , e ) , b ? { context : k , name : d , value : f } : f } } , computedMember : function ( d , a , b , c , e ) { return function ( k , f , g , h ) { var m , l , n = d ( k , f , g , h ) ; return null != n && ( m = a ( k , f , g , h ) , m = qd ( m ) , Xb ( m , e ) , c && 1 !== c && ( Oc ( n ) , n && ! n [ m ] && ( n [ m ] = { } ) ) , l = n [ m ] , bb ( l , e ) ) , b ? { context : n , name : m , value : l } : l } } , nonComputedMember : function ( d , a , b , c , e , f ) { return function ( k , g , m , l ) { return k = d ( k , g , m , l ) , e && 1 !== e && ( Oc ( k ) , k &&
! k [ a ] && ( k [ a ] = { } ) ) , g = null != k ? k [ a ] : h , ( b || "constructor" == a ) && bb ( g , f ) , c ? { context : k , name : a , value : g } : g } } , inputs : function ( d , a ) { return function ( b , c , k , e ) { return e ? e [ a ] : d ( b , c , k ) } } } ; var $a = function ( d , a , b ) { this . lexer = d ; this . $filter = a ; this . options = b ; this . ast = new R ( this . lexer ) ; this . astCompiler = b . csp ? new of ( this . ast , a ) : new sd ( this . ast , a ) } ; $a . prototype = { constructor : $a , parse : function ( d ) { return this . astCompiler . compile ( d , this . options . expensiveChecks ) } } ; var Kg = Object . prototype . valueOf , Yb = e ( "$sce" ) , ub = { HTML : "html" , CSS : "css" ,
URL : "url" , RESOURCE _URL : "resourceUrl" , JS : "js" } , Va = e ( "$compile" ) , Ka = l . createElement ( "a" ) , rf = Kb ( a . location . href ) ; sf . $inject = [ "$document" ] ; Bc . $inject = [ "$provide" ] ; var yf = 22 , xf = "." , sc = "0" ; fe . $inject = [ "$locale" ] ; ie . $inject = [ "$locale" ] ; var wd = { yyyy : Ra ( "FullYear" , 4 ) , yy : Ra ( "FullYear" , 2 , 0 , ! 0 ) , y : Ra ( "FullYear" , 1 ) , MMMM : Qc ( "Month" ) , MMM : Qc ( "Month" , ! 0 ) , MM : Ra ( "Month" , 2 , 1 ) , M : Ra ( "Month" , 1 , 1 ) , dd : Ra ( "Date" , 2 ) , d : Ra ( "Date" , 1 ) , HH : Ra ( "Hours" , 2 ) , H : Ra ( "Hours" , 1 ) , hh : Ra ( "Hours" , 2 , - 12 ) , h : Ra ( "Hours" , 1 , - 12 ) , mm : Ra ( "Minutes" , 2 ) , m : Ra ( "Minutes" ,
1 ) , ss : Ra ( "Seconds" , 2 ) , s : Ra ( "Seconds" , 1 ) , sss : Ra ( "Milliseconds" , 3 ) , EEEE : Qc ( "Day" ) , EEE : Qc ( "Day" , ! 0 ) , a : function ( d , a ) { return 12 > d . getHours ( ) ? a . AMPMS [ 0 ] : a . AMPMS [ 1 ] } , Z : function ( d , a , b ) { return d = - 1 * b , ( 0 <= d ? "+" : "" ) + ( Pc ( Math [ 0 < d ? "floor" : "ceil" ] ( d / 60 ) , 2 ) + Pc ( Math . abs ( d % 60 ) , 2 ) ) } , ww : me ( 2 ) , w : me ( 1 ) , G : Rc , GG : Rc , GGG : Rc , GGGG : function ( d , a ) { return 0 >= d . getFullYear ( ) ? a . ERANAMES [ 0 ] : a . ERANAMES [ 1 ] } } , Bf = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/ , Af = /^\-?\d+$/ ; ge . $inject = [ "$locale" ] ;
var uf = C ( ma ) , ud = C ( fb ) ; je . $inject = [ "$parse" ] ; var bd = C ( { restrict : "E" , compile : function ( d , a ) { if ( ! a . href && ! a . xlinkHref ) return function ( d , a ) { if ( "a" === a [ 0 ] . nodeName . toLowerCase ( ) ) { var b = "[object SVGAnimatedString]" === pb . call ( a . prop ( "href" ) ) ? "xlink:href" : "href" ; a . on ( "click" , function ( d ) { a . attr ( b ) || d . preventDefault ( ) } ) } } } } ) , yb = { } ; b ( Ab , function ( d , a ) { function b ( d , b , e ) { d . $watch ( e [ c ] , function ( d ) { e . $set ( a , ! ! d ) } ) } if ( "multiple" != d ) { var c = mb ( "ng-" + a ) , e = b ; "checked" === d && ( e = function ( d , a , e ) { e . ngModel !== e [ c ] && b ( d , a , e ) } ) ;
yb [ c ] = function ( ) { return { restrict : "A" , priority : 100 , link : e } } } } ) ; b ( Vd , function ( d , a ) { yb [ a ] = function ( ) { return { priority : 100 , link : function ( d , b , c ) { return "ngPattern" === a && "/" == c . ngPattern . charAt ( 0 ) && ( b = c . ngPattern . match ( la ) ) ? void c . $set ( "ngPattern" , new RegExp ( b [ 1 ] , b [ 2 ] ) ) : void d . $watch ( c [ a ] , function ( d ) { c . $set ( a , d ) } ) } } } } ) ; b ( [ "src" , "srcset" , "href" ] , function ( d ) { var a = mb ( "ng-" + d ) ; yb [ a ] = function ( ) { return { priority : 99 , link : function ( b , c , e ) { var k = d , f = d ; "href" === d && "[object SVGAnimatedString]" === pb . call ( c . prop ( "href" ) ) &&
( f = "xlinkHref" , e . $attr [ f ] = "xlink:href" , k = null ) ; e . $observe ( a , function ( a ) { a ? ( e . $set ( f , a ) , hc && k && c . prop ( k , e [ f ] ) ) : "href" === d && e . $set ( f , null ) } ) } } } } ) ; var xd = { $addControl : r , $$renameControl : function ( d , a ) { d . $name = a } , $removeControl : r , $setValidity : r , $setDirty : r , $setPristine : r , $setSubmitted : r } ; Cf . $inject = [ "$element" , "$attrs" , "$scope" , "$animate" , "$interpolate" ] ; var lc = function ( d ) { return [ "$timeout" , "$parse" , function ( a , b ) { function c ( d ) { return "" === d ? b ( 'this[""]' ) . assign : b ( d ) . assign || r } return { name : "form" , restrict : d ?
"EAC" : "E" , require : [ "form" , "^^?form" ] , controller : Cf , compile : function ( b , e ) { b . addClass ( tc ) . addClass ( Vc ) ; var k = e . name ? "name" : ! ( ! d || ! e . ngForm ) && "ngForm" ; return { pre : function ( d , b , e , f ) { var g = f [ 0 ] ; if ( ! ( "action" in e ) ) { var m = function ( a ) { d . $apply ( function ( ) { g . $commitViewValue ( ) ; g . $setSubmitted ( ) } ) ; a . preventDefault ( ) } ; b [ 0 ] . addEventListener ( "submit" , m , ! 1 ) ; b . on ( "$destroy" , function ( ) { a ( function ( ) { b [ 0 ] . removeEventListener ( "submit" , m , ! 1 ) } , 0 , ! 1 ) } ) } ( f [ 1 ] || g . $$parentForm ) . $addControl ( g ) ; var l = k ? c ( g . $name ) : r ; k && ( l ( d , g ) ,
e . $observe ( k , function ( a ) { g . $name !== a && ( l ( d , h ) , g . $$parentForm . $$renameControl ( g , a ) , ( l = c ( g . $name ) ) ( d , g ) ) } ) ) ; b . on ( "$destroy" , function ( ) { g . $$parentForm . $removeControl ( g ) ; l ( d , h ) ; n ( g , xd ) } ) } } } } } ] } , Be = lc ( ) , Qa = lc ( ! 0 ) , eb = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/ , Mg = /^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i , og = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i ,
Kf = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/ , Lf = /^(\d{4})-(\d{2})-(\d{2})$/ , Wc = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/ , se = /^(\d{4})-W(\d\d)$/ , Mf = /^(\d{4})-(\d\d)$/ , te = /^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/ , Tc = Fa ( ) ; b ( [ "date" , "datetime-local" , "month" , "time" , "week" ] , function ( d ) { Tc [ d ] = ! 0 } ) ; var Xc = { text : function ( d , a , b , c , e , f ) { Sc ( d , a , b , c , e , f ) ; ne ( c ) } , date : $b ( "date" , Lf , ua ( Lf , [ "yyyy" , "MM" , "dd" ] ) , "yyyy-MM-dd" ) , "datetime-local" : $b ( "datetimelocal" , Wc , ua ( Wc , "yyyy MM dd HH mm ss sss" . split ( " " ) ) ,
"yyyy-MM-ddTHH:mm:ss.sss" ) , time : $b ( "time" , te , ua ( te , [ "HH" , "mm" , "ss" , "sss" ] ) , "HH:mm:ss.sss" ) , week : $b ( "week" , se , function ( d , a ) { if ( H ( d ) ) return d ; if ( v ( d ) ) { se . lastIndex = 0 ; var b = se . exec ( d ) ; if ( b ) { var c = + b [ 1 ] , e = + b [ 2 ] , k = b = 0 , f = 0 , g = 0 , h = le ( c ) , e = 7 * ( e - 1 ) ; return a && ( b = a . getHours ( ) , k = a . getMinutes ( ) , f = a . getSeconds ( ) , g = a . getMilliseconds ( ) ) , new Date ( c , 0 , h . getDate ( ) + e , b , k , f , g ) } } return NaN } , "yyyy-Www" ) , month : $b ( "month" , Mf , ua ( Mf , [ "yyyy" , "MM" ] ) , "yyyy-MM" ) , number : function ( d , a , b , c , e , f ) { if ( jc ( d , a , b , c ) , Sc ( d , a , b , c , e , f ) , c . $$parserName =
"number" , c . $parsers . push ( function ( d ) { return c . $isEmpty ( d ) ? null : Kf . test ( d ) ? parseFloat ( d ) : h } ) , c . $formatters . push ( function ( d ) { if ( ! c . $isEmpty ( d ) ) { if ( ! I ( d ) ) throw Uc ( "numfmt" , d ) ; d = d . toString ( ) } return d } ) , F ( b . min ) || b . ngMin ) { var k ; c . $validators . min = function ( d ) { return c . $isEmpty ( d ) || E ( k ) || d >= k } ; b . $observe ( "min" , function ( d ) { F ( d ) && ! I ( d ) && ( d = parseFloat ( d , 10 ) ) ; k = I ( d ) && ! isNaN ( d ) ? d : h ; c . $validate ( ) } ) } if ( F ( b . max ) || b . ngMax ) { var g ; c . $validators . max = function ( d ) { return c . $isEmpty ( d ) || E ( g ) || d <= g } ; b . $observe ( "max" , function ( d ) { F ( d ) &&
! I ( d ) && ( d = parseFloat ( d , 10 ) ) ; g = I ( d ) && ! isNaN ( d ) ? d : h ; c . $validate ( ) } ) } } , url : function ( d , a , b , c , e , f ) { Sc ( d , a , b , c , e , f ) ; ne ( c ) ; c . $$parserName = "url" ; c . $validators . url = function ( d , a ) { var b = d || a ; return c . $isEmpty ( b ) || Mg . test ( b ) } } , email : function ( d , a , b , c , e , f ) { Sc ( d , a , b , c , e , f ) ; ne ( c ) ; c . $$parserName = "email" ; c . $validators . email = function ( d , a ) { var b = d || a ; return c . $isEmpty ( b ) || og . test ( b ) } } , radio : function ( d , a , b , c ) { E ( b . name ) && a . attr ( "name" , ++ vc ) ; a . on ( "click" , function ( d ) { a [ 0 ] . checked && c . $setViewValue ( b . value , d && d . type ) } ) ; c . $render =
function ( ) { a [ 0 ] . checked = b . value == c . $viewValue } ; b . $observe ( "value" , c . $render ) } , checkbox : function ( d , a , b , c , e , f , g , h ) { var k = oe ( h , d , "ngTrueValue" , b . ngTrueValue , ! 0 ) , m = oe ( h , d , "ngFalseValue" , b . ngFalseValue , ! 1 ) ; a . on ( "click" , function ( d ) { c . $setViewValue ( a [ 0 ] . checked , d && d . type ) } ) ; c . $render = function ( ) { a [ 0 ] . checked = c . $viewValue } ; c . $isEmpty = function ( d ) { return ! 1 === d } ; c . $formatters . push ( function ( d ) { return U ( d , k ) } ) ; c . $parsers . push ( function ( d ) { return d ? k : m } ) } , hidden : r , button : r , submit : r , reset : r , file : r } , mc = [ "$browser" ,
"$sniffer" , "$filter" , "$parse" , function ( d , a , b , c ) { return { restrict : "E" , require : [ "?ngModel" ] , link : { pre : function ( e , k , f , g ) { g [ 0 ] && ( Xc [ ma ( f . type ) ] || Xc . text ) ( e , k , f , g [ 0 ] , a , d , b , c ) } } } } ] , vb = /^(true|false|\d+)$/ , Fd = function ( ) { return { restrict : "A" , priority : 100 , compile : function ( d , a ) { return vb . test ( a . ngValue ) ? function ( d , a , b ) { b . $set ( "value" , d . $eval ( b . ngValue ) ) } : function ( d , a , b ) { d . $watch ( b . ngValue , function ( d ) { b . $set ( "value" , d ) } ) } } } } , Dd = [ "$compile" , function ( d ) { return { restrict : "AC" , compile : function ( a ) { return d . $$addBindingClass ( a ) ,
function ( a , b , c ) { d . $$addBindingInfo ( b , c . ngBind ) ; b = b [ 0 ] ; a . $watch ( c . ngBind , function ( d ) { b . textContent = E ( d ) ? "" : d } ) } } } } ] , De = [ "$interpolate" , "$compile" , function ( d , a ) { return { compile : function ( b ) { return a . $$addBindingClass ( b ) , function ( b , c , e ) { b = d ( c . attr ( e . $attr . ngBindTemplate ) ) ; a . $$addBindingInfo ( c , b . expressions ) ; c = c [ 0 ] ; e . $observe ( "ngBindTemplate" , function ( d ) { c . textContent = E ( d ) ? "" : d } ) } } } } ] , Ce = [ "$sce" , "$parse" , "$compile" , function ( d , a , b ) { return { restrict : "A" , compile : function ( c , e ) { var k = a ( e . ngBindHtml ) , f = a ( e . ngBindHtml ,
function ( a ) { return d . valueOf ( a ) } ) ; return b . $$addBindingClass ( c ) , function ( a , c , e ) { b . $$addBindingInfo ( c , e . ngBindHtml ) ; a . $watch ( f , function ( ) { var b = k ( a ) ; c . html ( d . getTrustedHtml ( b ) || "" ) } ) } } } } ] , Ed = C ( { restrict : "A" , require : "ngModel" , link : function ( d , a , b , c ) { c . $viewChangeListeners . push ( function ( ) { d . $eval ( b . ngChange ) } ) } } ) , yc = ac ( "" , ! 0 ) , Ee = ac ( "Odd" , 0 ) , Uf = ac ( "Even" , 1 ) , Vf = db ( { compile : function ( d , a ) { a . $set ( "ngCloak" , h ) ; d . removeClass ( "ng-cloak" ) } } ) , Wf = [ function ( ) { return { restrict : "A" , scope : ! 0 , controller : "@" , priority : 500 } } ] ,
Ke = { } , pg = { blur : ! 0 , focus : ! 0 } ; b ( "click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste" . split ( " " ) , function ( d ) { var a = mb ( "ng-" + d ) ; Ke [ a ] = [ "$parse" , "$rootScope" , function ( b , c ) { return { restrict : "A" , compile : function ( e , k ) { var f = b ( k [ a ] , null , ! 0 ) ; return function ( a , b ) { b . on ( d , function ( b ) { var e = function ( ) { f ( a , { $event : b } ) } ; pg [ d ] && c . $$phase ? a . $evalAsync ( e ) : a . $apply ( e ) } ) } } } } ] } ) ; var Yf = [ "$animate" , function ( d ) { return { multiElement : ! 0 ,
transclude : "element" , priority : 600 , terminal : ! 0 , restrict : "A" , $$tlb : ! 0 , link : function ( a , b , c , e , f ) { var k , g , h ; a . $watch ( c . ngIf , function ( a ) { a ? g || f ( function ( a , e ) { g = e ; a [ a . length ++ ] = l . createComment ( " end ngIf: " + c . ngIf + " " ) ; k = { clone : a } ; d . enter ( a , b . parent ( ) , b ) } ) : ( h && ( h . remove ( ) , h = null ) , g && ( g . $destroy ( ) , g = null ) , k && ( h = Zc ( k . clone ) , d . leave ( h ) . then ( function ( ) { h = null } ) , k = null ) ) } ) } } } ] , Zf = [ "$templateRequest" , "$anchorScroll" , "$animate" , function ( d , a , b ) { return { restrict : "ECA" , priority : 400 , terminal : ! 0 , transclude : "element" ,
controller : Ha . noop , compile : function ( c , e ) { var k = e . ngInclude || e . src , f = e . onload || "" , g = e . autoscroll ; return function ( c , e , h , m , l ) { var n , r , p , t = 0 , q = function ( ) { r && ( r . remove ( ) , r = null ) ; n && ( n . $destroy ( ) , n = null ) ; p && ( b . leave ( p ) . then ( function ( ) { r = null } ) , r = p , p = null ) } ; c . $watch ( k , function ( k ) { var h = function ( ) { ! F ( g ) || g && ! c . $eval ( g ) || a ( ) } , r = ++ t ; k ? ( d ( k , ! 0 ) . then ( function ( d ) { if ( ! c . $$destroyed && r === t ) { var a = c . $new ( ) ; m . template = d ; d = l ( a , function ( d ) { q ( ) ; b . enter ( d , null , e ) . then ( h ) } ) ; n = a ; p = d ; n . $emit ( "$includeContentLoaded" , k ) ; c . $eval ( f ) } } ,
function ( ) { c . $$destroyed || r !== t || ( q ( ) , c . $emit ( "$includeContentError" , k ) ) } ) , c . $emit ( "$includeContentRequested" , k ) ) : ( q ( ) , m . template = null ) } ) } } } } ] , ig = [ "$compile" , function ( d ) { return { restrict : "ECA" , priority : - 400 , require : "ngInclude" , link : function ( a , b , c , e ) { /SVG/ . test ( b [ 0 ] . toString ( ) ) ? ( b . empty ( ) , d ( Ze ( e . template , l ) . childNodes ) ( a , function ( d ) { b . append ( d ) } , { futureParentElement : b } ) ) : ( b . html ( e . template ) , d ( b . contents ( ) ) ( a ) ) } } } ] , $f = db ( { priority : 450 , compile : function ( ) { return { pre : function ( d , a , b ) { d . $eval ( b . ngInit ) } } } } ) ,
gg = function ( ) { return { restrict : "A" , priority : 100 , require : "ngModel" , link : function ( d , a , c , e ) { var k = a . attr ( c . $attr . ngList ) || ", " , f = "false" !== c . ngTrim , g = f ? ya ( k ) : k ; e . $parsers . push ( function ( d ) { if ( ! E ( d ) ) { var a = [ ] ; return d && b ( d . split ( g ) , function ( d ) { d && a . push ( f ? ya ( d ) : d ) } ) , a } } ) ; e . $formatters . push ( function ( d ) { return ha ( d ) ? d . join ( k ) : h } ) ; e . $isEmpty = function ( d ) { return ! d || ! d . length } } } } , Vc = "ng-valid" , Ef = "ng-invalid" , tc = "ng-pristine" , yd = "ng-dirty" , zd = "ng-pending" , Uc = e ( "ngModel" ) , Nf = [ "$scope" , "$exceptionHandler" , "$attrs" ,
"$element" , "$parse" , "$animate" , "$timeout" , "$rootScope" , "$q" , "$interpolate" , function ( d , a , c , e , f , g , m , l , n , p ) { this . $modelValue = this . $viewValue = Number . NaN ; this . $$rawModelValue = h ; this . $validators = { } ; this . $asyncValidators = { } ; this . $parsers = [ ] ; this . $formatters = [ ] ; this . $viewChangeListeners = [ ] ; this . $untouched = ! 0 ; this . $touched = ! 1 ; this . $pristine = ! 0 ; this . $dirty = ! 1 ; this . $valid = ! 0 ; this . $invalid = ! 1 ; this . $error = { } ; this . $$success = { } ; this . $pending = h ; this . $name = p ( c . name || "" , ! 1 ) ( d ) ; this . $$parentForm = xd ; var k , t = f ( c . ngModel ) ,
q = t . assign , x = t , u = q , v = null , B = this ; this . $$setOptions = function ( d ) { if ( ( B . $options = d ) && d . getterSetter ) { var a = f ( c . ngModel + "()" ) , b = f ( c . ngModel + "($$$p)" ) ; x = function ( d ) { var b = t ( d ) ; return J ( b ) && ( b = a ( d ) ) , b } ; u = function ( d , a ) { J ( t ( d ) ) ? b ( d , { $$$p : B . $modelValue } ) : q ( d , B . $modelValue ) } } else if ( ! t . assign ) throw Uc ( "nonassign" , c . ngModel , sa ( e ) ) ; } ; this . $render = r ; this . $isEmpty = function ( d ) { return E ( d ) || "" === d || null === d || d !== d } ; var A = 0 ; Df ( { ctrl : this , $element : e , set : function ( d , a ) { d [ a ] = ! 0 } , unset : function ( d , a ) { delete d [ a ] } , $animate : g } ) ;
this . $setPristine = function ( ) { B . $dirty = ! 1 ; B . $pristine = ! 0 ; g . removeClass ( e , yd ) ; g . addClass ( e , tc ) } ; this . $setDirty = function ( ) { B . $dirty = ! 0 ; B . $pristine = ! 1 ; g . removeClass ( e , tc ) ; g . addClass ( e , yd ) ; B . $$parentForm . $setDirty ( ) } ; this . $setUntouched = function ( ) { B . $touched = ! 1 ; B . $untouched = ! 0 ; g . setClass ( e , "ng-untouched" , "ng-touched" ) } ; this . $setTouched = function ( ) { B . $touched = ! 0 ; B . $untouched = ! 1 ; g . setClass ( e , "ng-touched" , "ng-untouched" ) } ; this . $rollbackViewValue = function ( ) { m . cancel ( v ) ; B . $viewValue = B . $$lastCommittedViewValue ;
B . $render ( ) } ; this . $validate = function ( ) { if ( ! I ( B . $modelValue ) || ! isNaN ( B . $modelValue ) ) { var d = B . $$rawModelValue , a = B . $valid , b = B . $modelValue , c = B . $options && B . $options . allowInvalid ; B . $$runValidators ( d , B . $$lastCommittedViewValue , function ( e ) { c || a === e || ( B . $modelValue = e ? d : h , B . $modelValue !== b && B . $$writeModelToScope ( ) ) } ) } } ; this . $$runValidators = function ( d , a , c ) { function e ( ) { var c = ! 0 ; return b ( B . $validators , function ( b , e ) { var w = b ( d , a ) ; c = c && w ; g ( e , w ) } ) , ! ! c || ( b ( B . $asyncValidators , function ( d , a ) { g ( a , null ) } ) , ! 1 ) } function f ( ) { var e =
[ ] , w = ! 0 ; b ( B . $asyncValidators , function ( b , c ) { var k = b ( d , a ) ; if ( ! k || ! J ( k . then ) ) throw Uc ( "nopromise" , k ) ; g ( c , h ) ; e . push ( k . then ( function ( ) { g ( c , ! 0 ) } , function ( d ) { w = ! 1 ; g ( c , ! 1 ) } ) ) } ) ; e . length ? n . all ( e ) . then ( function ( ) { m === A && c ( w ) } , r ) : m === A && c ( ! 0 ) } function g ( d , a ) { m === A && B . $setValidity ( d , a ) } A ++ ; var m = A ; ( function ( ) { var d = B . $$parserName || "parse" ; return E ( k ) ? ( g ( d , null ) , ! 0 ) : ( k || ( b ( B . $validators , function ( d , a ) { g ( a , null ) } ) , b ( B . $asyncValidators , function ( d , a ) { g ( a , null ) } ) ) , g ( d , k ) , k ) } ) ( ) && e ( ) ? f ( ) : m === A && c ( ! 1 ) } ; this . $commitViewValue =
function ( ) { var d = B . $viewValue ; m . cancel ( v ) ; ( B . $$lastCommittedViewValue !== d || "" === d && B . $$hasNativeValidators ) && ( B . $$lastCommittedViewValue = d , B . $pristine && this . $setDirty ( ) , this . $$parseAndValidate ( ) ) } ; this . $$parseAndValidate = function ( ) { var a = B . $$lastCommittedViewValue ; if ( k = ! E ( a ) || h ) for ( var b = 0 ; b < B . $parsers . length ; b ++ ) if ( a = B . $parsers [ b ] ( a ) , E ( a ) ) { k = ! 1 ; break } I ( B . $modelValue ) && isNaN ( B . $modelValue ) && ( B . $modelValue = x ( d ) ) ; var c = B . $modelValue , e = B . $options && B . $options . allowInvalid ; B . $$rawModelValue = a ; e && ( B . $modelValue =
a , B . $modelValue !== c && B . $$writeModelToScope ( ) ) ; B . $$runValidators ( a , B . $$lastCommittedViewValue , function ( d ) { e || ( B . $modelValue = d ? a : h , B . $modelValue !== c && B . $$writeModelToScope ( ) ) } ) } ; this . $$writeModelToScope = function ( ) { u ( d , B . $modelValue ) ; b ( B . $viewChangeListeners , function ( d ) { try { d ( ) } catch ( lg ) { a ( lg ) } } ) } ; this . $setViewValue = function ( d , a ) { B . $viewValue = d ; B . $options && ! B . $options . updateOnDefault || B . $$debounceViewValueCommit ( a ) } ; this . $$debounceViewValueCommit = function ( a ) { var b = 0 , c = B . $options ; c && F ( c . debounce ) && ( c =
c . debounce , I ( c ) ? b = c : I ( c [ a ] ) ? b = c [ a ] : I ( c [ "default" ] ) && ( b = c [ "default" ] ) ) ; m . cancel ( v ) ; b ? v = m ( function ( ) { B . $commitViewValue ( ) } , b ) : l . $$phase ? B . $commitViewValue ( ) : d . $apply ( function ( ) { B . $commitViewValue ( ) } ) } ; d . $watch ( function ( ) { var a = x ( d ) ; if ( a !== B . $modelValue && ( B . $modelValue === B . $modelValue || a === a ) ) { B . $modelValue = B . $$rawModelValue = a ; k = h ; for ( var b = B . $formatters , c = b . length , e = a ; c -- ; ) e = b [ c ] ( e ) ; B . $viewValue !== e && ( B . $viewValue = B . $$lastCommittedViewValue = e , B . $render ( ) , B . $$runValidators ( a , e , r ) ) } return a } ) } ] , Ie = [ "$rootScope" ,
function ( d ) { return { restrict : "A" , require : [ "ngModel" , "^?form" , "^?ngModelOptions" ] , controller : Nf , priority : 1 , compile : function ( a ) { return a . addClass ( tc ) . addClass ( "ng-untouched" ) . addClass ( Vc ) , { pre : function ( d , a , b , c ) { var e = c [ 0 ] ; a = c [ 1 ] || e . $$parentForm ; e . $$setOptions ( c [ 2 ] && c [ 2 ] . $options ) ; a . $addControl ( e ) ; b . $observe ( "name" , function ( d ) { e . $name !== d && e . $$parentForm . $$renameControl ( e , d ) } ) ; d . $on ( "$destroy" , function ( ) { e . $$parentForm . $removeControl ( e ) } ) } , post : function ( a , b , c , e ) { var k = e [ 0 ] ; k . $options && k . $options . updateOn &&
b . on ( k . $options . updateOn , function ( d ) { k . $$debounceViewValueCommit ( d && d . type ) } ) ; b . on ( "blur" , function ( b ) { k . $touched || ( d . $$phase ? a . $evalAsync ( k . $setTouched ) : a . $apply ( k . $setTouched ) ) } ) } } } } } ] , qg = /(\s+|^)default(\s+|$)/ , hg = function ( ) { return { restrict : "A" , controller : [ "$scope" , "$attrs" , function ( d , a ) { var b = this ; this . $options = P ( d . $eval ( a . ngModelOptions ) ) ; F ( this . $options . updateOn ) ? ( this . $options . updateOnDefault = ! 1 , this . $options . updateOn = ya ( this . $options . updateOn . replace ( qg , function ( ) { return b . $options . updateOnDefault =
! 0 , " " } ) ) ) : this . $options . updateOnDefault = ! 0 } ] } } , ag = db ( { terminal : ! 0 , priority : 1E3 } ) , rg = e ( "ngOptions" ) , ue = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/ , He = [ "$compile" , "$parse" , function ( d , a ) { function e ( d , b , e ) { function k ( d , a , b , c , e ) { this . selectValue = d ; this . viewValue = a ; this . label = b ; this . group = c ; this . disabled = e } function f ( d ) { var a ;
if ( ! m && c ( d ) ) a = d ; else { a = [ ] ; for ( var b in d ) d . hasOwnProperty ( b ) && "$" !== b . charAt ( 0 ) && a . push ( b ) } return a } var g = d . match ( ue ) ; if ( ! g ) throw rg ( "iexp" , d , sa ( b ) ) ; var h = g [ 5 ] || g [ 7 ] , m = g [ 6 ] ; d = / as / . test ( g [ 0 ] ) && g [ 1 ] ; var l = g [ 9 ] ; b = a ( g [ 2 ] ? g [ 1 ] : h ) ; var n = d && a ( d ) || b , r = l && a ( l ) , p = l ? function ( d , a ) { return r ( e , a ) } : function ( d ) { return kb ( d ) } , t = function ( d , a ) { return p ( d , A ( d , a ) ) } , q = a ( g [ 2 ] || g [ 1 ] ) , B = a ( g [ 3 ] || "" ) , x = a ( g [ 4 ] || "" ) , u = a ( g [ 8 ] ) , v = { } , A = m ? function ( d , a ) { return v [ m ] = a , v [ h ] = d , v } : function ( d ) { return v [ h ] = d , v } ; return { trackBy : l , getTrackByValue : t ,
getWatchables : a ( u , function ( d ) { var a = [ ] ; d = d || [ ] ; for ( var b = f ( d ) , c = b . length , k = 0 ; k < c ; k ++ ) { var h = d === b ? k : b [ k ] , m = A ( d [ h ] , h ) , h = p ( d [ h ] , m ) ; a . push ( h ) ; ( g [ 2 ] || g [ 1 ] ) && ( h = q ( e , m ) , a . push ( h ) ) ; g [ 4 ] && ( m = x ( e , m ) , a . push ( m ) ) } return a } ) , getOptions : function ( ) { for ( var d = [ ] , a = { } , b = u ( e ) || [ ] , c = f ( b ) , g = c . length , h = 0 ; h < g ; h ++ ) { var m = b === c ? h : c [ h ] , r = A ( b [ m ] , m ) , v = n ( e , r ) , m = p ( v , r ) , y = q ( e , r ) , C = B ( e , r ) , r = x ( e , r ) , v = new k ( m , v , y , C , r ) ; d . push ( v ) ; a [ m ] = v } return { items : d , selectValueMap : a , getOptionFromViewValue : function ( d ) { return a [ t ( d ) ] } , getViewValueFromOption : function ( d ) { return l ?
Ha . copy ( d . viewValue ) : d . viewValue } } } } } var k = l . createElement ( "option" ) , f = l . createElement ( "optgroup" ) ; return { restrict : "A" , terminal : ! 0 , require : [ "select" , "?ngModel" ] , link : { pre : function ( d , a , b , c ) { c [ 0 ] . registerOption = r } , post : function ( a , c , g , h ) { function m ( d , a ) { d . element = a ; a . disabled = d . disabled ; d . label !== a . label && ( a . label = d . label , a . textContent = d . label ) ; d . value !== a . value && ( a . value = d . selectValue ) } function l ( d , a , b , c ) { return a && ma ( a . nodeName ) === b ? b = a : ( b = c . cloneNode ( ! 1 ) , a ? d . insertBefore ( b , a ) : d . appendChild ( b ) ) , b }
function n ( d ) { for ( var a ; d ; ) a = d . nextSibling , Hc ( d ) , d = a } function r ( d ) { var a = q && q [ 0 ] , b = y && y [ 0 ] ; if ( a || b ) for ( ; d && ( d === a || d === b || 8 === d . nodeType || "option" === ca ( d ) && "" === d . value ) ; ) d = d . nextSibling ; return d } function p ( ) { var d = C && B . readValue ( ) ; C = P . getOptions ( ) ; var a = { } , b = c [ 0 ] . firstChild ; if ( A && c . prepend ( q ) , b = r ( b ) , C . items . forEach ( function ( d ) { var w , e ; d . group ? ( w = a [ d . group ] , w || ( w = l ( c [ 0 ] , b , "optgroup" , f ) , b = w . nextSibling , w . label = d . group , w = a [ d . group ] = { groupElement : w , currentOptionElement : w . firstChild } ) , e = l ( w . groupElement ,
w . currentOptionElement , "option" , k ) , m ( d , e ) , w . currentOptionElement = e . nextSibling ) : ( e = l ( c [ 0 ] , b , "option" , k ) , m ( d , e ) , b = e . nextSibling ) } ) , Object . keys ( a ) . forEach ( function ( d ) { n ( a [ d ] . currentOptionElement ) } ) , n ( b ) , t . $render ( ) , ! t . $isEmpty ( d ) ) { var e = B . readValue ( ) ; ( P . trackBy || x ? U ( d , e ) : d === e ) || ( t . $setViewValue ( e ) , t . $render ( ) ) } } var t = h [ 1 ] ; if ( t ) { var q , B = h [ 0 ] , x = g . multiple ; h = 0 ; for ( var u = c . children ( ) , v = u . length ; h < v ; h ++ ) if ( "" === u [ h ] . value ) { q = u . eq ( h ) ; break } var A = ! ! q , y = Y ( k . cloneNode ( ! 1 ) ) ; y . val ( "?" ) ; var C , P = e ( g . ngOptions ,
c , a ) ; x ? ( t . $isEmpty = function ( d ) { return ! d || 0 === d . length } , B . writeValue = function ( d ) { C . items . forEach ( function ( d ) { d . element . selected = ! 1 } ) ; d && d . forEach ( function ( d ) { ( d = C . getOptionFromViewValue ( d ) ) && ! d . disabled && ( d . element . selected = ! 0 ) } ) } , B . readValue = function ( ) { var d = c . val ( ) || [ ] , a = [ ] ; return b ( d , function ( d ) { ( d = C . selectValueMap [ d ] ) && ! d . disabled && a . push ( C . getViewValueFromOption ( d ) ) } ) , a } , P . trackBy && a . $watchCollection ( function ( ) { if ( ha ( t . $viewValue ) ) return t . $viewValue . map ( function ( d ) { return P . getTrackByValue ( d ) } ) } ,
function ( ) { t . $render ( ) } ) ) : ( B . writeValue = function ( d ) { var a = C . getOptionFromViewValue ( d ) ; a && ! a . disabled ? ( c [ 0 ] . value !== a . selectValue && ( y . remove ( ) , A || q . remove ( ) , c [ 0 ] . value = a . selectValue , a . element . selected = ! 0 ) , a . element . setAttribute ( "selected" , "selected" ) ) : null === d || A ? ( y . remove ( ) , A || c . prepend ( q ) , c . val ( "" ) , q . prop ( "selected" , ! 0 ) , q . attr ( "selected" , ! 0 ) ) : ( A || q . remove ( ) , c . prepend ( y ) , c . val ( "?" ) , y . prop ( "selected" , ! 0 ) , y . attr ( "selected" , ! 0 ) ) } , B . readValue = function ( ) { var d = C . selectValueMap [ c . val ( ) ] ; return d && ! d . disabled ?
( A || q . remove ( ) , y . remove ( ) , C . getViewValueFromOption ( d ) ) : null } , P . trackBy && a . $watch ( function ( ) { return P . getTrackByValue ( t . $viewValue ) } , function ( ) { t . $render ( ) } ) ) ; A ? ( q . remove ( ) , d ( q ) ( a ) , q . removeClass ( "ng-scope" ) ) : q = Y ( k . cloneNode ( ! 1 ) ) ; p ( ) ; a . $watchCollection ( P . getWatchables , p ) } } } } } ] , bg = [ "$locale" , "$interpolate" , "$log" , function ( d , a , c ) { var e = /{}/g , k = /^when(Minus)?(.+)$/ ; return { link : function ( f , g , h ) { function m ( d ) { g . text ( d || "" ) } var l , n = h . count , t = h . $attr . when && g . attr ( h . $attr . when ) , q = h . offset || 0 , p = f . $eval ( t ) || { } ,
B = { } , x = a . startSymbol ( ) , u = a . endSymbol ( ) , v = x + n + "-" + q + u , A = Ha . noop ; b ( h , function ( d , a ) { var b = k . exec ( a ) ; b && ( b = ( b [ 1 ] ? "-" : "" ) + ma ( b [ 2 ] ) , p [ b ] = g . attr ( h . $attr [ a ] ) ) } ) ; b ( p , function ( d , b ) { B [ b ] = a ( d . replace ( e , v ) ) } ) ; f . $watch ( n , function ( a ) { var b = parseFloat ( a ) , e = isNaN ( b ) ; e || b in p || ( b = d . pluralCat ( b - q ) ) ; b === l || e && I ( l ) && isNaN ( l ) || ( A ( ) , e = B [ b ] , E ( e ) ? ( null != a && c . debug ( "ngPluralize: no rule defined for '" + b + "' in " + t ) , A = r , m ( ) ) : A = f . $watch ( e , m ) , l = b ) } ) } } } ] , zc = [ "$parse" , "$animate" , function ( d , a ) { var k = e ( "ngRepeat" ) , f = function ( d , a ,
b , c , e , k , f ) { d [ b ] = c ; e && ( d [ e ] = k ) ; d . $index = a ; d . $first = 0 === a ; d . $last = a === f - 1 ; d . $middle = ! ( d . $first || d . $last ) ; d . $odd = ! ( d . $even = 0 === ( 1 & a ) ) } ; return { restrict : "A" , multiElement : ! 0 , transclude : "element" , priority : 1E3 , terminal : ! 0 , $$tlb : ! 0 , compile : function ( e , g ) { var m = g . ngRepeat , n = l . createComment ( " end ngRepeat: " + m + " " ) , r = m . match ( /^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/ ) ; if ( ! r ) throw k ( "iexp" , m ) ; var t = r [ 1 ] , p = r [ 2 ] , q = r [ 3 ] , B = r [ 4 ] , r = t . match ( /^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/ ) ;
if ( ! r ) throw k ( "iidexp" , t ) ; var x = r [ 3 ] || r [ 1 ] , u = r [ 2 ] ; if ( q && ( ! /^[$a-zA-Z_][$a-zA-Z0-9_]*$/ . test ( q ) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/ . test ( q ) ) ) throw k ( "badident" , q ) ; var v , A , y , C , P = { $id : kb } ; return B ? v = d ( B ) : ( y = function ( d , a ) { return kb ( a ) } , C = function ( d ) { return d } ) , function ( d , e , g , l , r ) { v && ( A = function ( a , b , c ) { return u && ( P [ u ] = a ) , P [ x ] = b , P . $index = c , v ( d , P ) } ) ; var t = Fa ( ) ; d . $watchCollection ( p , function ( w ) { var z , g , l , p , B , v , P , E , F , K , H = e [ 0 ] , T = Fa ( ) ; if ( q && ( d [ q ] = w ) , c ( w ) ) E =
w , g = A || y ; else for ( K in g = A || C , E = [ ] , w ) ob . call ( w , K ) && "$" !== K . charAt ( 0 ) && E . push ( K ) ; p = E . length ; K = Array ( p ) ; for ( z = 0 ; z < p ; z ++ ) if ( B = w === E ? z : E [ z ] , v = w [ B ] , P = g ( B , v , z ) , t [ P ] ) F = t [ P ] , delete t [ P ] , T [ P ] = F , K [ z ] = F ; else { if ( T [ P ] ) throw b ( K , function ( d ) { d && d . scope && ( t [ d . id ] = d ) } ) , k ( "dupes" , m , P , v ) ; K [ z ] = { id : P , scope : h , clone : h } ; T [ P ] = ! 0 } for ( l in t ) { if ( F = t [ l ] , P = Zc ( F . clone ) , a . leave ( P ) , P [ 0 ] . parentNode ) for ( z = 0 , g = P . length ; z < g ; z ++ ) P [ z ] . $$NG _REMOVED = ! 0 ; F . scope . $destroy ( ) } for ( z = 0 ; z < p ; z ++ ) if ( B = w === E ? z : E [ z ] , v = w [ B ] , F = K [ z ] , F . scope ) { l = H ; do l =
l . nextSibling ; while ( l && l . $$NG _REMOVED ) ; F . clone [ 0 ] != l && a . move ( Zc ( F . clone ) , null , H ) ; H = F . clone [ F . clone . length - 1 ] ; f ( F . scope , z , x , v , u , B , p ) } else r ( function ( d , b ) { F . scope = b ; var c = n . cloneNode ( ! 1 ) ; d [ d . length ++ ] = c ; a . enter ( d , null , H ) ; H = c ; F . clone = d ; T [ F . id ] = F ; f ( F . scope , z , x , v , u , B , p ) } ) ; t = T } ) } } } } ] , Fe = [ "$animate" , function ( d ) { return { restrict : "A" , multiElement : ! 0 , link : function ( a , b , c ) { a . $watch ( c . ngShow , function ( a ) { d [ a ? "removeClass" : "addClass" ] ( b , "ng-hide" , { tempClasses : "ng-hide-animate" } ) } ) } } } ] , Xf = [ "$animate" , function ( d ) { return { restrict : "A" ,
multiElement : ! 0 , link : function ( a , b , c ) { a . $watch ( c . ngHide , function ( a ) { d [ a ? "addClass" : "removeClass" ] ( b , "ng-hide" , { tempClasses : "ng-hide-animate" } ) } ) } } } ] , Ge = db ( function ( d , a , c ) { d . $watch ( c . ngStyle , function ( d , c ) { c && d !== c && b ( c , function ( d , b ) { a . css ( b , "" ) } ) ; d && a . css ( d ) } , ! 0 ) } ) , cg = [ "$animate" , function ( d ) { return { require : "ngSwitch" , controller : [ "$scope" , function ( ) { this . cases = { } } ] , link : function ( a , c , e , f ) { var k = [ ] , g = [ ] , h = [ ] , m = [ ] , n = function ( d , a ) { return function ( ) { d . splice ( a , 1 ) } } ; a . $watch ( e . ngSwitch || e . on , function ( a ) { var c ,
e ; c = 0 ; for ( e = h . length ; c < e ; ++ c ) d . cancel ( h [ c ] ) ; c = h . length = 0 ; for ( e = m . length ; c < e ; ++ c ) { var r = Zc ( g [ c ] . clone ) ; m [ c ] . $destroy ( ) ; ( h [ c ] = d . leave ( r ) ) . then ( n ( h , c ) ) } g . length = 0 ; m . length = 0 ; ( k = f . cases [ "!" + a ] || f . cases [ "?" ] ) && b ( k , function ( a ) { a . transclude ( function ( b , c ) { m . push ( c ) ; var e = a . element ; b [ b . length ++ ] = l . createComment ( " end ngSwitchWhen: " ) ; g . push ( { clone : b } ) ; d . enter ( b , e . parent ( ) , e ) } ) } ) } ) } } } ] , dg = db ( { transclude : "element" , priority : 1200 , require : "^ngSwitch" , multiElement : ! 0 , link : function ( d , a , b , c , e ) { c . cases [ "!" + b . ngSwitchWhen ] =
c . cases [ "!" + b . ngSwitchWhen ] || [ ] ; c . cases [ "!" + b . ngSwitchWhen ] . push ( { transclude : e , element : a } ) } } ) , eg = db ( { transclude : "element" , priority : 1200 , require : "^ngSwitch" , multiElement : ! 0 , link : function ( d , a , b , c , e ) { c . cases [ "?" ] = c . cases [ "?" ] || [ ] ; c . cases [ "?" ] . push ( { transclude : e , element : a } ) } } ) , fg = db ( { restrict : "EAC" , link : function ( d , a , b , c , f ) { if ( ! f ) throw e ( "ngTransclude" ) ( "orphan" , sa ( a ) ) ; f ( function ( d ) { a . empty ( ) ; a . append ( d ) } ) } } ) , Qf = [ "$templateCache" , function ( d ) { return { restrict : "E" , terminal : ! 0 , compile : function ( a , b ) { "text/ng-template" ==
b . type && d . put ( b . id , a [ 0 ] . text ) } } } ] , ve = { $setViewValue : r , $render : r } , sg = [ "$element" , "$scope" , "$attrs" , function ( d , a , b ) { var c = this , e = new Jb ; c . ngModelCtrl = ve ; c . unknownOption = Y ( l . createElement ( "option" ) ) ; c . renderUnknownOption = function ( a ) { a = "? " + kb ( a ) + " ?" ; c . unknownOption . val ( a ) ; d . prepend ( c . unknownOption ) ; d . val ( a ) } ; a . $on ( "$destroy" , function ( ) { c . renderUnknownOption = r } ) ; c . removeUnknownOption = function ( ) { c . unknownOption . parent ( ) && c . unknownOption . remove ( ) } ; c . readValue = function ( ) { return c . removeUnknownOption ( ) ,
d . val ( ) } ; c . writeValue = function ( a ) { c . hasOption ( a ) ? ( c . removeUnknownOption ( ) , d . val ( a ) , "" === a && c . emptyOption . prop ( "selected" , ! 0 ) ) : null == a && c . emptyOption ? ( c . removeUnknownOption ( ) , d . val ( "" ) ) : c . renderUnknownOption ( a ) } ; c . addOption = function ( d , a ) { if ( 8 !== a [ 0 ] . nodeType ) { Ob ( d , '"option value"' ) ; "" === d && ( c . emptyOption = a ) ; var b = e . get ( d ) || 0 ; e . put ( d , b + 1 ) ; c . ngModelCtrl . $render ( ) ; a [ 0 ] . hasAttribute ( "selected" ) && ( a [ 0 ] . selected = ! 0 ) } } ; c . removeOption = function ( d ) { var a = e . get ( d ) ; a && ( 1 === a ? ( e . remove ( d ) , "" === d && ( c . emptyOption =
h ) ) : e . put ( d , a - 1 ) ) } ; c . hasOption = function ( d ) { return ! ! e . get ( d ) } ; c . registerOption = function ( d , a , b , e , k ) { if ( e ) { var f ; b . $observe ( "value" , function ( d ) { F ( f ) && c . removeOption ( f ) ; f = d ; c . addOption ( d , a ) } ) } else k ? d . $watch ( k , function ( d , e ) { b . $set ( "value" , d ) ; e !== d && c . removeOption ( e ) ; c . addOption ( d , a ) } ) : c . addOption ( b . value , a ) ; a . on ( "$destroy" , function ( ) { c . removeOption ( b . value ) ; c . ngModelCtrl . $render ( ) } ) } } ] , Rf = function ( ) { return { restrict : "E" , require : [ "select" , "?ngModel" ] , controller : sg , priority : 1 , link : { pre : function ( d , a , c , e ) { var k =
e [ 1 ] ; if ( k ) { var f = e [ 0 ] ; if ( f . ngModelCtrl = k , a . on ( "change" , function ( ) { d . $apply ( function ( ) { k . $setViewValue ( f . readValue ( ) ) } ) } ) , c . multiple ) { f . readValue = function ( ) { var d = [ ] ; return b ( a . find ( "option" ) , function ( a ) { a . selected && d . push ( a . value ) } ) , d } ; f . writeValue = function ( d ) { var c = new Jb ( d ) ; b ( a . find ( "option" ) , function ( d ) { d . selected = F ( c . get ( d . value ) ) } ) } ; var g , h = NaN ; d . $watch ( function ( ) { h !== k . $viewValue || U ( g , k . $viewValue ) || ( g = na ( k . $viewValue ) , k . $render ( ) ) ; h = k . $viewValue } ) ; k . $isEmpty = function ( d ) { return ! d || 0 === d . length } } } } ,
post : function ( d , a , b , c ) { var e = c [ 1 ] ; if ( e ) { var k = c [ 0 ] ; e . $render = function ( ) { k . writeValue ( e . $viewValue ) } } } } } } , Tf = [ "$interpolate" , function ( d ) { return { restrict : "E" , priority : 100 , compile : function ( a , b ) { if ( F ( b . value ) ) var c = d ( b . value , ! 0 ) ; else { var e = d ( a . text ( ) , ! 0 ) ; e || b . $set ( "value" , a . text ( ) ) } return function ( d , a , b ) { var k = a . parent ( ) ; ( k = k . data ( "$selectController" ) || k . parent ( ) . data ( "$selectController" ) ) && k . registerOption ( d , a , b , c , e ) } } } } ] , Sf = C ( { restrict : "E" , terminal : ! 1 } ) , ia = function ( ) { return { restrict : "A" , require : "?ngModel" ,
link : function ( d , a , b , c ) { c && ( b . required = ! 0 , c . $validators . required = function ( d , a ) { return ! b . required || ! c . $isEmpty ( a ) } , b . $observe ( "required" , function ( ) { c . $validate ( ) } ) ) } } } , cd = function ( ) { return { restrict : "A" , require : "?ngModel" , link : function ( d , a , b , c ) { if ( c ) { var k , f = b . ngPattern || b . pattern ; b . $observe ( "pattern" , function ( d ) { if ( v ( d ) && 0 < d . length && ( d = new RegExp ( "^" + d + "$" ) ) , d && ! d . test ) throw e ( "ngPattern" ) ( "noregexp" , f , d , sa ( a ) ) ; k = d || h ; c . $validate ( ) } ) ; c . $validators . pattern = function ( d , a ) { return c . $isEmpty ( a ) || E ( k ) || k . test ( a ) } } } } } ,
dd = function ( ) { return { restrict : "A" , require : "?ngModel" , link : function ( d , a , b , c ) { if ( c ) { var e = - 1 ; b . $observe ( "maxlength" , function ( d ) { d = parseInt ( d , 10 ) ; e = isNaN ( d ) ? - 1 : d ; c . $validate ( ) } ) ; c . $validators . maxlength = function ( d , a ) { return 0 > e || c . $isEmpty ( a ) || a . length <= e } } } } } , Je = function ( ) { return { restrict : "A" , require : "?ngModel" , link : function ( d , a , b , c ) { if ( c ) { var e = 0 ; b . $observe ( "minlength" , function ( d ) { e = parseInt ( d , 10 ) || 0 ; c . $validate ( ) } ) ; c . $validators . minlength = function ( d , a ) { return c . $isEmpty ( a ) || a . length >= e } } } } } ; a . angular . bootstrap ?
a . console && console . log ( "WARNING: Tried to load angular more than once." ) : ( Sa ( ) , ze ( Ha ) , Ha . module ( "ngLocale" , [ ] , [ "$provide" , function ( d ) { function a ( d ) { d += "" ; var a = d . indexOf ( "." ) ; return - 1 == a ? 0 : d . length - a - 1 } d . value ( "$locale" , { DATETIME _FORMATS : { AMPMS : [ "AM" , "PM" ] , DAY : "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" . split ( " " ) , ERANAMES : [ "Before Christ" , "Anno Domini" ] , ERAS : [ "BC" , "AD" ] , FIRSTDAYOFWEEK : 6 , MONTH : "January February March April May June July August September October November December" . split ( " " ) ,
SHORTDAY : "Sun Mon Tue Wed Thu Fri Sat" . split ( " " ) , SHORTMONTH : "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec" . split ( " " ) , STANDALONEMONTH : "January February March April May June July August September October November December" . split ( " " ) , WEEKENDRANGE : [ 5 , 6 ] , fullDate : "EEEE, MMMM d, y" , longDate : "MMMM d, y" , medium : "MMM d, y h:mm:ss a" , mediumDate : "MMM d, y" , mediumTime : "h:mm:ss a" , "short" : "M/d/yy h:mm a" , shortDate : "M/d/yy" , shortTime : "h:mm a" } , NUMBER _FORMATS : { CURRENCY _SYM : "$" , DECIMAL _SEP : "." , GROUP _SEP : "," ,
PATTERNS : [ { gSize : 3 , lgSize : 3 , maxFrac : 3 , minFrac : 0 , minInt : 1 , negPre : "-" , negSuf : "" , posPre : "" , posSuf : "" } , { gSize : 3 , lgSize : 3 , maxFrac : 2 , minFrac : 2 , minInt : 1 , negPre : "-\u00a4" , negSuf : "" , posPre : "\u00a4" , posSuf : "" } ] } , id : "en-us" , localeID : "en_US" , pluralCat : function ( d , b ) { var c = 0 | d , e = b ; return h === e && ( e = Math . min ( a ( d ) , 3 ) ) , Math . pow ( 10 , e ) , 1 == c && 0 == e ? "one" : "other" } } ) } ] ) , Y ( l ) . ready ( function ( ) { qb ( l , ba ) } ) ) } ( window , document ) ; ! window . angular . $$csp ( ) . noInlineStyle && window . angular . element ( document . head ) . prepend ( '<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>' ) ;
var duScrollDefaultEasing = function ( a ) { return . 5 > a ? Math . pow ( 2 * a , 2 ) / 2 : 1 - Math . pow ( 2 * ( 1 - a ) , 2 ) / 2 } , duScroll = angular . module ( "duScroll" , [ "duScroll.scrollspy" , "duScroll.smoothScroll" , "duScroll.scrollContainer" , "duScroll.spyContext" , "duScroll.scrollHelpers" ] ) . value ( "duScrollDuration" , 350 ) . value ( "duScrollSpyWait" , 100 ) . value ( "duScrollGreedy" , ! 1 ) . value ( "duScrollOffset" , 0 ) . value ( "duScrollEasing" , duScrollDefaultEasing ) . value ( "duScrollCancelOnEvents" , "scroll mousedown mousewheel touchmove keydown" ) . value ( "duScrollBottomSpy" ,
! 1 ) . value ( "duScrollActiveClass" , "active" ) ; "undefined" != typeof module && module && module . exports && ( module . exports = duScroll ) ;
angular . module ( "duScroll.scrollHelpers" , [ "duScroll.requestAnimation" ] ) . run ( [ "$window" , "$q" , "cancelAnimation" , "requestAnimation" , "duScrollEasing" , "duScrollDuration" , "duScrollOffset" , "duScrollCancelOnEvents" , function ( a , l , h , e , c , b , g , f ) { var q = { } , m = function ( a ) { return "undefined" != typeof HTMLDocument && a instanceof HTMLDocument || a . nodeType && a . nodeType === a . DOCUMENT _NODE } , n = function ( a ) { return "undefined" != typeof HTMLElement && a instanceof HTMLElement || a . nodeType && a . nodeType === a . ELEMENT _NODE } , t = function ( a ) { return n ( a ) ||
m ( a ) ? a : a [ 0 ] } ; q . duScrollTo = function ( b , c , e , f ) { var g ; if ( angular . isElement ( b ) ? g = this . duScrollToElement : angular . isDefined ( e ) && ( g = this . duScrollToAnimated ) , g ) return g . apply ( this , arguments ) ; g = t ( this ) ; return m ( g ) ? a . scrollTo ( b , c ) : ( g . scrollLeft = b , void ( g . scrollTop = c ) ) } ; var x , r ; q . duScrollToAnimated = function ( a , b , g , m ) { g && ! m && ( m = c ) ; var n = this . duScrollLeft ( ) , t = this . duScrollTop ( ) , q = Math . round ( a - n ) , A = Math . round ( b - t ) , y = null , C = 0 , E = this , O = function ( a ) { ( ! a || C && 0 < a . which ) && ( f && E . unbind ( f , O ) , h ( x ) , r . reject ( ) , x = null ) } ; if ( x &&
O ( ) , r = l . defer ( ) , 0 === g || ! q && ! A ) return 0 === g && E . duScrollTo ( a , b ) , r . resolve ( ) , r . promise ; var V = function ( a ) { null === y && ( y = a ) ; C = a - y ; a = C >= g ? 1 : m ( C / g ) ; E . scrollTo ( n + Math . ceil ( q * a ) , t + Math . ceil ( A * a ) ) ; 1 > a ? x = e ( V ) : ( f && E . unbind ( f , O ) , x = null , r . resolve ( ) ) } ; return E . duScrollTo ( n , t ) , f && E . bind ( f , O ) , x = e ( V ) , r . promise } ; q . duScrollToElement = function ( a , b , c , e ) { var f = t ( this ) ; angular . isNumber ( b ) && ! isNaN ( b ) || ( b = g ) ; a = this . duScrollTop ( ) + t ( a ) . getBoundingClientRect ( ) . top - b ; return n ( f ) && ( a -= f . getBoundingClientRect ( ) . top ) , this . duScrollTo ( 0 ,
a , c , e ) } ; q . duScrollLeft = function ( b , c , e ) { if ( angular . isNumber ( b ) ) return this . duScrollTo ( b , this . duScrollTop ( ) , c , e ) ; b = t ( this ) ; return m ( b ) ? a . scrollX || document . documentElement . scrollLeft || document . body . scrollLeft : b . scrollLeft } ; q . duScrollTop = function ( b , c , e ) { if ( angular . isNumber ( b ) ) return this . duScrollTo ( this . duScrollLeft ( ) , b , c , e ) ; b = t ( this ) ; return m ( b ) ? a . scrollY || document . documentElement . scrollTop || document . body . scrollTop : b . scrollTop } ; q . duScrollToElementAnimated = function ( a , c , e , f ) { return this . duScrollToElement ( a ,
c , e || b , f ) } ; q . duScrollTopAnimated = function ( a , c , e ) { return this . duScrollTop ( a , c || b , e ) } ; q . duScrollLeftAnimated = function ( a , c , e ) { return this . duScrollLeft ( a , c || b , e ) } ; angular . forEach ( q , function ( a , b ) { angular . element . prototype [ b ] = a ; var c = b . replace ( /^duScroll/ , "scroll" ) ; angular . isUndefined ( angular . element . prototype [ c ] ) && ( angular . element . prototype [ c ] = a ) } ) } ] ) ;
angular . module ( "duScroll.polyfill" , [ ] ) . factory ( "polyfill" , [ "$window" , function ( a ) { var l = [ "webkit" , "moz" , "o" , "ms" ] ; return function ( h , e ) { if ( a [ h ] ) return a [ h ] ; for ( var c , b = h . substr ( 0 , 1 ) . toUpperCase ( ) + h . substr ( 1 ) , g = 0 ; g < l . length ; g ++ ) if ( c = l [ g ] + b , a [ c ] ) return a [ c ] ; return e } } ] ) ;
angular . module ( "duScroll.requestAnimation" , [ "duScroll.polyfill" ] ) . factory ( "requestAnimation" , [ "polyfill" , "$timeout" , function ( a , l ) { var h = 0 ; return a ( "requestAnimationFrame" , function ( a , c ) { var b = ( new Date ) . getTime ( ) , e = Math . max ( 0 , 16 - ( b - h ) ) , f = l ( function ( ) { a ( b + e ) } , e ) ; return h = b + e , f } ) } ] ) . factory ( "cancelAnimation" , [ "polyfill" , "$timeout" , function ( a , l ) { return a ( "cancelAnimationFrame" , function ( a ) { l . cancel ( a ) } ) } ] ) ;
angular . module ( "duScroll.spyAPI" , [ "duScroll.scrollContainerAPI" ] ) . factory ( "spyAPI" , [ "$rootScope" , "$timeout" , "$window" , "$document" , "scrollContainerAPI" , "duScrollGreedy" , "duScrollSpyWait" , "duScrollBottomSpy" , "duScrollActiveClass" , function ( a , l , h , e , c , b , g , f , q ) { var m = function ( c ) { var m = ! 1 , n = ! 1 , r = function ( ) { n = ! 1 ; var g ; g = c . container [ 0 ] ; var m = 0 ; "undefined" != typeof HTMLElement && g instanceof HTMLElement || g . nodeType && g . nodeType === g . ELEMENT _NODE ? ( m = g . getBoundingClientRect ( ) . top , g = Math . round ( g . scrollTop + g . clientHeight ) >=
g . scrollHeight ) : g = Math . round ( h . pageYOffset + h . innerHeight ) >= ( e [ 0 ] . body . scrollHeight || e [ 0 ] . documentElement . scrollHeight ) ; var l , r , t , p , x , A , y = f && g ? "bottom" : "top" ; p = c . spies ; r = c . currentlyActive ; t = void 0 ; for ( l = 0 ; l < p . length ; l ++ ) x = p [ l ] , ( A = x . getTargetPosition ( ) ) && ( f && g || 20 > A . top + x . offset - m && ( b || - 1 * A . top + m ) < A . height ) && ( ! t || t [ y ] < A [ y ] ) && ( t = { spy : x } , t [ y ] = A [ y ] ) ; t && ( t = t . spy ) ; r === t || b && ! t || ( r && ( r . $element . removeClass ( q ) , a . $broadcast ( "duScrollspy:becameInactive" , r . $element , angular . element ( r . getTargetElement ( ) ) ) ) , t &&
( t . $element . addClass ( q ) , a . $broadcast ( "duScrollspy:becameActive" , t . $element , angular . element ( t . getTargetElement ( ) ) ) ) , c . currentlyActive = t ) } ; return g ? function ( ) { m ? n = ! 0 : ( r ( ) , m = l ( function ( ) { m = ! 1 ; n && r ( ) } , g , ! 1 ) ) } : r } , n = { } , t = function ( a ) { var b = a . $id , c = { spies : [ ] } ; return c . handler = m ( c ) , n [ b ] = c , a . $on ( "$destroy" , function ( ) { x ( a ) } ) , b } , x = function ( a ) { a = a . $id ; var b = n [ a ] , c = b . container ; c && c . off ( "scroll" , b . handler ) ; delete n [ a ] } , r = t ( a ) , y = function ( a ) { return n [ a . $id ] ? n [ a . $id ] : a . $parent ? y ( a . $parent ) : n [ r ] } , C = function ( a ) { var b ,
c , e = a . $scope ; if ( e ) return y ( e ) ; for ( c in n ) if ( b = n [ c ] , - 1 !== b . spies . indexOf ( a ) ) return b } ; return { addSpy : function ( a ) { var b = C ( a ) ; if ( b ) { b . spies . push ( a ) ; var e ; if ( e = b . container ) a : { for ( e = b . container ; e . parentNode ; ) if ( e = e . parentNode , e === document ) { e = ! 0 ; break a } e = ! 1 } e || ( b . container && b . container . off ( "scroll" , b . handler ) , b . container = c . getContainer ( a . $scope ) , b . container . on ( "scroll" , b . handler ) . triggerHandler ( "scroll" ) ) } } , removeSpy : function ( b ) { var c = C ( b ) ; b === c . currentlyActive && ( a . $broadcast ( "duScrollspy:becameInactive" ,
c . currentlyActive . $element ) , c . currentlyActive = null ) ; var e = c . spies . indexOf ( b ) ; - 1 !== e && c . spies . splice ( e , 1 ) ; b . $element = null } , createContext : t , destroyContext : x , getContextForScope : y } } ] ) ;
angular . module ( "duScroll.scrollContainerAPI" , [ ] ) . factory ( "scrollContainerAPI" , [ "$document" , function ( a ) { var l = { } , h = function ( a ) { return l [ a . $id ] ? a . $id : a . $parent ? h ( a . $parent ) : void 0 } ; return { getContainerId : h , getContainer : function ( e ) { return ( e = h ( e ) ) ? l [ e ] : a } , setContainer : function ( a , c ) { var b = a . $id ; return l [ b ] = c , b } , removeContainer : function ( a ) { ( a = h ( a ) ) && delete l [ a ] } } } ] ) ;
angular . module ( "duScroll.smoothScroll" , [ "duScroll.scrollHelpers" , "duScroll.scrollContainerAPI" ] ) . directive ( "duSmoothScroll" , [ "duScrollDuration" , "duScrollOffset" , "scrollContainerAPI" , function ( a , l , h ) { return { link : function ( e , c , b ) { c . on ( "click" , function ( c ) { if ( b . href && - 1 !== b . href . indexOf ( "#" ) || "" !== b . duSmoothScroll ) { var f = b . href ? b . href . replace ( /.*(?=#[^\s]+$)/ , "" ) . substring ( 1 ) : b . duSmoothScroll ; if ( ( f = document . getElementById ( f ) || document . getElementsByName ( f ) [ 0 ] ) && f . getBoundingClientRect ) { c . stopPropagation &&
c . stopPropagation ( ) ; c . preventDefault && c . preventDefault ( ) ; c = b . offset ? parseInt ( b . offset , 10 ) : l ; var g = b . duration ? parseInt ( b . duration , 10 ) : a ; h . getContainer ( e ) . duScrollToElement ( angular . element ( f ) , isNaN ( c ) ? 0 : c , isNaN ( g ) ? 0 : g ) } } } ) } } } ] ) ; angular . module ( "duScroll.spyContext" , [ "duScroll.spyAPI" ] ) . directive ( "duSpyContext" , [ "spyAPI" , function ( a ) { return { restrict : "A" , scope : ! 0 , compile : function ( l , h , e ) { return { pre : function ( c , b , e , f ) { a . createContext ( c ) } } } } } ] ) ;
angular . module ( "duScroll.scrollContainer" , [ "duScroll.scrollContainerAPI" ] ) . directive ( "duScrollContainer" , [ "scrollContainerAPI" , function ( a ) { return { restrict : "A" , scope : ! 0 , compile : function ( l , h , e ) { return { pre : function ( c , b , e , f ) { e . $observe ( "duScrollContainer" , function ( e ) { angular . isString ( e ) && ( e = document . getElementById ( e ) ) ; e = angular . isElement ( e ) ? angular . element ( e ) : b ; a . setContainer ( c , e ) ; c . $on ( "$destroy" , function ( ) { a . removeContainer ( c ) } ) } ) } } } } } ] ) ;
angular . module ( "duScroll.scrollspy" , [ "duScroll.spyAPI" ] ) . directive ( "duScrollspy" , [ "spyAPI" , "duScrollOffset" , "$timeout" , "$rootScope" , function ( a , l , h , e ) { var c = function ( a , c , e , h ) { angular . isElement ( a ) ? this . target = a : angular . isString ( a ) && ( this . targetId = a ) ; this . $scope = c ; this . $element = e ; this . offset = h } ; return c . prototype . getTargetElement = function ( ) { return ! this . target && this . targetId && ( this . target = document . getElementById ( this . targetId ) || document . getElementsByName ( this . targetId ) [ 0 ] ) , this . target } , c . prototype . getTargetPosition =
function ( ) { var a = this . getTargetElement ( ) ; return a ? a . getBoundingClientRect ( ) : void 0 } , c . prototype . flushTargetCache = function ( ) { this . targetId && ( this . target = void 0 ) } , { link : function ( b , g , f ) { var q , m = f . ngHref || f . href ; if ( m && - 1 !== m . indexOf ( "#" ) ? q = m . replace ( /.*(?=#[^\s]+$)/ , "" ) . substring ( 1 ) : f . duScrollspy ? q = f . duScrollspy : f . duSmoothScroll && ( q = f . duSmoothScroll ) , q ) { var n = h ( function ( ) { var h = new c ( q , b , g , - ( f . offset ? parseInt ( f . offset , 10 ) : l ) ) ; a . addSpy ( h ) ; b . $on ( "$locationChangeSuccess" , h . flushTargetCache . bind ( h ) ) ; var m =
e . $on ( "$stateChangeSuccess" , h . flushTargetCache . bind ( h ) ) ; b . $on ( "$destroy" , function ( ) { a . removeSpy ( h ) ; m ( ) } ) } , 0 , ! 1 ) ; b . $on ( "$destroy" , function ( ) { h . cancel ( n ) } ) } } } } ] ) ;
! function ( ) { var a = { TAB : 9 , ENTER : 13 , ESC : 27 , SPACE : 32 , LEFT : 37 , UP : 38 , RIGHT : 39 , DOWN : 40 , SHIFT : 16 , CTRL : 17 , ALT : 18 , PAGE _UP : 33 , PAGE _DOWN : 34 , HOME : 36 , END : 35 , BACKSPACE : 8 , DELETE : 46 , COMMAND : 91 , MAP : { 91 : "COMMAND" , 8 : "BACKSPACE" , 9 : "TAB" , 13 : "ENTER" , 16 : "SHIFT" , 17 : "CTRL" , 18 : "ALT" , 19 : "PAUSEBREAK" , 20 : "CAPSLOCK" , 27 : "ESC" , 32 : "SPACE" , 33 : "PAGE_UP" , 34 : "PAGE_DOWN" , 35 : "END" , 36 : "HOME" , 37 : "LEFT" , 38 : "UP" , 39 : "RIGHT" , 40 : "DOWN" , 43 : "+" , 44 : "PRINTSCREEN" , 45 : "INSERT" , 46 : "DELETE" , 48 : "0" , 49 : "1" , 50 : "2" , 51 : "3" , 52 : "4" , 53 : "5" , 54 : "6" , 55 : "7" , 56 : "8" ,
57 : "9" , 59 : ";" , 61 : "=" , 65 : "A" , 66 : "B" , 67 : "C" , 68 : "D" , 69 : "E" , 70 : "F" , 71 : "G" , 72 : "H" , 73 : "I" , 74 : "J" , 75 : "K" , 76 : "L" , 77 : "M" , 78 : "N" , 79 : "O" , 80 : "P" , 81 : "Q" , 82 : "R" , 83 : "S" , 84 : "T" , 85 : "U" , 86 : "V" , 87 : "W" , 88 : "X" , 89 : "Y" , 90 : "Z" , 96 : "0" , 97 : "1" , 98 : "2" , 99 : "3" , 100 : "4" , 101 : "5" , 102 : "6" , 103 : "7" , 104 : "8" , 105 : "9" , 106 : "*" , 107 : "+" , 109 : "-" , 110 : "." , 111 : "/" , 112 : "F1" , 113 : "F2" , 114 : "F3" , 115 : "F4" , 116 : "F5" , 117 : "F6" , 118 : "F7" , 119 : "F8" , 120 : "F9" , 121 : "F10" , 122 : "F11" , 123 : "F12" , 144 : "NUMLOCK" , 145 : "SCROLLLOCK" , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." ,
191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" } , isControl : function ( e ) { switch ( e . which ) { case a . COMMAND : case a . SHIFT : case a . CTRL : case a . ALT : return ! 0 } return ! ! ( e . metaKey || e . ctrlKey || e . altKey ) } , isFunctionKey : function ( a ) { return a = a . which ? a . which : a , 112 <= a && 123 >= a } , isVerticalMovement : function ( e ) { return ~ [ a . UP , a . DOWN ] . indexOf ( e ) } , isHorizontalMovement : function ( e ) { return ~ [ a . LEFT , a . RIGHT , a . BACKSPACE , a . DELETE ] . indexOf ( e ) } , toSeparator : function ( e ) { var c = { ENTER : "\n" , TAB : "\t" , SPACE : " " } [ e ] ; return c ? c : a [ e ] ? void 0 :
e } } ; void 0 === angular . element . prototype . querySelectorAll && ( angular . element . prototype . querySelectorAll = function ( a ) { return angular . element ( this [ 0 ] . querySelectorAll ( a ) ) } ) ; void 0 === angular . element . prototype . closest && ( angular . element . prototype . closest = function ( a ) { for ( var c = this [ 0 ] , b = c . matches || c . webkitMatchesSelector || c . mozMatchesSelector || c . msMatchesSelector ; c ; ) { if ( b . bind ( c ) ( a ) ) return c ; c = c . parentElement } return ! 1 } ) ; var l = 0 , h = angular . module ( "ui.select" , [ ] ) . constant ( "uiSelectConfig" , { theme : "bootstrap" , searchEnabled : ! 0 ,
sortable : ! 1 , placeholder : "" , refreshDelay : 1E3 , closeOnSelect : ! 0 , skipFocusser : ! 1 , dropdownPosition : "auto" , removeSelected : ! 0 , generateId : function ( ) { return l ++ } , appendToBody : ! 1 } ) . service ( "uiSelectMinErr" , function ( ) { var a = angular . $$minErr ( "ui.select" ) ; return function ( ) { var c = a . apply ( this , arguments ) . message . replace ( /\nhttp:\/\/errors.angularjs.org\/.*/ , "" ) ; return Error ( c ) } } ) . directive ( "uisTranscludeAppend" , function ( ) { return { link : function ( a , c , b , g , f ) { f ( a , function ( a ) { c . append ( a ) } ) } } } ) . filter ( "highlight" , function ( ) { return function ( a ,
c ) { return c && a ? ( "" + a ) . replace ( new RegExp ( ( "" + c ) . replace ( /([.?*+^$[\]\\(){}|-])/g , "\\$1" ) , "gi" ) , '<span class="ui-select-highlight">$&</span>' ) : a } } ) . factory ( "uisOffset" , [ "$document" , "$window" , function ( a , c ) { return function ( b ) { var e = b [ 0 ] . getBoundingClientRect ( ) ; return { width : e . width || b . prop ( "offsetWidth" ) , height : e . height || b . prop ( "offsetHeight" ) , top : e . top + ( c . pageYOffset || a [ 0 ] . documentElement . scrollTop ) , left : e . left + ( c . pageXOffset || a [ 0 ] . documentElement . scrollLeft ) } } } ] ) ; h . directive ( "uiSelectChoices" , [ "uiSelectConfig" ,
"uisRepeatParser" , "uiSelectMinErr" , "$compile" , "$window" , function ( a , c , b , g , f ) { return { restrict : "EA" , require : "^uiSelect" , replace : ! 0 , transclude : ! 0 , templateUrl : function ( b ) { b . addClass ( "ui-select-choices" ) ; return ( b . parent ( ) . attr ( "theme" ) || a . theme ) + "/choices.tpl.html" } , compile : function ( e , g ) { if ( ! g . repeat ) throw b ( "repeat" , "Expected 'repeat' expression." ) ; var h = g . groupBy , m = g . groupFilter ; if ( h ) { var l = e . querySelectorAll ( ".ui-select-choices-group" ) ; if ( 1 !== l . length ) throw b ( "rows" , "Expected 1 .ui-select-choices-group but got '{0}'." ,
l . length ) ; l . attr ( "ng-repeat" , c . getGroupNgRepeatExpression ( ) ) } var l = c . parse ( g . repeat ) , r = e . querySelectorAll ( ".ui-select-choices-row" ) ; if ( 1 !== r . length ) throw b ( "rows" , "Expected 1 .ui-select-choices-row but got '{0}'." , r . length ) ; r . attr ( "ng-repeat" , l . repeatExpression ( h ) ) . attr ( "ng-if" , "$select.open" ) ; var q = e . querySelectorAll ( ".ui-select-choices-row-inner" ) ; if ( 1 !== q . length ) throw b ( "rows" , "Expected 1 .ui-select-choices-row-inner but got '{0}'." , q . length ) ; q . attr ( "uis-transclude-append" , "" ) ; return ( f . document . addEventListener ?
r : q ) . attr ( "ng-click" , "$select.select(" + l . itemName + ",$select.skipFocusser,$event)" ) , function ( b , c , e , f ) { f . parseRepeatAttr ( e . repeat , h , m ) ; f . disableChoiceExpression = e . uiDisableChoice ; f . onHighlightCallback = e . onHighlight ; f . dropdownPosition = e . position ? e . position . toLowerCase ( ) : a . dropdownPosition ; b . $on ( "$destroy" , function ( ) { r . remove ( ) } ) ; b . $watch ( "$select.search" , function ( a ) { a && ! f . open && f . multiple && f . activate ( ! 1 , ! 0 ) ; f . activeIndex = f . tagging . isActivated ? - 1 : 0 ; ! e . minimumInputLength || f . search . length >= e . minimumInputLength ?
f . refresh ( e . refresh ) : f . items = [ ] } ) ; e . $observe ( "refreshDelay" , function ( ) { var c = b . $eval ( e . refreshDelay ) ; f . refreshDelay = void 0 !== c ? c : a . refreshDelay } ) } } } } ] ) ; h . controller ( "uiSelectCtrl" , [ "$scope" , "$element" , "$timeout" , "$filter" , "$$uisDebounce" , "uisRepeatParser" , "uiSelectMinErr" , "uiSelectConfig" , "$parse" , "$injector" , "$window" , function ( e , c , b , g , f , h , m , l , t , x , r ) { function n ( a , b , c ) { if ( a . findIndex ) return a . findIndex ( b , c ) ; var e ; a = Object ( a ) ; for ( var f = a . length >>> 0 , g = 0 ; f > g ; g ++ ) if ( e = a [ g ] , b . call ( c , e , g , a ) ) return g ; return - 1 }
function q ( ) { ( p . resetSearchInput || void 0 === p . resetSearchInput && l . resetSearchInput ) && ( p . search = v , p . selected && p . items . length && ! p . multiple && ( p . activeIndex = n ( p . items , function ( a ) { return angular . equals ( this , a ) } , p . selected ) ) ) } function A ( a , b ) { var c , e , f = [ ] ; for ( c = 0 ; c < b . length ; c ++ ) for ( e = 0 ; e < a . length ; e ++ ) a [ e ] . name == [ b [ c ] ] && f . push ( a [ e ] ) ; return f } function E ( b ) { var c = ! 0 ; switch ( b ) { case a . DOWN : ! p . open && p . multiple ? p . activate ( ! 1 , ! 0 ) : p . activeIndex < p . items . length - 1 && p . activeIndex ++ ; break ; case a . UP : ! p . open && p . multiple ?
p . activate ( ! 1 , ! 0 ) : ( 0 < p . activeIndex || 0 === p . search . length && p . tagging . isActivated && - 1 < p . activeIndex ) && p . activeIndex -- ; break ; case a . TAB : p . multiple && ! p . open || p . select ( p . items [ p . activeIndex ] , ! 0 ) ; break ; case a . ENTER : p . open && ( p . tagging . isActivated || 0 <= p . activeIndex ) ? p . select ( p . items [ p . activeIndex ] , p . skipFocusser ) : p . activate ( ! 1 , ! 0 ) ; break ; case a . ESC : p . close ( ) ; break ; default : c = ! 1 } return c } function F ( ) { var a = c . querySelectorAll ( ".ui-select-choices-content" ) , b = a . querySelectorAll ( ".ui-select-choices-row" ) ; if ( 1 > b . length ) throw m ( "choices" ,
"Expected multiple .ui-select-choices-row but got '{0}'." , b . length ) ; if ( ! ( 0 > p . activeIndex ) ) { var b = b [ p . activeIndex ] , e = b . offsetTop + b . clientHeight - a [ 0 ] . scrollTop , f = a [ 0 ] . offsetHeight ; e > f ? a [ 0 ] . scrollTop += e - f : e < b . clientHeight && ( p . isGrouped && 0 === p . activeIndex ? a [ 0 ] . scrollTop = 0 : a [ 0 ] . scrollTop -= b . clientHeight - e ) } } var p = this , v = "" ; p . placeholder = l . placeholder ; p . searchEnabled = l . searchEnabled ; p . sortable = l . sortable ; p . refreshDelay = l . refreshDelay ; p . paste = l . paste ; p . removeSelected = l . removeSelected ; p . closeOnSelect = ! 0 ;
p . skipFocusser = ! 1 ; p . search = v ; p . activeIndex = 0 ; p . items = [ ] ; p . open = ! 1 ; p . focus = ! 1 ; p . disabled = ! 1 ; p . selected = void 0 ; p . dropdownPosition = "auto" ; p . focusser = void 0 ; p . resetSearchInput = ! 0 ; p . setSearchToAnswer = ! 1 ; p . searchBy = void 0 ; p . multiple = void 0 ; p . disableChoiceExpression = void 0 ; p . tagging = { isActivated : ! 1 , fct : void 0 } ; p . taggingTokens = { isActivated : ! 1 , tokens : void 0 } ; p . lockChoiceExpression = void 0 ; p . clickTriggeredSelect = ! 1 ; p . $filter = g ; p . $element = c ; g = p ; var I ; try { I = x . get ( "$animate" ) } catch ( X ) { I = null } if ( g . $animate = I , p . searchInput =
c . querySelectorAll ( "input.ui-select-search" ) , 1 !== p . searchInput . length ) throw m ( "searchInput" , "Expected 1 input.ui-select-search but got '{0}'." , p . searchInput . length ) ; p . isEmpty = function ( ) { return angular . isUndefined ( p . selected ) || null === p . selected || "" === p . selected || p . multiple && 0 === p . selected . length } ; p . activate = function ( a , f ) { if ( ! p . disabled && ! p . open ) { f || q ( ) ; e . $broadcast ( "uis:activate" ) ; p . open = ! 0 ; p . activeIndex = p . activeIndex >= p . items . length ? 0 : p . activeIndex ; - 1 === p . activeIndex && ! 1 !== p . taggingLabel && ( p . activeIndex =
0 ) ; var g = c . querySelectorAll ( ".ui-select-choices-content" ) , h = c . querySelectorAll ( ".ui-select-search" ) ; if ( p . $animate && p . $animate . on && p . $animate . enabled ( g [ 0 ] ) ) { var m = function ( c , e ) { "start" === e && 0 === p . items . length ? ( p . $animate . off ( "removeClass" , h [ 0 ] , m ) , b ( function ( ) { p . focusSearchInput ( a ) } ) ) : "close" === e && ( p . $animate . off ( "enter" , g [ 0 ] , m ) , b ( function ( ) { p . focusSearchInput ( a ) } ) ) } ; 0 < p . items . length ? p . $animate . on ( "enter" , g [ 0 ] , m ) : p . $animate . on ( "removeClass" , h [ 0 ] , m ) } else b ( function ( ) { p . focusSearchInput ( a ) ; ! p . tagging . isActivated &&
1 < p . items . length && F ( ) } ) } } ; p . focusSearchInput = function ( a ) { p . search = a || p . search ; p . searchInput [ 0 ] . focus ( ) } ; p . findGroupByName = function ( a ) { return p . groups && p . groups . filter ( function ( b ) { return b . name === a } ) [ 0 ] } ; p . parseRepeatAttr = function ( a , b , c ) { function f ( a ) { var f = e . $eval ( b ) ; if ( p . groups = [ ] , angular . forEach ( a , function ( a ) { var b = angular . isFunction ( f ) ? f ( a ) : a [ f ] , c = p . findGroupByName ( b ) ; c ? c . items . push ( a ) : p . groups . push ( { name : b , items : [ a ] } ) } ) , c ) a = e . $eval ( c ) , angular . isFunction ( a ) ? p . groups = a ( p . groups ) : angular . isArray ( a ) &&
( p . groups = A ( p . groups , a ) ) ; p . items = [ ] ; p . groups . forEach ( function ( a ) { p . items = p . items . concat ( a . items ) } ) } function g ( a ) { p . items = a } p . setItemsFn = b ? f : g ; p . parserResult = h . parse ( a ) ; p . isGrouped = ! ! b ; p . itemProperty = p . parserResult . itemName ; var l = p . parserResult . source , n = function ( ) { var a = l ( e ) ; e . $uisSource = Object . keys ( a ) . map ( function ( b ) { var c = { } ; return c [ p . parserResult . keyName ] = b , c . value = a [ b ] , c } ) } ; p . parserResult . keyName && ( n ( ) , p . parserResult . source = t ( "$uisSource" + p . parserResult . filters ) , e . $watch ( l , function ( a , b ) { a !== b &&
n ( ) } , ! 0 ) ) ; p . refreshItems = function ( a ) { a = a || p . parserResult . source ( e ) ; var b = p . selected ; p . isEmpty ( ) || angular . isArray ( b ) && ! b . length || ! p . removeSelected ? p . setItemsFn ( a ) : void 0 !== a && ( a = a . filter ( function ( a ) { return angular . isArray ( b ) ? b . every ( function ( b ) { return ! angular . equals ( a , b ) } ) : ! angular . equals ( a , b ) } ) , p . setItemsFn ( a ) ) ; "auto" !== p . dropdownPosition && "up" !== p . dropdownPosition || e . calculateDropdownPos ( ) ; e . $broadcast ( "uis:refresh" ) } ; e . $watchCollection ( p . parserResult . source , function ( a ) { if ( void 0 === a || null === a ) p . items =
[ ] ; else { if ( ! angular . isArray ( a ) ) throw m ( "items" , "Expected an array but got '{0}'." , a ) ; p . refreshItems ( a ) ; angular . isDefined ( p . ngModel . $modelValue ) && ( p . ngModel . $modelValue = null ) } } ) } ; var H ; p . refresh = function ( a ) { void 0 !== a && ( H && b . cancel ( H ) , H = b ( function ( ) { e . $eval ( a ) } , p . refreshDelay ) ) } ; p . isActive = function ( a ) { if ( ! p . open ) return ! 1 ; var b = p . items . indexOf ( a [ p . itemProperty ] ) , c = b == p . activeIndex ; return ! ( ! c || 0 > b ) && ( c && ! angular . isUndefined ( p . onHighlightCallback ) && a . $eval ( p . onHighlightCallback ) , c ) } ; var J = function ( a ) { return p . selected &&
angular . isArray ( p . selected ) && 0 < p . selected . filter ( function ( b ) { return angular . equals ( b , a ) } ) . length } ; p . isDisabled = function ( a ) { if ( p . open ) { var b , c = p . items . indexOf ( a [ p . itemProperty ] ) , e = ! 1 ; return 0 <= c && ( ! angular . isUndefined ( p . disableChoiceExpression ) || p . multiple ) && ( b = p . items [ c ] , e = ! ! a . $eval ( p . disableChoiceExpression ) || J ( b ) , b . _uiSelectChoiceDisabled = e ) , e } } ; p . select = function ( a , c , f ) { if ( ! ( void 0 !== a && a . _uiSelectChoiceDisabled || ! ( p . items || p . search || p . tagging . isActivated ) || a && a . _uiSelectChoiceDisabled ) ) { if ( p . tagging . isActivated ) { if ( ! 1 ===
p . taggingLabel ) if ( 0 > p . activeIndex ) { if ( a = void 0 !== p . tagging . fct ? p . tagging . fct ( p . search ) : p . search , ! a || angular . equals ( p . items [ 0 ] , a ) ) return } else a = p . items [ p . activeIndex ] ; else if ( 0 === p . activeIndex ) { if ( void 0 === a ) return ; if ( void 0 !== p . tagging . fct && "string" == typeof a ) { if ( a = p . tagging . fct ( a ) , ! a ) return } else "string" == typeof a && ( a = a . replace ( p . taggingLabel , "" ) . trim ( ) ) } if ( J ( a ) ) return void p . close ( c ) } e . $broadcast ( "uis:select" , a ) ; var g = { } ; g [ p . parserResult . itemName ] = a ; b ( function ( ) { p . onSelectCallback ( e , { $item : a , $model : p . parserResult . modelMapper ( e ,
g ) } ) } ) ; p . closeOnSelect && p . close ( c ) ; f && "click" === f . type && ( p . clickTriggeredSelect = ! 0 ) } } ; p . close = function ( a ) { p . open && ( p . ngModel && p . ngModel . $setTouched && p . ngModel . $setTouched ( ) , q ( ) , ( p . setSearchToAnswer || void 0 === p . setSearchToAnswer && l . setSearchToAnswer ) && ( console . log ( "searchBy: " + p . searchBy ) , p . searchBy && ( console . log ( "_setSearchToAnswer" ) , p . resetSearchInput = ! 1 , p . search = p . selected [ p . searchBy ] ) ) , p . open = ! 1 , e . $broadcast ( "uis:close" , a ) ) } ; p . setFocus = function ( ) { p . focus || p . focusInput [ 0 ] . focus ( ) } ; p . clear = function ( a ) { p . select ( void 0 ) ;
a . stopPropagation ( ) ; b ( function ( ) { p . focusser [ 0 ] . focus ( ) } , 0 , ! 1 ) } ; p . toggle = function ( a ) { p . open ? ( p . close ( ) , a . preventDefault ( ) , a . stopPropagation ( ) ) : p . activate ( ) } ; p . isLocked = function ( a , b ) { var c , e = p . selected [ b ] ; return e && ! angular . isUndefined ( p . lockChoiceExpression ) && ( c = ! ! a . $eval ( p . lockChoiceExpression ) , e . _uiSelectChoiceLocked = c ) , c } ; var K = null , O = ! 1 ; p . sizeSearchInput = function ( ) { var a = p . searchInput [ 0 ] , c = p . searchInput . parent ( ) . parent ( ) [ 0 ] , f = function ( b ) { if ( 0 === b ) return ! 1 ; var c = b - a . offsetLeft - 10 ; return 50 > c && ( c =
b ) , p . searchInput . css ( "width" , c + "px" ) , ! 0 } ; p . searchInput . css ( "width" , "10px" ) ; b ( function ( ) { null !== K || f ( c . clientWidth * ! ! a . offsetParent ) || ( K = e . $watch ( function ( ) { O || ( O = ! 0 , e . $$postDigest ( function ( ) { O = ! 1 ; f ( c . clientWidth * ! ! a . offsetParent ) && ( K ( ) , K = null ) } ) ) } , angular . noop ) ) } ) } ; p . searchInput . on ( "keydown" , function ( c ) { var f = c . which ; ~ [ a . ENTER , a . ESC ] . indexOf ( f ) && ( c . preventDefault ( ) , c . stopPropagation ( ) ) ; e . $apply ( function ( ) { var e = ! 1 ; if ( ( 0 < p . items . length || p . tagging . isActivated ) && ( E ( f ) , p . taggingTokens . isActivated ) ) { for ( var g =
0 ; g < p . taggingTokens . tokens . length ; g ++ ) p . taggingTokens . tokens [ g ] === a . MAP [ c . keyCode ] && 0 < p . search . length && ( e = ! 0 ) ; e && b ( function ( ) { p . searchInput . triggerHandler ( "tagged" ) ; var b = p . search . replace ( a . MAP [ c . keyCode ] , "" ) . trim ( ) ; p . tagging . fct && ( b = p . tagging . fct ( b ) ) ; b && p . select ( b , ! 0 ) } ) } } ) ; a . isVerticalMovement ( f ) && 0 < p . items . length && F ( ) ; f !== a . ENTER && f !== a . ESC || ( c . preventDefault ( ) , c . stopPropagation ( ) ) } ) ; p . searchInput . on ( "paste" , function ( b ) { var c ; if ( c = window . clipboardData && window . clipboardData . getData ? window . clipboardData . getData ( "Text" ) :
( b . originalEvent || b ) . clipboardData . getData ( "text/plain" ) , c = p . search + c , c && 0 < c . length ) if ( p . taggingTokens . isActivated ) { for ( var e = [ ] , f = 0 ; f < p . taggingTokens . tokens . length ; f ++ ) { var g = a . toSeparator ( p . taggingTokens . tokens [ f ] ) || p . taggingTokens . tokens [ f ] ; if ( - 1 < c . indexOf ( g ) ) { e = c . split ( g ) ; break } } if ( 0 === e . length && ( e = [ c ] ) , 0 < e . length ) c = p . search , angular . forEach ( e , function ( a ) { ( a = p . tagging . fct ? p . tagging . fct ( a ) : a ) && p . select ( a , ! 0 ) } ) , p . search = c || v , b . preventDefault ( ) , b . stopPropagation ( ) } else p . paste && ( p . paste ( c ) , p . search =
v , b . preventDefault ( ) , b . stopPropagation ( ) ) } ) ; p . searchInput . on ( "tagged" , function ( ) { b ( function ( ) { q ( ) } ) } ) ; var V = f ( function ( ) { p . sizeSearchInput ( ) } , 50 ) ; angular . element ( r ) . bind ( "resize" , V ) ; e . $on ( "$destroy" , function ( ) { p . searchInput . off ( "keyup keydown tagged blur paste" ) ; angular . element ( r ) . off ( "resize" , V ) } ) } ] ) ; h . directive ( "uiSelect" , [ "$document" , "uiSelectConfig" , "uiSelectMinErr" , "uisOffset" , "$compile" , "$parse" , "$timeout" , function ( a , c , b , g , f , h , m ) { return { restrict : "EA" , templateUrl : function ( a , b ) { return ( b . theme ||
c . theme ) + ( angular . isDefined ( b . multiple ) ? "/select-multiple.tpl.html" : "/select.tpl.html" ) } , replace : ! 0 , transclude : ! 0 , require : [ "uiSelect" , "^ngModel" ] , scope : ! 0 , controller : "uiSelectCtrl" , controllerAs : "$select" , compile : function ( e , f ) { var l = /{(.*)}\s*{(.*)}/ . exec ( f . ngClass ) ; l && ( l = "{" + l [ 1 ] + ", " + l [ 2 ] + "}" , f . ngClass = l , e . attr ( "ng-class" , l ) ) ; return angular . isDefined ( f . multiple ) ? e . append ( "<ui-select-multiple/>" ) . removeAttr ( "multiple" ) : e . append ( "<ui-select-single/>" ) , f . inputId && ( e . querySelectorAll ( "input.ui-select-search" ) [ 0 ] . id =
f . inputId ) , function ( e , f , l , n , t ) { function r ( a ) { if ( q . open ) { var b = ! 1 ; if ( b = window . jQuery ? window . jQuery . contains ( f [ 0 ] , a . target ) : f [ 0 ] . contains ( a . target ) , ! b && ! q . clickTriggeredSelect ) { var c ; q . skipFocusser ? c = ! 0 : ( b = [ "input" , "button" , "textarea" , "select" ] , ( c = ( c = angular . element ( a . target ) . controller ( "uiSelect" ) ) && c !== q ) || ( c = ~ b . indexOf ( a . target . tagName . toLowerCase ( ) ) ) ) ; q . close ( c ) ; e . $digest ( ) } q . clickTriggeredSelect = ! 1 } } function p ( ) { null !== x && ( x . replaceWith ( f ) , x = null , f [ 0 ] . style . position = "" , f [ 0 ] . style . left = "" , f [ 0 ] . style . top =
"" , f [ 0 ] . style . width = A , q . setFocus ( ) ) } var q = n [ 0 ] ; n = n [ 1 ] ; q . generatedId = c . generateId ( ) ; q . baseTitle = l . title || "Select box" ; q . focusserTitle = q . baseTitle + " focus" ; q . focusserId = "focusser-" + q . generatedId ; q . closeOnSelect = angular . isDefined ( l . closeOnSelect ) ? h ( l . closeOnSelect ) ( ) : c . closeOnSelect ; e . $watch ( "skipFocusser" , function ( ) { var a = e . $eval ( l . skipFocusser ) ; q . skipFocusser = void 0 !== a ? a : c . skipFocusser } ) ; q . onSelectCallback = h ( l . onSelect ) ; q . onRemoveCallback = h ( l . onRemove ) ; q . ngModel = n ; q . choiceGrouped = function ( a ) { return q . isGrouped &&
a && a . name } ; l . tabindex && l . $observe ( "tabindex" , function ( a ) { q . focusInput . attr ( "tabindex" , a ) ; f . removeAttr ( "tabindex" ) } ) ; e . $watch ( "searchEnabled" , function ( ) { var a = e . $eval ( l . searchEnabled ) ; q . searchEnabled = void 0 !== a ? a : c . searchEnabled } ) ; e . $watch ( "sortable" , function ( ) { var a = e . $eval ( l . sortable ) ; q . sortable = void 0 !== a ? a : c . sortable } ) ; l . $observe ( "limit" , function ( ) { q . limit = angular . isDefined ( l . limit ) ? parseInt ( l . limit , 10 ) : void 0 } ) ; e . $watch ( "removeSelected" , function ( ) { var a = e . $eval ( l . removeSelected ) ; q . removeSelected =
void 0 !== a ? a : c . removeSelected } ) ; l . $observe ( "disabled" , function ( ) { q . disabled = void 0 !== l . disabled && l . disabled } ) ; l . $observe ( "resetSearchInput" , function ( ) { var a = e . $eval ( l . resetSearchInput ) ; q . resetSearchInput = void 0 === a || a } ) ; l . $observe ( "setSearchToAnswer" , function ( ) { var a = e . $eval ( l . setSearchToAnswer ) ; q . setSearchToAnswer = void 0 === a || a } ) ; l . $observe ( "searchBy" , function ( ) { q . searchBy = l . searchBy } ) ; l . $observe ( "paste" , function ( ) { q . paste = e . $eval ( l . paste ) } ) ; l . $observe ( "tagging" , function ( ) { if ( void 0 !== l . tagging ) { var a =
e . $eval ( l . tagging ) ; q . tagging = { isActivated : ! 0 , fct : ! 0 !== a ? a : void 0 } } else q . tagging = { isActivated : ! 1 , fct : void 0 } } ) ; l . $observe ( "taggingLabel" , function ( ) { void 0 !== l . tagging && ( "false" === l . taggingLabel ? q . taggingLabel = ! 1 : q . taggingLabel = void 0 !== l . taggingLabel ? l . taggingLabel : "(new)" ) } ) ; l . $observe ( "taggingTokens" , function ( ) { if ( void 0 !== l . tagging ) { var a = void 0 !== l . taggingTokens ? l . taggingTokens . split ( "|" ) : [ "," , "ENTER" ] ; q . taggingTokens = { isActivated : ! 0 , tokens : a } } } ) ; angular . isDefined ( l . autofocus ) && m ( function ( ) { q . setFocus ( ) } ) ;
angular . isDefined ( l . focusOn ) && e . $on ( l . focusOn , function ( ) { m ( function ( ) { q . setFocus ( ) } ) } ) ; a . on ( "click" , r ) ; e . $on ( "$destroy" , function ( ) { a . off ( "click" , r ) } ) ; t ( e , function ( a ) { a = angular . element ( "<div>" ) . append ( a ) ; var c = a . querySelectorAll ( ".ui-select-match" ) ; if ( c . removeAttr ( "ui-select-match" ) , c . removeAttr ( "data-ui-select-match" ) , 1 !== c . length ) throw b ( "transcluded" , "Expected 1 .ui-select-match but got '{0}'." , c . length ) ; f . querySelectorAll ( ".ui-select-match" ) . replaceWith ( c ) ; c = a . querySelectorAll ( ".ui-select-choices" ) ;
if ( c . removeAttr ( "ui-select-choices" ) , c . removeAttr ( "data-ui-select-choices" ) , 1 !== c . length ) throw b ( "transcluded" , "Expected 1 .ui-select-choices but got '{0}'." , c . length ) ; f . querySelectorAll ( ".ui-select-choices" ) . replaceWith ( c ) ; a = a . querySelectorAll ( ".ui-select-no-choice" ) ; a . removeAttr ( "ui-select-no-choice" ) ; a . removeAttr ( "data-ui-select-no-choice" ) ; 1 == a . length && f . querySelectorAll ( ".ui-select-no-choice" ) . replaceWith ( a ) } ) ; t = e . $eval ( l . appendToBody ) ; ( void 0 !== t ? t : c . appendToBody ) && ( e . $watch ( "$select.open" ,
function ( b ) { b ? ( b = g ( f ) , x = angular . element ( '<div class="ui-select-placeholder"></div>' ) , x [ 0 ] . style . width = b . width + "px" , x [ 0 ] . style . height = b . height + "px" , f . after ( x ) , A = f [ 0 ] . style . width , a . find ( "body" ) . append ( f ) , f [ 0 ] . style . position = "absolute" , f [ 0 ] . style . left = b . left + "px" , f [ 0 ] . style . top = b . top + "px" , f [ 0 ] . style . width = b . width + "px" ) : p ( ) } ) , e . $on ( "$destroy" , function ( ) { p ( ) } ) ) ; var x = null , A = "" , y = null ; e . $watch ( "$select.open" , function ( ) { "auto" !== q . dropdownPosition && "up" !== q . dropdownPosition || e . calculateDropdownPos ( ) } ) ; var C =
function ( a , b ) { a || g ( f ) ; b = b || g ( y ) ; y [ 0 ] . style . position = "absolute" ; y [ 0 ] . style . top = - 1 * b . height + "px" ; f . addClass ( "direction-up" ) } , E = function ( ) { m ( function ( ) { if ( "up" === q . dropdownPosition ) C ( ) ; else { f . removeClass ( "direction-up" ) ; var b = g ( f ) , c = g ( y ) ; b . top + b . height + c . height > ( a [ 0 ] . documentElement . scrollTop || a [ 0 ] . body . scrollTop ) + a [ 0 ] . documentElement . clientHeight ? C ( b , c ) : ( f . removeClass ( "direction-up" ) , b || g ( f ) , c || g ( y ) , y [ 0 ] . style . position = "" , y [ 0 ] . style . top = "" ) } y [ 0 ] . style . opacity = 1 } ) } ; e . calculateDropdownPos = function ( ) { if ( q . open ) { if ( y =
angular . element ( f ) . querySelectorAll ( ".ui-select-dropdown" ) , 0 !== y . length ) if ( y [ 0 ] . style . opacity = 0 , ! g ( y ) . height && q . $animate && q . $animate . on && q . $animate . enabled ( y ) ) { var a = ! 0 ; q . $animate . on ( "enter" , y , function ( b , c ) { "close" === c && a && ( E ( ) , a = ! 1 ) } ) } else E ( ) } else null !== y && 0 !== y . length && ( y [ 0 ] . style . opacity = 0 , y [ 0 ] . style . position = "" , y [ 0 ] . style . top = "" , f . removeClass ( "direction-up" ) ) } } } } } ] ) ; h . directive ( "uiSelectMatch" , [ "uiSelectConfig" , function ( a ) { function c ( a , c ) { return a [ 0 ] . hasAttribute ( c ) ? a . attr ( c ) : a [ 0 ] . hasAttribute ( "data-" +
c ) ? a . attr ( "data-" + c ) : a [ 0 ] . hasAttribute ( "x-" + c ) ? a . attr ( "x-" + c ) : void 0 } return { restrict : "EA" , require : "^uiSelect" , replace : ! 0 , transclude : ! 0 , templateUrl : function ( b ) { b . addClass ( "ui-select-match" ) ; var e = b . parent ( ) ; b = c ( e , "theme" ) || a . theme ; e = angular . isDefined ( c ( e , "multiple" ) ) ; return b + ( e ? "/match-multiple.tpl.html" : "/match.tpl.html" ) } , link : function ( b , c , e , h ) { function f ( a ) { h . allowClear = ! ! angular . isDefined ( a ) && ( "" === a || "true" === a . toLowerCase ( ) ) } h . lockChoiceExpression = e . uiLockChoice ; e . $observe ( "placeholder" , function ( b ) { h . placeholder =
void 0 !== b ? b : a . placeholder } ) ; e . $observe ( "allowClear" , f ) ; f ( e . allowClear ) ; h . multiple && h . sizeSearchInput ( ) } } } ] ) ; h . directive ( "uiSelectMultiple" , [ "uiSelectMinErr" , "$timeout" , function ( e , c ) { return { restrict : "EA" , require : [ "^uiSelect" , "^ngModel" ] , controller : [ "$scope" , "$timeout" , function ( a , c ) { var b , e = this , g = a . $select ; angular . isUndefined ( g . selected ) && ( g . selected = [ ] ) ; a . $evalAsync ( function ( ) { b = a . ngModel } ) ; e . activeMatchIndex = - 1 ; e . updateModel = function ( ) { b . $setViewValue ( Date . now ( ) ) ; e . refreshComponent ( ) } ; e . refreshComponent =
function ( ) { g . refreshItems ( ) ; g . sizeSearchInput ( ) } ; e . removeChoice = function ( b ) { var f = g . selected [ b ] ; if ( ! f . _uiSelectChoiceLocked ) { var h = { } ; h [ g . parserResult . itemName ] = f ; g . selected . splice ( b , 1 ) ; e . activeMatchIndex = - 1 ; g . sizeSearchInput ( ) ; c ( function ( ) { g . onRemoveCallback ( a , { $item : f , $model : g . parserResult . modelMapper ( a , h ) } ) } ) ; e . updateModel ( ) } } ; e . getPlaceholder = function ( ) { return g . selected && g . selected . length ? void 0 : g . placeholder } } ] , controllerAs : "$selectMultiple" , link : function ( b , g , f , h ) { function m ( a ) { return angular . isNumber ( a . selectionStart ) ?
a . selectionStart : a . value . length } function l ( b ) { function c ( ) { switch ( b ) { case a . LEFT : return ~ C . activeMatchIndex ? l : f ; case a . RIGHT : return ~ C . activeMatchIndex && g !== f ? h : ( r . activate ( ) , ! 1 ) ; case a . BACKSPACE : return ~ C . activeMatchIndex ? ( C . removeChoice ( g ) , l ) : f ; case a . DELETE : return ! ! ~ C . activeMatchIndex && ( C . removeChoice ( C . activeMatchIndex ) , g ) } } var e = m ( r . searchInput [ 0 ] ) , f = r . selected . length - 1 , g = C . activeMatchIndex , h = C . activeMatchIndex + 1 , l = C . activeMatchIndex - 1 , n = g ; return ! ( 0 < e || r . search . length && b == a . RIGHT ) && ( r . close ( ) , n =
c ( ) , r . selected . length && ! 1 !== n ? C . activeMatchIndex = Math . min ( f , Math . max ( 0 , n ) ) : C . activeMatchIndex = - 1 , ! 0 ) } function q ( a ) { return void 0 === a || void 0 === r . search ? ! 1 : 0 < a . filter ( function ( a ) { return void 0 !== r . search . toUpperCase ( ) && void 0 !== a && a . toUpperCase ( ) === r . search . toUpperCase ( ) } ) . length } function x ( a , b ) { var c = - 1 ; if ( angular . isArray ( a ) ) for ( var e = angular . copy ( a ) , f = 0 ; f < e . length ; f ++ ) if ( void 0 === r . tagging . fct ) e [ f ] + " " + r . taggingLabel === b && ( c = f ) ; else { var g = e [ f ] ; angular . isObject ( g ) && ( g . isTag = ! 0 ) ; angular . equals ( g , b ) &&
( c = f ) } return c } var r = h [ 0 ] , y = b . ngModel = h [ 1 ] , C = b . $selectMultiple ; r . multiple = ! 0 ; r . focusInput = r . searchInput ; y . $isEmpty = function ( a ) { return ! a || 0 === a . length } ; y . $parsers . unshift ( function ( ) { for ( var a , c = [ ] , e = r . selected . length - 1 ; 0 <= e ; e -- ) a = { } , a [ r . parserResult . itemName ] = r . selected [ e ] , a = r . parserResult . modelMapper ( b , a ) , c . unshift ( a ) ; return c } ) ; y . $formatters . unshift ( function ( a ) { var c , e = r . parserResult && r . parserResult . source ( b , { $select : { search : "" } } ) , f = { } ; if ( ! e ) return a ; var g = [ ] , h = function ( a , e ) { if ( a && a . length ) { for ( var h =
a . length - 1 ; 0 <= h ; h -- ) { if ( f [ r . parserResult . itemName ] = a [ h ] , c = r . parserResult . modelMapper ( b , f ) , r . parserResult . trackByExp ) { var m = /(\w*)\./ . exec ( r . parserResult . trackByExp ) , l = /\.([^\s]+)/ . exec ( r . parserResult . trackByExp ) ; if ( m && 0 < m . length && m [ 1 ] == r . parserResult . itemName && l && 0 < l . length && c [ l [ 1 ] ] == e [ l [ 1 ] ] ) return g . unshift ( a [ h ] ) , ! 0 } if ( angular . equals ( c , e ) ) return g . unshift ( a [ h ] ) , ! 0 } return ! 1 } } ; if ( ! a ) return g ; for ( var m = a . length - 1 ; 0 <= m ; m -- ) h ( r . selected , a [ m ] ) || h ( e , a [ m ] ) || g . unshift ( a [ m ] ) ; return g } ) ; b . $watchCollection ( function ( ) { return y . $modelValue } ,
function ( a , b ) { b != a && ( angular . isDefined ( y . $modelValue ) && ( y . $modelValue = null ) , C . refreshComponent ( ) ) } ) ; y . $render = function ( ) { if ( ! angular . isArray ( y . $viewValue ) ) { if ( ! angular . isUndefined ( y . $viewValue ) && null !== y . $viewValue ) throw e ( "multiarr" , "Expected model value to be array but got '{0}'" , y . $viewValue ) ; r . selected = [ ] } r . selected = y . $viewValue ; C . refreshComponent ( ) ; b . $evalAsync ( ) } ; b . $on ( "uis:select" , function ( a , b ) { r . selected . length >= r . limit || ( r . selected . push ( b ) , C . updateModel ( ) ) } ) ; b . $on ( "uis:activate" , function ( ) { C . activeMatchIndex =
- 1 } ) ; b . $watch ( "$select.disabled" , function ( a , b ) { b && ! a && r . sizeSearchInput ( ) } ) ; r . searchInput . on ( "keydown" , function ( c ) { var e = c . which ; b . $apply ( function ( ) { var b = ! 1 ; a . isHorizontalMovement ( e ) && ( b = l ( e ) ) ; b && e != a . TAB && ( c . preventDefault ( ) , c . stopPropagation ( ) ) } ) } ) ; r . searchInput . on ( "keyup" , function ( c ) { if ( ( a . isVerticalMovement ( c . which ) || b . $evalAsync ( function ( ) { r . activeIndex = ! 1 === r . taggingLabel ? - 1 : 0 } ) , r . tagging . isActivated && 0 < r . search . length ) && ! ( c . which === a . TAB || a . isControl ( c ) || a . isFunctionKey ( c ) || c . which === a . ESC ||
a . isVerticalMovement ( c . which ) || ( r . activeIndex = ! 1 === r . taggingLabel ? - 1 : 0 , ! 1 === r . taggingLabel ) ) ) { var e , f , g , h , m = angular . copy ( r . items ) ; c = angular . copy ( r . items ) ; var l = ! 1 , n = - 1 ; if ( void 0 !== r . tagging . fct ) { if ( g = r . $filter ( "filter" ) ( m , { isTag : ! 0 } ) , 0 < g . length && ( h = g [ 0 ] ) , 0 < m . length && h && ( l = ! 0 , m = m . slice ( 1 , m . length ) , c = c . slice ( 1 , c . length ) ) , e = r . tagging . fct ( r . search ) , c . some ( function ( a ) { return angular . equals ( a , e ) } ) || r . selected . some ( function ( a ) { return angular . equals ( a , e ) } ) ) return void b . $evalAsync ( function ( ) { r . activeIndex =
0 ; r . items = m } ) ; e && ( e . isTag = ! 0 ) } else { if ( g = r . $filter ( "filter" ) ( m , function ( a ) { return a . match ( r . taggingLabel ) } ) , 0 < g . length && ( h = g [ 0 ] ) , f = m [ 0 ] , void 0 !== f && 0 < m . length && h && ( l = ! 0 , m = m . slice ( 1 , m . length ) , c = c . slice ( 1 , c . length ) ) , e = r . search + " " + r . taggingLabel , - 1 < x ( r . selected , r . search ) ) return ; if ( q ( c . concat ( r . selected ) ) ) return void ( l && ( m = c , b . $evalAsync ( function ( ) { r . activeIndex = 0 ; r . items = m } ) ) ) ; if ( q ( c ) ) return void ( l && ( r . items = c . slice ( 1 , c . length ) ) ) } l && ( n = x ( r . selected , e ) ) ; - 1 < n ? m = m . slice ( n + 1 , m . length - 1 ) : ( m = [ ] , e && m . push ( e ) ,
m = m . concat ( c ) ) ; b . $evalAsync ( function ( ) { if ( r . activeIndex = 0 , r . items = m , r . isGrouped ) { var a = e ? m . slice ( 1 ) : m ; r . setItemsFn ( a ) ; e && ( r . items . unshift ( e ) , r . groups . unshift ( { name : "" , items : [ e ] , tagging : ! 0 } ) ) } } ) } } ) ; r . searchInput . on ( "blur" , function ( ) { c ( function ( ) { C . activeMatchIndex = - 1 } ) } ) } } } ] ) ; h . directive ( "uiSelectNoChoice" , [ "uiSelectConfig" , function ( a ) { return { restrict : "EA" , require : "^uiSelect" , replace : ! 0 , transclude : ! 0 , templateUrl : function ( c ) { c . addClass ( "ui-select-no-choice" ) ; return ( c . parent ( ) . attr ( "theme" ) || a . theme ) +
"/no-choice.tpl.html" } } } ] ) ; h . directive ( "uiSelectSingle" , [ "$timeout" , "$compile" , function ( e , c ) { return { restrict : "EA" , require : [ "^uiSelect" , "^ngModel" ] , link : function ( b , g , f , h ) { var m = h [ 0 ] , l = h [ 1 ] ; l . $parsers . unshift ( function ( a ) { var c = { } ; return c [ m . parserResult . itemName ] = a , m . parserResult . modelMapper ( b , c ) } ) ; l . $formatters . unshift ( function ( a ) { var c , e = m . parserResult && m . parserResult . source ( b , { $select : { search : "" } } ) , f = { } ; if ( e ) { var g = function ( e ) { return f [ m . parserResult . itemName ] = e , c = m . parserResult . modelMapper ( b , f ) ,
c === a } ; if ( m . selected && g ( m . selected ) ) return m . selected ; for ( var h = e . length - 1 ; 0 <= h ; h -- ) if ( g ( e [ h ] ) ) return e [ h ] } return a } ) ; b . $watch ( "$select.selected" , function ( a ) { l . $viewValue !== a && l . $setViewValue ( a ) } ) ; l . $render = function ( ) { m . selected = l . $viewValue } ; b . $on ( "uis:select" , function ( a , b ) { m . selected = b } ) ; b . $on ( "uis:close" , function ( a , b ) { e ( function ( ) { m . focusser . prop ( "disabled" , ! 1 ) ; b || m . focusser [ 0 ] . focus ( ) } , 0 , ! 1 ) } ) ; b . $on ( "uis:activate" , function ( ) { q . prop ( "disabled" , ! 0 ) } ) ; var q = angular . element ( "<input ng-disabled='$select.disabled' class='ui-select-focusser ui-select-offscreen' type='text' id='{{ $select.focusserId }}' aria-label='{{ $select.focusserTitle }}' aria-haspopup='true' role='button' />" ) ;
c ( q ) ( b ) ; m . focusser = q ; m . focusInput = q ; g . parent ( ) . append ( q ) ; q . bind ( "focus" , function ( ) { b . $evalAsync ( function ( ) { m . focus = ! 0 } ) } ) ; q . bind ( "blur" , function ( ) { b . $evalAsync ( function ( ) { m . focus = ! 1 } ) } ) ; q . bind ( "keydown" , function ( c ) { return c . which === a . BACKSPACE ? ( c . preventDefault ( ) , c . stopPropagation ( ) , m . select ( void 0 ) , void b . $apply ( ) ) : void ( c . which === a . TAB || a . isControl ( c ) || a . isFunctionKey ( c ) || c . which === a . ESC || ( c . which != a . DOWN && c . which != a . UP && c . which != a . ENTER && c . which != a . SPACE || ( c . preventDefault ( ) , c . stopPropagation ( ) ,
m . activate ( ) ) , b . $digest ( ) ) ) } ) ; q . bind ( "keyup input" , function ( c ) { c . which === a . TAB || a . isControl ( c ) || a . isFunctionKey ( c ) || c . which === a . ESC || c . which == a . ENTER || c . which === a . BACKSPACE || ( m . activate ( q . val ( ) ) , q . val ( "" ) , b . $digest ( ) ) } ) } } } ] ) ; h . directive ( "uiSelectSort" , [ "$timeout" , "uiSelectConfig" , "uiSelectMinErr" , function ( a , c , b ) { return { require : [ "^^uiSelect" , "^ngModel" ] , link : function ( c , e , h , m ) { if ( null === c [ h . uiSelectSort ] ) throw b ( "sort" , "Expected a list to sort" ) ; var f = m [ 0 ] , g = m [ 1 ] , l = angular . extend ( { axis : "horizontal" } ,
c . $eval ( h . uiSelectSortOptions ) ) . axis ; c . $watch ( function ( ) { return f . sortable } , function ( a ) { a ? e . attr ( "draggable" , ! 0 ) : e . removeAttr ( "draggable" ) } ) ; e . on ( "dragstart" , function ( a ) { e . addClass ( "dragging" ) ; ( a . dataTransfer || a . originalEvent . dataTransfer ) . setData ( "text" , c . $index . toString ( ) ) } ) ; e . on ( "dragend" , function ( ) { C ( "dragging" ) } ) ; var r , q = function ( a , b ) { this . splice ( b , 0 , this . splice ( a , 1 ) [ 0 ] ) } , C = function ( a ) { angular . forEach ( f . $element . querySelectorAll ( "." + a ) , function ( b ) { angular . element ( b ) . removeClass ( a ) } ) } , A = function ( a ) { a . preventDefault ( ) ;
( "vertical" === l ? a . offsetY || a . layerY || ( a . originalEvent ? a . originalEvent . offsetY : 0 ) : a . offsetX || a . layerX || ( a . originalEvent ? a . originalEvent . offsetX : 0 ) ) < this [ "vertical" === l ? "offsetHeight" : "offsetWidth" ] / 2 ? ( C ( "dropping-after" ) , e . addClass ( "dropping-before" ) ) : ( C ( "dropping-before" ) , e . addClass ( "dropping-after" ) ) } , E = function ( b ) { b . preventDefault ( ) ; var c = parseInt ( ( b . dataTransfer || b . originalEvent . dataTransfer ) . getData ( "text" ) , 10 ) ; a . cancel ( r ) ; r = a ( function ( ) { F ( c ) } , 20 ) } , F = function ( a ) { var b = c . $eval ( h . uiSelectSort ) ,
f = b [ a ] , m = null , m = e . hasClass ( "dropping-before" ) ? a < c . $index ? c . $index - 1 : c . $index : a < c . $index ? c . $index : c . $index + 1 ; q . apply ( b , [ a , m ] ) ; g . $setViewValue ( Date . now ( ) ) ; c . $apply ( function ( ) { c . $emit ( "uiSelectSort:change" , { array : b , item : f , from : a , to : m } ) } ) ; C ( "dropping" ) ; C ( "dropping-before" ) ; C ( "dropping-after" ) ; e . off ( "drop" , E ) } ; e . on ( "dragenter" , function ( ) { e . hasClass ( "dragging" ) || ( e . addClass ( "dropping" ) , e . on ( "dragover" , A ) , e . on ( "drop" , E ) ) } ) ; e . on ( "dragleave" , function ( a ) { a . target == e && ( C ( "dropping" ) , C ( "dropping-before" ) , C ( "dropping-after" ) ,
e . off ( "dragover" , A ) , e . off ( "drop" , E ) ) } ) } } } ] ) ; h . factory ( "$$uisDebounce" , [ "$timeout" , function ( a ) { return function ( c , b ) { var e ; return function ( ) { var f = this , g = Array . prototype . slice . call ( arguments ) ; e && a . cancel ( e ) ; e = a ( function ( ) { c . apply ( f , g ) } , b ) } } } ] ) ; h . service ( "uisRepeatParser" , [ "uiSelectMinErr" , "$parse" , function ( a , c ) { this . parse = function ( b ) { var e ; if ( e = b . match ( /^\s*(?:([\s\S]+?)\s+as\s+)?(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+(\s*[\s\S]+?)?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/ ) ,
! e ) throw a ( "iexp" , "Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'." , b ) ; b = e [ 5 ] ; var f = "" ; if ( e [ 3 ] ) { b = e [ 5 ] . replace ( /(^\()|(\)$)/g , "" ) ; var h = e [ 5 ] . match ( /^\s*(?:[\s\S]+?)(?:[^\|]|\|\|)+([\s\S]*)\s*$/ ) ; h && h [ 1 ] . trim ( ) && ( f = h [ 1 ] , b = b . replace ( f , "" ) ) } return { itemName : e [ 4 ] || e [ 2 ] , keyName : e [ 3 ] , source : c ( b ) , filters : f , trackByExp : e [ 6 ] , modelMapper : c ( e [ 1 ] || e [ 4 ] || e [ 2 ] ) , repeatExpression : function ( a ) { a = this . itemName + " in " + ( a ? "$group.items" : "$select.items" ) ; return this . trackByExp && ( a +=
" track by " + this . trackByExp ) , a } } } ; this . getGroupNgRepeatExpression = function ( ) { return "$group in $select.groups" } } ] ) } ( ) ;
angular . module ( "ui.select" ) . run ( [ "$templateCache" , function ( a ) { a . put ( "bootstrap/choices.tpl.html" , '<ul class="ui-select-choices ui-select-choices-content ui-select-dropdown dropdown-menu" role="listbox" ng-show="$select.open && $select.items.length > 0"><li class="ui-select-choices-group" id="ui-select-choices-{{ $select.generatedId }}"><div class="divider" ng-show="$select.isGrouped && $index > 0"></div><div ng-show="$select.isGrouped" class="ui-select-choices-group-label dropdown-header" ng-bind="$group.name"></div><div ng-attr-id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}" role="option"><a href="" class="ui-select-choices-row-inner"></a></div></li></ul>' ) ; a . put ( "bootstrap/match-multiple.tpl.html" ,
'<span class="ui-select-match"><span ng-repeat="$item in $select.selected"><span class="ui-select-match-item btn btn-default btn-xs" tabindex="-1" type="button" ng-disabled="$select.disabled" ng-click="$selectMultiple.activeMatchIndex = $index;" ng-class="{\'btn-primary\':$selectMultiple.activeMatchIndex === $index, \'select-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span class="close ui-select-match-close" ng-hide="$select.disabled" ng-click="$selectMultiple.removeChoice($index)"> ×</span> <span uis-transclude-append=""></span></span></span></span>' ) ;
a . put ( "bootstrap/match.tpl.html" , '<div class="ui-select-match" ng-hide="$select.open && $select.searchEnabled" ng-disabled="$select.disabled" ng-class="{\'btn-default-focus\':$select.focus}"><span tabindex="-1" class="btn btn-default form-control ui-select-toggle" aria-label="{{ $select.baseTitle }} activate" ng-disabled="$select.disabled" ng-click="$select.activate()" style="outline: 0;"><span ng-show="$select.isEmpty()" class="ui-select-placeholder text-muted">{{$select.placeholder}}</span> <span ng-hide="$select.isEmpty()" class="ui-select-match-text pull-left" ng-class="{\'ui-select-allow-clear\': $select.allowClear && !$select.isEmpty()}" ng-transclude=""></span> <i class="caret pull-right" ng-click="$select.toggle($event)"></i> <a ng-show="$select.allowClear && !$select.isEmpty() && ($select.disabled !== true)" aria-label="{{ $select.baseTitle }} clear" style="margin-right: 10px" ng-click="$select.clear($event)" class="btn btn-xs btn-link pull-right"><i class="glyphicon glyphicon-remove" aria-hidden="true"></i></a></span></div>' ) ;
a . put ( "bootstrap/no-choice.tpl.html" , '<ul class="ui-select-no-choice dropdown-menu" ng-show="$select.items.length == 0"><li ng-transclude=""></li></ul>' ) ; a . put ( "bootstrap/select-multiple.tpl.html" , '<div class="ui-select-container ui-select-multiple ui-select-bootstrap dropdown form-control" ng-class="{open: $select.open}"><div><div class="ui-select-match"></div><input type="search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="ui-select-search input-xs" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-click="$select.activate()" ng-model="$select.search" role="combobox" aria-label="{{ $select.baseTitle }}" ondrop="return false;"></div><div class="ui-select-choices"></div><div class="ui-select-no-choice"></div></div>' ) ;
a . put ( "bootstrap/select.tpl.html" , '<div class="ui-select-container ui-select-bootstrap dropdown" ng-class="{open: $select.open}"><div class="ui-select-match"></div><input type="search" autocomplete="off" tabindex="-1" aria-expanded="true" aria-label="{{ $select.baseTitle }}" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="form-control ui-select-search" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-show="$select.searchEnabled && $select.open"><div class="ui-select-choices"></div><div class="ui-select-no-choice"></div></div>' ) ;
a . put ( "select2/choices.tpl.html" , '<ul tabindex="-1" class="ui-select-choices ui-select-choices-content select2-results"><li class="ui-select-choices-group" ng-class="{\'select2-result-with-children\': $select.choiceGrouped($group) }"><div ng-show="$select.choiceGrouped($group)" class="ui-select-choices-group-label select2-result-label" ng-bind="$group.name"></div><ul role="listbox" id="ui-select-choices-{{ $select.generatedId }}" ng-class="{\'select2-result-sub\': $select.choiceGrouped($group), \'select2-result-single\': !$select.choiceGrouped($group) }"><li role="option" ng-attr-id="ui-select-choices-row-{{ $select.generatedId }}-{{$index}}" class="ui-select-choices-row" ng-class="{\'select2-highlighted\': $select.isActive(this), \'select2-disabled\': $select.isDisabled(this)}"><div class="select2-result-label ui-select-choices-row-inner"></div></li></ul></li></ul>' ) ;
a . put ( "select2/match-multiple.tpl.html" , '<span class="ui-select-match"><li class="ui-select-match-item select2-search-choice" ng-repeat="$item in $select.selected" ng-class="{\'select2-search-choice-focus\':$selectMultiple.activeMatchIndex === $index, \'select2-locked\':$select.isLocked(this, $index)}" ui-select-sort="$select.selected"><span uis-transclude-append=""></span> <a href="javascript:;" class="ui-select-match-close select2-search-choice-close" ng-click="$selectMultiple.removeChoice($index)" tabindex="-1"></a></li></span>' ) ;
a . put ( "select2/match.tpl.html" , '<a class="select2-choice ui-select-match" ng-class="{\'select2-default\': $select.isEmpty()}" ng-click="$select.toggle($event)" aria-label="{{ $select.baseTitle }} select"><span ng-show="$select.isEmpty()" class="select2-chosen">{{$select.placeholder}}</span> <span ng-hide="$select.isEmpty()" class="select2-chosen" ng-transclude=""></span> <abbr ng-if="$select.allowClear && !$select.isEmpty()" class="select2-search-choice-close" ng-click="$select.clear($event)"></abbr> <span class="select2-arrow ui-select-toggle"><b></b></span></a>' ) ;
a . put ( "select2/select-multiple.tpl.html" , '<div class="ui-select-container ui-select-multiple select2 select2-container select2-container-multi" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled}"><ul class="select2-choices"><span class="ui-select-match"></span><li class="select2-search-field"><input type="search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="select2-input ui-select-search" placeholder="{{$selectMultiple.getPlaceholder()}}" ng-disabled="$select.disabled" ng-hide="$select.disabled" ng-model="$select.search" ng-click="$select.activate()" style="width: 34px;" ondrop="return false;"></li></ul><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open || $select.items.length === 0}"><div class="ui-select-choices"></div></div></div>' ) ;
a . put ( "select2/select.tpl.html" , '<div class="ui-select-container select2 select2-container" ng-class="{\'select2-container-active select2-dropdown-open open\': $select.open, \'select2-container-disabled\': $select.disabled, \'select2-container-active\': $select.focus, \'select2-allowclear\': $select.allowClear && !$select.isEmpty()}"><div class="ui-select-match"></div><div class="ui-select-dropdown select2-drop select2-with-searchbox select2-drop-active" ng-class="{\'select2-display-none\': !$select.open}"><div class="select2-search" ng-show="$select.searchEnabled"><input type="search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="combobox" aria-expanded="true" aria-owns="ui-select-choices-{{ $select.generatedId }}" aria-label="{{ $select.baseTitle }}" aria-activedescendant="ui-select-choices-row-{{ $select.generatedId }}-{{ $select.activeIndex }}" class="ui-select-search select2-input" ng-model="$select.search"></div><div class="ui-select-choices"></div></div></div>' ) ;
a . put ( "selectize/choices.tpl.html" , '<div ng-show="$select.open" class="ui-select-choices ui-select-dropdown selectize-dropdown single"><div class="ui-select-choices-content selectize-dropdown-content"><div class="ui-select-choices-group optgroup" role="listbox"><div ng-show="$select.isGrouped" class="ui-select-choices-group-label optgroup-header" ng-bind="$group.name"></div><div role="option" class="ui-select-choices-row" ng-class="{active: $select.isActive(this), disabled: $select.isDisabled(this)}"><div class="option ui-select-choices-row-inner" data-selectable=""></div></div></div></div></div>' ) ;
a . put ( "selectize/match.tpl.html" , '<div ng-hide="$select.searchEnabled && ($select.open || $select.isEmpty())" class="ui-select-match" ng-transclude=""></div>' ) ; a . put ( "selectize/select.tpl.html" , '<div class="ui-select-container selectize-control single" ng-class="{\'open\': $select.open}"><div class="selectize-input" ng-class="{\'focus\': $select.open, \'disabled\': $select.disabled, \'selectize-focus\' : $select.focus}" ng-click="$select.open && !$select.searchEnabled ? $select.toggle($event) : $select.activate()" ng-focus"$select.open="" &&="" !$select.searchenabled="" ?="" $select.toggle($event)="" :="" $select.activate()"=""><div class="ui-select-match" ng-hide="$select.setSearchToAnswer"></div><input type="search" autocomplete="off" tabindex="-1" class="ui-select-search ui-select-toggle" ng-click="$select.toggle($event)" placeholder="{{$select.placeholder}}" ng-model="$select.search" ng-hide="(!$select.searchEnabled || ($select.selected && !$select.open)) && !$select.setSearchToAnswer" ng-disabled="$select.disabled" aria-label="{{ $select.baseTitle }}"></div><div class="ui-select-choices"></div></div>' ) } ] ) ;
! function ( a ) { function l ( e , c ) { return { restrict : "A" , scope : { isBusy : "=vBusy" , busyLabel : "@vBusyLabel" , busyText : "@vBusyText" } , compile : function ( b , e ) { var f = a . element ( b . find ( "span" ) ) ; return f [ 0 ] || ( b . html ( "<span>" + b . html ( ) + "</span>" ) , f = a . element ( b . find ( "span" ) ) ) , function ( a , b ) { var g = f . html ( ) , h = a . busyLabel || c . busyLabel , m = a . busyText ; a . $watch ( "isBusy" , function ( a ) { a ? ( b . addClass ( c . states . busy ) , f . html ( h ) ) : ( b . removeClass ( c . states . busy ) , f . html ( m || g ) ) } ) ; e . $observe ( "vBusyLabel" , function ( a ) { h = a } ) ; e . $observe ( "vBusyText" ,
function ( a ) { m = a } ) } } } } function h ( e , c ) { return { restrict : "A" , link : function ( b , g ) { function f ( ) { g . removeClass ( c . states . pressed ) ; t . unbind ( l , f ) } var h = "undefined" != typeof e [ 0 ] . documentElement . ontouchstart , m = h ? "touchstart" : "mousedown" , l = h ? "touchend" : "mouseup" , t = a . element ( e [ 0 ] . body ) ; g . bind ( m , function ( b ) { var h = b . pageX , m = b . pageY , n = g [ 0 ] . getBoundingClientRect ( ) ; b = g [ 0 ] . querySelector ( "v-ripple" ) ; a . element ( b ) . remove ( ) ; b = e [ 0 ] . createElement ( "v-ripple" ) ; b . style . height = b . style . width = Math . max ( n . width , n . height ) + "px" ; g . append ( b ) ;
h = h - n . left - b . offsetWidth / 2 - t [ 0 ] . scrollLeft ; m = m - n . top - b . offsetHeight / 2 - t [ 0 ] . scrollTop ; b . style . left = h + "px" ; b . style . top = m + "px" ; g . addClass ( c . states . pressed ) ; t . bind ( l , f ) } ) } } } a . module ( "vButton.config" , [ ] ) . constant ( "buttonConfig" , { busyLabel : "Loading" , states : { busy : "is-busy" , pressed : "is-pressed" } } ) ; a . module ( "vButton.directives" , [ ] ) ; a . module ( "vButton" , [ "vButton.config" , "vButton.directives" ] ) ; a . module ( "vButton.directives" ) . directive ( "vBusy" , l ) ; l . $inject = [ "$document" , "buttonConfig" ] ; a . module ( "vButton.directives" ) . directive ( "vPressable" ,
h ) ; h . $inject = [ "$document" , "buttonConfig" ] } ( angular ) ;
( function ( a , l , h ) { function e ( a , b ) { b = b || { } ; l . forEach ( b , function ( a , c ) { delete b [ c ] } ) ; for ( var c in a ) ! a . hasOwnProperty ( c ) || "$" === c . charAt ( 0 ) && "$" === c . charAt ( 1 ) || ( b [ c ] = a [ c ] ) ; return b } var c = l . $$minErr ( "$resource" ) , b = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/ ; l . module ( "ngResource" , [ "ng" ] ) . provider ( "$resource" , function ( ) { var a = /^https?:\/\/[^\/]*/ , f = this ; this . defaults = { stripTrailingSlashes : ! 0 , actions : { get : { method : "GET" } , save : { method : "POST" } , query : { method : "GET" , isArray : ! 0 } , remove : { method : "DELETE" } , "delete" : { method : "DELETE" } } } ;
this . $get = [ "$http" , "$log" , "$q" , function ( g , m , n ) { function q ( a , b ) { this . template = a ; this . defaults = C ( { } , f . defaults , b ) ; this . urlParams = { } } function x ( a , t , v , I ) { function p ( a , e ) { var f = { } ; return e = C ( { } , t , e ) , y ( e , function ( e , g ) { E ( e ) && ( e = e ( ) ) ; var m ; if ( e && e . charAt && "@" == e . charAt ( 0 ) ) { m = a ; var n = e . substr ( 1 ) ; if ( null == n || "" === n || "hasOwnProperty" === n || ! b . test ( "." + n ) ) throw c ( "badmember" , n ) ; for ( var n = n . split ( "." ) , r = 0 , q = n . length ; r < q && l . isDefined ( m ) ; r ++ ) { var t = n [ r ] ; m = null !== m ? m [ t ] : h } } else m = e ; f [ g ] = m } ) , f } function F ( a ) { return a . resource }
function K ( a ) { e ( a || { } , this ) } var O = new q ( a , I ) ; return v = C ( { } , f . defaults . actions , v ) , K . prototype . toJSON = function ( ) { var a = C ( { } , this ) ; return delete a . $promise , delete a . $resolved , a } , y ( v , function ( a , b ) { var f = /^(POST|PUT|PATCH)$/i . test ( a . method ) ; K [ b ] = function ( q , t , x , B ) { var v , H , T , J = { } ; switch ( arguments . length ) { case 4 : T = B , H = x ; case 3 : case 2 : if ( ! E ( t ) ) { J = q ; v = t ; H = x ; break } if ( E ( q ) ) { H = q ; T = t ; break } H = t ; T = x ; case 1 : E ( q ) ? H = q : f ? v = q : J = q ; break ; case 0 : break ; default : throw c ( "badargs" , arguments . length ) ; } var W = this instanceof K ,
ca = W ? v : a . isArray ? [ ] : new K ( v ) , I = { } , L = a . interceptor && a . interceptor . response || F , V = a . interceptor && a . interceptor . responseError || h ; return y ( a , function ( a , b ) { switch ( b ) { default : I [ b ] = A ( a ) ; break ; case "params" : case "isArray" : case "interceptor" : break ; case "timeout" : a && ! l . isNumber ( a ) && m . debug ( "ngResource:\n Only numeric values are allowed as `timeout`.\n Promises are not supported in $resource, because the same value would be used for multiple requests.\n If you need support for cancellable $resource actions, you should upgrade to version 1.5 or higher." ) } } ) ,
f && ( I . data = v ) , O . setUrlParams ( I , C ( { } , p ( v , a . params || { } ) , J ) , a . url ) , J = g ( I ) . then ( function ( f ) { var g = f . data , h = ca . $promise ; if ( g ) { if ( l . isArray ( g ) !== ! ! a . isArray ) throw c ( "badcfg" , b , a . isArray ? "array" : "object" , l . isArray ( g ) ? "array" : "object" , I . method , I . url ) ; a . isArray ? ( ca . length = 0 , y ( g , function ( a ) { "object" == typeof a ? ca . push ( new K ( a ) ) : ca . push ( a ) } ) ) : ( e ( g , ca ) , ca . $promise = h ) } return ca . $resolved = ! 0 , f . resource = ca , f } , function ( a ) { return ca . $resolved = ! 0 , ( T || r ) ( a ) , n . reject ( a ) } ) , J = J . then ( function ( a ) { var b = L ( a ) ; return ( H || r ) ( b ,
a . headers ) , b } , V ) , W ? J : ( ca . $promise = J , ca . $resolved = ! 1 , ca ) } ; K . prototype [ "$" + b ] = function ( a , c , e ) { return E ( a ) && ( e = c , c = a , a = { } ) , a = K [ b ] . call ( this , a , this , c , e ) , a . $promise || a } } ) , K . bind = function ( b ) { return x ( a , C ( { } , t , b ) , v ) } , K } var r = l . noop , y = l . forEach , C = l . extend , A = l . copy , E = l . isFunction ; return q . prototype = { setUrlParams : function ( b , e , f ) { var g , h , m = this , n = f || m . template , r = "" , q = m . urlParams = { } ; y ( n . split ( /\W/ ) , function ( a ) { if ( "hasOwnProperty" === a ) throw c ( "badname" ) ; ! /^\d+$/ . test ( a ) && a && ( new RegExp ( "(^|[^\\\\]):" + a + "(\\W|$)" ) ) . test ( n ) &&
( q [ a ] = ! 0 ) } ) ; n = n . replace ( /\\:/g , ":" ) ; n = n . replace ( a , function ( a ) { return r = a , "" } ) ; e = e || { } ; y ( m . urlParams , function ( a , b ) { g = e . hasOwnProperty ( b ) ? e [ b ] : m . defaults [ b ] ; l . isDefined ( g ) && null !== g ? ( h = encodeURIComponent ( g ) . replace ( /%40/gi , "@" ) . replace ( /%3A/gi , ":" ) . replace ( /%24/g , "$" ) . replace ( /%2C/gi , "," ) . replace ( /%20/g , "%20" ) . replace ( /%26/gi , "&" ) . replace ( /%3D/gi , "=" ) . replace ( /%2B/gi , "+" ) , n = n . replace ( new RegExp ( ":" + b + "(\\W|$)" , "g" ) , function ( a , b ) { return h + b } ) ) : n = n . replace ( new RegExp ( "(/?):" + b + "(\\W|$)" , "g" ) , function ( a ,
b , c ) { return "/" == c . charAt ( 0 ) ? c : b + c } ) } ) ; m . defaults . stripTrailingSlashes && ( n = n . replace ( /\/+$/ , "" ) || "/" ) ; n = n . replace ( /\/\.(?=\w+($|\?))/ , "." ) ; b . url = r + n . replace ( /\/\\\./ , "/." ) ; y ( e , function ( a , c ) { m . urlParams [ c ] || ( b . params = b . params || { } , b . params [ c ] = a ) } ) } } , x } ] } ) } ) ( window , window . angular ) ; "undefined" != typeof module && "undefined" != typeof exports && module . exports === exports && ( module . exports = "ui.router" ) ;
( function ( a , l , h ) { function e ( a , b ) { return Z ( new ( Z ( function ( ) { } , { prototype : a } ) ) , b ) } function c ( a ) { return ga ( arguments , function ( b ) { b !== a && ga ( b , function ( b , c ) { a . hasOwnProperty ( c ) || ( a [ c ] = b ) } ) } ) , a } function b ( a ) { if ( Object . keys ) return Object . keys ( a ) ; var b = [ ] ; return ga ( a , function ( a , c ) { b . push ( c ) } ) , b } function g ( a , b , c ) { if ( Array . prototype . indexOf ) return a . indexOf ( b , Number ( c ) || 0 ) ; var e = a . length >>> 0 ; c = Number ( c ) || 0 ; c = 0 > c ? Math . ceil ( c ) : Math . floor ( c ) ; for ( 0 > c && ( c += e ) ; e > c ; c ++ ) if ( c in a && a [ c ] === b ) return c ; return - 1 } function f ( a ,
c , e , f ) { var h , m = [ ] , l ; for ( l in e . path ) { if ( e . path [ l ] !== f . path [ l ] ) break ; m . push ( e . path [ l ] ) } e = { } ; f = [ ] ; for ( var n in m ) if ( m [ n ] && m [ n ] . params && ( h = b ( m [ n ] . params ) , h . length ) ) for ( var r in h ) 0 <= g ( f , h [ r ] ) || ( f . push ( h [ r ] ) , e [ h [ r ] ] = a [ h [ r ] ] ) ; return Z ( { } , e , c ) } function q ( a , b , c ) { if ( ! c ) { c = [ ] ; for ( var e in a ) c . push ( e ) } for ( e = 0 ; e < c . length ; e ++ ) { var f = c [ e ] ; if ( a [ f ] != b [ f ] ) return ! 1 } return ! 0 } function m ( a , b ) { var c = { } ; return ga ( a , function ( a ) { c [ a ] = b [ a ] } ) , c } function n ( a ) { var b = { } , c = Array . prototype . concat . apply ( Array . prototype , Array . prototype . slice . call ( arguments ,
1 ) ) ; return ga ( c , function ( c ) { c in a && ( b [ c ] = a [ c ] ) } ) , b } function t ( a ) { var b = { } , c = Array . prototype . concat . apply ( Array . prototype , Array . prototype . slice . call ( arguments , 1 ) ) , e ; for ( e in a ) - 1 == g ( c , e ) && ( b [ e ] = a [ e ] ) ; return b } function x ( a , b ) { var c = ka ( a ) , e = c ? [ ] : { } ; return ga ( a , function ( a , f ) { b ( a , f ) && ( e [ c ? e . length : f ] = a ) } ) , e } function r ( a , b ) { var c = ka ( a ) ? [ ] : { } ; return ga ( a , function ( a , e ) { c [ e ] = b ( a , e ) } ) , c } function y ( a , e ) { var f = { } , m = [ ] , l = Z ( a . when ( f ) , { $$promises : f , $$values : f } ) ; this . study = function ( n ) { function r ( a , b ) { if ( 2 !== v [ b ] ) { if ( x . push ( b ) ,
1 === v [ b ] ) throw x . splice ( 0 , g ( x , b ) ) , Error ( "Cyclic dependency: " + x . join ( " -> " ) ) ; if ( v [ b ] = 1 , da ( a ) ) B . push ( b , [ function ( ) { return e . get ( a ) } ] , m ) ; else { var c = e . annotate ( a ) ; ga ( c , function ( a ) { a !== b && n . hasOwnProperty ( a ) && r ( n [ a ] , a ) } ) ; B . push ( b , a , c ) } x . pop ( ) ; v [ b ] = 2 } } function q ( a ) { return Q ( a ) && a . then && a . $$promises } if ( ! Q ( n ) ) throw Error ( "'invocables' must be an object" ) ; var p = b ( n || { } ) , B = [ ] , x = [ ] , v = { } ; return ga ( n , r ) , n = x = v = null , function ( b , g , m ) { function n ( ) { -- C || ( E || c ( A , g . $$values ) , y . $$values = A , y . $$promises = y . $$promises ||
! 0 , delete y . $$inheritedValues , v . resolve ( A ) ) } function r ( a ) { y . $$failure = a ; v . reject ( a ) } function x ( c , f , g ) { function h ( a ) { q . reject ( a ) ; r ( a ) } function l ( ) { if ( ! U ( y . $$failure ) ) try { q . resolve ( e . invoke ( f , m , A ) ) , q . promise . then ( function ( a ) { A [ c ] = a ; n ( ) } , h ) } catch ( Ib ) { h ( Ib ) } } var q = a . defer ( ) , t = 0 ; ga ( g , function ( a ) { P . hasOwnProperty ( a ) && ! b . hasOwnProperty ( a ) && ( t ++ , P [ a ] . then ( function ( b ) { A [ a ] = b ; -- t || l ( ) } , h ) ) } ) ; t || l ( ) ; P [ c ] = q . promise } if ( q ( b ) && m === h && ( m = g , g = b , b = null ) , b ) { if ( ! Q ( b ) ) throw Error ( "'locals' must be an object" ) ; } else b =
f ; if ( g ) { if ( ! q ( g ) ) throw Error ( "'parent' must be a promise returned by $resolve.resolve()" ) ; } else g = l ; var v = a . defer ( ) , y = v . promise , P = y . $$promises = { } , A = Z ( { } , b ) , C = 1 + B . length / 3 , E = ! 1 ; if ( U ( g . $$failure ) ) return r ( g . $$failure ) , y ; g . $$inheritedValues && c ( A , t ( g . $$inheritedValues , p ) ) ; Z ( P , g . $$promises ) ; g . $$values ? ( E = c ( A , t ( g . $$values , p ) ) , y . $$inheritedValues = t ( g . $$values , p ) , n ( ) ) : ( g . $$inheritedValues && ( y . $$inheritedValues = t ( g . $$inheritedValues , p ) ) , g . then ( n , r ) ) ; for ( var F = 0 , H = B . length ; H > F ; F += 3 ) b . hasOwnProperty ( B [ F ] ) ? n ( ) :
x ( B [ F ] , B [ F + 1 ] , B [ F + 2 ] ) ; return y } } ; this . resolve = function ( a , b , c , e ) { return this . study ( a ) ( b , c , e ) } } function C ( a , b , c ) { this . fromConfig = function ( a , b , c ) { return U ( a . template ) ? this . fromString ( a . template , b ) : U ( a . templateUrl ) ? this . fromUrl ( a . templateUrl , b ) : U ( a . templateProvider ) ? this . fromProvider ( a . templateProvider , b , c ) : null } ; this . fromString = function ( a , b ) { return S ( a ) ? a ( b ) : a } ; this . fromUrl = function ( c , e ) { return S ( c ) && ( c = c ( e ) ) , null == c ? null : a . get ( c , { cache : b , headers : { Accept : "text/html" } } ) . then ( function ( a ) { return a . data } ) } ;
this . fromProvider = function ( a , b , e ) { return c . invoke ( a , null , e || { params : b } ) } } function A ( a , b , c ) { function f ( b , c , e , f ) { if ( v . push ( b ) , B [ b ] ) return B [ b ] ; if ( ! /^\w+([-.]+\w+)*(?:\[\])?$/ . test ( b ) ) throw Error ( "Invalid parameter name '" + b + "' in pattern '" + a + "'" ) ; if ( x [ b ] ) throw Error ( "Duplicate parameter name '" + b + "' in pattern '" + a + "'" ) ; return x [ b ] = new ja . Param ( b , c , e , f ) , x [ b ] } function g ( a , b , c , e ) { a = a . replace ( /[\\\[\]\^$*+?.()|{}]/g , "\\$&" ) ; if ( ! b ) return a ; switch ( c ) { case ! 1 : c = [ "(" , ")" + ( e ? "?" : "" ) ] ; break ; case ! 0 : a = a . replace ( /\/$/ ,
"" ) ; c = [ "(?:/(" , ")|/)?" ] ; break ; default : c = [ "(" + c + "|" , ")?" ] } return a + c [ 0 ] + b + c [ 1 ] } function m ( c , f ) { var g , m , l , n , r ; return g = c [ 2 ] || c [ 3 ] , r = b . params [ g ] , l = a . substring ( t , c . index ) , m = f ? c [ 4 ] : c [ 4 ] || ( "*" == c [ 1 ] ? ".*" : null ) , m && ( n = ja . type ( m ) || e ( ja . type ( "string" ) , { pattern : new RegExp ( m , b . caseInsensitive ? "i" : h ) } ) ) , { id : g , regexp : m , segment : l , type : n , cfg : r } } b = Z ( { params : { } } , Q ( b ) ? b : { } ) ; var l , n = /([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g , r = /([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g ,
q = "^" , t = 0 , p = this . segments = [ ] , B = c ? c . params : { } , x = this . params = c ? c . params . $$new ( ) : new ja . ParamSet , v = [ ] ; this . source = a ; for ( var y , P ; ( l = n . exec ( a ) ) && ( y = m ( l , ! 1 ) , ! ( 0 <= y . segment . indexOf ( "?" ) ) ) ; ) P = f ( y . id , y . type , y . cfg , "path" ) , q += g ( y . segment , P . type . pattern . source , P . squash , P . isOptional ) , p . push ( y . segment ) , t = n . lastIndex ; c = a . substring ( t ) ; l = c . indexOf ( "?" ) ; if ( 0 <= l ) { var A = this . sourceSearch = c . substring ( l ) ; if ( c = c . substring ( 0 , l ) , this . sourcePath = a . substring ( 0 , t + l ) , 0 < A . length ) for ( t = 0 ; l = r . exec ( A ) ; ) y = m ( l , ! 0 ) , P = f ( y . id , y . type ,
y . cfg , "search" ) , t = n . lastIndex } else this . sourcePath = a , this . sourceSearch = "" ; q += g ( c ) + ( ! 1 === b . strict ? "/?" : "" ) + "$" ; p . push ( c ) ; this . regexp = new RegExp ( q , b . caseInsensitive ? "i" : h ) ; this . prefix = p [ 0 ] ; this . $$paramNames = v } function E ( a ) { Z ( this , a ) } function F ( ) { function a ( a ) { return null != a ? a . toString ( ) . replace ( /~/g , "~~" ) . replace ( /\//g , "~2F" ) : a } function c ( a ) { return S ( a ) || ka ( a ) && S ( a [ a . length - 1 ] ) } function f ( ) { for ( ; y . length ; ) { var a = y . shift ( ) ; if ( a . pattern ) throw Error ( "You cannot override a type's .pattern at runtime." ) ;
l . extend ( B [ a . name ] , n . invoke ( a . def ) ) } } function m ( a ) { Z ( this , a || { } ) } ja = this ; var n , q = ! 1 , t = ! 0 , p = ! 1 , B = { } , v = ! 0 , y = [ ] , P = { string : { encode : a , decode : function ( a ) { return null != a ? a . toString ( ) . replace ( /~2F/g , "/" ) . replace ( /~~/g , "~" ) : a } , is : function ( a ) { return null == a || ! U ( a ) || "string" == typeof a } , pattern : /[^\/]*/ } , "int" : { encode : a , decode : function ( a ) { return parseInt ( a , 10 ) } , is : function ( a ) { return U ( a ) && this . decode ( a . toString ( ) ) === a } , pattern : /\d+/ } , bool : { encode : function ( a ) { return a ? 1 : 0 } , decode : function ( a ) { return 0 !== parseInt ( a ,
10 ) } , is : function ( a ) { return ! 0 === a || ! 1 === a } , pattern : /0|1/ } , date : { encode : function ( a ) { return this . is ( a ) ? [ a . getFullYear ( ) , ( "0" + ( a . getMonth ( ) + 1 ) ) . slice ( - 2 ) , ( "0" + a . getDate ( ) ) . slice ( - 2 ) ] . join ( "-" ) : h } , decode : function ( a ) { return this . is ( a ) ? a : ( a = this . capture . exec ( a ) ) ? new Date ( a [ 1 ] , a [ 2 ] - 1 , a [ 3 ] ) : h } , is : function ( a ) { return a instanceof Date && ! isNaN ( a . valueOf ( ) ) } , equals : function ( a , b ) { return this . is ( a ) && this . is ( b ) && a . toISOString ( ) === b . toISOString ( ) } , pattern : /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/ ,
capture : /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/ } , json : { encode : l . toJson , decode : l . fromJson , is : l . isObject , equals : l . equals , pattern : /[^\/]*/ } , any : { encode : l . identity , decode : l . identity , equals : l . equals , pattern : /.*/ } } ; F . $$getDefaultValue = function ( a ) { if ( ! c ( a . value ) ) return a . value ; if ( ! n ) throw Error ( "Injectable functions cannot be called at configuration time" ) ; return n . invoke ( a . value ) } ; this . caseInsensitive = function ( a ) { return U ( a ) && ( q = a ) , q } ; this . strictMode = function ( a ) { return U ( a ) && ( t = a ) , t } ; this . defaultSquashPolicy =
function ( a ) { if ( ! U ( a ) ) return p ; if ( ! 0 !== a && ! 1 !== a && ! da ( a ) ) throw Error ( "Invalid squash policy: " + a + ". Valid policies: false, true, arbitrary-string" ) ; return p = a , a } ; this . compile = function ( a , b ) { return new A ( a , Z ( { strict : t , caseInsensitive : q } , b ) ) } ; this . isMatcher = function ( a ) { if ( ! Q ( a ) ) return ! 1 ; var b = ! 0 ; return ga ( A . prototype , function ( c , e ) { S ( c ) && ( b = b && U ( a [ e ] ) && S ( a [ e ] ) ) } ) , b } ; this . type = function ( a , b , c ) { if ( ! U ( b ) ) return B [ a ] ; if ( B . hasOwnProperty ( a ) ) throw Error ( "A type named '" + a + "' has already been defined." ) ; return B [ a ] =
new E ( Z ( { name : a } , b ) ) , c && ( y . push ( { name : a , def : c } ) , v || f ( ) ) , this } ; ga ( P , function ( a , b ) { B [ b ] = new E ( Z ( { name : b } , a ) ) } ) ; B = e ( B , { } ) ; this . $get = [ "$injector" , function ( a ) { return n = a , v = ! 1 , f ( ) , ga ( P , function ( a , b ) { B [ b ] || ( B [ b ] = new E ( a ) ) } ) , this } ] ; this . Param = function ( a , e , f , m ) { function q ( ) { if ( ! n ) throw Error ( "Injectable functions cannot be called at configuration time" ) ; var a = n . invoke ( f . $$fn ) ; if ( null !== a && a !== h && ! t . type . is ( a ) ) throw Error ( "Default value (" + a + ") for parameter '" + t . id + "' is not an instance of Type (" + t . type . name +
")" ) ; return a } var t = this ; f = function ( a ) { var e = Q ( a ) ? b ( a ) : [ ] ; return - 1 === g ( e , "value" ) && - 1 === g ( e , "type" ) && - 1 === g ( e , "squash" ) && - 1 === g ( e , "array" ) && ( a = { value : a } ) , a . $$fn = c ( a . value ) ? a . value : function ( ) { return a . value } , a } ( f ) ; e = function ( b , c , e ) { if ( b . type && c ) throw Error ( "Param '" + a + "' has two type configurations." ) ; return c ? c : b . type ? l . isString ( b . type ) ? B [ b . type ] : b . type instanceof E ? b . type : new E ( b . type ) : "config" === e ? B . any : B . string } ( f , e , m ) ; var v = function ( ) { var b = { array : "search" === m && "auto" } , c = a . match ( /\[\]$/ ) ? { array : ! 0 } :
{ } ; return Z ( b , c , f ) . array } ( ) ; e = v ? e . $asArray ( v , "search" === m ) : e ; "string" !== e . name || v || "path" !== m || f . value !== h || ( f . value = "" ) ; var y = f . value !== h , P = function ( a , b ) { var c = a . squash ; if ( ! b || ! 1 === c ) return ! 1 ; if ( ! U ( c ) || null == c ) return p ; if ( ! 0 === c || da ( c ) ) return c ; throw Error ( "Invalid squash policy: '" + c + "'. Valid policies: false, true, or arbitrary string" ) ; } ( f , y ) , A = function ( a , b , c , e ) { var f , m ; b = [ { from : "" , to : c || b ? h : "" } , { from : null , to : c || b ? h : "" } ] ; return f = ka ( a . replace ) ? a . replace : [ ] , da ( e ) && f . push ( { from : e , to : h } ) , m = r ( f , function ( a ) { return a . from } ) ,
x ( b , function ( a ) { return - 1 === g ( m , a . from ) } ) . concat ( f ) } ( f , v , y , P ) ; Z ( this , { id : a , type : e , location : m , array : v , squash : P , replace : A , isOptional : y , value : function ( a ) { function b ( a ) { return function ( b ) { return b . from === a } } return a = function ( a ) { var c = r ( x ( t . replace , b ( a ) ) , function ( a ) { return a . to } ) ; return c . length ? c [ 0 ] : a } ( a ) , U ( a ) ? t . type . $normalize ( a ) : q ( ) } , dynamic : h , config : f , toString : function ( ) { return "{Param:" + a + " " + e + " squash: '" + P + "' optional: " + y + "}" } } ) } ; m . prototype = { $$new : function ( ) { return e ( this , Z ( new m , { $$parent : this } ) ) } ,
$$keys : function ( ) { for ( var a = [ ] , c = [ ] , e = this , f = b ( m . prototype ) ; e ; ) c . push ( e ) , e = e . $$parent ; return c . reverse ( ) , ga ( c , function ( c ) { ga ( b ( c ) , function ( b ) { - 1 === g ( a , b ) && - 1 === g ( f , b ) && a . push ( b ) } ) } ) , a } , $$values : function ( a ) { var b = { } , c = this ; return ga ( c . $$keys ( ) , function ( e ) { b [ e ] = c [ e ] . value ( a && a [ e ] ) } ) , b } , $$equals : function ( a , b ) { var c = ! 0 , e = this ; return ga ( e . $$keys ( ) , function ( f ) { e [ f ] . type . equals ( a && a [ f ] , b && b [ f ] ) || ( c = ! 1 ) } ) , c } , $$validates : function ( a ) { var b , c , e , f , g , m = this . $$keys ( ) ; for ( b = 0 ; b < m . length && ( c = this [ m [ b ] ] , e = a [ m [ b ] ] ,
e !== h && null !== e || ! c . isOptional ) ; b ++ ) if ( ( f = c . type . $normalize ( e ) , ! c . type . is ( f ) ) || ( g = c . type . encode ( f ) , l . isString ( g ) && ! c . type . pattern . exec ( g ) ) ) return ! 1 ; return ! 0 } , $$parent : h } ; this . ParamSet = m } function p ( a , b ) { function c ( a ) { a = /^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/ . exec ( a . source ) ; return null != a ? a [ 1 ] . replace ( /\\(.)/g , "$1" ) : "" } function e ( a , b ) { return a . replace ( /\$(\$|\d{1,2})/ , function ( a , c ) { return b [ "$" === c ? 0 : Number ( c ) ] } ) } function f ( a , b , c ) { if ( ! c ) return ! 1 ; a = a . invoke ( b , b , { $match : c } ) ; return ! U ( a ) || a } function g ( b ,
c , e , f , g ) { function t ( a ) { function c ( a ) { a = a ( e , b ) ; return ! ! a && ( da ( a ) && b . replace ( ) . url ( a ) , ! 0 ) } if ( ! a || ! a . defaultPrevented ) { B && b . url ( ) === B ; B = h ; var f = n . length ; for ( a = 0 ; f > a ; a ++ ) if ( c ( n [ a ] ) ) return ; r && c ( r ) } } function p ( ) { return m = m || c . $on ( "$locationChangeSuccess" , t ) } var B , x = f . baseHref ( ) , v = b . url ( ) ; return q || p ( ) , { sync : function ( ) { t ( ) } , listen : function ( ) { return p ( ) } , update : function ( a ) { return a ? void ( v = b . url ( ) ) : void ( b . url ( ) !== v && ( b . url ( v ) , b . replace ( ) ) ) } , push : function ( a , c , e ) { a = a . format ( c || { } ) ; null !== a && c && c [ "#" ] && ( a += "#" +
c [ "#" ] ) ; b . url ( a ) ; B = e && e . $$avoidResync ? b . url ( ) : h ; e && e . replace && b . replace ( ) } , href : function ( c , e , f ) { if ( ! c . validates ( e ) ) return null ; var h = a . html5Mode ( ) ; l . isObject ( h ) && ( h = h . enabled ) ; h = h && g . history ; c = c . format ( e ) ; f = f || { } ; h || null === c || ( c = "#" + a . hashPrefix ( ) + c ) ; null !== c && e && e [ "#" ] && ( c += "#" + e [ "#" ] ) ; e = c ; var m = f . absolute ; if ( c = "/" === x ? e : h ? x . slice ( 0 , - 1 ) + e : m ? x . slice ( 1 ) + e : e , ! f . absolute || ! c ) return c ; f = ! h && c ? "/" : "" ; h = b . port ( ) ; return h = 80 === h || 443 === h ? "" : ":" + h , [ b . protocol ( ) , "://" , b . host ( ) , h , f , c ] . join ( "" ) } } } var m , n = [ ] ,
r = null , q = ! 1 ; this . rule = function ( a ) { if ( ! S ( a ) ) throw Error ( "'rule' must be a function" ) ; return n . push ( a ) , this } ; this . otherwise = function ( a ) { if ( da ( a ) ) { var b = a ; a = function ( ) { return b } } else if ( ! S ( a ) ) throw Error ( "'rule' must be a function" ) ; return r = a , this } ; this . when = function ( a , g ) { var h , m = da ( g ) ; if ( da ( a ) && ( a = b . compile ( a ) ) , ! m && ! S ( g ) && ! ka ( g ) ) throw Error ( "invalid 'handler' in when()" ) ; var l = { matcher : function ( a , c ) { return m && ( h = b . compile ( c ) , c = [ "$match" , function ( a ) { return h . format ( a ) } ] ) , Z ( function ( b , e ) { return f ( b ,
c , a . exec ( e . path ( ) , e . search ( ) ) ) } , { prefix : da ( a . prefix ) ? a . prefix : "" } ) } , regex : function ( a , b ) { if ( a . global || a . sticky ) throw Error ( "when() RegExp must not be global or sticky" ) ; return m && ( h = b , b = [ "$match" , function ( a ) { return e ( h , a ) } ] ) , Z ( function ( c , e ) { return f ( c , b , a . exec ( e . path ( ) ) ) } , { prefix : c ( a ) } ) } } , n = { matcher : b . isMatcher ( a ) , regex : a instanceof RegExp } , r ; for ( r in n ) if ( n [ r ] ) return this . rule ( l [ r ] ( a , g ) ) ; throw Error ( "invalid 'what' in when()" ) ; } ; this . deferIntercept = function ( a ) { a === h && ( a = ! 0 ) ; q = a } ; this . $get = g ; g . $inject =
[ "$location" , "$rootScope" , "$injector" , "$browser" , "$sniffer" ] } function v ( a , c ) { function t ( a , b ) { if ( ! a ) return h ; var c = da ( a ) , e = c ? a : a . name , f = e ; if ( 0 === f . indexOf ( "." ) || 0 === f . indexOf ( "^" ) ) { if ( ! b ) throw Error ( "No reference point given for path '" + e + "'" ) ; b = t ( b ) ; for ( var f = e . split ( "." ) , g = 0 , m = f . length , l = b ; m > g ; g ++ ) if ( "" !== f [ g ] || 0 !== g ) { if ( "^" !== f [ g ] ) break ; if ( ! l . parent ) throw Error ( "Path '" + e + "' not valid for state '" + b . name + "'" ) ; l = l . parent } else l = b ; f = f . slice ( g ) . join ( "." ) ; e = l . name + ( l . name && f ? "." : "" ) + f } e = C [ e ] ; return ! e ||
! c && ( c || e !== a && e . self !== a ) ? h : e } function p ( a , b ) { E [ a ] || ( E [ a ] = [ ] ) ; E [ a ] . push ( b ) } function B ( a ) { for ( a = E [ a ] || [ ] ; a . length ; ) x ( a . shift ( ) ) } function x ( b ) { b = e ( b , { self : b , resolve : b . resolve || { } , toString : function ( ) { return this . name } } ) ; var c = b . name ; if ( ! da ( c ) || 0 <= c . indexOf ( "@" ) ) throw Error ( "State must have a valid name" ) ; if ( C . hasOwnProperty ( c ) ) throw Error ( "State '" + c + "' is already defined" ) ; var f = - 1 !== c . indexOf ( "." ) ? c . substring ( 0 , c . lastIndexOf ( "." ) ) : da ( b . parent ) ? b . parent : Q ( b . parent ) && da ( b . parent . name ) ? b . parent . name :
"" ; if ( f && ! C [ f ] ) return p ( f , b . self ) ; for ( var g in H ) S ( H [ g ] ) && ( b [ g ] = H [ g ] ( b , H . $delegates [ g ] ) ) ; return C [ c ] = b , ! b [ F ] && b . url && a . when ( b . url , [ "$match" , "$stateParams" , function ( a , c ) { A . $current . navigable == b && q ( a , c ) || A . transitionTo ( b , a , { inherit : ! 0 , location : ! 1 } ) } ] ) , B ( c ) , b } function v ( a , c , n , p , B , x , v , H , E ) { function K ( b , e , f , g ) { e = a . $broadcast ( "$stateNotFound" , b , e , f ) ; if ( e . defaultPrevented ) return v . update ( ) , W ; if ( ! e . retry ) return null ; if ( g . $retry ) return v . update ( ) , ca ; var h = A . transition = c . when ( e . retry ) ; return h . then ( function ( ) { return h !==
A . transition ? na : ( b . options . $retry = ! 0 , A . transitionTo ( b . to , b . toParams , b . options ) ) } , function ( ) { return W } ) , v . update ( ) , h } function T ( a , b , e , f , g , h ) { var r = e ? b : m ( a . params . $$keys ( ) , b ) ; g . resolve = B . resolve ( a . resolve , { $stateParams : r } , g . resolve , a ) ; b = [ g . resolve . then ( function ( a ) { g . globals = a } ) ] ; return f && b . push ( f ) , c . all ( b ) . then ( function ( ) { var b = [ ] ; return ga ( a . views , function ( c , e ) { var f = c . resolve && c . resolve !== a . resolve ? c . resolve : { } ; f . $template = [ function ( ) { return n . load ( e , { view : c , locals : g . globals , params : r , notify : h . notify } ) ||
"" } ] ; b . push ( B . resolve ( f , g . globals , g . resolve , a ) . then ( function ( b ) { if ( S ( c . controllerProvider ) || ka ( c . controllerProvider ) ) { var h = l . extend ( { } , f , g . globals ) ; b . $$controller = p . invoke ( c . controllerProvider , null , h ) } else b . $$controller = c . controller ; b . $$state = a ; b . $$controllerAs = c . controllerAs ; g [ e ] = b } ) ) } ) , c . all ( b ) . then ( function ( ) { return g . globals } ) } ) . then ( function ( a ) { return g } ) } var na = c . reject ( Error ( "transition superseded" ) ) , J = c . reject ( Error ( "transition prevented" ) ) , W = c . reject ( Error ( "transition aborted" ) ) , ca = c . reject ( Error ( "transition failed" ) ) ;
return P . locals = { resolve : null , globals : { $stateParams : { } } } , A = { params : { } , current : P . self , $current : P , transition : null } , A . reload = function ( a ) { return A . transitionTo ( A . current , x , { reload : a || ! 0 , inherit : ! 1 , notify : ! 0 } ) } , A . go = function ( a , b , c ) { return A . transitionTo ( a , b , Z ( { inherit : ! 0 , relative : A . $current } , c ) ) } , A . transitionTo = function ( b , g , h ) { g = g || { } ; h = Z ( { location : ! 0 , inherit : ! 1 , relative : null , notify : ! 0 , reload : ! 1 , $retry : ! 1 } , h || { } ) ; var l , n = A . $current , r = A . params , q = n . path , B = t ( b , h . relative ) , C = g [ "#" ] ; if ( ! U ( B ) ) { var H = { to : b , toParams : g ,
options : h } , E = K ( H , n . self , r , h ) ; if ( E ) return E ; if ( b = H . to , g = H . toParams , h = H . options , B = t ( b , h . relative ) , ! U ( B ) ) { if ( ! h . relative ) throw Error ( "No such state '" + b + "'" ) ; throw Error ( "Could not resolve '" + b + "' from state '" + h . relative + "'" ) ; } } if ( B [ F ] ) throw Error ( "Cannot transition to abstract state '" + b + "'" ) ; if ( h . inherit && ( g = f ( x , g || { } , A . $current , B ) ) , ! B . params . $$validates ( g ) ) return ca ; g = B . params . $$values ( g ) ; b = B ; var W = b . path , O = 0 , B = W [ O ] , H = P . locals , I = [ ] ; if ( h . reload ) { if ( da ( h . reload ) || Q ( h . reload ) ) { if ( Q ( h . reload ) && ! h . reload . name ) throw Error ( "Invalid reload state object" ) ;
E = ! 0 === h . reload ? q [ 0 ] : t ( h . reload ) ; if ( h . reload && ! E ) throw Error ( "No such reload state '" + ( da ( h . reload ) ? h . reload : h . reload . name ) + "'" ) ; for ( ; B && B === q [ O ] && B !== E ; ) H = I [ O ] = B . locals , O ++ , B = W [ O ] } } else for ( ; B && B === q [ O ] && B . ownParams . $$equals ( g , r ) ; ) H = I [ O ] = B . locals , O ++ , B = W [ O ] ; if ( y ( b , g , n , r , H , h ) ) return C && ( g [ "#" ] = C ) , A . params = g , va ( A . params , x ) , va ( m ( b . params . $$keys ( ) , x ) , b . locals . globals . $stateParams ) , h . location && b . navigable && b . navigable . url && ( v . push ( b . navigable . url , g , { $$avoidResync : ! 0 , replace : "replace" === h . location } ) , v . update ( ! 0 ) ) ,
A . transition = null , c . when ( A . current ) ; if ( g = m ( b . params . $$keys ( ) , g || { } ) , C && ( g [ "#" ] = C ) , h . notify && a . $broadcast ( "$stateChangeStart" , b . self , g , n . self , r , h ) . defaultPrevented ) return a . $broadcast ( "$stateChangeCancel" , b . self , g , n . self , r ) , null == A . transition && v . update ( ) , J ; C = c . when ( H ) ; for ( E = O ; E < W . length ; E ++ , B = W [ E ] ) H = I [ E ] = e ( H ) , C = T ( B , g , B === b , C , H , h ) ; var La = A . transition = C . then ( function ( ) { var c , e ; if ( A . transition !== La ) return na ; for ( c = q . length - 1 ; c >= O ; c -- ) e = q [ c ] , e . self . onExit && p . invoke ( e . self . onExit , e . self , e . locals . globals ) ,
e . locals = null ; for ( c = O ; c < W . length ; c ++ ) e = W [ c ] , e . locals = I [ c ] , e . self . onEnter && p . invoke ( e . self . onEnter , e . self , e . locals . globals ) ; return A . transition !== La ? na : ( A . $current = b , A . current = b . self , A . params = g , va ( A . params , x ) , A . transition = null , h . location && b . navigable && v . push ( b . navigable . url , b . navigable . locals . globals . $stateParams , { $$avoidResync : ! 0 , replace : "replace" === h . location } ) , h . notify && a . $broadcast ( "$stateChangeSuccess" , b . self , g , n . self , r ) , v . update ( ! 0 ) , A . current ) } , function ( e ) { return A . transition !== La ? na : ( A . transition =
null , l = a . $broadcast ( "$stateChangeError" , b . self , g , n . self , r , e ) , l . defaultPrevented || v . update ( ) , c . reject ( e ) ) } ) ; return La } , A . is = function ( a , b , c ) { c = Z ( { relative : A . $current } , c || { } ) ; a = t ( a , c . relative ) ; return U ( a ) ? A . $current === a && ( ! b || q ( a . params . $$values ( b ) , x ) ) : h } , A . includes = function ( a , c , e ) { if ( e = Z ( { relative : A . $current } , e || { } ) , da ( a ) && - 1 < a . indexOf ( "*" ) ) { a = a . split ( "." ) ; for ( var f = A . $current . name . split ( "." ) , m = 0 , l = a . length ; l > m ; m ++ ) "*" === a [ m ] && ( f [ m ] = "*" ) ; if ( "**" === a [ 0 ] && ( f = f . slice ( g ( f , a [ 1 ] ) ) , f . unshift ( "**" ) ) , "**" ===
a [ a . length - 1 ] && ( f . splice ( g ( f , a [ a . length - 2 ] ) + 1 , Number . MAX _VALUE ) , f . push ( "**" ) ) , a . length != f . length || f . join ( "" ) !== a . join ( "" ) ) return ! 1 ; a = A . $current . name } e = t ( a , e . relative ) ; return U ( e ) ? ! ! U ( A . $current . includes [ e . name ] ) && ( ! c || q ( e . params . $$values ( c ) , x , b ( c ) ) ) : h } , A . href = function ( a , b , c ) { c = Z ( { lossy : ! 0 , inherit : ! 0 , absolute : ! 1 , relative : A . $current } , c || { } ) ; a = t ( a , c . relative ) ; if ( ! U ( a ) ) return null ; c . inherit && ( b = f ( x , b || { } , A . $current , a ) ) ; var e = a && c . lossy ? a . navigable : a ; return e && e . url !== h && null !== e . url ? v . href ( e . url , m ( a . params . $$keys ( ) . concat ( "#" ) ,
b || { } ) , { absolute : c . absolute } ) : null } , A . get = function ( a , c ) { if ( 0 === arguments . length ) return r ( b ( C ) , function ( a ) { return C [ a ] . self } ) ; var e = t ( a , c || A . $current ) ; return e && e . self ? e . self : null } , A } function y ( a , b , c , e , f , g ) { function h ( a , b , c ) { var e = a . params . $$keys ( ) . filter ( function ( b ) { return "search" != a . params [ b ] . location } ) , e = n . apply ( { } , [ a . params ] . concat ( e ) ) ; return ( new ja . ParamSet ( e ) ) . $$equals ( b , c ) } return ! ( g . reload || a !== c || ! ( f === c . locals || ! 1 === a . self . reloadOnSearch && h ( c , e , b ) ) ) || void 0 } var P , A , C = { } , E = { } , F = "abstract" ,
H = { parent : function ( a ) { return U ( a . parent ) && a . parent ? t ( a . parent ) : ( a = /^(.+)\.[^.]+$/ . exec ( a . name ) ) ? t ( a [ 1 ] ) : P } , data : function ( a ) { return a . parent && a . parent . data && ( a . data = a . self . data = e ( a . parent . data , a . data ) ) , a . data } , url : function ( a ) { var b = a . url , e = { params : a . params || { } } ; if ( da ( b ) ) return "^" == b . charAt ( 0 ) ? c . compile ( b . substring ( 1 ) , e ) : ( a . parent . navigable || P ) . url . concat ( b , e ) ; if ( ! b || c . isMatcher ( b ) ) return b ; throw Error ( "Invalid url '" + b + "' in state '" + a + "'" ) ; } , navigable : function ( a ) { return a . url ? a : a . parent ? a . parent . navigable :
null } , ownParams : function ( a ) { var b = a . url && a . url . params || new ja . ParamSet ; return ga ( a . params || { } , function ( a , c ) { b [ c ] || ( b [ c ] = new ja . Param ( c , null , a , "config" ) ) } ) , b } , params : function ( a ) { var b = n ( a . ownParams , a . ownParams . $$keys ( ) ) ; return a . parent && a . parent . params ? Z ( a . parent . params . $$new ( ) , b ) : new ja . ParamSet } , views : function ( a ) { var b = { } ; return ga ( U ( a . views ) ? a . views : { "" : a } , function ( c , e ) { 0 > e . indexOf ( "@" ) && ( e += "@" + a . parent . name ) ; b [ e ] = c } ) , b } , path : function ( a ) { return a . parent ? a . parent . path . concat ( a ) : [ ] } , includes : function ( a ) { var b =
a . parent ? Z ( { } , a . parent . includes ) : { } ; return b [ a . name ] = ! 0 , b } , $delegates : { } } ; P = x ( { name : "" , url : "^" , views : null , "abstract" : ! 0 } ) ; P . navigable = null ; this . decorator = function ( a , b ) { return da ( a ) && ! U ( b ) ? H [ a ] : S ( b ) && da ( a ) ? ( H [ a ] && ! H . $delegates [ a ] && ( H . $delegates [ a ] = H [ a ] ) , H [ a ] = b , this ) : this } ; this . state = function ( a , b ) { return Q ( a ) ? b = a : b . name = a , x ( b ) , this } ; this . $get = v ; v . $inject = "$rootScope $q $view $injector $resolve $stateParams $urlRouter $location $urlMatcherFactory" . split ( " " ) } function I ( ) { function a ( a , b ) { return { load : function ( a ,
c ) { var e ; return c = Z ( { template : null , controller : null , view : null , locals : null , notify : ! 0 , async : ! 0 , params : { } } , c ) , c . view && ( e = b . fromConfig ( c . view , c . params , c . locals ) ) , e } } } this . $get = a ; a . $inject = [ "$rootScope" , "$templateFactory" ] } function H ( a , b , c , e ) { function f ( a , b ) { function c ( a ) { return 1 === Ga && 4 <= wa ? ! ! m . enabled ( a ) : 1 === Ga && 2 <= wa ? ! ! m . enabled ( ) : ! ! h } var e = { enter : function ( a , b , c ) { b . after ( a ) ; c ( ) } , leave : function ( a , b ) { a . remove ( ) ; b ( ) } } ; if ( a . noanimation ) return e ; if ( m ) return { enter : function ( a , b , f ) { c ( a ) ? 2 < l . version . minor ? m . enter ( a ,
null , b ) . then ( f ) : m . enter ( a , null , b , f ) : e . enter ( a , b , f ) } , leave : function ( a , b ) { c ( a ) ? 2 < l . version . minor ? m . leave ( a ) . then ( b ) : m . leave ( a , b ) : e . leave ( a , b ) } } ; if ( h ) { var f = h && h ( b , a ) ; return { enter : function ( a , b , c ) { f . enter ( a , null , b ) ; c ( ) } , leave : function ( a , b ) { f . leave ( a ) ; b ( ) } } } return e } var g = function ( ) { return b . has ? function ( a ) { return b . has ( a ) ? b . get ( a ) : null } : function ( a ) { try { return b . get ( a ) } catch ( Ta ) { return null } } } ( ) , h = g ( "$animator" ) , m = g ( "$animate" ) ; return { restrict : "ECA" , terminal : ! 0 , priority : 400 , transclude : "element" , compile : function ( b ,
g , h ) { return function ( b , g , m ) { function n ( ) { var a = q , b = B ; b && ( b . _willBeDestroyed = ! 0 ) ; t ? ( A . leave ( t , function ( ) { a && a . remove ( ) ; b && b . $destroy ( ) ; q = null } ) , q = t ) : ( a && a . remove ( ) , b && b . $destroy ( ) , q = null ) ; B = t = null } function r ( f ) { var r = K ( b , m , g , e ) , q = r && a . $current && a . $current . locals [ r ] ; ! f && q === p || b . _willBeDestroyed || ( f = b . $new ( ) , p = a . $current . locals [ r ] , f . $emit ( "$viewContentLoading" , r ) , t = h ( f , function ( a ) { A . enter ( a , g , function ( ) { B && B . $emit ( "$viewContentAnimationEnded" ) ; ( l . isDefined ( v ) && ! v || b . $eval ( v ) ) && c ( a ) } ) ; n ( ) } ) , B = f , B . $emit ( "$viewContentLoaded" ,
r ) , B . $eval ( x ) ) } var q , t , B , p , x = m . onload || "" , v = m . autoscroll , A = f ( m , b ) ; b . $on ( "$stateChangeSuccess" , function ( ) { r ( ! 1 ) } ) ; r ( ! 0 ) } } } } function J ( a , b , c , e ) { return { restrict : "ECA" , priority : - 400 , compile : function ( f ) { var g = f . html ( ) ; return function ( f , h , m ) { var l = c . $current ; m = K ( f , m , h , e ) ; if ( l = l && l . locals [ m ] ) { h . data ( "$uiView" , { name : m , state : l . $$state } ) ; h . html ( l . $template ? l . $template : g ) ; m = a ( h . contents ( ) ) ; if ( l . $$controller ) { l . $scope = f ; l . $element = h ; var n = b ( l . $$controller , l ) ; l . $$controllerAs && ( f [ l . $$controllerAs ] = n ) ; h . data ( "$ngControllerController" ,
n ) ; h . children ( ) . data ( "$ngControllerController" , n ) } m ( f ) } } } } } function K ( a , b , c , e ) { a = e ( b . uiView || b . name || "" ) ( a ) ; c = c . inheritedData ( "$uiView" ) ; return 0 <= a . indexOf ( "@" ) ? a : a + "@" + ( c ? c . state . name : "" ) } function O ( a , b ) { var c , e = a . match ( /^\s*({[^}]*})\s*$/ ) ; if ( e && ( a = b + "(" + e [ 1 ] + ")" ) , c = a . replace ( /\n/g , " " ) . match ( /^([^(]+?)\s*(\((.*)\))?$/ ) , ! c || 4 !== c . length ) throw Error ( "Invalid state ref '" + a + "'" ) ; return { state : c [ 1 ] , paramExpr : c [ 3 ] || null } } function V ( a ) { return ( a = a . parent ( ) . inheritedData ( "$uiView" ) ) && a . state && a . state . name ?
a . state : void 0 } function X ( a ) { var b = "[object SVGAnimatedString]" === Object . prototype . toString . call ( a . prop ( "href" ) ) , c = "FORM" === a [ 0 ] . nodeName ; return { attr : c ? "action" : b ? "xlink:href" : "href" , isAnchor : "A" === a . prop ( "tagName" ) . toUpperCase ( ) , clickable : ! c } } function L ( a , b , c , e , f ) { return function ( g ) { var h = g . which || g . button , m = f ( ) ; if ( ! ( 1 < h || g . ctrlKey || g . metaKey || g . shiftKey || a . attr ( "target" ) ) ) { var l = c ( function ( ) { b . go ( m . state , m . params , m . options ) } ) ; g . preventDefault ( ) ; var n = e . isAnchor && ! m . href ? 1 : 0 ; g . preventDefault = function ( ) { 0 >=
n -- && c . cancel ( l ) } } } } function T ( a , b ) { return { relative : V ( a ) || b . $current , inherit : ! 0 } } function W ( a , b ) { return { restrict : "A" , require : [ "?^uiSrefActive" , "?^uiSrefActiveEq" ] , link : function ( c , e , f , g ) { var h = O ( f . uiSref , a . current . name ) , m = { state : h . state , href : null , params : null } , n = X ( e ) , r = g [ 1 ] || g [ 0 ] ; m . options = Z ( T ( e , a ) , f . uiSrefOpts ? c . $eval ( f . uiSrefOpts ) : { } ) ; var q = function ( b ) { b && ( m . params = l . copy ( b ) ) ; m . href = a . href ( h . state , m . params , m . options ) ; r && r . $$addStateInfo ( h . state , m . params ) ; null !== m . href && f . $set ( n . attr , m . href ) } ; h . paramExpr &&
( c . $watch ( h . paramExpr , function ( a ) { a !== m . params && q ( a ) } , ! 0 ) , m . params = l . copy ( c . $eval ( h . paramExpr ) ) ) ; q ( ) ; n . clickable && e . bind ( "click" , L ( e , a , b , n , function ( ) { return m } ) ) } } } function ca ( a , b ) { return { restrict : "A" , require : [ "?^uiSrefActive" , "?^uiSrefActiveEq" ] , link : function ( c , e , f , g ) { function h ( b ) { n . state = b [ 0 ] ; n . params = b [ 1 ] ; n . options = b [ 2 ] ; n . href = a . href ( n . state , n . params , n . options ) ; l && l . $$addStateInfo ( n . state , n . params ) ; n . href && f . $set ( m . attr , n . href ) } var m = X ( e ) , l = g [ 1 ] || g [ 0 ] ; g = "[" + [ f . uiState , f . uiStateParams || null , f . uiStateOpts ||
null ] . map ( function ( a ) { return a || "null" } ) . join ( ", " ) + "]" ; var n = { state : null , params : null , options : null , href : null } ; c . $watch ( g , h , ! 0 ) ; h ( c . $eval ( g ) ) ; m . clickable && e . bind ( "click" , L ( e , a , b , m , function ( ) { return n } ) ) } } } function B ( a , b , c ) { return { restrict : "A" , controller : [ "$scope" , "$element" , "$attrs" , "$timeout" , function ( b , e , f , g ) { function h ( c , f , g ) { var h = a . get ( c , V ( e ) ) , m , l = f ; if ( ! da ( c ) ) throw Error ( "state should be a string" ) ; m = Q ( l ) ? c + sa ( l ) : ( l = b . $eval ( l ) , Q ( l ) ? c + sa ( l ) : c ) ; q . push ( { state : h || { name : c } , params : f , hash : m } ) ; t [ m ] = g }
function m ( ) { for ( var b = 0 ; b < q . length ; b ++ ) a . includes ( q [ b ] . state . name , q [ b ] . params ) ? l ( e , t [ q [ b ] . hash ] ) : e . removeClass ( t [ q [ b ] . hash ] ) , a . is ( q [ b ] . state . name , q [ b ] . params ) ? l ( e , n ) : e . removeClass ( n ) } function l ( a , b ) { g ( function ( ) { a . addClass ( b ) } ) } var n , r , q = [ ] , t = { } ; n = c ( f . uiSrefActiveEq || "" , ! 1 ) ( b ) ; try { r = b . $eval ( f . uiSrefActive ) } catch ( Fa ) { } r = r || c ( f . uiSrefActive || "" , ! 1 ) ( b ) ; Q ( r ) && ga ( r , function ( c , e ) { if ( da ( c ) ) { var f = O ( c , a . current . name ) ; h ( f . state , b . $eval ( f . paramExpr ) , e ) } } ) ; this . $$addStateInfo = function ( a , b ) { Q ( r ) && 0 < q . length ||
( h ( a , b , r ) , m ( ) ) } ; b . $on ( "$stateChangeSuccess" , m ) ; m ( ) } ] } } function P ( a ) { var b = function ( b , c ) { return a . is ( b , c ) } ; return b . $stateful = ! 0 , b } function na ( a ) { var b = function ( b , c , e ) { return a . includes ( b , c , e ) } ; return b . $stateful = ! 0 , b } var U = l . isDefined , S = l . isFunction , da = l . isString , Q = l . isObject , ka = l . isArray , ga = l . forEach , Z = l . extend , va = l . copy , sa = l . toJson ; l . module ( "ui.router.util" , [ "ng" ] ) ; l . module ( "ui.router.router" , [ "ui.router.util" ] ) ; l . module ( "ui.router.state" , [ "ui.router.router" , "ui.router.util" ] ) ; l . module ( "ui.router" ,
[ "ui.router.state" ] ) ; l . module ( "ui.router.compat" , [ "ui.router" ] ) ; y . $inject = [ "$q" , "$injector" ] ; l . module ( "ui.router.util" ) . service ( "$resolve" , y ) ; C . $inject = [ "$http" , "$templateCache" , "$injector" ] ; l . module ( "ui.router.util" ) . service ( "$templateFactory" , C ) ; var ja ; A . prototype . concat = function ( a , b ) { var c = { caseInsensitive : ja . caseInsensitive ( ) , strict : ja . strictMode ( ) , squash : ja . defaultSquashPolicy ( ) } ; return new A ( this . sourcePath + a + this . sourceSearch , Z ( c , b ) , this ) } ; A . prototype . toString = function ( ) { return this . source } ;
A . prototype . exec = function ( a , b ) { function c ( a ) { function b ( a ) { return a . split ( "" ) . reverse ( ) . join ( "" ) } a = b ( a ) . split ( /-(?!\\)/ ) ; a = r ( a , b ) ; return r ( a , function ( a ) { return a . replace ( /\\-/g , "-" ) } ) . reverse ( ) } var e = this . regexp . exec ( a ) ; if ( ! e ) return null ; b = b || { } ; var f , g , h , m = this . parameters ( ) , l = m . length , n = this . segments . length - 1 , q = { } ; if ( n !== e . length - 1 ) throw Error ( "Unbalanced capture group in route '" + this . source + "'" ) ; var t , B ; for ( f = 0 ; n > f ; f ++ ) { h = m [ f ] ; t = this . params [ h ] ; B = e [ f + 1 ] ; for ( g = 0 ; g < t . replace . length ; g ++ ) t . replace [ g ] . from ===
B && ( B = t . replace [ g ] . to ) ; B && ! 0 === t . array && ( B = c ( B ) ) ; U ( B ) && ( B = t . type . decode ( B ) ) ; q [ h ] = t . value ( B ) } for ( ; l > f ; f ++ ) { h = m [ f ] ; q [ h ] = this . params [ h ] . value ( b [ h ] ) ; t = this . params [ h ] ; B = b [ h ] ; for ( g = 0 ; g < t . replace . length ; g ++ ) t . replace [ g ] . from === B && ( B = t . replace [ g ] . to ) ; U ( B ) && ( B = t . type . decode ( B ) ) ; q [ h ] = t . value ( B ) } return q } ; A . prototype . parameters = function ( a ) { return U ( a ) ? this . params [ a ] || null : this . $$paramNames } ; A . prototype . validates = function ( a ) { return this . params . $$validates ( a ) } ; A . prototype . format = function ( a ) { function b ( a ) { return encodeURIComponent ( a ) . replace ( /-/g ,
function ( a ) { return "%5C%" + a . charCodeAt ( 0 ) . toString ( 16 ) . toUpperCase ( ) } ) } a = a || { } ; var c = this . segments , e = this . parameters ( ) , f = this . params ; if ( ! this . validates ( a ) ) return null ; var g , h = ! 1 , m = c . length - 1 , l = e . length , n = c [ 0 ] ; for ( g = 0 ; l > g ; g ++ ) { var q = m > g , t = e [ g ] , B = f [ t ] , p = B . value ( a [ t ] ) , x = B . isOptional && B . type . equals ( B . value ( ) , p ) , v = ! ! x && B . squash , p = B . type . encode ( p ) ; q ? ( q = c [ g + 1 ] , t = g + 1 === m , ! 1 === v ? ( null != p && ( n += ka ( p ) ? r ( p , b ) . join ( "-" ) : encodeURIComponent ( p ) ) , n += q ) : ! 0 === v ? ( v = n . match ( /\/$/ ) ? /\/?(.*)/ : /(.*)/ , n += q . match ( v ) [ 1 ] ) : da ( v ) &&
( n += v + q ) , t && ! 0 === B . squash && "/" === n . slice ( - 1 ) && ( n = n . slice ( 0 , - 1 ) ) ) : null == p || x && ! 1 !== v || ( ka ( p ) || ( p = [ p ] ) , 0 === p . length ) || ( p = r ( p , encodeURIComponent ) . join ( "&" + t + "=" ) , n += ( h ? "&" : "?" ) + ( t + "=" + p ) , h = ! 0 ) } return n } ; E . prototype . is = function ( a , b ) { return ! 0 } ; E . prototype . encode = function ( a , b ) { return a } ; E . prototype . decode = function ( a , b ) { return a } ; E . prototype . equals = function ( a , b ) { return a == b } ; E . prototype . $subPattern = function ( ) { var a = this . pattern . toString ( ) ; return a . substr ( 1 , a . length - 2 ) } ; E . prototype . pattern = /.*/ ; E . prototype . toString =
function ( ) { return "{Type:" + this . name + "}" } ; E . prototype . $normalize = function ( a ) { return this . is ( a ) ? a : this . decode ( a ) } ; E . prototype . $asArray = function ( a , b ) { if ( ! a ) return this ; if ( "auto" === a && ! b ) throw Error ( "'auto' array mode is for query parameters only" ) ; return new function ( a , b ) { function c ( a , b ) { return function ( ) { return a [ b ] . apply ( a , arguments ) } } function e ( a ) { return ka ( a ) ? a : U ( a ) ? [ a ] : [ ] } function f ( a ) { return ! a } function g ( a , c ) { return function ( g ) { if ( ka ( g ) && 0 === g . length ) return g ; g = e ( g ) ; g = r ( g , a ) ; if ( ! 0 === c ) g = 0 === x ( g ,
f ) . length ; else a : switch ( g . length ) { case 0 : g = h ; break a ; case 1 : g = "auto" === b ? g [ 0 ] : g } return g } } this . encode = g ( c ( a , "encode" ) ) ; this . decode = g ( c ( a , "decode" ) ) ; this . is = g ( c ( a , "is" ) , ! 0 ) ; this . equals = function ( a ) { return function ( b , c ) { var f = e ( b ) , g = e ( c ) ; if ( f . length !== g . length ) return ! 1 ; for ( var h = 0 ; h < f . length ; h ++ ) if ( ! a ( f [ h ] , g [ h ] ) ) return ! 1 ; return ! 0 } } ( c ( a , "equals" ) ) ; this . pattern = a . pattern ; this . $normalize = g ( c ( a , "$normalize" ) ) ; this . name = a . name ; this . $arrayMode = b } ( this , a ) } ; l . module ( "ui.router.util" ) . provider ( "$urlMatcherFactory" ,
F ) ; l . module ( "ui.router.util" ) . run ( [ "$urlMatcherFactory" , function ( a ) { } ] ) ; p . $inject = [ "$locationProvider" , "$urlMatcherFactoryProvider" ] ; l . module ( "ui.router.router" ) . provider ( "$urlRouter" , p ) ; v . $inject = [ "$urlRouterProvider" , "$urlMatcherFactoryProvider" ] ; l . module ( "ui.router.state" ) . factory ( "$stateParams" , function ( ) { return { } } ) . provider ( "$state" , v ) ; I . $inject = [ ] ; l . module ( "ui.router.state" ) . provider ( "$view" , I ) ; l . module ( "ui.router.state" ) . provider ( "$uiViewScroll" , function ( ) { var a = ! 1 ; this . useAnchorScroll = function ( ) { a =
! 0 } ; this . $get = [ "$anchorScroll" , "$timeout" , function ( b , c ) { return a ? b : function ( a ) { return c ( function ( ) { a [ 0 ] . scrollIntoView ( ) } , 0 , ! 1 ) } } ] } ) ; var Ga = l . version . major , wa = l . version . minor ; H . $inject = [ "$state" , "$injector" , "$uiViewScroll" , "$interpolate" ] ; J . $inject = [ "$compile" , "$controller" , "$state" , "$interpolate" ] ; l . module ( "ui.router.state" ) . directive ( "uiView" , H ) ; l . module ( "ui.router.state" ) . directive ( "uiView" , J ) ; W . $inject = [ "$state" , "$timeout" ] ; ca . $inject = [ "$state" , "$timeout" ] ; B . $inject = [ "$state" , "$stateParams" , "$interpolate" ] ;
l . module ( "ui.router.state" ) . directive ( "uiSref" , W ) . directive ( "uiSrefActive" , B ) . directive ( "uiSrefActiveEq" , B ) . directive ( "uiState" , ca ) ; P . $inject = [ "$state" ] ; na . $inject = [ "$state" ] ; l . module ( "ui.router.state" ) . filter ( "isState" , P ) . filter ( "includedByState" , na ) } ) ( window , window . angular ) ; angular . module ( "ui.bootstrap" , "ui.bootstrap.tpls ui.bootstrap.collapse ui.bootstrap.accordion ui.bootstrap.alert ui.bootstrap.buttons ui.bootstrap.carousel ui.bootstrap.dateparser ui.bootstrap.position ui.bootstrap.datepicker ui.bootstrap.dropdown ui.bootstrap.stackedMap ui.bootstrap.modal ui.bootstrap.pagination ui.bootstrap.tooltip ui.bootstrap.popover ui.bootstrap.progressbar ui.bootstrap.rating ui.bootstrap.tabs ui.bootstrap.timepicker ui.bootstrap.typeahead" . split ( " " ) ) ;
angular . module ( "ui.bootstrap.tpls" , "template/accordion/accordion-group.html template/accordion/accordion.html template/alert/alert.html template/carousel/carousel.html template/carousel/slide.html template/datepicker/datepicker.html template/datepicker/day.html template/datepicker/month.html template/datepicker/popup.html template/datepicker/year.html template/modal/backdrop.html template/modal/window.html template/pagination/pager.html template/pagination/pagination.html template/tooltip/tooltip-html-popup.html template/tooltip/tooltip-popup.html template/tooltip/tooltip-template-popup.html template/popover/popover-html.html template/popover/popover-template.html template/popover/popover.html template/progressbar/bar.html template/progressbar/progress.html template/progressbar/progressbar.html template/rating/rating.html template/tabs/tab.html template/tabs/tabset.html template/timepicker/timepicker.html template/typeahead/typeahead-match.html template/typeahead/typeahead-popup.html" . split ( " " ) ) ;
angular . module ( "ui.bootstrap.collapse" , [ ] ) . directive ( "uibCollapse" , [ "$animate" , "$injector" , function ( a , l ) { var h = l . has ( "$animateCss" ) ? l . get ( "$animateCss" ) : null ; return { link : function ( e , c , b ) { function g ( ) { c . removeClass ( "collapsing" ) . addClass ( "collapse" ) . css ( { height : "auto" } ) } function f ( ) { c . css ( { height : "0" } ) ; c . removeClass ( "collapsing" ) . addClass ( "collapse" ) } e . $watch ( b . uibCollapse , function ( b ) { b ? c . hasClass ( "collapse" ) || c . hasClass ( "in" ) ? ( c . css ( { height : c [ 0 ] . scrollHeight + "px" } ) . removeClass ( "collapse" ) . addClass ( "collapsing" ) . attr ( "aria-expanded" ,
! 1 ) . attr ( "aria-hidden" , ! 0 ) , h ? h ( c , { removeClass : "in" , to : { height : "0" } } ) . start ( ) [ "finally" ] ( f ) : a . removeClass ( c , "in" , { to : { height : "0" } } ) . then ( f ) ) : f ( ) : ( c . removeClass ( "collapse" ) . addClass ( "collapsing" ) . attr ( "aria-expanded" , ! 0 ) . attr ( "aria-hidden" , ! 1 ) , h ? h ( c , { addClass : "in" , easing : "ease" , to : { height : c [ 0 ] . scrollHeight + "px" } } ) . start ( ) [ "finally" ] ( g ) : a . addClass ( c , "in" , { to : { height : c [ 0 ] . scrollHeight + "px" } } ) . then ( g ) ) } ) } } } ] ) ;
angular . module ( "ui.bootstrap.collapse" ) . value ( "$collapseSuppressWarning" , ! 1 ) . directive ( "collapse" , [ "$animate" , "$injector" , "$log" , "$collapseSuppressWarning" , function ( a , l , h , e ) { var c = l . has ( "$animateCss" ) ? l . get ( "$animateCss" ) : null ; return { link : function ( b , g , f ) { function l ( ) { g . removeClass ( "collapsing" ) . addClass ( "collapse in" ) . css ( { height : "auto" } ) } function m ( ) { g . css ( { height : "0" } ) ; g . removeClass ( "collapsing" ) . addClass ( "collapse" ) } e || h . warn ( "collapse is now deprecated. Use uib-collapse instead." ) ; b . $watch ( f . collapse ,
function ( b ) { b ? g . hasClass ( "collapse" ) || g . hasClass ( "in" ) ? ( g . css ( { height : g [ 0 ] . scrollHeight + "px" } ) . removeClass ( "collapse in" ) . addClass ( "collapsing" ) . attr ( "aria-expanded" , ! 1 ) . attr ( "aria-hidden" , ! 0 ) , c ? c ( g , { to : { height : "0" } } ) . start ( ) . done ( m ) : a . animate ( g , { } , { height : "0" } ) . then ( m ) ) : m ( ) : ( g . removeClass ( "collapse" ) . addClass ( "collapsing" ) . attr ( "aria-expanded" , ! 0 ) . attr ( "aria-hidden" , ! 1 ) , c ? c ( g , { easing : "ease" , to : { height : g [ 0 ] . scrollHeight + "px" } } ) . start ( ) . done ( l ) : a . animate ( g , { } , { height : g [ 0 ] . scrollHeight + "px" } ) . then ( l ) ) } ) } } } ] ) ;
angular . module ( "ui.bootstrap.accordion" , [ "ui.bootstrap.collapse" ] ) . constant ( "uibAccordionConfig" , { closeOthers : ! 0 } ) . controller ( "UibAccordionController" , [ "$scope" , "$attrs" , "uibAccordionConfig" , function ( a , l , h ) { this . groups = [ ] ; this . closeOthers = function ( e ) { ( angular . isDefined ( l . closeOthers ) ? a . $eval ( l . closeOthers ) : h . closeOthers ) && angular . forEach ( this . groups , function ( a ) { a !== e && ( a . isOpen = ! 1 ) } ) } ; this . addGroup = function ( a ) { var c = this ; this . groups . push ( a ) ; a . $on ( "$destroy" , function ( b ) { c . removeGroup ( a ) } ) } ; this . removeGroup =
function ( a ) { a = this . groups . indexOf ( a ) ; - 1 !== a && this . groups . splice ( a , 1 ) } } ] ) . directive ( "uibAccordion" , function ( ) { return { controller : "UibAccordionController" , controllerAs : "accordion" , transclude : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/accordion/accordion.html" } } } ) . directive ( "uibAccordionGroup" , function ( ) { return { require : "^uibAccordion" , transclude : ! 0 , replace : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/accordion/accordion-group.html" } , scope : { heading : "@" , isOpen : "=?" , isDisabled : "=?" } ,
controller : function ( ) { this . setHeading = function ( a ) { this . heading = a } } , link : function ( a , l , h , e ) { e . addGroup ( a ) ; a . openClass = h . openClass || "panel-open" ; a . panelClass = h . panelClass ; a . $watch ( "isOpen" , function ( c ) { l . toggleClass ( a . openClass , ! ! c ) ; c && e . closeOthers ( a ) } ) ; a . toggleOpen = function ( c ) { a . isDisabled || c && 32 !== c . which || ( a . isOpen = ! a . isOpen ) } } } } ) . directive ( "uibAccordionHeading" , function ( ) { return { transclude : ! 0 , template : "" , replace : ! 0 , require : "^uibAccordionGroup" , link : function ( a , l , h , e , c ) { e . setHeading ( c ( a , angular . noop ) ) } } } ) . directive ( "uibAccordionTransclude" ,
function ( ) { return { require : [ "?^uibAccordionGroup" , "?^accordionGroup" ] , link : function ( a , l , h , e ) { e = e [ 0 ] ? e [ 0 ] : e [ 1 ] ; a . $watch ( function ( ) { return e [ h . uibAccordionTransclude ] } , function ( a ) { a && ( l . find ( "span" ) . html ( "" ) , l . find ( "span" ) . append ( a ) ) } ) } } } ) ;
angular . module ( "ui.bootstrap.accordion" ) . value ( "$accordionSuppressWarning" , ! 1 ) . controller ( "AccordionController" , [ "$scope" , "$attrs" , "$controller" , "$log" , "$accordionSuppressWarning" , function ( a , l , h , e , c ) { c || e . warn ( "AccordionController is now deprecated. Use UibAccordionController instead." ) ; angular . extend ( this , h ( "UibAccordionController" , { $scope : a , $attrs : l } ) ) } ] ) . directive ( "accordion" , [ "$log" , "$accordionSuppressWarning" , function ( a , l ) { return { restrict : "EA" , controller : "AccordionController" , controllerAs : "accordion" ,
transclude : ! 0 , replace : ! 1 , templateUrl : function ( a , e ) { return e . templateUrl || "template/accordion/accordion.html" } , link : function ( ) { l || a . warn ( "accordion is now deprecated. Use uib-accordion instead." ) } } } ] ) . directive ( "accordionGroup" , [ "$log" , "$accordionSuppressWarning" , function ( a , l ) { return { require : "^accordion" , restrict : "EA" , transclude : ! 0 , replace : ! 0 , templateUrl : function ( a , e ) { return e . templateUrl || "template/accordion/accordion-group.html" } , scope : { heading : "@" , isOpen : "=?" , isDisabled : "=?" } , controller : function ( ) { this . setHeading =
function ( a ) { this . heading = a } } , link : function ( h , e , c , b ) { l || a . warn ( "accordion-group is now deprecated. Use uib-accordion-group instead." ) ; b . addGroup ( h ) ; h . openClass = c . openClass || "panel-open" ; h . panelClass = c . panelClass ; h . $watch ( "isOpen" , function ( a ) { e . toggleClass ( h . openClass , ! ! a ) ; a && b . closeOthers ( h ) } ) ; h . toggleOpen = function ( a ) { h . isDisabled || a && 32 !== a . which || ( h . isOpen = ! h . isOpen ) } } } } ] ) . directive ( "accordionHeading" , [ "$log" , "$accordionSuppressWarning" , function ( a , l ) { return { restrict : "EA" , transclude : ! 0 , template : "" ,
replace : ! 0 , require : "^accordionGroup" , link : function ( h , e , c , b , g ) { l || a . warn ( "accordion-heading is now deprecated. Use uib-accordion-heading instead." ) ; b . setHeading ( g ( h , angular . noop ) ) } } } ] ) . directive ( "accordionTransclude" , [ "$log" , "$accordionSuppressWarning" , function ( a , l ) { return { require : "^accordionGroup" , link : function ( h , e , c , b ) { l || a . warn ( "accordion-transclude is now deprecated. Use uib-accordion-transclude instead." ) ; h . $watch ( function ( ) { return b [ c . accordionTransclude ] } , function ( a ) { a && ( e . find ( "span" ) . html ( "" ) ,
e . find ( "span" ) . append ( a ) ) } ) } } } ] ) ;
angular . module ( "ui.bootstrap.alert" , [ ] ) . controller ( "UibAlertController" , [ "$scope" , "$attrs" , "$interpolate" , "$timeout" , function ( a , l , h , e ) { a . closeable = ! ! l . close ; ( l = angular . isDefined ( l . dismissOnTimeout ) ? h ( l . dismissOnTimeout ) ( a . $parent ) : null ) && e ( function ( ) { a . close ( ) } , parseInt ( l , 10 ) ) } ] ) . directive ( "uibAlert" , function ( ) { return { controller : "UibAlertController" , controllerAs : "alert" , templateUrl : function ( a , l ) { return l . templateUrl || "template/alert/alert.html" } , transclude : ! 0 , replace : ! 0 , scope : { type : "@" , close : "&" } } } ) ;
angular . module ( "ui.bootstrap.alert" ) . value ( "$alertSuppressWarning" , ! 1 ) . controller ( "AlertController" , [ "$scope" , "$attrs" , "$controller" , "$log" , "$alertSuppressWarning" , function ( a , l , h , e , c ) { c || e . warn ( "AlertController is now deprecated. Use UibAlertController instead." ) ; angular . extend ( this , h ( "UibAlertController" , { $scope : a , $attrs : l } ) ) } ] ) . directive ( "alert" , [ "$log" , "$alertSuppressWarning" , function ( a , l ) { return { controller : "AlertController" , controllerAs : "alert" , templateUrl : function ( a , e ) { return e . templateUrl ||
"template/alert/alert.html" } , transclude : ! 0 , replace : ! 0 , scope : { type : "@" , close : "&" } , link : function ( ) { l || a . warn ( "alert is now deprecated. Use uib-alert instead." ) } } } ] ) ;
angular . module ( "ui.bootstrap.buttons" , [ ] ) . constant ( "uibButtonConfig" , { activeClass : "active" , toggleEvent : "click" } ) . controller ( "UibButtonsController" , [ "uibButtonConfig" , function ( a ) { this . activeClass = a . activeClass || "active" ; this . toggleEvent = a . toggleEvent || "click" } ] ) . directive ( "uibBtnRadio" , function ( ) { return { require : [ "uibBtnRadio" , "ngModel" ] , controller : "UibButtonsController" , controllerAs : "buttons" , link : function ( a , l , h , e ) { var c = e [ 0 ] , b = e [ 1 ] ; l . find ( "input" ) . css ( { display : "none" } ) ; b . $render = function ( ) { l . toggleClass ( c . activeClass ,
angular . equals ( b . $modelValue , a . $eval ( h . uibBtnRadio ) ) ) } ; l . on ( c . toggleEvent , function ( ) { if ( ! h . disabled ) { var e = l . hasClass ( c . activeClass ) ; e && ! angular . isDefined ( h . uncheckable ) || a . $apply ( function ( ) { b . $setViewValue ( e ? null : a . $eval ( h . uibBtnRadio ) ) ; b . $render ( ) } ) } } ) } } } ) . directive ( "uibBtnCheckbox" , function ( ) { return { require : [ "uibBtnCheckbox" , "ngModel" ] , controller : "UibButtonsController" , controllerAs : "button" , link : function ( a , l , h , e ) { function c ( b , c ) { return angular . isDefined ( b ) ? a . $eval ( b ) : c } var b = e [ 0 ] , g = e [ 1 ] ; l . find ( "input" ) . css ( { display : "none" } ) ;
g . $render = function ( ) { l . toggleClass ( b . activeClass , angular . equals ( g . $modelValue , c ( h . btnCheckboxTrue , ! 0 ) ) ) } ; l . on ( b . toggleEvent , function ( ) { h . disabled || a . $apply ( function ( ) { g . $setViewValue ( l . hasClass ( b . activeClass ) ? c ( h . btnCheckboxFalse , ! 1 ) : c ( h . btnCheckboxTrue , ! 0 ) ) ; g . $render ( ) } ) } ) } } } ) ;
angular . module ( "ui.bootstrap.buttons" ) . value ( "$buttonsSuppressWarning" , ! 1 ) . controller ( "ButtonsController" , [ "$controller" , "$log" , "$buttonsSuppressWarning" , function ( a , l , h ) { h || l . warn ( "ButtonsController is now deprecated. Use UibButtonsController instead." ) ; angular . extend ( this , a ( "UibButtonsController" ) ) } ] ) . directive ( "btnRadio" , [ "$log" , "$buttonsSuppressWarning" , function ( a , l ) { return { require : [ "btnRadio" , "ngModel" ] , controller : "ButtonsController" , controllerAs : "buttons" , link : function ( h , e , c , b ) { l || a . warn ( "btn-radio is now deprecated. Use uib-btn-radio instead." ) ;
var g = b [ 0 ] , f = b [ 1 ] ; e . find ( "input" ) . css ( { display : "none" } ) ; f . $render = function ( ) { e . toggleClass ( g . activeClass , angular . equals ( f . $modelValue , h . $eval ( c . btnRadio ) ) ) } ; e . bind ( g . toggleEvent , function ( ) { if ( ! c . disabled ) { var a = e . hasClass ( g . activeClass ) ; a && ! angular . isDefined ( c . uncheckable ) || h . $apply ( function ( ) { f . $setViewValue ( a ? null : h . $eval ( c . btnRadio ) ) ; f . $render ( ) } ) } } ) } } } ] ) . directive ( "btnCheckbox" , [ "$document" , "$log" , "$buttonsSuppressWarning" , function ( a , l , h ) { return { require : [ "btnCheckbox" , "ngModel" ] , controller : "ButtonsController" ,
controllerAs : "button" , link : function ( e , c , b , g ) { function f ( a , b ) { var c = e . $eval ( a ) ; return angular . isDefined ( c ) ? c : b } h || l . warn ( "btn-checkbox is now deprecated. Use uib-btn-checkbox instead." ) ; var q = g [ 0 ] , m = g [ 1 ] ; c . find ( "input" ) . css ( { display : "none" } ) ; m . $render = function ( ) { c . toggleClass ( q . activeClass , angular . equals ( m . $modelValue , f ( b . btnCheckboxTrue , ! 0 ) ) ) } ; c . bind ( q . toggleEvent , function ( ) { b . disabled || e . $apply ( function ( ) { m . $setViewValue ( c . hasClass ( q . activeClass ) ? f ( b . btnCheckboxFalse , ! 1 ) : f ( b . btnCheckboxTrue , ! 0 ) ) ;
m . $render ( ) } ) } ) ; c . on ( "keypress" , function ( g ) { b . disabled || 32 !== g . which || a [ 0 ] . activeElement !== c [ 0 ] || e . $apply ( function ( ) { m . $setViewValue ( c . hasClass ( q . activeClass ) ? f ( b . btnCheckboxFalse , ! 1 ) : f ( b . btnCheckboxTrue , ! 0 ) ) ; m . $render ( ) } ) } ) } } } ] ) ;
angular . module ( "ui.bootstrap.carousel" , [ ] ) . controller ( "UibCarouselController" , [ "$scope" , "$element" , "$interval" , "$animate" , function ( a , l , h , e ) { function c ( b , c , f ) { A || ( angular . extend ( b , { direction : f , active : ! 0 } ) , angular . extend ( t . currentSlide || { } , { direction : f , active : ! 1 } ) , e . enabled ( ) && ! a . noTransition && ! a . $currentTransition && b . $element && 1 < t . slides . length && ( b . $element . data ( y , b . direction ) , t . currentSlide && t . currentSlide . $element && t . currentSlide . $element . data ( y , b . direction ) , a . $currentTransition = ! 0 , r ? e . on ( "addClass" ,
b . $element , function ( b , c ) { "close" === c && ( a . $currentTransition = null , e . off ( "addClass" , b ) ) } ) : b . $element . one ( "$animate:close" , function ( ) { a . $currentTransition = null } ) ) , t . currentSlide = b , C = c , g ( ) ) } function b ( a ) { if ( angular . isUndefined ( x [ a ] . index ) ) return x [ a ] ; var b ; x . length ; for ( b = 0 ; b < x . length ; ++ b ) if ( x [ b ] . index == a ) return x [ b ] } function g ( ) { f ( ) ; var b = + a . interval ; ! isNaN ( b ) && 0 < b && ( m = h ( q , b ) ) } function f ( ) { m && ( h . cancel ( m ) , m = null ) } function q ( ) { var b = + a . interval ; n && ! isNaN ( b ) && 0 < b && x . length ? a . next ( ) : a . pause ( ) } var m , n , t =
this , x = t . slides = a . slides = [ ] , r = 4 <= angular . version . minor , y = "uib-slideDirection" , C = - 1 ; t . currentSlide = null ; var A = ! 1 ; t . select = a . select = function ( b , e ) { var f = a . indexOfSlide ( b ) ; void 0 === e && ( e = f > t . getCurrentIndex ( ) ? "next" : "prev" ) ; b && b !== t . currentSlide && ! a . $currentTransition && c ( b , f , e ) } ; a . $on ( "$destroy" , function ( ) { A = ! 0 } ) ; t . getCurrentIndex = function ( ) { return t . currentSlide && angular . isDefined ( t . currentSlide . index ) ? + t . currentSlide . index : C } ; a . indexOfSlide = function ( a ) { return angular . isDefined ( a . index ) ? + a . index : x . indexOf ( a ) } ;
a . next = function ( ) { var c = ( t . getCurrentIndex ( ) + 1 ) % x . length ; return 0 === c && a . noWrap ( ) ? void a . pause ( ) : t . select ( b ( c ) , "next" ) } ; a . prev = function ( ) { var c = 0 > t . getCurrentIndex ( ) - 1 ? x . length - 1 : t . getCurrentIndex ( ) - 1 ; return a . noWrap ( ) && c === x . length - 1 ? void a . pause ( ) : t . select ( b ( c ) , "prev" ) } ; a . isActive = function ( a ) { return t . currentSlide === a } ; a . $watch ( "interval" , g ) ; a . $watchCollection ( "slides" , function ( b ) { b . length || ( a . $currentTransition = null ) } ) ; a . $on ( "$destroy" , f ) ; a . play = function ( ) { n || ( n = ! 0 , g ( ) ) } ; a . pause = function ( ) { a . noPause ||
( n = ! 1 , f ( ) ) } ; t . addSlide = function ( b , c ) { b . $element = c ; x . push ( b ) ; 1 === x . length || b . active ? ( t . select ( x [ x . length - 1 ] ) , 1 === x . length && a . play ( ) ) : b . active = ! 1 } ; t . removeSlide = function ( a ) { angular . isDefined ( a . index ) && x . sort ( function ( a , b ) { return + a . index > + b . index } ) ; var b = x . indexOf ( a ) ; x . splice ( b , 1 ) ; 0 < x . length && a . active ? b >= x . length ? t . select ( x [ b - 1 ] ) : t . select ( x [ b ] ) : C > b && C -- ; 0 === x . length && ( t . currentSlide = null ) } ; a . $watch ( "noTransition" , function ( a ) { l . data ( "uib-noTransition" , a ) } ) } ] ) . directive ( "uibCarousel" , [ function ( ) { return { transclude : ! 0 ,
replace : ! 0 , controller : "UibCarouselController" , controllerAs : "carousel" , require : "carousel" , templateUrl : function ( a , l ) { return l . templateUrl || "template/carousel/carousel.html" } , scope : { interval : "=" , noTransition : "=" , noPause : "=" , noWrap : "&" } } } ] ) . directive ( "uibSlide" , function ( ) { return { require : "^uibCarousel" , restrict : "EA" , transclude : ! 0 , replace : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/carousel/slide.html" } , scope : { active : "=?" , actual : "=?" , index : "=?" } , link : function ( a , l , h , e ) { e . addSlide ( a , l ) ; a . $on ( "$destroy" ,
function ( ) { e . removeSlide ( a ) } ) ; a . $watch ( "active" , function ( c ) { c && e . select ( a ) } ) } } } ) . animation ( ".item" , [ "$injector" , "$animate" , function ( a , l ) { function h ( a , b , e ) { a . removeClass ( b ) ; e && e ( ) } var e = null ; return a . has ( "$animateCss" ) && ( e = a . get ( "$animateCss" ) ) , { beforeAddClass : function ( a , b , g ) { if ( "active" == b && a . parent ( ) && a . parent ( ) . parent ( ) && ! a . parent ( ) . parent ( ) . data ( "uib-noTransition" ) ) { var c = ! 1 ; b = a . data ( "uib-slideDirection" ) ; var q = "next" == b ? "left" : "right" , m = h . bind ( this , a , q + " " + b , g ) ; return a . addClass ( b ) , e ? e ( a , { addClass : q } ) . start ( ) . done ( m ) :
l . addClass ( a , q ) . then ( function ( ) { c || m ( ) ; g ( ) } ) , function ( ) { c = ! 0 } } g ( ) } , beforeRemoveClass : function ( a , b , g ) { if ( "active" === b && a . parent ( ) && a . parent ( ) . parent ( ) && ! a . parent ( ) . parent ( ) . data ( "uib-noTransition" ) ) { var c = ! 1 ; b = "next" == a . data ( "uib-slideDirection" ) ? "left" : "right" ; var q = h . bind ( this , a , b , g ) ; return e ? e ( a , { addClass : b } ) . start ( ) . done ( q ) : l . addClass ( a , b ) . then ( function ( ) { c || q ( ) ; g ( ) } ) , function ( ) { c = ! 0 } } g ( ) } } } ] ) ;
angular . module ( "ui.bootstrap.carousel" ) . value ( "$carouselSuppressWarning" , ! 1 ) . controller ( "CarouselController" , [ "$scope" , "$element" , "$controller" , "$log" , "$carouselSuppressWarning" , function ( a , l , h , e , c ) { c || e . warn ( "CarouselController is now deprecated. Use UibCarouselController instead." ) ; angular . extend ( this , h ( "UibCarouselController" , { $scope : a , $element : l } ) ) } ] ) . directive ( "carousel" , [ "$log" , "$carouselSuppressWarning" , function ( a , l ) { return { transclude : ! 0 , replace : ! 0 , controller : "CarouselController" , controllerAs : "carousel" ,
require : "carousel" , templateUrl : function ( a , e ) { return e . templateUrl || "template/carousel/carousel.html" } , scope : { interval : "=" , noTransition : "=" , noPause : "=" , noWrap : "&" } , link : function ( ) { l || a . warn ( "carousel is now deprecated. Use uib-carousel instead." ) } } } ] ) . directive ( "slide" , [ "$log" , "$carouselSuppressWarning" , function ( a , l ) { return { require : "^carousel" , transclude : ! 0 , replace : ! 0 , templateUrl : function ( a , e ) { return e . templateUrl || "template/carousel/slide.html" } , scope : { active : "=?" , actual : "=?" , index : "=?" } , link : function ( h ,
e , c , b ) { l || a . warn ( "slide is now deprecated. Use uib-slide instead." ) ; b . addSlide ( h , e ) ; h . $on ( "$destroy" , function ( ) { b . removeSlide ( h ) } ) ; h . $watch ( "active" , function ( a ) { a && b . select ( h ) } ) } } } ] ) ;
angular . module ( "ui.bootstrap.dateparser" , [ ] ) . service ( "uibDateParser" , [ "$log" , "$locale" , "orderByFilter" , function ( a , l , h ) { function e ( a ) { var c = [ ] , e = a . split ( "" ) ; return angular . forEach ( b , function ( b , f ) { var g = a . indexOf ( f ) ; if ( - 1 < g ) { a = a . split ( "" ) ; e [ g ] = "(" + b . regex + ")" ; a [ g ] = "$" ; for ( var h = g + 1 , m = g + f . length ; h < m ; h ++ ) e [ h ] = "" , a [ h ] = "$" ; a = a . join ( "" ) ; c . push ( { index : g , apply : b . apply } ) } } ) , { regex : new RegExp ( "^" + e . join ( "" ) + "$" ) , map : h ( c , "index" ) } } var c , b , g = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g ; this . init = function ( ) { c = l . id ; this . parsers =
{ } ; b = { yyyy : { regex : "\\d{4}" , apply : function ( a ) { this . year = + a } } , yy : { regex : "\\d{2}" , apply : function ( a ) { this . year = + a + 2E3 } } , y : { regex : "\\d{1,4}" , apply : function ( a ) { this . year = + a } } , MMMM : { regex : l . DATETIME _FORMATS . MONTH . join ( "|" ) , apply : function ( a ) { this . month = l . DATETIME _FORMATS . MONTH . indexOf ( a ) } } , MMM : { regex : l . DATETIME _FORMATS . SHORTMONTH . join ( "|" ) , apply : function ( a ) { this . month = l . DATETIME _FORMATS . SHORTMONTH . indexOf ( a ) } } , MM : { regex : "0[1-9]|1[0-2]" , apply : function ( a ) { this . month = a - 1 } } , M : { regex : "[1-9]|1[0-2]" , apply : function ( a ) { this . month =
a - 1 } } , dd : { regex : "[0-2][0-9]{1}|3[0-1]{1}" , apply : function ( a ) { this . date = + a } } , d : { regex : "[1-2]?[0-9]{1}|3[0-1]{1}" , apply : function ( a ) { this . date = + a } } , EEEE : { regex : l . DATETIME _FORMATS . DAY . join ( "|" ) } , EEE : { regex : l . DATETIME _FORMATS . SHORTDAY . join ( "|" ) } , HH : { regex : "(?:0|1)[0-9]|2[0-3]" , apply : function ( a ) { this . hours = + a } } , hh : { regex : "0[0-9]|1[0-2]" , apply : function ( a ) { this . hours = + a } } , H : { regex : "1?[0-9]|2[0-3]" , apply : function ( a ) { this . hours = + a } } , h : { regex : "[0-9]|1[0-2]" , apply : function ( a ) { this . hours = + a } } , mm : { regex : "[0-5][0-9]" ,
apply : function ( a ) { this . minutes = + a } } , m : { regex : "[0-9]|[1-5][0-9]" , apply : function ( a ) { this . minutes = + a } } , sss : { regex : "[0-9][0-9][0-9]" , apply : function ( a ) { this . milliseconds = + a } } , ss : { regex : "[0-5][0-9]" , apply : function ( a ) { this . seconds = + a } } , s : { regex : "[0-9]|[1-5][0-9]" , apply : function ( a ) { this . seconds = + a } } , a : { regex : l . DATETIME _FORMATS . AMPMS . join ( "|" ) , apply : function ( a ) { 12 === this . hours && ( this . hours = 0 ) ; "PM" === a && ( this . hours += 12 ) } } } } ; this . init ( ) ; this . parse = function ( b , h , m ) { if ( ! angular . isString ( b ) || ! h ) return b ; h = l . DATETIME _FORMATS [ h ] ||
h ; h = h . replace ( g , "\\$&" ) ; l . id !== c && this . init ( ) ; this . parsers [ h ] || ( this . parsers [ h ] = e ( h ) ) ; var f = this . parsers [ h ] ; h = f . map ; if ( ( b = b . match ( f . regex ) ) && b . length ) { var t , q ; angular . isDate ( m ) && ! isNaN ( m . getTime ( ) ) ? t = { year : m . getFullYear ( ) , month : m . getMonth ( ) , date : m . getDate ( ) , hours : m . getHours ( ) , minutes : m . getMinutes ( ) , seconds : m . getSeconds ( ) , milliseconds : m . getMilliseconds ( ) } : ( m && a . warn ( "dateparser:" , "baseDate is not a valid date" ) , t = { year : 1900 , month : 0 , date : 1 , hours : 0 , minutes : 0 , seconds : 0 , milliseconds : 0 } ) ; for ( var f = 1 , r =
b . length ; f < r ; f ++ ) { var y = h [ f - 1 ] ; y . apply && y . apply . call ( t , b [ f ] ) } h = t . year ; b = t . month ; f = t . date ; return ! ( 1 > f ) && ( 1 === b && 28 < f ? 29 === f && ( 0 === h % 4 && 0 !== h % 100 || 0 === h % 400 ) : 3 !== b && 5 !== b && 8 !== b && 10 !== b || 31 > f ) && ( angular . isDate ( m ) && ! isNaN ( m . getTime ( ) ) ? ( q = new Date ( m ) , q . setFullYear ( t . year , t . month , t . date , t . hours , t . minutes , t . seconds , t . milliseconds || 0 ) ) : q = new Date ( t . year , t . month , t . date , t . hours , t . minutes , t . seconds , t . milliseconds || 0 ) ) , q } } } ] ) ;
angular . module ( "ui.bootstrap.dateparser" ) . value ( "$dateParserSuppressWarning" , ! 1 ) . service ( "dateParser" , [ "$log" , "$dateParserSuppressWarning" , "uibDateParser" , function ( a , l , h ) { l || a . warn ( "dateParser is now deprecated. Use uibDateParser instead." ) ; angular . extend ( this , h ) } ] ) ;
angular . module ( "ui.bootstrap.position" , [ ] ) . factory ( "$uibPosition" , [ "$document" , "$window" , function ( a , l ) { function h ( a , c ) { return a . currentStyle ? a . currentStyle [ c ] : l . getComputedStyle ? l . getComputedStyle ( a ) [ c ] : a . style [ c ] } return { position : function ( e ) { var c = this . offset ( e ) , b = { top : 0 , left : 0 } , g ; g = a [ 0 ] ; for ( var f = e [ 0 ] . offsetParent || g ; f && f !== g && "static" === ( h ( f , "position" ) || "static" ) ; ) f = f . offsetParent ; g = f || g ; g != a [ 0 ] && ( b = this . offset ( angular . element ( g ) ) , b . top += g . clientTop - g . scrollTop , b . left += g . clientLeft - g . scrollLeft ) ;
g = e [ 0 ] . getBoundingClientRect ( ) ; return { width : g . width || e . prop ( "offsetWidth" ) , height : g . height || e . prop ( "offsetHeight" ) , top : c . top - b . top , left : c . left - b . left } } , offset : function ( e ) { var c = e [ 0 ] . getBoundingClientRect ( ) ; return { width : c . width || e . prop ( "offsetWidth" ) , height : c . height || e . prop ( "offsetHeight" ) , top : c . top + ( l . pageYOffset || a [ 0 ] . documentElement . scrollTop ) , left : c . left + ( l . pageXOffset || a [ 0 ] . documentElement . scrollLeft ) } } , positionElements : function ( a , c , b , g ) { var e , h , m , l = b . split ( "-" ) ; b = l [ 0 ] ; l = l [ 1 ] || "center" ; e = g ? this . offset ( a ) :
this . position ( a ) ; h = c . prop ( "offsetWidth" ) ; m = c . prop ( "offsetHeight" ) ; a = { center : function ( ) { return e . left + e . width / 2 - h / 2 } , left : function ( ) { return e . left } , right : function ( ) { return e . left + e . width } } ; c = { center : function ( ) { return e . top + e . height / 2 - m / 2 } , top : function ( ) { return e . top } , bottom : function ( ) { return e . top + e . height } } ; switch ( b ) { case "right" : b = { top : c [ l ] ( ) , left : a [ b ] ( ) } ; break ; case "left" : b = { top : c [ l ] ( ) , left : e . left - h } ; break ; case "bottom" : b = { top : c [ b ] ( ) , left : a [ l ] ( ) } ; break ; default : b = { top : e . top - m , left : a [ l ] ( ) } } return b } } } ] ) ;
angular . module ( "ui.bootstrap.position" ) . value ( "$positionSuppressWarning" , ! 1 ) . service ( "$position" , [ "$log" , "$positionSuppressWarning" , "$uibPosition" , function ( a , l , h ) { l || a . warn ( "$position is now deprecated. Use $uibPosition instead." ) ; angular . extend ( this , h ) } ] ) ;
angular . module ( "ui.bootstrap.datepicker" , [ "ui.bootstrap.dateparser" , "ui.bootstrap.position" ] ) . value ( "$datepickerSuppressError" , ! 1 ) . constant ( "uibDatepickerConfig" , { formatDay : "dd" , formatMonth : "MMMM" , formatYear : "yyyy" , formatDayHeader : "EEE" , formatDayTitle : "MMMM yyyy" , formatMonthTitle : "yyyy" , datepickerMode : "day" , minMode : "day" , maxMode : "year" , showWeeks : ! 0 , startingDay : 0 , yearRange : 20 , minDate : null , maxDate : null , shortcutPropagation : ! 1 } ) . controller ( "UibDatepickerController" , [ "$scope" , "$attrs" , "$parse" , "$interpolate" ,
"$log" , "dateFilter" , "uibDatepickerConfig" , "$datepickerSuppressError" , function ( a , l , h , e , c , b , g , f ) { var q = this , m = { $setViewValue : angular . noop } ; this . modes = [ "day" , "month" , "year" ] ; angular . forEach ( "formatDay formatMonth formatYear formatDayHeader formatDayTitle formatMonthTitle showWeeks startingDay yearRange shortcutPropagation" . split ( " " ) , function ( b , c ) { q [ b ] = angular . isDefined ( l [ b ] ) ? 6 > c ? e ( l [ b ] ) ( a . $parent ) : a . $parent . $eval ( l [ b ] ) : g [ b ] } ) ; angular . forEach ( [ "minDate" , "maxDate" ] , function ( b ) { l [ b ] ? a . $parent . $watch ( h ( l [ b ] ) ,
function ( a ) { q [ b ] = a ? new Date ( a ) : null ; q . refreshView ( ) } ) : q [ b ] = g [ b ] ? new Date ( g [ b ] ) : null } ) ; angular . forEach ( [ "minMode" , "maxMode" ] , function ( b ) { l [ b ] ? a . $parent . $watch ( h ( l [ b ] ) , function ( c ) { q [ b ] = angular . isDefined ( c ) ? c : l [ b ] ; a [ b ] = q [ b ] ; ( "minMode" == b && q . modes . indexOf ( a . datepickerMode ) < q . modes . indexOf ( q [ b ] ) || "maxMode" == b && q . modes . indexOf ( a . datepickerMode ) > q . modes . indexOf ( q [ b ] ) ) && ( a . datepickerMode = q [ b ] ) } ) : ( q [ b ] = g [ b ] || null , a [ b ] = q [ b ] ) } ) ; a . datepickerMode = a . datepickerMode || g . datepickerMode ; a . uniqueId = "datepicker-" + a . $id +
"-" + Math . floor ( 1E4 * Math . random ( ) ) ; angular . isDefined ( l . initDate ) ? ( this . activeDate = a . $parent . $eval ( l . initDate ) || new Date , a . $parent . $watch ( l . initDate , function ( a ) { a && ( m . $isEmpty ( m . $modelValue ) || m . $invalid ) && ( q . activeDate = a , q . refreshView ( ) ) } ) ) : this . activeDate = new Date ; a . isActive = function ( b ) { return 0 === q . compare ( b . date , q . activeDate ) && ( a . activeDateId = b . uid , ! 0 ) } ; this . init = function ( a ) { m = a ; m . $render = function ( ) { q . render ( ) } } ; this . render = function ( ) { if ( m . $viewValue ) { var a = new Date ( m . $viewValue ) ; isNaN ( a ) ? f || c . error ( 'Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.' ) :
this . activeDate = a } this . refreshView ( ) } ; this . refreshView = function ( ) { if ( this . element ) { this . _refreshView ( ) ; var a = m . $viewValue ? new Date ( m . $viewValue ) : null ; m . $setValidity ( "dateDisabled" , ! a || this . element && ! this . isDisabled ( a ) ) } } ; this . createDateObject = function ( a , c ) { var e = m . $viewValue ? new Date ( m . $viewValue ) : null ; return { date : a , label : b ( a , c ) , selected : e && 0 === this . compare ( a , e ) , disabled : this . isDisabled ( a ) , current : 0 === this . compare ( a , new Date ) , customClass : this . customClass ( a ) } } ; this . isDisabled = function ( b ) { return this . minDate &&
0 > this . compare ( b , this . minDate ) || this . maxDate && 0 < this . compare ( b , this . maxDate ) || l . dateDisabled && a . dateDisabled ( { date : b , mode : a . datepickerMode } ) } ; this . customClass = function ( b ) { return a . customClass ( { date : b , mode : a . datepickerMode } ) } ; this . split = function ( a , b ) { for ( var c = [ ] ; 0 < a . length ; ) c . push ( a . splice ( 0 , b ) ) ; return c } ; a . select = function ( b ) { if ( a . datepickerMode === q . minMode ) { var c = m . $viewValue ? new Date ( m . $viewValue ) : new Date ( 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ; c . setFullYear ( b . getFullYear ( ) , b . getMonth ( ) , b . getDate ( ) ) ; m . $setViewValue ( c ) ;
m . $render ( ) } else q . activeDate = b , a . datepickerMode = q . modes [ q . modes . indexOf ( a . datepickerMode ) - 1 ] } ; a . move = function ( a ) { var b = q . activeDate . getFullYear ( ) + a * ( q . step . years || 0 ) ; a = q . activeDate . getMonth ( ) + a * ( q . step . months || 0 ) ; q . activeDate . setFullYear ( b , a , 1 ) ; q . refreshView ( ) } ; a . toggleMode = function ( b ) { b = b || 1 ; a . datepickerMode === q . maxMode && 1 === b || a . datepickerMode === q . minMode && - 1 === b || ( a . datepickerMode = q . modes [ q . modes . indexOf ( a . datepickerMode ) + b ] ) } ; a . keys = { 13 : "enter" , 32 : "space" , 33 : "pageup" , 34 : "pagedown" , 35 : "end" , 36 : "home" ,
37 : "left" , 38 : "up" , 39 : "right" , 40 : "down" } ; a . $on ( "uib:datepicker.focus" , function ( ) { q . element [ 0 ] . focus ( ) } ) ; a . keydown = function ( b ) { var c = a . keys [ b . which ] ; ! c || b . shiftKey || b . altKey || ( ( b . preventDefault ( ) , q . shortcutPropagation || b . stopPropagation ( ) , "enter" === c || "space" === c ) ? q . isDisabled ( q . activeDate ) || a . select ( q . activeDate ) : ! b . ctrlKey || "up" !== c && "down" !== c ? ( q . handleKeyDown ( c , b ) , q . refreshView ( ) ) : a . toggleMode ( "up" === c ? 1 : - 1 ) ) } } ] ) . controller ( "UibDaypickerController" , [ "$scope" , "$element" , "dateFilter" , function ( a , l ,
h ) { function e ( a , c ) { return 1 !== c || 0 !== a % 4 || 0 === a % 100 && 0 !== a % 400 ? b [ c ] : 29 } function c ( a ) { a = new Date ( a ) ; a . setDate ( a . getDate ( ) + 4 - ( a . getDay ( ) || 7 ) ) ; var b = a . getTime ( ) ; return a . setMonth ( 0 ) , a . setDate ( 1 ) , Math . floor ( Math . round ( ( b - a ) / 864E5 ) / 7 ) + 1 } var b = [ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ; this . step = { months : 1 } ; this . element = l ; this . init = function ( b ) { angular . extend ( b , this ) ; a . showWeeks = b . showWeeks ; b . refreshView ( ) } ; this . getDates = function ( a , b ) { for ( var c , e = Array ( b ) , f = new Date ( a ) , g = 0 ; g < b ; ) c = new Date ( f ) , e [ g ++ ] = c , f . setDate ( f . getDate ( ) +
1 ) ; return e } ; this . _refreshView = function ( ) { var b = this . activeDate . getFullYear ( ) , e = this . activeDate . getMonth ( ) , l = new Date ( this . activeDate ) ; l . setFullYear ( b , e , 1 ) ; b = this . startingDay - l . getDay ( ) ; b = 0 < b ? 7 - b : - b ; l = new Date ( l ) ; 0 < b && l . setDate ( - b + 1 ) ; l = this . getDates ( l , 42 ) ; for ( b = 0 ; 42 > b ; b ++ ) l [ b ] = angular . extend ( this . createDateObject ( l [ b ] , this . formatDay ) , { secondary : l [ b ] . getMonth ( ) !== e , uid : a . uniqueId + "-" + b } ) ; a . labels = Array ( 7 ) ; for ( e = 0 ; 7 > e ; e ++ ) a . labels [ e ] = { abbr : h ( l [ e ] . date , this . formatDayHeader ) , full : h ( l [ e ] . date , "EEEE" ) } ;
if ( a . title = h ( this . activeDate , this . formatDayTitle ) , a . rows = this . split ( l , 7 ) , a . showWeeks ) for ( a . weekNumbers = [ ] , e = ( 11 - this . startingDay ) % 7 , l = a . rows . length , b = 0 ; b < l ; b ++ ) a . weekNumbers . push ( c ( a . rows [ b ] [ e ] . date ) ) } ; this . compare = function ( a , b ) { return new Date ( a . getFullYear ( ) , a . getMonth ( ) , a . getDate ( ) ) - new Date ( b . getFullYear ( ) , b . getMonth ( ) , b . getDate ( ) ) } ; this . handleKeyDown = function ( a , b ) { var c = this . activeDate . getDate ( ) ; if ( "left" === a ) -- c ; else if ( "up" === a ) c -= 7 ; else if ( "right" === a ) c += 1 ; else if ( "down" === a ) c += 7 ; else if ( "pageup" ===
a || "pagedown" === a ) { var f = this . activeDate . getMonth ( ) + ( "pageup" === a ? - 1 : 1 ) ; this . activeDate . setMonth ( f , 1 ) ; c = Math . min ( e ( this . activeDate . getFullYear ( ) , this . activeDate . getMonth ( ) ) , c ) } else "home" === a ? c = 1 : "end" === a && ( c = e ( this . activeDate . getFullYear ( ) , this . activeDate . getMonth ( ) ) ) ; this . activeDate . setDate ( c ) } } ] ) . controller ( "UibMonthpickerController" , [ "$scope" , "$element" , "dateFilter" , function ( a , l , h ) { this . step = { years : 1 } ; this . element = l ; this . init = function ( a ) { angular . extend ( a , this ) ; a . refreshView ( ) } ; this . _refreshView =
function ( ) { for ( var e , c = Array ( 12 ) , b = this . activeDate . getFullYear ( ) , g = 0 ; 12 > g ; g ++ ) e = new Date ( this . activeDate ) , e . setFullYear ( b , g , 1 ) , c [ g ] = angular . extend ( this . createDateObject ( e , this . formatMonth ) , { uid : a . uniqueId + "-" + g } ) ; a . title = h ( this . activeDate , this . formatMonthTitle ) ; a . rows = this . split ( c , 3 ) } ; this . compare = function ( a , c ) { return new Date ( a . getFullYear ( ) , a . getMonth ( ) ) - new Date ( c . getFullYear ( ) , c . getMonth ( ) ) } ; this . handleKeyDown = function ( a , c ) { var b = this . activeDate . getMonth ( ) ; if ( "left" === a ) -- b ; else if ( "up" === a ) b -=
3 ; else if ( "right" === a ) b += 1 ; else if ( "down" === a ) b += 3 ; else if ( "pageup" === a || "pagedown" === a ) { var e = this . activeDate . getFullYear ( ) + ( "pageup" === a ? - 1 : 1 ) ; this . activeDate . setFullYear ( e ) } else "home" === a ? b = 0 : "end" === a && ( b = 11 ) ; this . activeDate . setMonth ( b ) } } ] ) . controller ( "UibYearpickerController" , [ "$scope" , "$element" , "dateFilter" , function ( a , l , h ) { var e ; this . element = l ; this . yearpickerInit = function ( ) { e = this . yearRange ; this . step = { years : e } } ; this . _refreshView = function ( ) { for ( var c , b = Array ( e ) , g = 0 , f = parseInt ( ( this . activeDate . getFullYear ( ) -
1 ) / e , 10 ) * e + 1 ; g < e ; g ++ ) c = new Date ( this . activeDate ) , c . setFullYear ( f + g , 0 , 1 ) , b [ g ] = angular . extend ( this . createDateObject ( c , this . formatYear ) , { uid : a . uniqueId + "-" + g } ) ; a . title = [ b [ 0 ] . label , b [ e - 1 ] . label ] . join ( " - " ) ; a . rows = this . split ( b , 5 ) } ; this . compare = function ( a , b ) { return a . getFullYear ( ) - b . getFullYear ( ) } ; this . handleKeyDown = function ( a , b ) { var c = this . activeDate . getFullYear ( ) ; "left" === a ? -- c : "up" === a ? c -= 5 : "right" === a ? c += 1 : "down" === a ? c += 5 : "pageup" === a || "pagedown" === a ? c += ( "pageup" === a ? - 1 : 1 ) * this . step . years : "home" ===
a ? c = parseInt ( ( this . activeDate . getFullYear ( ) - 1 ) / e , 10 ) * e + 1 : "end" === a && ( c = parseInt ( ( this . activeDate . getFullYear ( ) - 1 ) / e , 10 ) * e + 1 + e - 1 ) ; this . activeDate . setFullYear ( c ) } } ] ) . directive ( "uibDatepicker" , function ( ) { return { replace : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/datepicker/datepicker.html" } , scope : { datepickerMode : "=?" , dateDisabled : "&" , customClass : "&" , shortcutPropagation : "&?" } , require : [ "uibDatepicker" , "^ngModel" ] , controller : "UibDatepickerController" , controllerAs : "datepicker" , link : function ( a ,
l , h , e ) { e [ 0 ] . init ( e [ 1 ] ) } } } ) . directive ( "uibDaypicker" , function ( ) { return { replace : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/datepicker/day.html" } , require : [ "^?uibDatepicker" , "uibDaypicker" , "^?datepicker" ] , controller : "UibDaypickerController" , link : function ( a , l , h , e ) { e [ 1 ] . init ( e [ 0 ] || e [ 2 ] ) } } } ) . directive ( "uibMonthpicker" , function ( ) { return { replace : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/datepicker/month.html" } , require : [ "^?uibDatepicker" , "uibMonthpicker" , "^?datepicker" ] ,
controller : "UibMonthpickerController" , link : function ( a , l , h , e ) { e [ 1 ] . init ( e [ 0 ] || e [ 2 ] ) } } } ) . directive ( "uibYearpicker" , function ( ) { return { replace : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/datepicker/year.html" } , require : [ "^?uibDatepicker" , "uibYearpicker" , "^?datepicker" ] , controller : "UibYearpickerController" , link : function ( a , l , h , e ) { a = e [ 0 ] || e [ 2 ] ; angular . extend ( a , e [ 1 ] ) ; a . yearpickerInit ( ) ; a . refreshView ( ) } } } ) . constant ( "uibDatepickerPopupConfig" , { datepickerPopup : "yyyy-MM-dd" , datepickerPopupTemplateUrl : "template/datepicker/popup.html" ,
datepickerTemplateUrl : "template/datepicker/datepicker.html" , html5Types : { date : "yyyy-MM-dd" , "datetime-local" : "yyyy-MM-ddTHH:mm:ss.sss" , month : "yyyy-MM" } , currentText : "Today" , clearText : "Clear" , closeText : "Done" , closeOnDateSelection : ! 0 , appendToBody : ! 1 , showButtonBar : ! 0 , onOpenFocus : ! 0 } ) . controller ( "UibDatepickerPopupController" , [ "$scope" , "$element" , "$attrs" , "$compile" , "$parse" , "$document" , "$rootScope" , "$uibPosition" , "dateFilter" , "uibDateParser" , "uibDatepickerPopupConfig" , "$timeout" , function ( a , l , h , e , c , b , g ,
f , q , m , n , t ) { function x ( a ) { return a . replace ( /([A-Z])/g , function ( a ) { return "-" + a . toLowerCase ( ) } ) } function r ( b ) { angular . isNumber ( b ) && ( b = new Date ( b ) ) ; if ( ! b ) return null ; if ( angular . isDate ( b ) && ! isNaN ( b ) ) return b ; if ( angular . isString ( b ) ) return b = m . parse ( b , E , a . date ) , isNaN ( b ) ? void 0 : b } function y ( a , b ) { var c = a || b ; return h . ngRequired || c ? ( angular . isNumber ( c ) && ( c = new Date ( c ) ) , c ) ? angular . isDate ( c ) && ! isNaN ( c ) ? ! 0 : angular . isString ( c ) ? ( c = m . parse ( c , E ) , ! isNaN ( c ) ) : ! 1 : ! 0 : ! 0 } function C ( b ) { var c = V [ 0 ] , e = l [ 0 ] . contains ( b . target ) ;
b = void 0 !== c . contains && c . contains ( b . target ) ; ! a . isOpen || e || b || a . $apply ( function ( ) { a . isOpen = ! 1 } ) } function A ( b ) { 27 === b . which && a . isOpen ? ( b . preventDefault ( ) , b . stopPropagation ( ) , a . $apply ( function ( ) { a . isOpen = ! 1 } ) , l [ 0 ] . focus ( ) ) : 40 !== b . which || a . isOpen || ( b . preventDefault ( ) , b . stopPropagation ( ) , a . $apply ( function ( ) { a . isOpen = ! 0 } ) ) } var E , F , p , v , I , H , J , K , O , V , X = { } , L = ! 1 ; a . watchData = { } ; this . init = function ( f ) { if ( O = f , F = angular . isDefined ( h . closeOnDateSelection ) ? a . $parent . $eval ( h . closeOnDateSelection ) : n . closeOnDateSelection ,
p = angular . isDefined ( h . datepickerAppendToBody ) ? a . $parent . $eval ( h . datepickerAppendToBody ) : n . appendToBody , v = angular . isDefined ( h . onOpenFocus ) ? a . $parent . $eval ( h . onOpenFocus ) : n . onOpenFocus , I = angular . isDefined ( h . datepickerPopupTemplateUrl ) ? h . datepickerPopupTemplateUrl : n . datepickerPopupTemplateUrl , H = angular . isDefined ( h . datepickerTemplateUrl ) ? h . datepickerTemplateUrl : n . datepickerTemplateUrl , a . showButtonBar = angular . isDefined ( h . showButtonBar ) ? a . $parent . $eval ( h . showButtonBar ) : n . showButtonBar , n . html5Types [ h . type ] ?
( E = n . html5Types [ h . type ] , L = ! 0 ) : ( E = h . datepickerPopup || h . uibDatepickerPopup || n . datepickerPopup , h . $observe ( "uibDatepickerPopup" , function ( a , b ) { var c = a || n . datepickerPopup ; if ( c !== E && ( E = c , O . $modelValue = null , ! E ) ) throw Error ( "uibDatepickerPopup must have a date format specified." ) ; } ) ) , ! E ) throw Error ( "uibDatepickerPopup must have a date format specified." ) ; if ( L && h . datepickerPopup ) throw Error ( "HTML5 date input types do not support custom formats." ) ; if ( J = angular . element ( "<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>" ) ,
J . attr ( { "ng-model" : "date" , "ng-change" : "dateSelection(date)" , "template-url" : I } ) , K = angular . element ( J . children ( ) [ 0 ] ) , K . attr ( "template-url" , H ) , L && "month" === h . type && ( K . attr ( "datepicker-mode" , '"month"' ) , K . attr ( "min-mode" , "month" ) ) , h . datepickerOptions ) ( f = a . $parent . $eval ( h . datepickerOptions ) ) && f . initDate && ( a . initDate = f . initDate , K . attr ( "init-date" , "initDate" ) , delete f . initDate ) , angular . forEach ( f , function ( a , b ) { K . attr ( x ( b ) , a ) } ) ; angular . forEach ( "minMode maxMode minDate maxDate datepickerMode initDate shortcutPropagation" . split ( " " ) ,
function ( b ) { if ( h [ b ] ) { var e = c ( h [ b ] ) ; if ( a . $parent . $watch ( e , function ( c ) { a . watchData [ b ] = c ; "minDate" !== b && "maxDate" !== b || ( X [ b ] = new Date ( c ) ) } ) , K . attr ( x ( b ) , "watchData." + b ) , "datepickerMode" === b ) { var f = e . assign ; a . $watch ( "watchData." + b , function ( b , c ) { angular . isFunction ( f ) && b !== c && f ( a . $parent , b ) } ) } } } ) ; h . dateDisabled && K . attr ( "date-disabled" , "dateDisabled({ date: date, mode: mode })" ) ; h . showWeeks && K . attr ( "show-weeks" , h . showWeeks ) ; h . customClass && K . attr ( "custom-class" , "customClass({ date: date, mode: mode })" ) ; L ?
O . $formatters . push ( function ( b ) { return a . date = b , b } ) : ( O . $$parserName = "date" , O . $validators . date = y , O . $parsers . unshift ( r ) , O . $formatters . push ( function ( b ) { return a . date = b , O . $isEmpty ( b ) ? b : q ( b , E ) } ) ) ; O . $viewChangeListeners . push ( function ( ) { a . date = m . parse ( O . $viewValue , E , a . date ) } ) ; l . bind ( "keydown" , A ) ; V = e ( J ) ( a ) ; J . remove ( ) ; p ? b . find ( "body" ) . append ( V ) : l . after ( V ) ; a . $on ( "$destroy" , function ( ) { ! 0 === a . isOpen && ( g . $$phase || a . $apply ( function ( ) { a . isOpen = ! 1 } ) ) ; V . remove ( ) ; l . unbind ( "keydown" , A ) ; b . unbind ( "click" , C ) } ) } ; a . getText =
function ( b ) { return a [ b + "Text" ] || n [ b + "Text" ] } ; a . isDisabled = function ( b ) { return "today" === b && ( b = new Date ) , a . watchData . minDate && 0 > a . compare ( b , X . minDate ) || a . watchData . maxDate && 0 < a . compare ( b , X . maxDate ) } ; a . compare = function ( a , b ) { return new Date ( a . getFullYear ( ) , a . getMonth ( ) , a . getDate ( ) ) - new Date ( b . getFullYear ( ) , b . getMonth ( ) , b . getDate ( ) ) } ; a . dateSelection = function ( b ) { angular . isDefined ( b ) && ( a . date = b ) ; b = a . date ? q ( a . date , E ) : null ; l . val ( b ) ; O . $setViewValue ( b ) ; F && ( a . isOpen = ! 1 , l [ 0 ] . focus ( ) ) } ; a . keydown = function ( b ) { 27 ===
b . which && ( a . isOpen = ! 1 , l [ 0 ] . focus ( ) ) } ; a . select = function ( b ) { if ( "today" === b ) { var c = new Date ; angular . isDate ( a . date ) ? ( b = new Date ( a . date ) , b . setFullYear ( c . getFullYear ( ) , c . getMonth ( ) , c . getDate ( ) ) ) : b = new Date ( c . setHours ( 0 , 0 , 0 , 0 ) ) } a . dateSelection ( b ) } ; a . close = function ( ) { a . isOpen = ! 1 ; l [ 0 ] . focus ( ) } ; a . $watch ( "isOpen" , function ( c ) { c ? ( a . position = p ? f . offset ( l ) : f . position ( l ) , a . position . top += l . prop ( "offsetHeight" ) , t ( function ( ) { v && a . $broadcast ( "uib:datepicker.focus" ) ; b . bind ( "click" , C ) } , 0 , ! 1 ) ) : b . unbind ( "click" , C ) } ) } ] ) . directive ( "uibDatepickerPopup" ,
function ( ) { return { require : [ "ngModel" , "uibDatepickerPopup" ] , controller : "UibDatepickerPopupController" , scope : { isOpen : "=?" , currentText : "@" , clearText : "@" , closeText : "@" , dateDisabled : "&" , customClass : "&" } , link : function ( a , l , h , e ) { e [ 1 ] . init ( e [ 0 ] ) } } } ) . directive ( "uibDatepickerPopupWrap" , function ( ) { return { replace : ! 0 , transclude : ! 0 , templateUrl : function ( a , l ) { return l . templateUrl || "template/datepicker/popup.html" } } } ) ;
angular . module ( "ui.bootstrap.datepicker" ) . value ( "$datepickerSuppressWarning" , ! 1 ) . controller ( "DatepickerController" , [ "$scope" , "$attrs" , "$parse" , "$interpolate" , "$log" , "dateFilter" , "uibDatepickerConfig" , "$datepickerSuppressError" , "$datepickerSuppressWarning" , function ( a , l , h , e , c , b , g , f , q ) { q || c . warn ( "DatepickerController is now deprecated. Use UibDatepickerController instead." ) ; var m = this , n = { $setViewValue : angular . noop } ; this . modes = [ "day" , "month" , "year" ] ; angular . forEach ( "formatDay formatMonth formatYear formatDayHeader formatDayTitle formatMonthTitle showWeeks startingDay yearRange shortcutPropagation" . split ( " " ) ,
function ( b , c ) { m [ b ] = angular . isDefined ( l [ b ] ) ? 6 > c ? e ( l [ b ] ) ( a . $parent ) : a . $parent . $eval ( l [ b ] ) : g [ b ] } ) ; angular . forEach ( [ "minDate" , "maxDate" ] , function ( b ) { l [ b ] ? a . $parent . $watch ( h ( l [ b ] ) , function ( a ) { m [ b ] = a ? new Date ( a ) : null ; m . refreshView ( ) } ) : m [ b ] = g [ b ] ? new Date ( g [ b ] ) : null } ) ; angular . forEach ( [ "minMode" , "maxMode" ] , function ( b ) { l [ b ] ? a . $parent . $watch ( h ( l [ b ] ) , function ( c ) { m [ b ] = angular . isDefined ( c ) ? c : l [ b ] ; a [ b ] = m [ b ] ; ( "minMode" == b && m . modes . indexOf ( a . datepickerMode ) < m . modes . indexOf ( m [ b ] ) || "maxMode" == b && m . modes . indexOf ( a . datepickerMode ) >
m . modes . indexOf ( m [ b ] ) ) && ( a . datepickerMode = m [ b ] ) } ) : ( m [ b ] = g [ b ] || null , a [ b ] = m [ b ] ) } ) ; a . datepickerMode = a . datepickerMode || g . datepickerMode ; a . uniqueId = "datepicker-" + a . $id + "-" + Math . floor ( 1E4 * Math . random ( ) ) ; angular . isDefined ( l . initDate ) ? ( this . activeDate = a . $parent . $eval ( l . initDate ) || new Date , a . $parent . $watch ( l . initDate , function ( a ) { a && ( n . $isEmpty ( n . $modelValue ) || n . $invalid ) && ( m . activeDate = a , m . refreshView ( ) ) } ) ) : this . activeDate = new Date ; a . isActive = function ( b ) { return 0 === m . compare ( b . date , m . activeDate ) && ( a . activeDateId =
b . uid , ! 0 ) } ; this . init = function ( a ) { n = a ; n . $render = function ( ) { m . render ( ) } } ; this . render = function ( ) { if ( n . $viewValue ) { var a = new Date ( n . $viewValue ) ; isNaN ( a ) ? f || c . error ( 'Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.' ) : this . activeDate = a } this . refreshView ( ) } ; this . refreshView = function ( ) { if ( this . element ) { this . _refreshView ( ) ; var a = n . $viewValue ? new Date ( n . $viewValue ) : null ; n . $setValidity ( "dateDisabled" ,
! a || this . element && ! this . isDisabled ( a ) ) } } ; this . createDateObject = function ( a , c ) { var e = n . $viewValue ? new Date ( n . $viewValue ) : null ; return { date : a , label : b ( a , c ) , selected : e && 0 === this . compare ( a , e ) , disabled : this . isDisabled ( a ) , current : 0 === this . compare ( a , new Date ) , customClass : this . customClass ( a ) } } ; this . isDisabled = function ( b ) { return this . minDate && 0 > this . compare ( b , this . minDate ) || this . maxDate && 0 < this . compare ( b , this . maxDate ) || l . dateDisabled && a . dateDisabled ( { date : b , mode : a . datepickerMode } ) } ; this . customClass = function ( b ) { return a . customClass ( { date : b ,
mode : a . datepickerMode } ) } ; this . split = function ( a , b ) { for ( var c = [ ] ; 0 < a . length ; ) c . push ( a . splice ( 0 , b ) ) ; return c } ; this . fixTimeZone = function ( a ) { var b = a . getHours ( ) ; a . setHours ( 23 === b ? b + 2 : 0 ) } ; a . select = function ( b ) { if ( a . datepickerMode === m . minMode ) { var c = n . $viewValue ? new Date ( n . $viewValue ) : new Date ( 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ; c . setFullYear ( b . getFullYear ( ) , b . getMonth ( ) , b . getDate ( ) ) ; n . $setViewValue ( c ) ; n . $render ( ) } else m . activeDate = b , a . datepickerMode = m . modes [ m . modes . indexOf ( a . datepickerMode ) - 1 ] } ; a . move = function ( a ) { var b = m . activeDate . getFullYear ( ) +
a * ( m . step . years || 0 ) ; a = m . activeDate . getMonth ( ) + a * ( m . step . months || 0 ) ; m . activeDate . setFullYear ( b , a , 1 ) ; m . refreshView ( ) } ; a . toggleMode = function ( b ) { b = b || 1 ; a . datepickerMode === m . maxMode && 1 === b || a . datepickerMode === m . minMode && - 1 === b || ( a . datepickerMode = m . modes [ m . modes . indexOf ( a . datepickerMode ) + b ] ) } ; a . keys = { 13 : "enter" , 32 : "space" , 33 : "pageup" , 34 : "pagedown" , 35 : "end" , 36 : "home" , 37 : "left" , 38 : "up" , 39 : "right" , 40 : "down" } ; a . $on ( "uib:datepicker.focus" , function ( ) { m . element [ 0 ] . focus ( ) } ) ; a . keydown = function ( b ) { var c = a . keys [ b . which ] ;
! c || b . shiftKey || b . altKey || ( ( b . preventDefault ( ) , m . shortcutPropagation || b . stopPropagation ( ) , "enter" === c || "space" === c ) ? m . isDisabled ( m . activeDate ) || a . select ( m . activeDate ) : ! b . ctrlKey || "up" !== c && "down" !== c ? ( m . handleKeyDown ( c , b ) , m . refreshView ( ) ) : a . toggleMode ( "up" === c ? 1 : - 1 ) ) } } ] ) . directive ( "datepicker" , [ "$log" , "$datepickerSuppressWarning" , function ( a , l ) { return { replace : ! 0 , templateUrl : function ( a , e ) { return e . templateUrl || "template/datepicker/datepicker.html" } , scope : { datepickerMode : "=?" , dateDisabled : "&" , customClass : "&" ,
shortcutPropagation : "&?" } , require : [ "datepicker" , "^ngModel" ] , controller : "DatepickerController" , controllerAs : "datepicker" , link : function ( h , e , c , b ) { l || a . warn ( "datepicker is now deprecated. Use uib-datepicker instead." ) ; b [ 0 ] . init ( b [ 1 ] ) } } } ] ) . directive ( "daypicker" , [ "$log" , "$datepickerSuppressWarning" , function ( a , l ) { return { replace : ! 0 , templateUrl : "template/datepicker/day.html" , require : [ "^datepicker" , "daypicker" ] , controller : "UibDaypickerController" , link : function ( h , e , c , b ) { l || a . warn ( "daypicker is now deprecated. Use uib-daypicker instead." ) ;
b [ 1 ] . init ( b [ 0 ] ) } } } ] ) . directive ( "monthpicker" , [ "$log" , "$datepickerSuppressWarning" , function ( a , l ) { return { replace : ! 0 , templateUrl : "template/datepicker/month.html" , require : [ "^datepicker" , "monthpicker" ] , controller : "UibMonthpickerController" , link : function ( h , e , c , b ) { l || a . warn ( "monthpicker is now deprecated. Use uib-monthpicker instead." ) ; b [ 1 ] . init ( b [ 0 ] ) } } } ] ) . directive ( "yearpicker" , [ "$log" , "$datepickerSuppressWarning" , function ( a , l ) { return { replace : ! 0 , templateUrl : "template/datepicker/year.html" , require : [ "^datepicker" ,
"yearpicker" ] , controller : "UibYearpickerController" , link : function ( h , e , c , b ) { l || a . warn ( "yearpicker is now deprecated. Use uib-yearpicker instead." ) ; h = b [ 0 ] ; angular . extend ( h , b [ 1 ] ) ; h . yearpickerInit ( ) ; h . refreshView ( ) } } } ] ) . directive ( "datepickerPopup" , [ "$log" , "$datepickerSuppressWarning" , function ( a , l ) { return { require : [ "ngModel" , "datepickerPopup" ] , controller : "UibDatepickerPopupController" , scope : { isOpen : "=?" , currentText : "@" , clearText : "@" , closeText : "@" , dateDisabled : "&" , customClass : "&" } , link : function ( h , e , c , b ) { l ||
a . warn ( "datepicker-popup is now deprecated. Use uib-datepicker-popup instead." ) ; b [ 1 ] . init ( b [ 0 ] ) } } } ] ) . directive ( "datepickerPopupWrap" , [ "$log" , "$datepickerSuppressWarning" , function ( a , l ) { return { replace : ! 0 , transclude : ! 0 , templateUrl : function ( a , e ) { return e . templateUrl || "template/datepicker/popup.html" } , link : function ( ) { l || a . warn ( "datepicker-popup-wrap is now deprecated. Use uib-datepicker-popup-wrap instead." ) } } } ] ) ;
angular . module ( "ui.bootstrap.dropdown" , [ "ui.bootstrap.position" ] ) . constant ( "uibDropdownConfig" , { openClass : "open" } ) . service ( "uibDropdownService" , [ "$document" , "$rootScope" , function ( a , l ) { var h = null ; this . open = function ( b ) { h || ( a . bind ( "click" , e ) , a . bind ( "keydown" , c ) ) ; h && h !== b && ( h . isOpen = ! 1 ) ; h = b } ; this . close = function ( b ) { h === b && ( h = null , a . unbind ( "click" , e ) , a . unbind ( "keydown" , c ) ) } ; var e = function ( a ) { if ( h && ( ! a || "disabled" !== h . getAutoClose ( ) ) ) { var b = h . getToggleElement ( ) ; a && b && b [ 0 ] . contains ( a . target ) || ( b = h . getDropdownElement ( ) ,
a && "outsideClick" === h . getAutoClose ( ) && b && b [ 0 ] . contains ( a . target ) || ( h . isOpen = ! 1 , l . $$phase || h . $apply ( ) ) ) } } , c = function ( a ) { 27 === a . which ? ( h . focusToggleElement ( ) , e ( ) ) : h . isKeynavEnabled ( ) && /(38|40)/ . test ( a . which ) && h . isOpen && ( a . preventDefault ( ) , a . stopPropagation ( ) , h . focusDropdownEntry ( a . which ) ) } } ] ) . controller ( "UibDropdownController" , [ "$scope" , "$element" , "$attrs" , "$parse" , "uibDropdownConfig" , "uibDropdownService" , "$animate" , "$uibPosition" , "$document" , "$compile" , "$templateRequest" , function ( a , l , h , e , c , b , g , f , q ,
m , n ) { var t , x , r = this , y = a . $new ( ) , C = c . openClass , A = angular . noop , E = h . onToggle ? e ( h . onToggle ) : angular . noop , F = ! 1 , p = ! 1 ; l . addClass ( "dropdown" ) ; this . init = function ( ) { h . isOpen && ( x = e ( h . isOpen ) , A = x . assign , a . $watch ( x , function ( a ) { y . isOpen = ! ! a } ) ) ; F = angular . isDefined ( h . dropdownAppendToBody ) ; p = angular . isDefined ( h . uibKeyboardNav ) ; F && r . dropdownMenu && ( q . find ( "body" ) . append ( r . dropdownMenu ) , l . on ( "$destroy" , function ( ) { r . dropdownMenu . remove ( ) } ) ) } ; this . toggle = function ( a ) { return y . isOpen = arguments . length ? ! ! a : ! y . isOpen } ; this . isOpen =
function ( ) { return y . isOpen } ; y . getToggleElement = function ( ) { return r . toggleElement } ; y . getAutoClose = function ( ) { return h . autoClose || "always" } ; y . getElement = function ( ) { return l } ; y . isKeynavEnabled = function ( ) { return p } ; y . focusDropdownEntry = function ( a ) { var b = r . dropdownMenu ? angular . element ( r . dropdownMenu ) . find ( "a" ) : angular . element ( l ) . find ( "ul" ) . eq ( 0 ) . find ( "a" ) ; switch ( a ) { case 40 : angular . isNumber ( r . selectedOption ) ? r . selectedOption = r . selectedOption === b . length - 1 ? r . selectedOption : r . selectedOption + 1 : r . selectedOption =
0 ; break ; case 38 : angular . isNumber ( r . selectedOption ) ? r . selectedOption = 0 === r . selectedOption ? 0 : r . selectedOption - 1 : r . selectedOption = b . length - 1 } b [ r . selectedOption ] . focus ( ) } ; y . getDropdownElement = function ( ) { return r . dropdownMenu } ; y . focusToggleElement = function ( ) { r . toggleElement && r . toggleElement [ 0 ] . focus ( ) } ; y . $watch ( "isOpen" , function ( c , e ) { if ( F && r . dropdownMenu ) { var h = f . positionElements ( l , r . dropdownMenu , "bottom-left" , ! 0 ) , q = { top : h . top + "px" , display : c ? "block" : "none" } ; r . dropdownMenu . hasClass ( "dropdown-menu-right" ) ?
( q . left = "auto" , q . right = window . innerWidth - ( h . left + l . prop ( "offsetWidth" ) ) + "px" ) : ( q . left = h . left + "px" , q . right = "auto" ) ; r . dropdownMenu . css ( q ) } ( g [ c ? "addClass" : "removeClass" ] ( l , C ) . then ( function ( ) { angular . isDefined ( c ) && c !== e && E ( a , { open : ! ! c } ) } ) , c ) ? ( r . dropdownMenuTemplateUrl && n ( r . dropdownMenuTemplateUrl ) . then ( function ( a ) { t = y . $new ( ) ; m ( a . trim ( ) ) ( t , function ( a ) { r . dropdownMenu . replaceWith ( a ) ; r . dropdownMenu = a } ) } ) , y . focusToggleElement ( ) , b . open ( y ) ) : ( r . dropdownMenuTemplateUrl && ( t && t . $destroy ( ) , h = angular . element ( '<ul class="dropdown-menu"></ul>' ) ,
r . dropdownMenu . replaceWith ( h ) , r . dropdownMenu = h ) , b . close ( y ) , r . selectedOption = null ) ; angular . isFunction ( A ) && A ( a , c ) } ) ; a . $on ( "$locationChangeSuccess" , function ( ) { "disabled" !== y . getAutoClose ( ) && ( y . isOpen = ! 1 ) } ) ; c = a . $on ( "$destroy" , function ( ) { y . $destroy ( ) } ) ; y . $on ( "$destroy" , c ) } ] ) . directive ( "uibDropdown" , function ( ) { return { controller : "UibDropdownController" , link : function ( a , l , h , e ) { e . init ( ) } } } ) . directive ( "uibDropdownMenu" , function ( ) { return { restrict : "AC" , require : "?^uibDropdown" , link : function ( a , l , h , e ) { e && ! angular . isDefined ( h . dropdownNested ) &&
( l . addClass ( "dropdown-menu" ) , ( a = h . templateUrl ) && ( e . dropdownMenuTemplateUrl = a ) , e . dropdownMenu || ( e . dropdownMenu = l ) ) } } } ) . directive ( "uibKeyboardNav" , function ( ) { return { restrict : "A" , require : "?^uibDropdown" , link : function ( a , l , h , e ) { l . bind ( "keydown" , function ( a ) { if ( - 1 !== [ 38 , 40 ] . indexOf ( a . which ) ) { a . preventDefault ( ) ; a . stopPropagation ( ) ; var b = e . dropdownMenu . find ( "a" ) ; switch ( a . which ) { case 40 : angular . isNumber ( e . selectedOption ) ? e . selectedOption = e . selectedOption === b . length - 1 ? e . selectedOption : e . selectedOption + 1 : e . selectedOption =
0 ; break ; case 38 : angular . isNumber ( e . selectedOption ) ? e . selectedOption = 0 === e . selectedOption ? 0 : e . selectedOption - 1 : e . selectedOption = b . length - 1 } b [ e . selectedOption ] . focus ( ) } } ) } } } ) . directive ( "uibDropdownToggle" , function ( ) { return { require : "?^uibDropdown" , link : function ( a , l , h , e ) { if ( e ) { l . addClass ( "dropdown-toggle" ) ; e . toggleElement = l ; var c = function ( b ) { b . preventDefault ( ) ; l . hasClass ( "disabled" ) || h . disabled || a . $apply ( function ( ) { e . toggle ( ) } ) } ; l . bind ( "click" , c ) ; l . attr ( { "aria-haspopup" : ! 0 , "aria-expanded" : ! 1 } ) ; a . $watch ( e . isOpen ,
function ( a ) { l . attr ( "aria-expanded" , ! ! a ) } ) ; a . $on ( "$destroy" , function ( ) { l . unbind ( "click" , c ) } ) } } } } ) ;
angular . module ( "ui.bootstrap.dropdown" ) . value ( "$dropdownSuppressWarning" , ! 1 ) . service ( "dropdownService" , [ "$log" , "$dropdownSuppressWarning" , "uibDropdownService" , function ( a , l , h ) { l || a . warn ( "dropdownService is now deprecated. Use uibDropdownService instead." ) ; angular . extend ( this , h ) } ] ) . controller ( "DropdownController" , [ "$scope" , "$element" , "$attrs" , "$parse" , "uibDropdownConfig" , "uibDropdownService" , "$animate" , "$uibPosition" , "$document" , "$compile" , "$templateRequest" , "$log" , "$dropdownSuppressWarning" , function ( a ,
l , h , e , c , b , g , f , q , m , n , t , x ) { x || t . warn ( "DropdownController is now deprecated. Use UibDropdownController instead." ) ; var r , y , C = this , A = a . $new ( ) , E = c . openClass , F = angular . noop , p = h . onToggle ? e ( h . onToggle ) : angular . noop , v = ! 1 , I = ! 1 ; l . addClass ( "dropdown" ) ; this . init = function ( ) { h . isOpen && ( y = e ( h . isOpen ) , F = y . assign , a . $watch ( y , function ( a ) { A . isOpen = ! ! a } ) ) ; v = angular . isDefined ( h . dropdownAppendToBody ) ; I = angular . isDefined ( h . uibKeyboardNav ) ; v && C . dropdownMenu && ( q . find ( "body" ) . append ( C . dropdownMenu ) , l . on ( "$destroy" , function ( ) { C . dropdownMenu . remove ( ) } ) ) } ;
this . toggle = function ( a ) { return A . isOpen = arguments . length ? ! ! a : ! A . isOpen } ; this . isOpen = function ( ) { return A . isOpen } ; A . getToggleElement = function ( ) { return C . toggleElement } ; A . getAutoClose = function ( ) { return h . autoClose || "always" } ; A . getElement = function ( ) { return l } ; A . isKeynavEnabled = function ( ) { return I } ; A . focusDropdownEntry = function ( a ) { var b = C . dropdownMenu ? angular . element ( C . dropdownMenu ) . find ( "a" ) : angular . element ( l ) . find ( "ul" ) . eq ( 0 ) . find ( "a" ) ; switch ( a ) { case 40 : angular . isNumber ( C . selectedOption ) ? C . selectedOption =
C . selectedOption === b . length - 1 ? C . selectedOption : C . selectedOption + 1 : C . selectedOption = 0 ; break ; case 38 : angular . isNumber ( C . selectedOption ) ? C . selectedOption = 0 === C . selectedOption ? 0 : C . selectedOption - 1 : C . selectedOption = b . length - 1 } b [ C . selectedOption ] . focus ( ) } ; A . getDropdownElement = function ( ) { return C . dropdownMenu } ; A . focusToggleElement = function ( ) { C . toggleElement && C . toggleElement [ 0 ] . focus ( ) } ; A . $watch ( "isOpen" , function ( c , e ) { if ( v && C . dropdownMenu ) { var h = f . positionElements ( l , C . dropdownMenu , "bottom-left" , ! 0 ) , q = { top : h . top +
"px" , display : c ? "block" : "none" } ; C . dropdownMenu . hasClass ( "dropdown-menu-right" ) ? ( q . left = "auto" , q . right = window . innerWidth - ( h . left + l . prop ( "offsetWidth" ) ) + "px" ) : ( q . left = h . left + "px" , q . right = "auto" ) ; C . dropdownMenu . css ( q ) } ( g [ c ? "addClass" : "removeClass" ] ( l , E ) . then ( function ( ) { angular . isDefined ( c ) && c !== e && p ( a , { open : ! ! c } ) } ) , c ) ? ( C . dropdownMenuTemplateUrl && n ( C . dropdownMenuTemplateUrl ) . then ( function ( a ) { r = A . $new ( ) ; m ( a . trim ( ) ) ( r , function ( a ) { C . dropdownMenu . replaceWith ( a ) ; C . dropdownMenu = a } ) } ) , A . focusToggleElement ( ) ,
b . open ( A ) ) : ( C . dropdownMenuTemplateUrl && ( r && r . $destroy ( ) , h = angular . element ( '<ul class="dropdown-menu"></ul>' ) , C . dropdownMenu . replaceWith ( h ) , C . dropdownMenu = h ) , b . close ( A ) , C . selectedOption = null ) ; angular . isFunction ( F ) && F ( a , c ) } ) ; a . $on ( "$locationChangeSuccess" , function ( ) { "disabled" !== A . getAutoClose ( ) && ( A . isOpen = ! 1 ) } ) ; c = a . $on ( "$destroy" , function ( ) { A . $destroy ( ) } ) ; A . $on ( "$destroy" , c ) } ] ) . directive ( "dropdown" , [ "$log" , "$dropdownSuppressWarning" , function ( a , l ) { return { controller : "DropdownController" , link : function ( h ,
e , c , b ) { l || a . warn ( "dropdown is now deprecated. Use uib-dropdown instead." ) ; b . init ( ) } } } ] ) . directive ( "dropdownMenu" , [ "$log" , "$dropdownSuppressWarning" , function ( a , l ) { return { restrict : "AC" , require : "?^dropdown" , link : function ( h , e , c , b ) { b && ! angular . isDefined ( c . dropdownNested ) && ( l || a . warn ( "dropdown-menu is now deprecated. Use uib-dropdown-menu instead." ) , e . addClass ( "dropdown-menu" ) , ( h = c . templateUrl ) && ( b . dropdownMenuTemplateUrl = h ) , b . dropdownMenu || ( b . dropdownMenu = e ) ) } } } ] ) . directive ( "keyboardNav" , [ "$log" , "$dropdownSuppressWarning" ,
function ( a , l ) { return { restrict : "A" , require : "?^dropdown" , link : function ( h , e , c , b ) { l || a . warn ( "keyboard-nav is now deprecated. Use uib-keyboard-nav instead." ) ; e . bind ( "keydown" , function ( a ) { if ( - 1 !== [ 38 , 40 ] . indexOf ( a . which ) ) { a . preventDefault ( ) ; a . stopPropagation ( ) ; var c = b . dropdownMenu . find ( "a" ) ; switch ( a . which ) { case 40 : angular . isNumber ( b . selectedOption ) ? b . selectedOption = b . selectedOption === c . length - 1 ? b . selectedOption : b . selectedOption + 1 : b . selectedOption = 0 ; break ; case 38 : angular . isNumber ( b . selectedOption ) ? b . selectedOption =
0 === b . selectedOption ? 0 : b . selectedOption - 1 : b . selectedOption = c . length - 1 } c [ b . selectedOption ] . focus ( ) } } ) } } } ] ) . directive ( "dropdownToggle" , [ "$log" , "$dropdownSuppressWarning" , function ( a , l ) { return { require : "?^dropdown" , link : function ( h , e , c , b ) { if ( l || a . warn ( "dropdown-toggle is now deprecated. Use uib-dropdown-toggle instead." ) , b ) { e . addClass ( "dropdown-toggle" ) ; b . toggleElement = e ; var g = function ( a ) { a . preventDefault ( ) ; e . hasClass ( "disabled" ) || c . disabled || h . $apply ( function ( ) { b . toggle ( ) } ) } ; e . bind ( "click" , g ) ; e . attr ( { "aria-haspopup" : ! 0 ,
"aria-expanded" : ! 1 } ) ; h . $watch ( b . isOpen , function ( a ) { e . attr ( "aria-expanded" , ! ! a ) } ) ; h . $on ( "$destroy" , function ( ) { e . unbind ( "click" , g ) } ) } } } } ] ) ;
angular . module ( "ui.bootstrap.stackedMap" , [ ] ) . factory ( "$$stackedMap" , function ( ) { return { createNew : function ( ) { var a = [ ] ; return { add : function ( l , h ) { a . push ( { key : l , value : h } ) } , get : function ( l ) { for ( var h = 0 ; h < a . length ; h ++ ) if ( l == a [ h ] . key ) return a [ h ] } , keys : function ( ) { for ( var l = [ ] , h = 0 ; h < a . length ; h ++ ) l . push ( a [ h ] . key ) ; return l } , top : function ( ) { return a [ a . length - 1 ] } , remove : function ( l ) { for ( var h = - 1 , e = 0 ; e < a . length ; e ++ ) if ( l == a [ e ] . key ) { h = e ; break } return a . splice ( h , 1 ) [ 0 ] } , removeTop : function ( ) { return a . splice ( a . length - 1 , 1 ) [ 0 ] } ,
length : function ( ) { return a . length } } } } } ) ;
angular . module ( "ui.bootstrap.modal" , [ "ui.bootstrap.stackedMap" ] ) . factory ( "$$multiMap" , function ( ) { return { createNew : function ( ) { var a = { } ; return { entries : function ( ) { return Object . keys ( a ) . map ( function ( l ) { return { key : l , value : a [ l ] } } ) } , get : function ( l ) { return a [ l ] } , hasKey : function ( l ) { return ! ! a [ l ] } , keys : function ( ) { return Object . keys ( a ) } , put : function ( l , h ) { a [ l ] || ( a [ l ] = [ ] ) ; a [ l ] . push ( h ) } , remove : function ( l , h ) { var e = a [ l ] ; if ( e ) { var c = e . indexOf ( h ) ; - 1 !== c && e . splice ( c , 1 ) ; e . length || delete a [ l ] } } } } } } ) . directive ( "uibModalBackdrop" ,
[ "$animate" , "$injector" , "$uibModalStack" , function ( a , l , h ) { function e ( b , e , f ) { e . addClass ( "modal-backdrop" ) ; f . modalInClass && ( c ? c ( e , { addClass : f . modalInClass } ) . start ( ) : a . addClass ( e , f . modalInClass ) , b . $on ( h . NOW _CLOSING _EVENT , function ( b , g ) { var h = g ( ) ; c ? c ( e , { removeClass : f . modalInClass } ) . start ( ) . then ( h ) : a . removeClass ( e , f . modalInClass ) . then ( h ) } ) ) } var c = null ; return l . has ( "$animateCss" ) && ( c = l . get ( "$animateCss" ) ) , { replace : ! 0 , templateUrl : "template/modal/backdrop.html" , compile : function ( a , c ) { return a . addClass ( c . backdropClass ) ,
e } } } ] ) . directive ( "uibModalWindow" , [ "$uibModalStack" , "$q" , "$animate" , "$injector" , function ( a , l , h , e ) { var c = null ; return e . has ( "$animateCss" ) && ( c = e . get ( "$animateCss" ) ) , { scope : { index : "@" } , replace : ! 0 , transclude : ! 0 , templateUrl : function ( a , c ) { return c . templateUrl || "template/modal/window.html" } , link : function ( b , e , f ) { e . addClass ( f . windowClass || "" ) ; e . addClass ( f . windowTopClass || "" ) ; b . size = f . size ; b . close = function ( b ) { var c = a . getTop ( ) ; c && c . value . backdrop && "static" !== c . value . backdrop && b . target === b . currentTarget && ( b . preventDefault ( ) ,
b . stopPropagation ( ) , a . dismiss ( c . key , "backdrop click" ) ) } ; e . on ( "click" , b . close ) ; b . $isRendered = ! 0 ; var g = l . defer ( ) ; f . $observe ( "modalRender" , function ( a ) { "true" == a && g . resolve ( ) } ) ; g . promise . then ( function ( ) { var g = null ; f . modalInClass && ( g = c ? c ( e , { addClass : f . modalInClass } ) . start ( ) : h . addClass ( e , f . modalInClass ) , b . $on ( a . NOW _CLOSING _EVENT , function ( a , b ) { var g = b ( ) ; c ? c ( e , { removeClass : f . modalInClass } ) . start ( ) . then ( g ) : h . removeClass ( e , f . modalInClass ) . then ( g ) } ) ) ; l . when ( g ) . then ( function ( ) { var a = e [ 0 ] . querySelector ( "[autofocus]" ) ;
a ? a . focus ( ) : e [ 0 ] . focus ( ) } ) ; ( g = a . getTop ( ) ) && a . modalRendered ( g . key ) } ) } } } ] ) . directive ( "uibModalAnimationClass" , function ( ) { return { compile : function ( a , l ) { l . modalAnimation && a . addClass ( l . uibModalAnimationClass ) } } } ) . directive ( "uibModalTransclude" , function ( ) { return { link : function ( a , l , h , e , c ) { c ( a . $parent , function ( a ) { l . empty ( ) ; l . append ( a ) } ) } } } ) . factory ( "$uibModalStack" , [ "$animate" , "$timeout" , "$document" , "$compile" , "$rootScope" , "$q" , "$injector" , "$$multiMap" , "$$stackedMap" , function ( a , l , h , e , c , b , g , f , q ) { function m ( ) { for ( var a =
- 1 , b = p . keys ( ) , c = 0 ; c < b . length ; c ++ ) p . get ( b [ c ] ) . value . backdrop && ( a = c ) ; return a } function n ( a , b ) { var c = h . find ( "body" ) . eq ( 0 ) , e = p . get ( a ) . value ; p . remove ( a ) ; r ( e . modalDomEl , e . modalScope , function ( ) { var b = e . openedClass || F ; v . remove ( b , a ) ; c . toggleClass ( b , v . hasKey ( b ) ) ; t ( ! 0 ) } ) ; x ( ) ; b && b . focus ? b . focus ( ) : c . focus ( ) } function t ( a ) { var b ; 0 < p . length ( ) && ( b = p . top ( ) . value , b . modalDomEl . toggleClass ( b . windowTopClass || "" , a ) ) } function x ( ) { C && - 1 == m ( ) && ( r ( C , A , function ( ) { } ) , A = C = void 0 ) } function r ( c , e , f ) { function g ( ) { g . done || ( g . done =
! 0 , y ? y ( c , { event : "leave" } ) . start ( ) . then ( function ( ) { c . remove ( ) } ) : a . leave ( c ) , e . $destroy ( ) , f && f ( ) ) } var h , m = null ; return e . $broadcast ( I . NOW _CLOSING _EVENT , function ( ) { return h || ( h = b . defer ( ) , m = h . promise ) , function ( ) { h . resolve ( ) } } ) , b . when ( m ) . then ( g ) } var y = null ; g . has ( "$animateCss" ) && ( y = g . get ( "$animateCss" ) ) ; var C , A , E , F = "modal-open" , p = q . createNew ( ) , v = f . createNew ( ) , I = { NOW _CLOSING _EVENT : "modal.stack.now-closing" } ; return c . $watch ( m , function ( a ) { A && ( A . index = a ) } ) , h . bind ( "keydown" , function ( a ) { if ( a . isDefaultPrevented ( ) ) return a ;
var b = p . top ( ) ; if ( b && b . value . keyboard ) switch ( a . which ) { case 27 : a . preventDefault ( ) ; c . $apply ( function ( ) { I . dismiss ( b . key , "escape key press" ) } ) ; break ; case 9 : I . loadFocusElementList ( b ) ; var e = ! 1 ; a . shiftKey ? I . isFocusInFirstItem ( a ) && ( e = I . focusLastFocusableElement ( ) ) : I . isFocusInLastItem ( a ) && ( e = I . focusFirstFocusableElement ( ) ) ; e && ( a . preventDefault ( ) , a . stopPropagation ( ) ) } } ) , I . open = function ( a , b ) { var f = h [ 0 ] . activeElement , g = b . openedClass || F ; t ( ! 1 ) ; p . add ( a , { deferred : b . deferred , renderDeferred : b . renderDeferred , modalScope : b . scope ,
backdrop : b . backdrop , keyboard : b . keyboard , openedClass : b . openedClass , windowTopClass : b . windowTopClass } ) ; v . put ( g , a ) ; var l = h . find ( "body" ) . eq ( 0 ) , n = m ( ) ; 0 <= n && ! C && ( A = c . $new ( ! 0 ) , A . index = n , n = angular . element ( '<div uib-modal-backdrop="modal-backdrop"></div>' ) , n . attr ( "backdrop-class" , b . backdropClass ) , b . animation && n . attr ( "modal-animation" , "true" ) , C = e ( n ) ( A ) , l . append ( C ) ) ; n = angular . element ( '<div uib-modal-window="modal-window"></div>' ) ; n . attr ( { "template-url" : b . windowTemplateUrl , "window-class" : b . windowClass , "window-top-class" : b . windowTopClass ,
size : b . size , index : p . length ( ) - 1 , animate : "animate" } ) . html ( b . content ) ; b . animation && n . attr ( "modal-animation" , "true" ) ; n = e ( n ) ( b . scope ) ; p . top ( ) . value . modalDomEl = n ; p . top ( ) . value . modalOpener = f ; l . append ( n ) ; l . addClass ( g ) ; I . clearFocusListCache ( ) } , I . close = function ( a , b ) { var c = p . get ( a ) ; return c && ! c . value . modalScope . $broadcast ( "modal.closing" , b , ! 0 ) . defaultPrevented ? ( c . value . modalScope . $$uibDestructionScheduled = ! 0 , c . value . deferred . resolve ( b ) , n ( a , c . value . modalOpener ) , ! 0 ) : ! c } , I . dismiss = function ( a , b ) { var c = p . get ( a ) ;
return c && ! c . value . modalScope . $broadcast ( "modal.closing" , b , ! 1 ) . defaultPrevented ? ( c . value . modalScope . $$uibDestructionScheduled = ! 0 , c . value . deferred . reject ( b ) , n ( a , c . value . modalOpener ) , ! 0 ) : ! c } , I . dismissAll = function ( a ) { for ( var b = this . getTop ( ) ; b && this . dismiss ( b . key , a ) ; ) b = this . getTop ( ) } , I . getTop = function ( ) { return p . top ( ) } , I . modalRendered = function ( a ) { ( a = p . get ( a ) ) && a . value . renderDeferred . resolve ( ) } , I . focusFirstFocusableElement = function ( ) { return 0 < E . length && ( E [ 0 ] . focus ( ) , ! 0 ) } , I . focusLastFocusableElement = function ( ) { return 0 <
E . length && ( E [ E . length - 1 ] . focus ( ) , ! 0 ) } , I . isFocusInFirstItem = function ( a ) { return 0 < E . length && ( a . target || a . srcElement ) == E [ 0 ] } , I . isFocusInLastItem = function ( a ) { return 0 < E . length && ( a . target || a . srcElement ) == E [ E . length - 1 ] } , I . clearFocusListCache = function ( ) { E = [ ] } , I . loadFocusElementList = function ( a ) { void 0 !== E && E . length || ! a || ( a = a . value . modalDomEl ) && a . length && ( E = a [ 0 ] . querySelectorAll ( "a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]" ) ) } ,
I } ] ) . provider ( "$uibModal" , function ( ) { var a = { options : { animation : ! 0 , backdrop : ! 0 , keyboard : ! 0 } , $get : [ "$injector" , "$rootScope" , "$q" , "$templateRequest" , "$controller" , "$uibModalStack" , "$modalSuppressWarning" , "$log" , function ( l , h , e , c , b , g , f , q ) { function m ( a ) { return a . template ? e . when ( a . template ) : c ( angular . isFunction ( a . templateUrl ) ? a . templateUrl ( ) : a . templateUrl ) } function n ( a ) { var b = [ ] ; return angular . forEach ( a , function ( a ) { angular . isFunction ( a ) || angular . isArray ( a ) ? b . push ( e . when ( l . invoke ( a ) ) ) : angular . isString ( a ) ?
b . push ( e . when ( l . get ( a ) ) ) : b . push ( e . when ( a ) ) } ) , b } var t = { } , x = null ; return t . getPromiseChain = function ( ) { return x } , t . open = function ( c ) { function l ( ) { return v } var r = e . defer ( ) , t = e . defer ( ) , E = e . defer ( ) , F = { result : r . promise , opened : t . promise , rendered : E . promise , close : function ( a ) { return g . close ( F , a ) } , dismiss : function ( a ) { return g . dismiss ( F , a ) } } ; if ( c = angular . extend ( { } , a . options , c ) , c . resolve = c . resolve || { } , ! c . template && ! c . templateUrl ) throw Error ( "One of template or templateUrl options is required." ) ; var p , v = e . all ( [ m ( c ) ] . concat ( n ( c . resolve ) ) ) ;
return p = x = e . all ( [ x ] ) . then ( l , l ) . then ( function ( a ) { var e = ( c . scope || h ) . $new ( ) ; e . $close = F . close ; e . $dismiss = F . dismiss ; e . $on ( "$destroy" , function ( ) { e . $$uibDestructionScheduled || e . $dismiss ( "$uibUnscheduledDestruction" ) } ) ; var m , l = { } , n = 1 ; c . controller && ( l . $scope = e , l . $uibModalInstance = F , Object . defineProperty ( l , "$modalInstance" , { get : function ( ) { return f || q . warn ( "$modalInstance is now deprecated. Use $uibModalInstance instead." ) , F } } ) , angular . forEach ( c . resolve , function ( b , c ) { l [ c ] = a [ n ++ ] } ) , m = b ( c . controller , l ) , c . controllerAs &&
( c . bindToController && angular . extend ( m , e ) , e [ c . controllerAs ] = m ) ) ; g . open ( F , { scope : e , deferred : r , renderDeferred : E , content : a [ 0 ] , animation : c . animation , backdrop : c . backdrop , keyboard : c . keyboard , backdropClass : c . backdropClass , windowTopClass : c . windowTopClass , windowClass : c . windowClass , windowTemplateUrl : c . windowTemplateUrl , size : c . size , openedClass : c . openedClass } ) ; t . resolve ( ! 0 ) } , function ( a ) { t . reject ( a ) ; r . reject ( a ) } ) [ "finally" ] ( function ( ) { x === p && ( x = null ) } ) , F } , t } ] } ; return a } ) ;
angular . module ( "ui.bootstrap.modal" ) . value ( "$modalSuppressWarning" , ! 1 ) . directive ( "modalBackdrop" , [ "$animate" , "$injector" , "$modalStack" , "$log" , "$modalSuppressWarning" , function ( a , l , h , e , c ) { function b ( b , l , m ) { c || e . warn ( "modal-backdrop is now deprecated. Use uib-modal-backdrop instead." ) ; l . addClass ( "modal-backdrop" ) ; m . modalInClass && ( g ? g ( l , { addClass : m . modalInClass } ) . start ( ) : a . addClass ( l , m . modalInClass ) , b . $on ( h . NOW _CLOSING _EVENT , function ( b , c ) { var e = c ( ) ; g ? g ( l , { removeClass : m . modalInClass } ) . start ( ) . then ( e ) :
a . removeClass ( l , m . modalInClass ) . then ( e ) } ) ) } var g = null ; return l . has ( "$animateCss" ) && ( g = l . get ( "$animateCss" ) ) , { replace : ! 0 , templateUrl : "template/modal/backdrop.html" , compile : function ( a , c ) { return a . addClass ( c . backdropClass ) , b } } } ] ) . directive ( "modalWindow" , [ "$modalStack" , "$q" , "$animate" , "$injector" , "$log" , "$modalSuppressWarning" , function ( a , l , h , e , c , b ) { var g = null ; return e . has ( "$animateCss" ) && ( g = e . get ( "$animateCss" ) ) , { scope : { index : "@" } , replace : ! 0 , transclude : ! 0 , templateUrl : function ( a , b ) { return b . templateUrl ||
"template/modal/window.html" } , link : function ( e , q , m ) { b || c . warn ( "modal-window is now deprecated. Use uib-modal-window instead." ) ; q . addClass ( m . windowClass || "" ) ; q . addClass ( m . windowTopClass || "" ) ; e . size = m . size ; e . close = function ( b ) { var c = a . getTop ( ) ; c && c . value . backdrop && "static" !== c . value . backdrop && b . target === b . currentTarget && ( b . preventDefault ( ) , b . stopPropagation ( ) , a . dismiss ( c . key , "backdrop click" ) ) } ; q . on ( "click" , e . close ) ; e . $isRendered = ! 0 ; var f = l . defer ( ) ; m . $observe ( "modalRender" , function ( a ) { "true" == a && f . resolve ( ) } ) ;
f . promise . then ( function ( ) { var b = null ; m . modalInClass && ( b = g ? g ( q , { addClass : m . modalInClass } ) . start ( ) : h . addClass ( q , m . modalInClass ) , e . $on ( a . NOW _CLOSING _EVENT , function ( a , b ) { var c = b ( ) ; g ? g ( q , { removeClass : m . modalInClass } ) . start ( ) . then ( c ) : h . removeClass ( q , m . modalInClass ) . then ( c ) } ) ) ; l . when ( b ) . then ( function ( ) { var a = q [ 0 ] . querySelector ( "[autofocus]" ) ; a ? a . focus ( ) : q [ 0 ] . focus ( ) } ) ; ( b = a . getTop ( ) ) && a . modalRendered ( b . key ) } ) } } } ] ) . directive ( "modalAnimationClass" , [ "$log" , "$modalSuppressWarning" , function ( a , l ) { return { compile : function ( h ,
e ) { l || a . warn ( "modal-animation-class is now deprecated. Use uib-modal-animation-class instead." ) ; e . modalAnimation && h . addClass ( e . modalAnimationClass ) } } } ] ) . directive ( "modalTransclude" , [ "$log" , "$modalSuppressWarning" , function ( a , l ) { return { link : function ( h , e , c , b , g ) { l || a . warn ( "modal-transclude is now deprecated. Use uib-modal-transclude instead." ) ; g ( h . $parent , function ( a ) { e . empty ( ) ; e . append ( a ) } ) } } } ] ) . service ( "$modalStack" , [ "$animate" , "$timeout" , "$document" , "$compile" , "$rootScope" , "$q" , "$injector" , "$$multiMap" ,
"$$stackedMap" , "$uibModalStack" , "$log" , "$modalSuppressWarning" , function ( a , l , h , e , c , b , g , f , q , m , n , t ) { t || n . warn ( "$modalStack is now deprecated. Use $uibModalStack instead." ) ; angular . extend ( this , m ) } ] ) . provider ( "$modal" , [ "$uibModalProvider" , function ( a ) { angular . extend ( this , a ) ; this . $get = [ "$injector" , "$log" , "$modalSuppressWarning" , function ( l , h , e ) { return e || h . warn ( "$modal is now deprecated. Use $uibModal instead." ) , l . invoke ( a . $get ) } ] } ] ) ;
angular . module ( "ui.bootstrap.pagination" , [ ] ) . controller ( "UibPaginationController" , [ "$scope" , "$attrs" , "$parse" , function ( a , l , h ) { var e = this , c = { $setViewValue : angular . noop } , b = l . numPages ? h ( l . numPages ) . assign : angular . noop ; this . init = function ( g , f ) { c = g ; this . config = f ; c . $render = function ( ) { e . render ( ) } ; l . itemsPerPage ? a . $parent . $watch ( h ( l . itemsPerPage ) , function ( b ) { e . itemsPerPage = parseInt ( b , 10 ) ; a . totalPages = e . calculateTotalPages ( ) } ) : this . itemsPerPage = f . itemsPerPage ; a . $watch ( "totalItems" , function ( ) { a . totalPages = e . calculateTotalPages ( ) } ) ;
a . $watch ( "totalPages" , function ( e ) { b ( a . $parent , e ) ; a . page > e ? a . selectPage ( e ) : c . $render ( ) } ) } ; this . calculateTotalPages = function ( ) { return Math . max ( ( 1 > this . itemsPerPage ? 1 : Math . ceil ( a . totalItems / this . itemsPerPage ) ) || 0 , 1 ) } ; this . render = function ( ) { a . page = parseInt ( c . $viewValue , 10 ) || 1 } ; a . selectPage = function ( b , e ) { e && e . preventDefault ( ) ; ! ( a . ngDisabled && e || a . page === b ) && 0 < b && b <= a . totalPages && ( e && e . target && e . target . blur ( ) , c . $setViewValue ( b ) , c . $render ( ) ) } ; a . getText = function ( b ) { return a [ b + "Text" ] || e . config [ b + "Text" ] } ;
a . noPrevious = function ( ) { return 1 === a . page } ; a . noNext = function ( ) { return a . page === a . totalPages } } ] ) . constant ( "uibPaginationConfig" , { itemsPerPage : 10 , boundaryLinks : ! 1 , directionLinks : ! 0 , firstText : "First" , previousText : "Previous" , nextText : "Next" , lastText : "Last" , rotate : ! 0 } ) . directive ( "uibPagination" , [ "$parse" , "uibPaginationConfig" , function ( a , l ) { return { restrict : "EA" , scope : { totalItems : "=" , firstText : "@" , previousText : "@" , nextText : "@" , lastText : "@" , ngDisabled : "=" } , require : [ "uibPagination" , "?ngModel" ] , controller : "UibPaginationController" ,
controllerAs : "pagination" , templateUrl : function ( a , e ) { return e . templateUrl || "template/pagination/pagination.html" } , replace : ! 0 , link : function ( h , e , c , b ) { var g = b [ 0 ] ; if ( e = b [ 1 ] ) { var f = angular . isDefined ( c . maxSize ) ? h . $parent . $eval ( c . maxSize ) : l . maxSize , q = angular . isDefined ( c . rotate ) ? h . $parent . $eval ( c . rotate ) : l . rotate ; h . boundaryLinks = angular . isDefined ( c . boundaryLinks ) ? h . $parent . $eval ( c . boundaryLinks ) : l . boundaryLinks ; h . directionLinks = angular . isDefined ( c . directionLinks ) ? h . $parent . $eval ( c . directionLinks ) : l . directionLinks ;
g . init ( e , l ) ; c . maxSize && h . $parent . $watch ( a ( c . maxSize ) , function ( a ) { f = parseInt ( a , 10 ) ; g . render ( ) } ) ; var m = g . render ; g . render = function ( ) { m ( ) ; if ( 0 < h . page && h . page <= h . totalPages ) { var a = h . page , b = h . totalPages , c = [ ] , e = 1 , g = b , l = angular . isDefined ( f ) && f < b ; l && ( q ? ( e = Math . max ( a - Math . floor ( f / 2 ) , 1 ) , g = e + f - 1 , g > b && ( g = b , e = g - f + 1 ) ) : ( e = ( Math . ceil ( a / f ) - 1 ) * f + 1 , g = Math . min ( e + f - 1 , b ) ) ) ; for ( var A = e ; A <= g ; A ++ ) c . push ( { number : A , text : A , active : A === a } ) ; l && ! q && ( 1 < e && c . unshift ( { number : e - 1 , text : "..." , active : ! 1 } ) , g < b && c . push ( { number : g + 1 , text : "..." ,
active : ! 1 } ) ) ; h . pages = c } } } } } } ] ) . constant ( "uibPagerConfig" , { itemsPerPage : 10 , previousText : "\u00ab Previous" , nextText : "Next \u00bb" , align : ! 0 } ) . directive ( "uibPager" , [ "uibPagerConfig" , function ( a ) { return { restrict : "EA" , scope : { totalItems : "=" , previousText : "@" , nextText : "@" , ngDisabled : "=" } , require : [ "uibPager" , "?ngModel" ] , controller : "UibPaginationController" , controllerAs : "pagination" , templateUrl : function ( a , h ) { return h . templateUrl || "template/pagination/pager.html" } , replace : ! 0 , link : function ( l , h , e , c ) { h = c [ 0 ] ; ( c = c [ 1 ] ) &&
( l . align = angular . isDefined ( e . align ) ? l . $parent . $eval ( e . align ) : a . align , h . init ( c , a ) ) } } } ] ) ;
angular . module ( "ui.bootstrap.pagination" ) . value ( "$paginationSuppressWarning" , ! 1 ) . controller ( "PaginationController" , [ "$scope" , "$attrs" , "$parse" , "$log" , "$paginationSuppressWarning" , function ( a , l , h , e , c ) { c || e . warn ( "PaginationController is now deprecated. Use UibPaginationController instead." ) ; var b = this , g = { $setViewValue : angular . noop } , f = l . numPages ? h ( l . numPages ) . assign : angular . noop ; this . init = function ( c , e ) { g = c ; this . config = e ; g . $render = function ( ) { b . render ( ) } ; l . itemsPerPage ? a . $parent . $watch ( h ( l . itemsPerPage ) ,
function ( c ) { b . itemsPerPage = parseInt ( c , 10 ) ; a . totalPages = b . calculateTotalPages ( ) } ) : this . itemsPerPage = e . itemsPerPage ; a . $watch ( "totalItems" , function ( ) { a . totalPages = b . calculateTotalPages ( ) } ) ; a . $watch ( "totalPages" , function ( b ) { f ( a . $parent , b ) ; a . page > b ? a . selectPage ( b ) : g . $render ( ) } ) } ; this . calculateTotalPages = function ( ) { return Math . max ( ( 1 > this . itemsPerPage ? 1 : Math . ceil ( a . totalItems / this . itemsPerPage ) ) || 0 , 1 ) } ; this . render = function ( ) { a . page = parseInt ( g . $viewValue , 10 ) || 1 } ; a . selectPage = function ( b , c ) { c && c . preventDefault ( ) ;
! ( a . ngDisabled && c || a . page === b ) && 0 < b && b <= a . totalPages && ( c && c . target && c . target . blur ( ) , g . $setViewValue ( b ) , g . $render ( ) ) } ; a . getText = function ( c ) { return a [ c + "Text" ] || b . config [ c + "Text" ] } ; a . noPrevious = function ( ) { return 1 === a . page } ; a . noNext = function ( ) { return a . page === a . totalPages } } ] ) . directive ( "pagination" , [ "$parse" , "uibPaginationConfig" , "$log" , "$paginationSuppressWarning" , function ( a , l , h , e ) { return { restrict : "EA" , scope : { totalItems : "=" , firstText : "@" , previousText : "@" , nextText : "@" , lastText : "@" , ngDisabled : "=" } , require : [ "pagination" ,
"?ngModel" ] , controller : "PaginationController" , controllerAs : "pagination" , templateUrl : function ( a , b ) { return b . templateUrl || "template/pagination/pagination.html" } , replace : ! 0 , link : function ( c , b , g , f ) { e || h . warn ( "pagination is now deprecated. Use uib-pagination instead." ) ; var q = f [ 0 ] ; if ( b = f [ 1 ] ) { var m = angular . isDefined ( g . maxSize ) ? c . $parent . $eval ( g . maxSize ) : l . maxSize , n = angular . isDefined ( g . rotate ) ? c . $parent . $eval ( g . rotate ) : l . rotate ; c . boundaryLinks = angular . isDefined ( g . boundaryLinks ) ? c . $parent . $eval ( g . boundaryLinks ) :
l . boundaryLinks ; c . directionLinks = angular . isDefined ( g . directionLinks ) ? c . $parent . $eval ( g . directionLinks ) : l . directionLinks ; q . init ( b , l ) ; g . maxSize && c . $parent . $watch ( a ( g . maxSize ) , function ( a ) { m = parseInt ( a , 10 ) ; q . render ( ) } ) ; var t = q . render ; q . render = function ( ) { t ( ) ; if ( 0 < c . page && c . page <= c . totalPages ) { var a = c . page , b = c . totalPages , e = [ ] , f = 1 , g = b , h = angular . isDefined ( m ) && m < b ; h && ( n ? ( f = Math . max ( a - Math . floor ( m / 2 ) , 1 ) , g = f + m - 1 , g > b && ( g = b , f = g - m + 1 ) ) : ( f = ( Math . ceil ( a / m ) - 1 ) * m + 1 , g = Math . min ( f + m - 1 , b ) ) ) ; for ( var l = f ; l <= g ; l ++ ) e . push ( { number : l ,
text : l , active : l === a } ) ; h && ! n && ( 1 < f && e . unshift ( { number : f - 1 , text : "..." , active : ! 1 } ) , g < b && e . push ( { number : g + 1 , text : "..." , active : ! 1 } ) ) ; c . pages = e } } } } } } ] ) . directive ( "pager" , [ "uibPagerConfig" , "$log" , "$paginationSuppressWarning" , function ( a , l , h ) { return { restrict : "EA" , scope : { totalItems : "=" , previousText : "@" , nextText : "@" , ngDisabled : "=" } , require : [ "pager" , "?ngModel" ] , controller : "PaginationController" , controllerAs : "pagination" , templateUrl : function ( a , c ) { return c . templateUrl || "template/pagination/pager.html" } , replace : ! 0 ,
link : function ( e , c , b , g ) { h || l . warn ( "pager is now deprecated. Use uib-pager instead." ) ; c = g [ 0 ] ; ( g = g [ 1 ] ) && ( e . align = angular . isDefined ( b . align ) ? e . $parent . $eval ( b . align ) : a . align , c . init ( g , a ) ) } } } ] ) ;
angular . module ( "ui.bootstrap.tooltip" , [ "ui.bootstrap.position" , "ui.bootstrap.stackedMap" ] ) . provider ( "$uibTooltip" , function ( ) { function a ( a ) { return a . replace ( /[A-Z]/g , function ( a , c ) { return ( c ? "-" : "" ) + a . toLowerCase ( ) } ) } var l = { placement : "top" , animation : ! 0 , popupDelay : 0 , popupCloseDelay : 0 , useContentExp : ! 1 } , h = { mouseenter : "mouseleave" , click : "click" , focus : "blur" , none : "" } , e = { } ; this . options = function ( a ) { angular . extend ( e , a ) } ; this . setTriggers = function ( a ) { angular . extend ( h , a ) } ; this . $get = [ "$window" , "$compile" , "$timeout" ,
"$document" , "$uibPosition" , "$interpolate" , "$rootScope" , "$parse" , "$$stackedMap" , function ( c , b , g , f , q , m , n , t , x ) { var r = x . createNew ( ) ; return f . on ( "keypress" , function ( a ) { 27 === a . which && ( a = r . top ( ) ) && ( a . value . close ( ) , r . removeTop ( ) ) } ) , function ( c , n , x , E ) { function A ( a ) { a = ( a || E . trigger || x ) . split ( " " ) ; var b = a . map ( function ( a ) { return h [ a ] || a } ) ; return { show : a , hide : b } } E = angular . extend ( { } , l , e , E ) ; var p = a ( c ) , v = m . startSymbol ( ) , y = m . endSymbol ( ) , C = "<div " + p + '-popup title="' + v + "title" + y + '" ' + ( E . useContentExp ? 'content-exp="contentExp()" ' :
'content="' + v + "content" + y + '" ' ) + 'placement="' + v + "placement" + y + '" popup-class="' + v + "popupClass" + y + '" animation="animation" is-open="isOpen"origin-scope="origScope" style="visibility: hidden; display: block; top: -9999px; left: -9999px;"></div>' ; return { compile : function ( a , e ) { var h = b ( C ) ; return function ( a , b , e , m ) { function l ( ) { ba . isOpen ? B ( ) : p ( ) } function p ( ) { if ( ! qb || a . $eval ( e [ n + "Enable" ] ) ) { C ( ) ; ba . title = e [ n + "Title" ] ; jb ? ba . content = jb ( a ) : ba . content = e [ c ] ; ba . popupClass = e [ n + "Class" ] ; ba . placement = angular . isDefined ( e [ n +
"Placement" ] ) ? e [ n + "Placement" ] : E . placement ; var b = parseInt ( e [ n + "PopupDelay" ] , 10 ) , f = parseInt ( e [ n + "PopupCloseDelay" ] , 10 ) ; ba . popupDelay = isNaN ( b ) ? E . popupDelay : b ; ba . popupCloseDelay = isNaN ( f ) ? E . popupCloseDelay : f ; ba . popupDelay ? V || ( V = g ( v , ba . popupDelay , ! 1 ) ) : v ( ) } } function B ( ) { x ( ) ; ba . popupCloseDelay ? X || ( X = g ( y , ba . popupCloseDelay , ! 1 ) ) : y ( ) } function v ( ) { return x ( ) , C ( ) , ba . content ? ( F ( ) , void ba . $evalAsync ( function ( ) { ba . isOpen = ! 0 ; K ( ! 0 ) ; Ta ( ) } ) ) : angular . noop } function x ( ) { V && ( g . cancel ( V ) , V = null ) ; qa && ( g . cancel ( qa ) , qa = null ) }
function y ( ) { x ( ) ; C ( ) ; ba && ba . $evalAsync ( function ( ) { ba . isOpen = ! 1 ; K ( ! 1 ) ; ba . animation ? L || ( L = g ( H , 150 , ! 1 ) ) : H ( ) } ) } function C ( ) { X && ( g . cancel ( X ) , X = null ) ; L && ( g . cancel ( L ) , L = null ) } function F ( ) { I || ( J = ba . $new ( ) , I = h ( J , function ( a ) { ra ? f . find ( "body" ) . append ( a ) : b . after ( a ) } ) , O ( ) ) } function H ( ) { T ( ) ; L = null ; I && ( I . remove ( ) , I = null ) ; J && ( J . $destroy ( ) , J = null ) } function K ( b ) { La && angular . isFunction ( La . assign ) && La . assign ( a , b ) } function O ( ) { Sa . length = 0 ; jb ? ( Sa . push ( a . $watch ( jb , function ( a ) { ba . content = a ; ! a && ba . isOpen && y ( ) } ) ) , Sa . push ( J . $watch ( function ( ) { xb ||
( xb = ! 0 , J . $$postDigest ( function ( ) { xb = ! 1 ; ba && ba . isOpen && Ta ( ) } ) ) } ) ) ) : Sa . push ( e . $observe ( c , function ( a ) { ba . content = a ; ! a && ba . isOpen ? y ( ) : Ta ( ) } ) ) ; Sa . push ( e . $observe ( n + "Title" , function ( a ) { ba . title = a ; ba . isOpen && Ta ( ) } ) ) ; Sa . push ( e . $observe ( n + "Placement" , function ( a ) { ba . placement = a ? a : E . placement ; ba . isOpen && Ta ( ) } ) ) } function T ( ) { Sa . length && ( angular . forEach ( Sa , function ( a ) { a ( ) } ) , Sa . length = 0 ) } var I , J , L , V , X , qa , ra = ! ! angular . isDefined ( E . appendToBody ) && E . appendToBody , Aa = A ( void 0 ) , qb = angular . isDefined ( e [ n + "Enable" ] ) , ba =
a . $new ( ! 0 ) , xb = ! 1 , La = ! ! angular . isDefined ( e [ n + "IsOpen" ] ) && t ( e [ n + "IsOpen" ] ) , jb = ! ! E . useContentExp && t ( e [ c ] ) , Sa = [ ] , Ta = function ( ) { I && I . html ( ) && ( qa || ( qa = g ( function ( ) { I . css ( { top : 0 , left : 0 } ) ; var a = q . positionElements ( b , I , ba . placement , ra ) ; a . top += "px" ; a . left += "px" ; a . visibility = "visible" ; I . css ( a ) ; qa = null } , 0 , ! 1 ) ) ) } ; ba . origScope = a ; ba . isOpen = ! 1 ; r . add ( ba , { close : y } ) ; ba . contentExp = function ( ) { return ba . content } ; e . $observe ( "disabled" , function ( a ) { a && x ( ) ; a && ba . isOpen && y ( ) } ) ; La && a . $watch ( La , function ( a ) { ba && ! a === ba . isOpen &&
l ( ) } ) ; var rb = function ( ) { Aa . show . forEach ( function ( a ) { b . unbind ( a , p ) } ) ; Aa . hide . forEach ( function ( a ) { a . split ( " " ) . forEach ( function ( a ) { b [ 0 ] . removeEventListener ( a , B ) } ) } ) } ; ( function ( ) { var a = e [ n + "Trigger" ] ; rb ( ) ; Aa = A ( a ) ; "none" !== Aa . show && Aa . show . forEach ( function ( a , c ) { a === Aa . hide [ c ] ? b [ 0 ] . addEventListener ( a , l ) : a && ( b [ 0 ] . addEventListener ( a , p ) , Aa . hide [ c ] . split ( " " ) . forEach ( function ( a ) { b [ 0 ] . addEventListener ( a , B ) } ) ) ; b . on ( "keypress" , function ( a ) { 27 === a . which && B ( ) } ) } ) } ) ( ) ; m = a . $eval ( e [ n + "Animation" ] ) ; ba . animation = angular . isDefined ( m ) ?
! ! m : E . animation ; m = a . $eval ( e [ n + "AppendToBody" ] ) ; ( ra = angular . isDefined ( m ) ? m : ra ) && a . $on ( "$locationChangeSuccess" , function ( ) { ba . isOpen && y ( ) } ) ; a . $on ( "$destroy" , function ( ) { x ( ) ; C ( ) ; rb ( ) ; H ( ) ; r . remove ( ba ) ; ba = null } ) } } } } } ] } ) . directive ( "uibTooltipTemplateTransclude" , [ "$animate" , "$sce" , "$compile" , "$templateRequest" , function ( a , l , h , e ) { return { link : function ( c , b , g ) { var f , q , m , n = c . $eval ( g . tooltipTemplateTranscludeScope ) , t = 0 , x = function ( ) { q && ( q . remove ( ) , q = null ) ; f && ( f . $destroy ( ) , f = null ) ; m && ( a . leave ( m ) . then ( function ( ) { q =
null } ) , q = m , m = null ) } ; c . $watch ( l . parseAsResourceUrl ( g . uibTooltipTemplateTransclude ) , function ( g ) { var l = ++ t ; g ? ( e ( g , ! 0 ) . then ( function ( c ) { if ( l === t ) { var e = n . $new ( ) ; c = h ( c ) ( e , function ( c ) { x ( ) ; a . enter ( c , b ) } ) ; f = e ; m = c ; f . $emit ( "$includeContentLoaded" , g ) } } , function ( ) { l === t && ( x ( ) , c . $emit ( "$includeContentError" , g ) ) } ) , c . $emit ( "$includeContentRequested" , g ) ) : x ( ) } ) ; c . $on ( "$destroy" , x ) } } } ] ) . directive ( "uibTooltipClasses" , function ( ) { return { restrict : "A" , link : function ( a , l , h ) { a . placement && l . addClass ( a . placement ) ; a . popupClass &&
l . addClass ( a . popupClass ) ; a . animation ( ) && l . addClass ( h . tooltipAnimationClass ) } } } ) . directive ( "uibTooltipPopup" , function ( ) { return { replace : ! 0 , scope : { content : "@" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/tooltip/tooltip-popup.html" , link : function ( a , l ) { l . addClass ( "tooltip" ) } } } ) . directive ( "uibTooltip" , [ "$uibTooltip" , function ( a ) { return a ( "uibTooltip" , "tooltip" , "mouseenter" ) } ] ) . directive ( "uibTooltipTemplatePopup" , function ( ) { return { replace : ! 0 , scope : { contentExp : "&" , placement : "@" ,
popupClass : "@" , animation : "&" , isOpen : "&" , originScope : "&" } , templateUrl : "template/tooltip/tooltip-template-popup.html" , link : function ( a , l ) { l . addClass ( "tooltip" ) } } } ) . directive ( "uibTooltipTemplate" , [ "$uibTooltip" , function ( a ) { return a ( "uibTooltipTemplate" , "tooltip" , "mouseenter" , { useContentExp : ! 0 } ) } ] ) . directive ( "uibTooltipHtmlPopup" , function ( ) { return { replace : ! 0 , scope : { contentExp : "&" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/tooltip/tooltip-html-popup.html" , link : function ( a ,
l ) { l . addClass ( "tooltip" ) } } } ) . directive ( "uibTooltipHtml" , [ "$uibTooltip" , function ( a ) { return a ( "uibTooltipHtml" , "tooltip" , "mouseenter" , { useContentExp : ! 0 } ) } ] ) ;
angular . module ( "ui.bootstrap.tooltip" ) . value ( "$tooltipSuppressWarning" , ! 1 ) . provider ( "$tooltip" , [ "$uibTooltipProvider" , function ( a ) { angular . extend ( this , a ) ; this . $get = [ "$log" , "$tooltipSuppressWarning" , "$injector" , function ( l , h , e ) { return h || l . warn ( "$tooltip is now deprecated. Use $uibTooltip instead." ) , e . invoke ( a . $get ) } ] } ] ) . directive ( "tooltipTemplateTransclude" , [ "$animate" , "$sce" , "$compile" , "$templateRequest" , "$log" , "$tooltipSuppressWarning" , function ( a , l , h , e , c , b ) { return { link : function ( g , f , q ) { b || c . warn ( "tooltip-template-transclude is now deprecated. Use uib-tooltip-template-transclude instead." ) ;
var m , n , t , x = g . $eval ( q . tooltipTemplateTranscludeScope ) , r = 0 , y = function ( ) { n && ( n . remove ( ) , n = null ) ; m && ( m . $destroy ( ) , m = null ) ; t && ( a . leave ( t ) . then ( function ( ) { n = null } ) , n = t , t = null ) } ; g . $watch ( l . parseAsResourceUrl ( q . tooltipTemplateTransclude ) , function ( b ) { var c = ++ r ; b ? ( e ( b , ! 0 ) . then ( function ( e ) { if ( c === r ) { var g = x . $new ( ) ; e = h ( e ) ( g , function ( b ) { y ( ) ; a . enter ( b , f ) } ) ; m = g ; t = e ; m . $emit ( "$includeContentLoaded" , b ) } } , function ( ) { c === r && ( y ( ) , g . $emit ( "$includeContentError" , b ) ) } ) , g . $emit ( "$includeContentRequested" , b ) ) : y ( ) } ) ; g . $on ( "$destroy" ,
y ) } } } ] ) . directive ( "tooltipClasses" , [ "$log" , "$tooltipSuppressWarning" , function ( a , l ) { return { restrict : "A" , link : function ( h , e , c ) { l || a . warn ( "tooltip-classes is now deprecated. Use uib-tooltip-classes instead." ) ; h . placement && e . addClass ( h . placement ) ; h . popupClass && e . addClass ( h . popupClass ) ; h . animation ( ) && e . addClass ( c . tooltipAnimationClass ) } } } ] ) . directive ( "tooltipPopup" , [ "$log" , "$tooltipSuppressWarning" , function ( a , l ) { return { replace : ! 0 , scope : { content : "@" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } ,
templateUrl : "template/tooltip/tooltip-popup.html" , link : function ( h , e ) { l || a . warn ( "tooltip-popup is now deprecated. Use uib-tooltip-popup instead." ) ; e . addClass ( "tooltip" ) } } } ] ) . directive ( "tooltip" , [ "$tooltip" , function ( a ) { return a ( "tooltip" , "tooltip" , "mouseenter" ) } ] ) . directive ( "tooltipTemplatePopup" , [ "$log" , "$tooltipSuppressWarning" , function ( a , l ) { return { replace : ! 0 , scope : { contentExp : "&" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" , originScope : "&" } , templateUrl : "template/tooltip/tooltip-template-popup.html" ,
link : function ( h , e ) { l || a . warn ( "tooltip-template-popup is now deprecated. Use uib-tooltip-template-popup instead." ) ; e . addClass ( "tooltip" ) } } } ] ) . directive ( "tooltipTemplate" , [ "$tooltip" , function ( a ) { return a ( "tooltipTemplate" , "tooltip" , "mouseenter" , { useContentExp : ! 0 } ) } ] ) . directive ( "tooltipHtmlPopup" , [ "$log" , "$tooltipSuppressWarning" , function ( a , l ) { return { replace : ! 0 , scope : { contentExp : "&" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/tooltip/tooltip-html-popup.html" , link : function ( h ,
e ) { l || a . warn ( "tooltip-html-popup is now deprecated. Use uib-tooltip-html-popup instead." ) ; e . addClass ( "tooltip" ) } } } ] ) . directive ( "tooltipHtml" , [ "$tooltip" , function ( a ) { return a ( "tooltipHtml" , "tooltip" , "mouseenter" , { useContentExp : ! 0 } ) } ] ) ;
angular . module ( "ui.bootstrap.popover" , [ "ui.bootstrap.tooltip" ] ) . directive ( "uibPopoverTemplatePopup" , function ( ) { return { replace : ! 0 , scope : { title : "@" , contentExp : "&" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" , originScope : "&" } , templateUrl : "template/popover/popover-template.html" , link : function ( a , l ) { l . addClass ( "popover" ) } } } ) . directive ( "uibPopoverTemplate" , [ "$uibTooltip" , function ( a ) { return a ( "uibPopoverTemplate" , "popover" , "click" , { useContentExp : ! 0 } ) } ] ) . directive ( "uibPopoverHtmlPopup" , function ( ) { return { replace : ! 0 ,
scope : { contentExp : "&" , title : "@" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/popover/popover-html.html" , link : function ( a , l ) { l . addClass ( "popover" ) } } } ) . directive ( "uibPopoverHtml" , [ "$uibTooltip" , function ( a ) { return a ( "uibPopoverHtml" , "popover" , "click" , { useContentExp : ! 0 } ) } ] ) . directive ( "uibPopoverPopup" , function ( ) { return { replace : ! 0 , scope : { title : "@" , content : "@" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/popover/popover.html" , link : function ( a ,
l ) { l . addClass ( "popover" ) } } } ) . directive ( "uibPopover" , [ "$uibTooltip" , function ( a ) { return a ( "uibPopover" , "popover" , "click" ) } ] ) ;
angular . module ( "ui.bootstrap.popover" ) . value ( "$popoverSuppressWarning" , ! 1 ) . directive ( "popoverTemplatePopup" , [ "$log" , "$popoverSuppressWarning" , function ( a , l ) { return { replace : ! 0 , scope : { title : "@" , contentExp : "&" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" , originScope : "&" } , templateUrl : "template/popover/popover-template.html" , link : function ( h , e ) { l || a . warn ( "popover-template-popup is now deprecated. Use uib-popover-template-popup instead." ) ; e . addClass ( "popover" ) } } } ] ) . directive ( "popoverTemplate" , [ "$tooltip" ,
function ( a ) { return a ( "popoverTemplate" , "popover" , "click" , { useContentExp : ! 0 } ) } ] ) . directive ( "popoverHtmlPopup" , [ "$log" , "$popoverSuppressWarning" , function ( a , l ) { return { replace : ! 0 , scope : { contentExp : "&" , title : "@" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/popover/popover-html.html" , link : function ( h , e ) { l || a . warn ( "popover-html-popup is now deprecated. Use uib-popover-html-popup instead." ) ; e . addClass ( "popover" ) } } } ] ) . directive ( "popoverHtml" , [ "$tooltip" , function ( a ) { return a ( "popoverHtml" ,
"popover" , "click" , { useContentExp : ! 0 } ) } ] ) . directive ( "popoverPopup" , [ "$log" , "$popoverSuppressWarning" , function ( a , l ) { return { replace : ! 0 , scope : { title : "@" , content : "@" , placement : "@" , popupClass : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/popover/popover.html" , link : function ( h , e ) { l || a . warn ( "popover-popup is now deprecated. Use uib-popover-popup instead." ) ; e . addClass ( "popover" ) } } } ] ) . directive ( "popover" , [ "$tooltip" , function ( a ) { return a ( "popover" , "popover" , "click" ) } ] ) ;
angular . module ( "ui.bootstrap.progressbar" , [ ] ) . constant ( "uibProgressConfig" , { animate : ! 0 , max : 100 } ) . controller ( "UibProgressController" , [ "$scope" , "$attrs" , "uibProgressConfig" , function ( a , l , h ) { var e = this , c = angular . isDefined ( l . animate ) ? a . $parent . $eval ( l . animate ) : h . animate ; this . bars = [ ] ; a . max = angular . isDefined ( a . max ) ? a . max : h . max ; this . addBar = function ( b , g , f ) { c || g . css ( { transition : "none" } ) ; this . bars . push ( b ) ; b . max = a . max ; b . title = f && angular . isDefined ( f . title ) ? f . title : "progressbar" ; b . $watch ( "value" , function ( a ) { b . recalculatePercentage ( ) } ) ;
b . recalculatePercentage = function ( ) { var a = e . bars . reduce ( function ( a , b ) { return b . percent = + ( 100 * b . value / b . max ) . toFixed ( 2 ) , a + b . percent } , 0 ) ; 100 < a && ( b . percent -= a - 100 ) } ; b . $on ( "$destroy" , function ( ) { g = null ; e . removeBar ( b ) } ) } ; this . removeBar = function ( a ) { this . bars . splice ( this . bars . indexOf ( a ) , 1 ) ; this . bars . forEach ( function ( a ) { a . recalculatePercentage ( ) } ) } ; a . $watch ( "max" , function ( b ) { e . bars . forEach ( function ( b ) { b . max = a . max ; b . recalculatePercentage ( ) } ) } ) } ] ) . directive ( "uibProgress" , function ( ) { return { replace : ! 0 , transclude : ! 0 ,
controller : "UibProgressController" , require : "uibProgress" , scope : { max : "=?" } , templateUrl : "template/progressbar/progress.html" } } ) . directive ( "uibBar" , function ( ) { return { replace : ! 0 , transclude : ! 0 , require : "^uibProgress" , scope : { value : "=" , type : "@" } , templateUrl : "template/progressbar/bar.html" , link : function ( a , l , h , e ) { e . addBar ( a , l , h ) } } } ) . directive ( "uibProgressbar" , function ( ) { return { replace : ! 0 , transclude : ! 0 , controller : "UibProgressController" , scope : { value : "=" , max : "=?" , type : "@" } , templateUrl : "template/progressbar/progressbar.html" ,
link : function ( a , l , h , e ) { e . addBar ( a , angular . element ( l . children ( ) [ 0 ] ) , { title : h . title } ) } } } ) ;
angular . module ( "ui.bootstrap.progressbar" ) . value ( "$progressSuppressWarning" , ! 1 ) . controller ( "ProgressController" , [ "$scope" , "$attrs" , "uibProgressConfig" , "$log" , "$progressSuppressWarning" , function ( a , l , h , e , c ) { c || e . warn ( "ProgressController is now deprecated. Use UibProgressController instead." ) ; var b = this , g = angular . isDefined ( l . animate ) ? a . $parent . $eval ( l . animate ) : h . animate ; this . bars = [ ] ; a . max = angular . isDefined ( a . max ) ? a . max : h . max ; this . addBar = function ( c , e , h ) { g || e . css ( { transition : "none" } ) ; this . bars . push ( c ) ;
c . max = a . max ; c . title = h && angular . isDefined ( h . title ) ? h . title : "progressbar" ; c . $watch ( "value" , function ( a ) { c . recalculatePercentage ( ) } ) ; c . recalculatePercentage = function ( ) { c . percent = + ( 100 * c . value / c . max ) . toFixed ( 2 ) ; var a = b . bars . reduce ( function ( a , b ) { return a + b . percent } , 0 ) ; 100 < a && ( c . percent -= a - 100 ) } ; c . $on ( "$destroy" , function ( ) { e = null ; b . removeBar ( c ) } ) } ; this . removeBar = function ( a ) { this . bars . splice ( this . bars . indexOf ( a ) , 1 ) } ; a . $watch ( "max" , function ( c ) { b . bars . forEach ( function ( b ) { b . max = a . max ; b . recalculatePercentage ( ) } ) } ) } ] ) . directive ( "progress" ,
[ "$log" , "$progressSuppressWarning" , function ( a , l ) { return { replace : ! 0 , transclude : ! 0 , controller : "ProgressController" , require : "progress" , scope : { max : "=?" , title : "@?" } , templateUrl : "template/progressbar/progress.html" , link : function ( ) { l || a . warn ( "progress is now deprecated. Use uib-progress instead." ) } } } ] ) . directive ( "bar" , [ "$log" , "$progressSuppressWarning" , function ( a , l ) { return { replace : ! 0 , transclude : ! 0 , require : "^progress" , scope : { value : "=" , type : "@" } , templateUrl : "template/progressbar/bar.html" , link : function ( h ,
e , c , b ) { l || a . warn ( "bar is now deprecated. Use uib-bar instead." ) ; b . addBar ( h , e ) } } } ] ) . directive ( "progressbar" , [ "$log" , "$progressSuppressWarning" , function ( a , l ) { return { replace : ! 0 , transclude : ! 0 , controller : "ProgressController" , scope : { value : "=" , max : "=?" , type : "@" } , templateUrl : "template/progressbar/progressbar.html" , link : function ( h , e , c , b ) { l || a . warn ( "progressbar is now deprecated. Use uib-progressbar instead." ) ; b . addBar ( h , angular . element ( e . children ( ) [ 0 ] ) , { title : c . title } ) } } } ] ) ;
angular . module ( "ui.bootstrap.rating" , [ ] ) . constant ( "uibRatingConfig" , { max : 5 , stateOn : null , stateOff : null , titles : [ "one" , "two" , "three" , "four" , "five" ] } ) . controller ( "UibRatingController" , [ "$scope" , "$attrs" , "uibRatingConfig" , function ( a , l , h ) { var e = { $setViewValue : angular . noop } ; this . init = function ( c ) { e = c ; e . $render = this . render ; e . $formatters . push ( function ( a ) { return angular . isNumber ( a ) && a << 0 !== a && ( a = Math . round ( a ) ) , a } ) ; this . stateOn = angular . isDefined ( l . stateOn ) ? a . $parent . $eval ( l . stateOn ) : h . stateOn ; this . stateOff = angular . isDefined ( l . stateOff ) ?
a . $parent . $eval ( l . stateOff ) : h . stateOff ; c = angular . isDefined ( l . titles ) ? a . $parent . $eval ( l . titles ) : h . titles ; this . titles = angular . isArray ( c ) && 0 < c . length ? c : h . titles ; c = angular . isDefined ( l . ratingStates ) ? a . $parent . $eval ( l . ratingStates ) : Array ( angular . isDefined ( l . max ) ? a . $parent . $eval ( l . max ) : h . max ) ; a . range = this . buildTemplateObjects ( c ) } ; this . buildTemplateObjects = function ( a ) { for ( var b = 0 , c = a . length ; b < c ; b ++ ) a [ b ] = angular . extend ( { index : b } , { stateOn : this . stateOn , stateOff : this . stateOff , title : this . getTitle ( b ) } , a [ b ] ) ; return a } ;
this . getTitle = function ( a ) { return a >= this . titles . length ? a + 1 : this . titles [ a ] } ; a . rate = function ( c ) { ! a . readonly && 0 <= c && c <= a . range . length && ( e . $setViewValue ( e . $viewValue === c ? 0 : c ) , e . $render ( ) ) } ; a . enter = function ( c ) { a . readonly || ( a . value = c ) ; a . onHover ( { value : c } ) } ; a . reset = function ( ) { a . value = e . $viewValue ; a . onLeave ( ) } ; a . onKeydown = function ( c ) { /(37|38|39|40)/ . test ( c . which ) && ( c . preventDefault ( ) , c . stopPropagation ( ) , a . rate ( a . value + ( 38 === c . which || 39 === c . which ? 1 : - 1 ) ) ) } ; this . render = function ( ) { a . value = e . $viewValue } } ] ) . directive ( "uibRating" ,
function ( ) { return { require : [ "uibRating" , "ngModel" ] , scope : { readonly : "=?" , onHover : "&" , onLeave : "&" } , controller : "UibRatingController" , templateUrl : "template/rating/rating.html" , replace : ! 0 , link : function ( a , l , h , e ) { e [ 0 ] . init ( e [ 1 ] ) } } } ) ;
angular . module ( "ui.bootstrap.rating" ) . value ( "$ratingSuppressWarning" , ! 1 ) . controller ( "RatingController" , [ "$scope" , "$attrs" , "$controller" , "$log" , "$ratingSuppressWarning" , function ( a , l , h , e , c ) { c || e . warn ( "RatingController is now deprecated. Use UibRatingController instead." ) ; angular . extend ( this , h ( "UibRatingController" , { $scope : a , $attrs : l } ) ) } ] ) . directive ( "rating" , [ "$log" , "$ratingSuppressWarning" , function ( a , l ) { return { require : [ "rating" , "ngModel" ] , scope : { readonly : "=?" , onHover : "&" , onLeave : "&" } , controller : "RatingController" ,
templateUrl : "template/rating/rating.html" , replace : ! 0 , link : function ( h , e , c , b ) { l || a . warn ( "rating is now deprecated. Use uib-rating instead." ) ; b [ 0 ] . init ( b [ 1 ] ) } } } ] ) ;
angular . module ( "ui.bootstrap.tabs" , [ ] ) . controller ( "UibTabsetController" , [ "$scope" , function ( a ) { var l = this , h = l . tabs = a . tabs = [ ] ; l . select = function ( a ) { angular . forEach ( h , function ( b ) { b . active && b !== a && ( b . active = ! 1 , b . onDeselect ( ) , a . selectCalled = ! 1 ) } ) ; a . active = ! 0 ; a . selectCalled || ( a . onSelect ( ) , a . selectCalled = ! 0 ) } ; l . addTab = function ( a ) { h . push ( a ) ; 1 === h . length && ! 1 !== a . active ? a . active = ! 0 : a . active ? l . select ( a ) : a . active = ! 1 } ; l . removeTab = function ( a ) { var b = h . indexOf ( a ) ; a . active && 1 < h . length && ! e && l . select ( h [ b == h . length - 1 ?
b - 1 : b + 1 ] ) ; h . splice ( b , 1 ) } ; var e ; a . $on ( "$destroy" , function ( ) { e = ! 0 } ) } ] ) . directive ( "uibTabset" , function ( ) { return { restrict : "EA" , transclude : ! 0 , replace : ! 0 , scope : { type : "@" } , controller : "UibTabsetController" , templateUrl : "template/tabs/tabset.html" , link : function ( a , l , h ) { a . vertical = ! ! angular . isDefined ( h . vertical ) && a . $parent . $eval ( h . vertical ) ; a . justified = ! ! angular . isDefined ( h . justified ) && a . $parent . $eval ( h . justified ) } } } ) . directive ( "uibTab" , [ "$parse" , function ( a ) { return { require : "^uibTabset" , restrict : "EA" , replace : ! 0 ,
templateUrl : "template/tabs/tab.html" , transclude : ! 0 , scope : { active : "=?" , heading : "@" , onSelect : "&select" , onDeselect : "&deselect" } , controller : function ( ) { } , link : function ( l , h , e , c , b ) { l . $watch ( "active" , function ( a ) { a && c . select ( l ) } ) ; l . disabled = ! 1 ; e . disable && l . $parent . $watch ( a ( e . disable ) , function ( a ) { l . disabled = ! ! a } ) ; l . select = function ( ) { l . disabled || ( l . active = ! 0 ) } ; c . addTab ( l ) ; l . $on ( "$destroy" , function ( ) { c . removeTab ( l ) } ) ; l . $transcludeFn = b } } } ] ) . directive ( "uibTabHeadingTransclude" , function ( ) { return { restrict : "A" , require : [ "?^uibTab" ,
"?^tab" ] , link : function ( a , l ) { a . $watch ( "headingElement" , function ( a ) { a && ( l . html ( "" ) , l . append ( a ) ) } ) } } } ) . directive ( "uibTabContentTransclude" , function ( ) { return { restrict : "A" , require : [ "?^uibTabset" , "?^tabset" ] , link : function ( a , l , h ) { var e = a . $eval ( h . uibTabContentTransclude ) ; e . $transcludeFn ( e . $parent , function ( a ) { angular . forEach ( a , function ( a ) { a . tagName && ( a . hasAttribute ( "tab-heading" ) || a . hasAttribute ( "data-tab-heading" ) || a . hasAttribute ( "x-tab-heading" ) || a . hasAttribute ( "uib-tab-heading" ) || a . hasAttribute ( "data-uib-tab-heading" ) ||
a . hasAttribute ( "x-uib-tab-heading" ) || "tab-heading" === a . tagName . toLowerCase ( ) || "data-tab-heading" === a . tagName . toLowerCase ( ) || "x-tab-heading" === a . tagName . toLowerCase ( ) || "uib-tab-heading" === a . tagName . toLowerCase ( ) || "data-uib-tab-heading" === a . tagName . toLowerCase ( ) || "x-uib-tab-heading" === a . tagName . toLowerCase ( ) ) ? e . headingElement = a : l . append ( a ) } ) } ) } } } ) ;
angular . module ( "ui.bootstrap.tabs" ) . value ( "$tabsSuppressWarning" , ! 1 ) . controller ( "TabsetController" , [ "$scope" , "$controller" , "$log" , "$tabsSuppressWarning" , function ( a , l , h , e ) { e || h . warn ( "TabsetController is now deprecated. Use UibTabsetController instead." ) ; angular . extend ( this , l ( "UibTabsetController" , { $scope : a } ) ) } ] ) . directive ( "tabset" , [ "$log" , "$tabsSuppressWarning" , function ( a , l ) { return { restrict : "EA" , transclude : ! 0 , replace : ! 0 , scope : { type : "@" } , controller : "TabsetController" , templateUrl : "template/tabs/tabset.html" ,
link : function ( h , e , c ) { l || a . warn ( "tabset is now deprecated. Use uib-tabset instead." ) ; h . vertical = ! ! angular . isDefined ( c . vertical ) && h . $parent . $eval ( c . vertical ) ; h . justified = ! ! angular . isDefined ( c . justified ) && h . $parent . $eval ( c . justified ) } } } ] ) . directive ( "tab" , [ "$parse" , "$log" , "$tabsSuppressWarning" , function ( a , l , h ) { return { require : "^tabset" , restrict : "EA" , replace : ! 0 , templateUrl : "template/tabs/tab.html" , transclude : ! 0 , scope : { active : "=?" , heading : "@" , onSelect : "&select" , onDeselect : "&deselect" } , controller : function ( ) { } ,
link : function ( e , c , b , g , f ) { h || l . warn ( "tab is now deprecated. Use uib-tab instead." ) ; e . $watch ( "active" , function ( a ) { a && g . select ( e ) } ) ; e . disabled = ! 1 ; b . disable && e . $parent . $watch ( a ( b . disable ) , function ( a ) { e . disabled = ! ! a } ) ; e . select = function ( ) { e . disabled || ( e . active = ! 0 ) } ; g . addTab ( e ) ; e . $on ( "$destroy" , function ( ) { g . removeTab ( e ) } ) ; e . $transcludeFn = f } } } ] ) . directive ( "tabHeadingTransclude" , [ "$log" , "$tabsSuppressWarning" , function ( a , l ) { return { restrict : "A" , require : "^tab" , link : function ( h , e ) { l || a . warn ( "tab-heading-transclude is now deprecated. Use uib-tab-heading-transclude instead." ) ;
h . $watch ( "headingElement" , function ( a ) { a && ( e . html ( "" ) , e . append ( a ) ) } ) } } } ] ) . directive ( "tabContentTransclude" , [ "$log" , "$tabsSuppressWarning" , function ( a , l ) { return { restrict : "A" , require : "^tabset" , link : function ( h , e , c ) { l || a . warn ( "tab-content-transclude is now deprecated. Use uib-tab-content-transclude instead." ) ; var b = h . $eval ( c . tabContentTransclude ) ; b . $transcludeFn ( b . $parent , function ( a ) { angular . forEach ( a , function ( a ) { a . tagName && ( a . hasAttribute ( "tab-heading" ) || a . hasAttribute ( "data-tab-heading" ) || a . hasAttribute ( "x-tab-heading" ) ||
"tab-heading" === a . tagName . toLowerCase ( ) || "data-tab-heading" === a . tagName . toLowerCase ( ) || "x-tab-heading" === a . tagName . toLowerCase ( ) ) ? b . headingElement = a : e . append ( a ) } ) } ) } } } ] ) ;
angular . module ( "ui.bootstrap.timepicker" , [ ] ) . constant ( "uibTimepickerConfig" , { hourStep : 1 , minuteStep : 1 , showMeridian : ! 0 , meridians : null , readonlyInput : ! 1 , mousewheel : ! 0 , arrowkeys : ! 0 , showSpinners : ! 0 } ) . controller ( "UibTimepickerController" , [ "$scope" , "$element" , "$attrs" , "$parse" , "$log" , "$locale" , "uibTimepickerConfig" , function ( a , l , h , e , c , b , g ) { function f ( ) { var b = parseInt ( a . hours , 10 ) ; if ( a . showMeridian ? 0 < b && 13 > b : 0 <= b && 24 > b ) return a . showMeridian && ( 12 === b && ( b = 0 ) , a . meridian === E [ 1 ] && ( b += 12 ) ) , b } function q ( ) { var b = parseInt ( a . minutes ,
10 ) ; return 0 <= b && 60 > b ? b : void 0 } function m ( a ) { return angular . isDefined ( a ) && 2 > a . toString ( ) . length ? "0" + a : a . toString ( ) } function n ( a ) { t ( ) ; A . $setViewValue ( new Date ( C ) ) ; x ( a ) } function t ( ) { A . $setValidity ( "time" , ! 0 ) ; a . invalidHours = ! 1 ; a . invalidMinutes = ! 1 } function x ( b ) { var c = C . getHours ( ) , e = C . getMinutes ( ) ; a . showMeridian && ( c = 0 === c || 12 === c ? 12 : c % 12 ) ; a . hours = "h" === b ? c : m ( c ) ; "m" !== b && ( a . minutes = m ( e ) ) ; a . meridian = 12 > C . getHours ( ) ? E [ 0 ] : E [ 1 ] } function r ( a , b ) { var c = new Date ( a . getTime ( ) + 6E4 * b ) , e = new Date ( a ) ; return e . setHours ( c . getHours ( ) ,
c . getMinutes ( ) ) , e } function y ( a ) { C = r ( C , a ) ; n ( ) } var C = new Date , A = { $setViewValue : angular . noop } , E = angular . isDefined ( h . meridians ) ? a . $parent . $eval ( h . meridians ) : g . meridians || b . DATETIME _FORMATS . AMPMS ; a . tabindex = angular . isDefined ( h . tabindex ) ? h . tabindex : 0 ; l . removeAttr ( "tabindex" ) ; this . init = function ( b , c ) { A = b ; A . $render = this . render ; A . $formatters . unshift ( function ( a ) { return a ? new Date ( a ) : null } ) ; var e = c . eq ( 0 ) , f = c . eq ( 1 ) ; ( angular . isDefined ( h . mousewheel ) ? a . $parent . $eval ( h . mousewheel ) : g . mousewheel ) && this . setupMousewheelEvents ( e ,
f ) ; ( angular . isDefined ( h . arrowkeys ) ? a . $parent . $eval ( h . arrowkeys ) : g . arrowkeys ) && this . setupArrowkeyEvents ( e , f ) ; a . readonlyInput = angular . isDefined ( h . readonlyInput ) ? a . $parent . $eval ( h . readonlyInput ) : g . readonlyInput ; this . setupInputEvents ( e , f ) } ; var F = g . hourStep ; h . hourStep && a . $parent . $watch ( e ( h . hourStep ) , function ( a ) { F = parseInt ( a , 10 ) } ) ; var p = g . minuteStep ; h . minuteStep && a . $parent . $watch ( e ( h . minuteStep ) , function ( a ) { p = parseInt ( a , 10 ) } ) ; var v ; a . $parent . $watch ( e ( h . min ) , function ( a ) { a = new Date ( a ) ; v = isNaN ( a ) ? void 0 : a } ) ;
var I ; a . $parent . $watch ( e ( h . max ) , function ( a ) { a = new Date ( a ) ; I = isNaN ( a ) ? void 0 : a } ) ; a . noIncrementHours = function ( ) { var a = r ( C , 60 * F ) ; return a > I || a < C && a < v } ; a . noDecrementHours = function ( ) { var a = r ( C , 60 * - F ) ; return a < v || a > C && a > I } ; a . noIncrementMinutes = function ( ) { var a = r ( C , p ) ; return a > I || a < C && a < v } ; a . noDecrementMinutes = function ( ) { var a = r ( C , - p ) ; return a < v || a > C && a > I } ; a . noToggleMeridian = function ( ) { return 13 > C . getHours ( ) ? r ( C , 720 ) > I : r ( C , - 720 ) < v } ; a . showMeridian = g . showMeridian ; h . showMeridian && a . $parent . $watch ( e ( h . showMeridian ) ,
function ( b ) { if ( a . showMeridian = ! ! b , A . $error . time ) { b = f ( ) ; var c = q ( ) ; angular . isDefined ( b ) && angular . isDefined ( c ) && ( C . setHours ( b ) , n ( ) ) } else x ( ) } ) ; this . setupMousewheelEvents = function ( b , c ) { var e = function ( a ) { a . originalEvent && ( a = a . originalEvent ) ; var b = a . wheelDelta ? a . wheelDelta : - a . deltaY ; return a . detail || 0 < b } ; b . bind ( "mousewheel wheel" , function ( b ) { a . $apply ( e ( b ) ? a . incrementHours ( ) : a . decrementHours ( ) ) ; b . preventDefault ( ) } ) ; c . bind ( "mousewheel wheel" , function ( b ) { a . $apply ( e ( b ) ? a . incrementMinutes ( ) : a . decrementMinutes ( ) ) ;
b . preventDefault ( ) } ) } ; this . setupArrowkeyEvents = function ( b , c ) { b . bind ( "keydown" , function ( b ) { 38 === b . which ? ( b . preventDefault ( ) , a . incrementHours ( ) , a . $apply ( ) ) : 40 === b . which && ( b . preventDefault ( ) , a . decrementHours ( ) , a . $apply ( ) ) } ) ; c . bind ( "keydown" , function ( b ) { 38 === b . which ? ( b . preventDefault ( ) , a . incrementMinutes ( ) , a . $apply ( ) ) : 40 === b . which && ( b . preventDefault ( ) , a . decrementMinutes ( ) , a . $apply ( ) ) } ) } ; this . setupInputEvents = function ( b , c ) { if ( a . readonlyInput ) return a . updateHours = angular . noop , void ( a . updateMinutes = angular . noop ) ;
var e = function ( b , c ) { A . $setViewValue ( null ) ; A . $setValidity ( "time" , ! 1 ) ; angular . isDefined ( b ) && ( a . invalidHours = b ) ; angular . isDefined ( c ) && ( a . invalidMinutes = c ) } ; a . updateHours = function ( ) { var a = f ( ) , b = q ( ) ; angular . isDefined ( a ) && angular . isDefined ( b ) ? ( C . setHours ( a ) , C < v || C > I ? e ( ! 0 ) : n ( "h" ) ) : e ( ! 0 ) } ; b . bind ( "blur" , function ( b ) { ! a . invalidHours && 10 > a . hours && a . $apply ( function ( ) { a . hours = m ( a . hours ) } ) } ) ; a . updateMinutes = function ( ) { var a = q ( ) , b = f ( ) ; angular . isDefined ( a ) && angular . isDefined ( b ) ? ( C . setMinutes ( a ) , C < v || C > I ? e ( void 0 ,
! 0 ) : n ( "m" ) ) : e ( void 0 , ! 0 ) } ; c . bind ( "blur" , function ( b ) { ! a . invalidMinutes && 10 > a . minutes && a . $apply ( function ( ) { a . minutes = m ( a . minutes ) } ) } ) } ; this . render = function ( ) { var b = A . $viewValue ; isNaN ( b ) ? ( A . $setValidity ( "time" , ! 1 ) , c . error ( 'Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.' ) ) : ( b && ( C = b ) , C < v || C > I ? ( A . $setValidity ( "time" , ! 1 ) , a . invalidHours = ! 0 , a . invalidMinutes = ! 0 ) : t ( ) , x ( ) ) } ; a . showSpinners = angular . isDefined ( h . showSpinners ) ?
a . $parent . $eval ( h . showSpinners ) : g . showSpinners ; a . incrementHours = function ( ) { a . noIncrementHours ( ) || y ( 60 * F ) } ; a . decrementHours = function ( ) { a . noDecrementHours ( ) || y ( 60 * - F ) } ; a . incrementMinutes = function ( ) { a . noIncrementMinutes ( ) || y ( p ) } ; a . decrementMinutes = function ( ) { a . noDecrementMinutes ( ) || y ( - p ) } ; a . toggleMeridian = function ( ) { a . noToggleMeridian ( ) || y ( 720 * ( 12 > C . getHours ( ) ? 1 : - 1 ) ) } } ] ) . directive ( "uibTimepicker" , function ( ) { return { restrict : "EA" , require : [ "uibTimepicker" , "?^ngModel" ] , controller : "UibTimepickerController" ,
controllerAs : "timepicker" , replace : ! 0 , scope : { } , templateUrl : function ( a , l ) { return l . templateUrl || "template/timepicker/timepicker.html" } , link : function ( a , l , h , e ) { a = e [ 0 ] ; ( e = e [ 1 ] ) && a . init ( e , l . find ( "input" ) ) } } } ) ;
angular . module ( "ui.bootstrap.timepicker" ) . value ( "$timepickerSuppressWarning" , ! 1 ) . controller ( "TimepickerController" , [ "$scope" , "$element" , "$attrs" , "$controller" , "$log" , "$timepickerSuppressWarning" , function ( a , l , h , e , c , b ) { b || c . warn ( "TimepickerController is now deprecated. Use UibTimepickerController instead." ) ; angular . extend ( this , e ( "UibTimepickerController" , { $scope : a , $element : l , $attrs : h } ) ) } ] ) . directive ( "timepicker" , [ "$log" , "$timepickerSuppressWarning" , function ( a , l ) { return { restrict : "EA" , require : [ "timepicker" ,
"?^ngModel" ] , controller : "TimepickerController" , controllerAs : "timepicker" , replace : ! 0 , scope : { } , templateUrl : function ( a , e ) { return e . templateUrl || "template/timepicker/timepicker.html" } , link : function ( h , e , c , b ) { l || a . warn ( "timepicker is now deprecated. Use uib-timepicker instead." ) ; h = b [ 0 ] ; ( b = b [ 1 ] ) && h . init ( b , e . find ( "input" ) ) } } } ] ) ;
angular . module ( "ui.bootstrap.typeahead" , [ "ui.bootstrap.position" ] ) . factory ( "uibTypeaheadParser" , [ "$parse" , function ( a ) { var l = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/ ; return { parse : function ( h ) { var e = h . match ( l ) ; if ( ! e ) throw Error ( 'Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "' + h + '".' ) ; return { itemName : e [ 3 ] , source : a ( e [ 4 ] ) , viewMapper : a ( e [ 2 ] || e [ 1 ] ) , modelMapper : a ( e [ 1 ] ) } } } } ] ) . controller ( "UibTypeaheadController" ,
[ "$scope" , "$element" , "$attrs" , "$compile" , "$parse" , "$q" , "$timeout" , "$document" , "$window" , "$rootScope" , "$uibPosition" , "uibTypeaheadParser" , function ( a , l , h , e , c , b , g , f , q , m , n , t ) { function x ( ) { S . moveInProgress || ( S . moveInProgress = ! 0 , S . $digest ( ) ) ; Z && g . cancel ( Z ) ; Z = g ( function ( ) { S . matches . length && r ( ) ; S . moveInProgress = ! 1 } , E ) } function r ( ) { S . position = L ? n . offset ( l ) : n . position ( l ) ; S . position . top += l . prop ( "offsetHeight" ) } var y , C , A = [ 9 , 13 , 27 , 38 , 40 ] , E = 200 , F = a . $eval ( h . typeaheadMinLength ) ; F || 0 === F || ( F = 1 ) ; var p , v , I = a . $eval ( h . typeaheadWaitMs ) ||
0 , H = ! 1 !== a . $eval ( h . typeaheadEditable ) , J = c ( h . typeaheadLoading ) . assign || angular . noop , K = c ( h . typeaheadOnSelect ) , O = ! ! angular . isDefined ( h . typeaheadSelectOnBlur ) && a . $eval ( h . typeaheadSelectOnBlur ) , V = c ( h . typeaheadNoResults ) . assign || angular . noop , X = h . typeaheadInputFormatter ? c ( h . typeaheadInputFormatter ) : void 0 , L = ! ! h . typeaheadAppendToBody && a . $eval ( h . typeaheadAppendToBody ) , T = h . typeaheadAppendToElementId || ! 1 , W = ! 1 !== a . $eval ( h . typeaheadFocusFirst ) , ca = ! ! h . typeaheadSelectOnExact && a . $eval ( h . typeaheadSelectOnExact ) , B =
c ( h . ngModel ) , P = c ( h . ngModel + "($$$p)" ) , na = function ( b , c ) { return angular . isFunction ( B ( a ) ) && C && C . $options && C . $options . getterSetter ? P ( b , { $$$p : c } ) : B . assign ( b , c ) } , U = t . parse ( h . uibTypeahead ) , S = a . $new ( ) ; c = a . $on ( "$destroy" , function ( ) { S . $destroy ( ) } ) ; S . $on ( "$destroy" , c ) ; var da = "typeahead-" + S . $id + "-" + Math . floor ( 1E4 * Math . random ( ) ) ; l . attr ( { "aria-autocomplete" : "list" , "aria-expanded" : ! 1 , "aria-owns" : da } ) ; var Q = angular . element ( "<div uib-typeahead-popup></div>" ) ; Q . attr ( { id : da , matches : "matches" , active : "activeIdx" , select : "select(activeIdx)" ,
"move-in-progress" : "moveInProgress" , query : "query" , position : "position" } ) ; angular . isDefined ( h . typeaheadTemplateUrl ) && Q . attr ( "template-url" , h . typeaheadTemplateUrl ) ; angular . isDefined ( h . typeaheadPopupTemplateUrl ) && Q . attr ( "popup-template-url" , h . typeaheadPopupTemplateUrl ) ; var ka = function ( ) { S . matches = [ ] ; S . activeIdx = - 1 ; l . attr ( "aria-expanded" , ! 1 ) } ; S . $watch ( "activeIdx" , function ( a ) { 0 > a ? l . removeAttr ( "aria-activedescendant" ) : l . attr ( "aria-activedescendant" , da + "-option-" + a ) } ) ; var ga = function ( c ) { var e = { $viewValue : c } ;
J ( a , ! 0 ) ; V ( a , ! 1 ) ; b . when ( U . source ( a , e ) ) . then ( function ( b ) { var f = c === y . $viewValue ; if ( f && p ) if ( b && 0 < b . length ) { S . activeIdx = W ? 0 : - 1 ; V ( a , ! 1 ) ; for ( var g = S . matches . length = 0 ; g < b . length ; g ++ ) e [ U . itemName ] = b [ g ] , S . matches . push ( { id : da + "-option-" + g , label : U . viewMapper ( S , e ) , model : b [ g ] } ) ; S . query = c ; r ( ) ; l . attr ( "aria-expanded" , ! 0 ) ; ca && 1 === S . matches . length && 0 < S . matches . length && c && c . toUpperCase ( ) === S . matches [ 0 ] . label . toUpperCase ( ) && S . select ( 0 ) } else ka ( ) , V ( a , ! 0 ) ; f && J ( a , ! 1 ) } , function ( ) { ka ( ) ; J ( a , ! 1 ) ; V ( a , ! 0 ) } ) } ; L && ( angular . element ( q ) . bind ( "resize" ,
x ) , f . find ( "body" ) . bind ( "scroll" , x ) ) ; var Z ; S . moveInProgress = ! 1 ; S . query = void 0 ; var va , sa = function ( a ) { va = g ( function ( ) { ga ( a ) } , I ) } ; ka ( ) ; S . select = function ( b ) { var c , e = { } ; v = ! 0 ; e [ U . itemName ] = c = S . matches [ b ] . model ; b = U . modelMapper ( a , e ) ; na ( a , b ) ; y . $setValidity ( "editable" , ! 0 ) ; y . $setValidity ( "parse" , ! 0 ) ; K ( a , { $item : c , $model : b , $label : U . viewMapper ( a , e ) } ) ; ka ( ) ; ! 1 !== S . $eval ( h . typeaheadFocusOnSelect ) && g ( function ( ) { l [ 0 ] . focus ( ) } , 0 , ! 1 ) } ; l . bind ( "keydown" , function ( a ) { if ( 0 !== S . matches . length && - 1 !== A . indexOf ( a . which ) ) { if ( - 1 ===
S . activeIdx && ( 9 === a . which || 13 === a . which ) ) return ka ( ) , void S . $digest ( ) ; a . preventDefault ( ) ; 40 === a . which ? ( S . activeIdx = ( S . activeIdx + 1 ) % S . matches . length , S . $digest ( ) ) : 38 === a . which ? ( S . activeIdx = ( 0 < S . activeIdx ? S . activeIdx : S . matches . length ) - 1 , S . $digest ( ) ) : 13 === a . which || 9 === a . which ? S . $apply ( function ( ) { S . select ( S . activeIdx ) } ) : 27 === a . which && ( a . stopPropagation ( ) , ka ( ) , S . $digest ( ) ) } } ) ; l . bind ( "blur" , function ( ) { O && S . matches . length && - 1 !== S . activeIdx && ! v && ( v = ! 0 , S . $apply ( function ( ) { S . select ( S . activeIdx ) } ) ) ; v = p = ! 1 } ) ;
var ja = function ( a ) { l [ 0 ] !== a . target && 3 !== a . which && 0 !== S . matches . length && ( ka ( ) , m . $$phase || S . $digest ( ) ) } ; f . bind ( "click" , ja ) ; a . $on ( "$destroy" , function ( ) { f . unbind ( "click" , ja ) ; ( L || T ) && Ga . remove ( ) ; L && ( angular . element ( q ) . unbind ( "resize" , x ) , f . find ( "body" ) . unbind ( "scroll" , x ) ) ; Q . remove ( ) } ) ; var Ga = e ( Q ) ( S ) ; L ? f . find ( "body" ) . append ( Ga ) : ! 1 !== T ? angular . element ( f [ 0 ] . getElementById ( T ) ) . append ( Ga ) : l . after ( Ga ) ; this . init = function ( b , c ) { y = b ; C = c ; y . $parsers . unshift ( function ( b ) { p = ! 0 ; 0 === F || b && b . length >= F ? 0 < I ? ( va && g . cancel ( va ) ,
sa ( b ) ) : ga ( b ) : ( J ( a , ! 1 ) , va && g . cancel ( va ) , ka ( ) ) ; return H ? b : b ? void y . $setValidity ( "editable" , ! 1 ) : ( y . $setValidity ( "editable" , ! 0 ) , null ) } ) ; y . $formatters . push ( function ( b ) { var c , e , f = { } ; return H || y . $setValidity ( "editable" , ! 0 ) , X ? ( f . $model = b , X ( a , f ) ) : ( f [ U . itemName ] = b , c = U . viewMapper ( a , f ) , f [ U . itemName ] = void 0 , e = U . viewMapper ( a , f ) , c !== e ? c : b ) } ) } } ] ) . directive ( "uibTypeahead" , function ( ) { return { controller : "UibTypeaheadController" , require : [ "ngModel" , "^?ngModelOptions" , "uibTypeahead" ] , link : function ( a , l , h , e ) { e [ 2 ] . init ( e [ 0 ] ,
e [ 1 ] ) } } } ) . directive ( "uibTypeaheadPopup" , function ( ) { return { scope : { matches : "=" , query : "=" , active : "=" , position : "&" , moveInProgress : "=" , select : "&" } , replace : ! 0 , templateUrl : function ( a , l ) { return l . popupTemplateUrl || "template/typeahead/typeahead-popup.html" } , link : function ( a , l , h ) { a . templateUrl = h . templateUrl ; a . isOpen = function ( ) { return 0 < a . matches . length } ; a . isActive = function ( e ) { return a . active == e } ; a . selectActive = function ( e ) { a . active = e } ; a . selectMatch = function ( e ) { a . select ( { activeIdx : e } ) } } } } ) . directive ( "uibTypeaheadMatch" ,
[ "$templateRequest" , "$compile" , "$parse" , function ( a , l , h ) { return { scope : { index : "=" , match : "=" , query : "=" } , link : function ( e , c , b ) { b = h ( b . templateUrl ) ( e . $parent ) || "template/typeahead/typeahead-match.html" ; a ( b ) . then ( function ( a ) { l ( a . trim ( ) ) ( e , function ( a ) { c . replaceWith ( a ) } ) } ) } } } ] ) . filter ( "uibTypeaheadHighlight" , [ "$sce" , "$injector" , "$log" , function ( a , l , h ) { var e ; return e = l . has ( "$sanitize" ) , function ( c , b ) { return ! e && /<.*>/g . test ( c ) && h . warn ( "Unsafe use of typeahead please use ngSanitize" ) , c = b ? ( "" + c ) . replace ( new RegExp ( b . replace ( /([.?*+^$[\]\\(){}|-])/g ,
"\\$1" ) , "gi" ) , "<strong>$&</strong>" ) : c , e || ( c = a . trustAsHtml ( c ) ) , c } } ] ) ;
angular . module ( "ui.bootstrap.typeahead" ) . value ( "$typeaheadSuppressWarning" , ! 1 ) . service ( "typeaheadParser" , [ "$parse" , "uibTypeaheadParser" , "$log" , "$typeaheadSuppressWarning" , function ( a , l , h , e ) { return e || h . warn ( "typeaheadParser is now deprecated. Use uibTypeaheadParser instead." ) , l } ] ) . directive ( "typeahead" , [ "$compile" , "$parse" , "$q" , "$timeout" , "$document" , "$window" , "$rootScope" , "$uibPosition" , "typeaheadParser" , "$log" , "$typeaheadSuppressWarning" , function ( a , l , h , e , c , b , g , f , q , m , n ) { var t = [ 9 , 13 , 27 , 38 , 40 ] ; return { require : [ "ngModel" ,
"^?ngModelOptions" ] , link : function ( x , r , y , C ) { function A ( ) { Q . moveInProgress || ( Q . moveInProgress = ! 0 , Q . $digest ( ) ) ; sa && e . cancel ( sa ) ; sa = e ( function ( ) { Q . matches . length && E ( ) ; Q . moveInProgress = ! 1 } , 200 ) } function E ( ) { Q . position = W ? f . offset ( r ) : f . position ( r ) ; Q . position . top += r . prop ( "offsetHeight" ) } n || m . warn ( "typeahead is now deprecated. Use uib-typeahead instead." ) ; var F = C [ 0 ] , p = C [ 1 ] , v = x . $eval ( y . typeaheadMinLength ) ; v || 0 === v || ( v = 1 ) ; var I , H , J = x . $eval ( y . typeaheadWaitMs ) || 0 , K = ! 1 !== x . $eval ( y . typeaheadEditable ) , O = l ( y . typeaheadLoading ) . assign ||
angular . noop , V = l ( y . typeaheadOnSelect ) , X = ! ! angular . isDefined ( y . typeaheadSelectOnBlur ) && x . $eval ( y . typeaheadSelectOnBlur ) , L = l ( y . typeaheadNoResults ) . assign || angular . noop , T = y . typeaheadInputFormatter ? l ( y . typeaheadInputFormatter ) : void 0 , W = ! ! y . typeaheadAppendToBody && x . $eval ( y . typeaheadAppendToBody ) , ca = y . typeaheadAppendToElementId || ! 1 , B = ! 1 !== x . $eval ( y . typeaheadFocusFirst ) , P = ! ! y . typeaheadSelectOnExact && x . $eval ( y . typeaheadSelectOnExact ) , na = l ( y . ngModel ) , U = l ( y . ngModel + "($$$p)" ) , S = function ( a , b ) { return angular . isFunction ( na ( x ) ) &&
p && p . $options && p . $options . getterSetter ? U ( a , { $$$p : b } ) : na . assign ( a , b ) } , da = q . parse ( y . typeahead ) , Q = x . $new ( ) ; C = x . $on ( "$destroy" , function ( ) { Q . $destroy ( ) } ) ; Q . $on ( "$destroy" , C ) ; var ka = "typeahead-" + Q . $id + "-" + Math . floor ( 1E4 * Math . random ( ) ) ; r . attr ( { "aria-autocomplete" : "list" , "aria-expanded" : ! 1 , "aria-owns" : ka } ) ; var ga = angular . element ( "<div typeahead-popup></div>" ) ; ga . attr ( { id : ka , matches : "matches" , active : "activeIdx" , select : "select(activeIdx)" , "move-in-progress" : "moveInProgress" , query : "query" , position : "position" } ) ;
angular . isDefined ( y . typeaheadTemplateUrl ) && ga . attr ( "template-url" , y . typeaheadTemplateUrl ) ; angular . isDefined ( y . typeaheadPopupTemplateUrl ) && ga . attr ( "popup-template-url" , y . typeaheadPopupTemplateUrl ) ; var Z = function ( ) { Q . matches = [ ] ; Q . activeIdx = - 1 ; r . attr ( "aria-expanded" , ! 1 ) } ; Q . $watch ( "activeIdx" , function ( a ) { 0 > a ? r . removeAttr ( "aria-activedescendant" ) : r . attr ( "aria-activedescendant" , ka + "-option-" + a ) } ) ; var va = function ( a ) { var b = { $viewValue : a } ; O ( x , ! 0 ) ; L ( x , ! 1 ) ; h . when ( da . source ( x , b ) ) . then ( function ( c ) { var e = a === F . $viewValue ;
if ( e && I ) if ( c && 0 < c . length ) { Q . activeIdx = B ? 0 : - 1 ; L ( x , ! 1 ) ; for ( var f = Q . matches . length = 0 ; f < c . length ; f ++ ) b [ da . itemName ] = c [ f ] , Q . matches . push ( { id : ka + "-option-" + f , label : da . viewMapper ( Q , b ) , model : c [ f ] } ) ; Q . query = a ; E ( ) ; r . attr ( "aria-expanded" , ! 0 ) ; P && 1 === Q . matches . length && 0 < Q . matches . length && a && a . toUpperCase ( ) === Q . matches [ 0 ] . label . toUpperCase ( ) && Q . select ( 0 ) } else Z ( ) , L ( x , ! 0 ) ; e && O ( x , ! 1 ) } , function ( ) { Z ( ) ; O ( x , ! 1 ) ; L ( x , ! 0 ) } ) } ; W && ( angular . element ( b ) . bind ( "resize" , A ) , c . find ( "body" ) . bind ( "scroll" , A ) ) ; var sa ; Q . moveInProgress =
! 1 ; Z ( ) ; Q . query = void 0 ; var ja , Ga = function ( a ) { ja = e ( function ( ) { va ( a ) } , J ) } ; F . $parsers . unshift ( function ( a ) { I = ! 0 ; 0 === v || a && a . length >= v ? 0 < J ? ( ja && e . cancel ( ja ) , Ga ( a ) ) : va ( a ) : ( O ( x , ! 1 ) , ja && e . cancel ( ja ) , Z ( ) ) ; return K ? a : a ? void F . $setValidity ( "editable" , ! 1 ) : ( F . $setValidity ( "editable" , ! 0 ) , null ) } ) ; F . $formatters . push ( function ( a ) { var b , c , e = { } ; return K || F . $setValidity ( "editable" , ! 0 ) , T ? ( e . $model = a , T ( x , e ) ) : ( e [ da . itemName ] = a , b = da . viewMapper ( x , e ) , e [ da . itemName ] = void 0 , c = da . viewMapper ( x , e ) , b !== c ? b : a ) } ) ; Q . select = function ( a ) { var b ,
c = { } ; H = ! 0 ; c [ da . itemName ] = b = Q . matches [ a ] . model ; a = da . modelMapper ( x , c ) ; S ( x , a ) ; F . $setValidity ( "editable" , ! 0 ) ; F . $setValidity ( "parse" , ! 0 ) ; V ( x , { $item : b , $model : a , $label : da . viewMapper ( x , c ) } ) ; Z ( ) ; ! 1 !== Q . $eval ( y . typeaheadFocusOnSelect ) && e ( function ( ) { r [ 0 ] . focus ( ) } , 0 , ! 1 ) } ; r . bind ( "keydown" , function ( a ) { if ( 0 !== Q . matches . length && - 1 !== t . indexOf ( a . which ) ) { if ( - 1 === Q . activeIdx && ( 9 === a . which || 13 === a . which ) ) return Z ( ) , void Q . $digest ( ) ; a . preventDefault ( ) ; 40 === a . which ? ( Q . activeIdx = ( Q . activeIdx + 1 ) % Q . matches . length , Q . $digest ( ) ) :
38 === a . which ? ( Q . activeIdx = ( 0 < Q . activeIdx ? Q . activeIdx : Q . matches . length ) - 1 , Q . $digest ( ) ) : 13 === a . which || 9 === a . which ? Q . $apply ( function ( ) { Q . select ( Q . activeIdx ) } ) : 27 === a . which && ( a . stopPropagation ( ) , Z ( ) , Q . $digest ( ) ) } } ) ; r . bind ( "blur" , function ( ) { X && Q . matches . length && - 1 !== Q . activeIdx && ! H && ( H = ! 0 , Q . $apply ( function ( ) { Q . select ( Q . activeIdx ) } ) ) ; H = I = ! 1 } ) ; var wa = function ( a ) { r [ 0 ] !== a . target && 3 !== a . which && 0 !== Q . matches . length && ( Z ( ) , g . $$phase || Q . $digest ( ) ) } ; c . bind ( "click" , wa ) ; x . $on ( "$destroy" , function ( ) { c . unbind ( "click" ,
wa ) ; ( W || ca ) && qa . remove ( ) ; W && ( angular . element ( b ) . unbind ( "resize" , A ) , c . find ( "body" ) . unbind ( "scroll" , A ) ) ; ga . remove ( ) } ) ; var qa = a ( ga ) ( Q ) ; W ? c . find ( "body" ) . append ( qa ) : ! 1 !== ca ? angular . element ( c [ 0 ] . getElementById ( ca ) ) . append ( qa ) : r . after ( qa ) } } } ] ) . directive ( "typeaheadPopup" , [ "$typeaheadSuppressWarning" , "$log" , function ( a , l ) { return { scope : { matches : "=" , query : "=" , active : "=" , position : "&" , moveInProgress : "=" , select : "&" } , replace : ! 0 , templateUrl : function ( a , e ) { return e . popupTemplateUrl || "template/typeahead/typeahead-popup.html" } ,
link : function ( h , e , c ) { a || l . warn ( "typeahead-popup is now deprecated. Use uib-typeahead-popup instead." ) ; h . templateUrl = c . templateUrl ; h . isOpen = function ( ) { return 0 < h . matches . length } ; h . isActive = function ( a ) { return h . active == a } ; h . selectActive = function ( a ) { h . active = a } ; h . selectMatch = function ( a ) { h . select ( { activeIdx : a } ) } } } } ] ) . directive ( "typeaheadMatch" , [ "$templateRequest" , "$compile" , "$parse" , "$typeaheadSuppressWarning" , "$log" , function ( a , l , h , e , c ) { return { restrict : "EA" , scope : { index : "=" , match : "=" , query : "=" } , link : function ( b ,
g , f ) { e || c . warn ( "typeahead-match is now deprecated. Use uib-typeahead-match instead." ) ; f = h ( f . templateUrl ) ( b . $parent ) || "template/typeahead/typeahead-match.html" ; a ( f ) . then ( function ( a ) { l ( a . trim ( ) ) ( b , function ( a ) { g . replaceWith ( a ) } ) } ) } } } ] ) . filter ( "typeaheadHighlight" , [ "$sce" , "$injector" , "$log" , "$typeaheadSuppressWarning" , function ( a , l , h , e ) { var c ; return c = l . has ( "$sanitize" ) , function ( b , g ) { return e || h . warn ( "typeaheadHighlight is now deprecated. Use uibTypeaheadHighlight instead." ) , ! c && /<.*>/g . test ( b ) && h . warn ( "Unsafe use of typeahead please use ngSanitize" ) ,
b = g ? ( "" + b ) . replace ( new RegExp ( g . replace ( /([.?*+^$[\]\\(){}|-])/g , "\\$1" ) , "gi" ) , "<strong>$&</strong>" ) : b , c || ( b = a . trustAsHtml ( b ) ) , b } } ] ) ; angular . module ( "template/accordion/accordion-group.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/accordion/accordion-group.html" , '<div class="panel {{panelClass || \'panel-default\'}}">\n <div class="panel-heading" ng-keypress="toggleOpen($event)">\n <h4 class="panel-title">\n <a href tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n </h4>\n </div>\n <div class="panel-collapse collapse" uib-collapse="!isOpen">\n\t <div class="panel-body" ng-transclude></div>\n </div>\n</div>\n' ) } ] ) ;
angular . module ( "template/accordion/accordion.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/accordion/accordion.html" , '<div class="panel-group" ng-transclude></div>' ) } ] ) ; angular . module ( "template/alert/alert.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/alert/alert.html" , '<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n <button ng-show="closeable" type="button" class="close" ng-click="close({$event: $event})">\n <span aria-hidden="true">×</span>\n <span class="sr-only">Close</span>\n </button>\n <div ng-transclude></div>\n</div>\n' ) } ] ) ;
angular . module ( "template/carousel/carousel.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/carousel/carousel.html" , '<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n <div class="carousel-inner" ng-transclude></div>\n <a role="button" href class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1">\n <span aria-hidden="true" class="glyphicon glyphicon-chevron-left"></span>\n <span class="sr-only">previous</span>\n </a>\n <a role="button" href class="right carousel-control" ng-click="next()" ng-show="slides.length > 1">\n <span aria-hidden="true" class="glyphicon glyphicon-chevron-right"></span>\n <span class="sr-only">next</span>\n </a>\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{ active: isActive(slide) }" ng-click="select(slide)">\n <span class="sr-only">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if="isActive(slide)">, currently active</span></span>\n </li>\n </ol>\n</div>' ) } ] ) ;
angular . module ( "template/carousel/slide.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/carousel/slide.html" , '<div ng-class="{\n \'active\': active\n }" class="item text-center" ng-transclude></div>\n' ) } ] ) ; angular . module ( "template/datepicker/datepicker.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/datepicker/datepicker.html" , '<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>\n <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>\n <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>\n</div>' ) } ] ) ;
angular . module ( "template/datepicker/day.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/datepicker/day.html" , '<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n <tr>\n <th ng-if="showWeeks" class="text-center"></th>\n <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n' ) } ] ) ;
angular . module ( "template/datepicker/month.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/datepicker/month.html" , '<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n' ) } ] ) ;
angular . module ( "template/datepicker/popup.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/datepicker/popup.html" , '<ul class="dropdown-menu" dropdown-nested ng-if="isOpen" style="display: block" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n\t<li ng-transclude></li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n\t\t<span class="btn-group pull-left">\n\t\t\t<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n\t\t\t<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}</button>\n\t\t</span>\n\t\t<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}</button>\n\t</li>\n</ul>\n' ) } ] ) ;
angular . module ( "template/datepicker/year.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/datepicker/year.html" , '<table role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n <thead>\n <tr>\n <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n <th colspan="3"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1" style="width:100%;"><strong>{{title}}</strong></button></th>\n <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat="row in rows track by $index">\n <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{::dt.uid}}" ng-class="::dt.customClass">\n <button type="button" style="min-width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n </td>\n </tr>\n </tbody>\n</table>\n' ) } ] ) ;
angular . module ( "template/modal/backdrop.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/modal/backdrop.html" , '<div uib-modal-animation-class="fade"\n modal-in-class="in"\n ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n' ) } ] ) ; angular . module ( "template/modal/window.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/modal/window.html" , '<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n uib-modal-animation-class="fade"\n modal-in-class="in"\n ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}">\n <div class="modal-dialog" ng-class="size ? \'modal-\' + size : \'\'"><div class="modal-content" uib-modal-transclude></div></div>\n</div>\n' ) } ] ) ;
angular . module ( "template/pagination/pager.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/pagination/pager.html" , '<ul class="pager">\n <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n' ) } ] ) ;
angular . module ( "template/pagination/pagination.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/pagination/pagination.html" , '<ul class="pagination">\n <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n' ) } ] ) ;
angular . module ( "template/tooltip/tooltip-html-popup.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/tooltip/tooltip-html-popup.html" , '<div\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n' ) } ] ) ; angular . module ( "template/tooltip/tooltip-popup.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/tooltip/tooltip-popup.html" , '<div\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n' ) } ] ) ;
angular . module ( "template/tooltip/tooltip-template-popup.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/tooltip/tooltip-template-popup.html" , '<div\n tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="tooltip-arrow"></div>\n <div class="tooltip-inner"\n uib-tooltip-template-transclude="contentExp()"\n tooltip-template-transclude-scope="originScope()"></div>\n</div>\n' ) } ] ) ;
angular . module ( "template/popover/popover-html.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/popover/popover-html.html" , '<div tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n <div class="popover-content" ng-bind-html="contentExp()"></div>\n </div>\n</div>\n' ) } ] ) ;
angular . module ( "template/popover/popover-template.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/popover/popover-template.html" , '<div tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n <div class="popover-content"\n uib-tooltip-template-transclude="contentExp()"\n tooltip-template-transclude-scope="originScope()"></div>\n </div>\n</div>\n' ) } ] ) ;
angular . module ( "template/popover/popover.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/popover/popover.html" , '<div tooltip-animation-class="fade"\n uib-tooltip-classes\n ng-class="{ in: isOpen() }">\n <div class="arrow"></div>\n\n <div class="popover-inner">\n <h3 class="popover-title" ng-bind="title" ng-if="title"></h3>\n <div class="popover-content" ng-bind="content"></div>\n </div>\n</div>\n' ) } ] ) ;
angular . module ( "template/progressbar/bar.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/progressbar/bar.html" , '<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" style="min-width: 0;" ng-transclude></div>\n' ) } ] ) ;
angular . module ( "template/progressbar/progress.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/progressbar/progress.html" , '<div class="progress" ng-transclude aria-labelledby="{{::title}}"></div>' ) } ] ) ; angular . module ( "template/progressbar/progressbar.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/progressbar/progressbar.html" , '<div class="progress">\n <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" style="min-width: 0;" ng-transclude></div>\n</div>\n' ) } ] ) ;
angular . module ( "template/rating/rating.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/rating/rating.html" , '<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n <i ng-repeat-end ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')" ng-attr-title="{{r.title}}" aria-valuetext="{{r.title}}"></i>\n</span>\n' ) } ] ) ;
angular . module ( "template/tabs/tab.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/tabs/tab.html" , '<li ng-class="{active: active, disabled: disabled}">\n <a href ng-click="select()" uib-tab-heading-transclude>{{heading}}</a>\n</li>\n' ) } ] ) ; angular . module ( "template/tabs/tabset.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/tabs/tabset.html" , '<div>\n <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n <div class="tab-content">\n <div class="tab-pane" \n ng-repeat="tab in tabs" \n ng-class="{active: tab.active}"\n uib-tab-content-transclude="tab">\n </div>\n </div>\n</div>\n' ) } ] ) ;
angular . module ( "template/timepicker/timepicker.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/timepicker/timepicker.html" , '<table>\n <tbody>\n <tr class="text-center" ng-show="::showSpinners">\n <td><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link" ng-disabled="noIncrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td> </td>\n <td><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link" ng-disabled="noIncrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n <tr>\n <td class="form-group" ng-class="{\'has-error\': invalidHours}">\n <input style="width:50px;" type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}">\n </td>\n <td>:</td>\n <td class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n <input style="width:50px;" type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}">\n </td>\n <td ng-show="showMeridian"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()" ng-disabled="noToggleMeridian()" tabindex="{{::tabindex}}">{{meridian}}</button></td>\n </tr>\n <tr class="text-center" ng-show="::showSpinners">\n <td><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link" ng-disabled="noDecrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td> </td>\n <td><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link" ng-disabled="noDecrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n <td ng-show="showMeridian"></td>\n </tr>\n </tbody>\n</table>\n' ) } ] ) ;
angular . module ( "template/typeahead/typeahead-match.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/typeahead/typeahead-match.html" , '<a href tabindex="-1" ng-bind-html="match.label | uibTypeaheadHighlight:query"></a>\n' ) } ] ) ; angular . module ( "template/typeahead/typeahead-popup.html" , [ ] ) . run ( [ "$templateCache" , function ( a ) { a . put ( "template/typeahead/typeahead-popup.html" , '<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}">\n <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n </li>\n</ul>\n' ) } ] ) ;
! angular . $$csp ( ) && angular . element ( document ) . find ( "head" ) . prepend ( '<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>' ) ;
! function ( a , l ) { "function" == typeof define && define . amd ? define ( [ ] , function ( ) { return l ( ) } ) : "object" == typeof exports ? module . exports = l ( ) : l ( ) } ( this , function ( ) { function a ( a ) { var b = a . storageKey ( ) , c = a . storage ( ) , e = function ( ) { var e = a . preferredLanguage ( ) ; angular . isString ( e ) ? a . use ( e ) : c . put ( b , a . use ( ) ) } ; e . displayName = "fallbackFromIncorrectStorageValue" ; c ? c . get ( b ) ? a . use ( c . get ( b ) ) [ "catch" ] ( e ) : e ( ) : angular . isString ( a . preferredLanguage ( ) ) && a . use ( a . preferredLanguage ( ) ) } function l ( a , b , c , e ) { var f , g , h , l , m , n , r , q , t , x , K , O , V ,
X , L , T , W = { } , ca = [ ] , B = a , P = [ ] , na = "translate-cloak" , U = ! 1 , S = ! 1 , da = "." , Q = ! 1 , ka = ! 1 , ga = 0 , Z = ! 0 , va = "default" , sa = { "default" : function ( a ) { return ( a || "" ) . split ( "-" ) . join ( "_" ) } , java : function ( a ) { a = ( a || "" ) . split ( "-" ) . join ( "_" ) ; var b = a . split ( "_" ) ; return 1 < b . length ? b [ 0 ] . toLowerCase ( ) + "_" + b [ 1 ] . toUpperCase ( ) : a } , bcp47 : function ( a ) { a = ( a || "" ) . split ( "_" ) . join ( "-" ) ; var b = a . split ( "-" ) ; return 1 < b . length ? b [ 0 ] . toLowerCase ( ) + "-" + b [ 1 ] . toUpperCase ( ) : a } , "iso639-1" : function ( a ) { return ( a || "" ) . split ( "_" ) . join ( "-" ) . split ( "-" ) [ 0 ] . toLowerCase ( ) } } ,
ja = function ( ) { if ( angular . isFunction ( e . getLocale ) ) return e . getLocale ( ) ; var a , c , f = b . $get ( ) . navigator , g = [ "language" , "browserLanguage" , "systemLanguage" , "userLanguage" ] ; if ( angular . isArray ( f . languages ) ) for ( a = 0 ; a < f . languages . length ; a ++ ) if ( c = f . languages [ a ] , c && c . length ) return c ; for ( a = 0 ; a < g . length ; a ++ ) if ( c = f [ g [ a ] ] , c && c . length ) return c ; return null } ; ja . displayName = "angular-translate/service: getFirstBrowserLanguage" ; var Ga = function ( ) { var a = ja ( ) || "" ; return sa [ va ] && ( a = sa [ va ] ( a ) ) , a } ; Ga . displayName = "angular-translate/service: getLocale" ;
var wa = function ( a , b ) { for ( var c = 0 , e = a . length ; c < e ; c ++ ) if ( a [ c ] === b ) return c ; return - 1 } , qa = function ( ) { return this . toString ( ) . replace ( /^\s+|\s+$/g , "" ) } , ra = function ( a ) { if ( a ) { for ( var b = [ ] , c = angular . lowercase ( a ) , e = 0 , f = ca . length ; e < f ; e ++ ) b . push ( angular . lowercase ( ca [ e ] ) ) ; if ( - 1 < wa ( b , c ) ) return a ; if ( g ) { var h , m ; for ( m in g ) if ( g . hasOwnProperty ( m ) && ( c = ! 1 , e = Object . prototype . hasOwnProperty . call ( g , m ) && angular . lowercase ( m ) === angular . lowercase ( a ) , "*" === m . slice ( - 1 ) && ( c = m . slice ( 0 , - 1 ) === a . slice ( 0 , m . length - 1 ) ) , ( e || c ) && ( h = g [ m ] ,
- 1 < wa ( b , angular . lowercase ( h ) ) ) ) ) return h } a = a . split ( "_" ) ; return 1 < a . length && - 1 < wa ( b , angular . lowercase ( a [ 0 ] ) ) ? a [ 0 ] : void 0 } } , Aa = function ( a , b ) { if ( ! a && ! b ) return W ; if ( a && ! b ) { if ( angular . isString ( a ) ) return W [ a ] } else angular . isObject ( W [ a ] ) || ( W [ a ] = { } ) , angular . extend ( W [ a ] , qb ( b ) ) ; return this } ; this . translations = Aa ; this . cloakClassName = function ( a ) { return a ? ( na = a , this ) : na } ; this . nestedObjectDelimeter = function ( a ) { return a ? ( da = a , this ) : da } ; var qb = function ( a , b , c , e ) { var f , g , h , m ; b || ( b = [ ] ) ; c || ( c = { } ) ; for ( f in a ) Object . prototype . hasOwnProperty . call ( a ,
f ) && ( m = a [ f ] , angular . isObject ( m ) ? qb ( m , b . concat ( f ) , c , f ) : ( g = b . length ? "" + b . join ( da ) + da + f : f , b . length && f === e && ( h = "" + b . join ( da ) , c [ h ] = "@:" + g ) , c [ g ] = m ) ) ; return c } ; qb . displayName = "flatObject" ; this . addInterpolation = function ( a ) { return P . push ( a ) , this } ; this . useMessageFormatInterpolation = function ( ) { return this . useInterpolation ( "$translateMessageFormatInterpolation" ) } ; this . useInterpolation = function ( a ) { return x = a , this } ; this . useSanitizeValueStrategy = function ( a ) { return c . useStrategy ( a ) , this } ; this . preferredLanguage = function ( a ) { return a ?
( a && ( f = a ) , this ) : f } ; this . translationNotFoundIndicator = function ( a ) { return this . translationNotFoundIndicatorLeft ( a ) , this . translationNotFoundIndicatorRight ( a ) , this } ; this . translationNotFoundIndicatorLeft = function ( a ) { return a ? ( V = a , this ) : V } ; this . translationNotFoundIndicatorRight = function ( a ) { return a ? ( X = a , this ) : X } ; this . fallbackLanguage = function ( a ) { return ba ( a ) , this } ; var ba = function ( a ) { return a ? ( angular . isString ( a ) ? ( l = ! 0 , h = [ a ] ) : angular . isArray ( a ) && ( l = ! 1 , h = a ) , angular . isString ( f ) && 0 > wa ( h , f ) && h . push ( f ) , this ) :
l ? h [ 0 ] : h } ; this . use = function ( a ) { if ( a ) { if ( ! W [ a ] && ! K ) throw Error ( "$translateProvider couldn't find translationTable for langKey: '" + a + "'" ) ; return m = a , this } return m } ; this . resolveClientLocale = function ( ) { return Ga ( ) } ; var xb = function ( a ) { return a ? ( B = a , this ) : q ? q + B : B } ; this . storageKey = xb ; this . useUrlLoader = function ( a , b ) { return this . useLoader ( "$translateUrlLoader" , angular . extend ( { url : a } , b ) ) } ; this . useStaticFilesLoader = function ( a ) { return this . useLoader ( "$translateStaticFilesLoader" , a ) } ; this . useLoader = function ( a ,
b ) { return K = a , O = b || { } , this } ; this . useLocalStorage = function ( ) { return this . useStorage ( "$translateLocalStorage" ) } ; this . useCookieStorage = function ( ) { return this . useStorage ( "$translateCookieStorage" ) } ; this . useStorage = function ( a ) { return r = a , this } ; this . storagePrefix = function ( a ) { return a ? ( q = a , this ) : a } ; this . useMissingTranslationHandlerLog = function ( ) { return this . useMissingTranslationHandler ( "$translateMissingTranslationHandlerLog" ) } ; this . useMissingTranslationHandler = function ( a ) { return t = a , this } ; this . usePostCompiling =
function ( a ) { return U = ! ! a , this } ; this . forceAsyncReload = function ( a ) { return S = ! ! a , this } ; this . uniformLanguageTag = function ( a ) { return a ? angular . isString ( a ) && ( a = { standard : a } ) : a = { } , va = a . standard , this } ; this . determinePreferredLanguage = function ( a ) { a = a && angular . isFunction ( a ) ? a ( ) : Ga ( ) ; return f = ca . length ? ra ( a ) || a : a , this } ; this . registerAvailableLanguageKeys = function ( a , b ) { return a ? ( ca = a , b && ( g = b ) , this ) : ca } ; this . useLoaderCache = function ( a ) { return ! 1 === a ? L = void 0 : ! 0 === a ? L = ! 0 : "undefined" == typeof a ? L = "$translationCache" :
a && ( L = a ) , this } ; this . directivePriority = function ( a ) { return void 0 === a ? ga : ( ga = a , this ) } ; this . statefulFilter = function ( a ) { return void 0 === a ? Z : ( Z = a , this ) } ; this . postProcess = function ( a ) { return T = a ? a : void 0 , this } ; this . keepContent = function ( a ) { return ka = ! ! a , this } ; this . $get = [ "$log" , "$injector" , "$rootScope" , "$q" , function ( a , b , c , e ) { var g , q , p , v = b . get ( x || "$translateDefaultInterpolation" ) , y = ! 1 , A = { } , C = { } , E = function ( a , b , c , l , n ) { ! m && f && ( m = f ) ; var p = n && n !== m ? ra ( n ) || n : m ; if ( n && fc ( n ) , angular . isArray ( a ) ) return function ( a ) { for ( var f =
{ } , g = [ ] , h = function ( a ) { var g = e . defer ( ) , h = function ( b ) { f [ a ] = b ; g . resolve ( [ a , b ] ) } ; return E ( a , b , c , l , n ) . then ( h , h ) , g . promise } , m = 0 , r = a . length ; m < r ; m ++ ) g . push ( h ( a [ m ] ) ) ; return e . all ( g ) . then ( function ( ) { return f } ) } ( a ) ; var t = e . defer ( ) ; a && ( a = qa . apply ( a ) ) ; var v = function ( ) { var a = f ? C [ f ] : C [ p ] ; if ( q = 0 , r && ! a ) { var b = g . get ( B ) ; if ( a = C [ b ] , h && h . length ) q = 0 === wa ( h , b ) ? 1 : 0 , 0 > wa ( h , f ) && h . push ( f ) } return a } ( ) ; if ( v ) { var x = function ( ) { n || ( p = m ) ; Ta ( a , b , c , l , p ) . then ( t . resolve , t . reject ) } ; x . displayName = "promiseResolved" ; v [ "finally" ] ( x ) } else Ta ( a ,
b , c , l , p ) . then ( t . resolve , t . reject ) ; return t . promise } , F = function ( a ) { return V && ( a = [ V , a ] . join ( " " ) ) , X && ( a = [ a , X ] . join ( " " ) ) , a } , I = function ( a ) { m = a ; r && g . put ( E . storageKey ( ) , m ) ; c . $emit ( "$translateChangeSuccess" , { language : a } ) ; v . setLocale ( m ) ; var b = function ( a , b ) { A [ b ] . setLocale ( m ) } ; b . displayName = "eachInterpolatorLocaleSetter" ; angular . forEach ( A , b ) ; c . $emit ( "$translateChangeEnd" , { language : a } ) } , H = function ( a ) { if ( ! a ) throw "No language key specified for loading." ; var f = e . defer ( ) ; c . $emit ( "$translateLoadingStart" , { language : a } ) ;
y = ! 0 ; var g = L ; "string" == typeof g && ( g = b . get ( g ) ) ; var g = angular . extend ( { } , O , { key : a , $http : angular . extend ( { } , { cache : g } , O . $http ) } ) , h = function ( b ) { var e = { } ; c . $emit ( "$translateLoadingSuccess" , { language : a } ) ; angular . isArray ( b ) ? angular . forEach ( b , function ( a ) { angular . extend ( e , qb ( a ) ) } ) : angular . extend ( e , qb ( b ) ) ; y = ! 1 ; f . resolve ( { key : a , table : e } ) ; c . $emit ( "$translateLoadingEnd" , { language : a } ) } ; h . displayName = "onLoaderSuccess" ; var m = function ( a ) { c . $emit ( "$translateLoadingError" , { language : a } ) ; f . reject ( a ) ; c . $emit ( "$translateLoadingEnd" ,
{ language : a } ) } ; return m . displayName = "onLoaderError" , b . get ( K ) ( g ) . then ( h , m ) , f . promise } ; if ( r && ( g = b . get ( r ) , ! g . get || ! g . put ) ) throw Error ( "Couldn't use storage '" + r + "', missing get() or put() method!" ) ; P . length && ( a = function ( a ) { a = b . get ( a ) ; a . setLocale ( f || m ) ; A [ a . getInterpolationIdentifier ( ) ] = a } , a . displayName = "interpolationFactoryAdder" , angular . forEach ( P , a ) ) ; var J = function ( a ) { var b = e . defer ( ) ; if ( Object . prototype . hasOwnProperty . call ( W , a ) ) b . resolve ( W [ a ] ) ; else if ( C [ a ] ) { var c = function ( a ) { Aa ( a . key , a . table ) ; b . resolve ( a . table ) } ;
c . displayName = "translationTableResolver" ; C [ a ] . then ( c , b . reject ) } else b . reject ( ) ; return b . promise } , sa = function ( a , b , c , f ) { var g = e . defer ( ) , h = function ( e ) { if ( Object . prototype . hasOwnProperty . call ( e , b ) ) { f . setLocale ( a ) ; var h = e [ b ] ; "@:" === h . substr ( 0 , 2 ) ? sa ( a , h . substr ( 2 ) , c , f ) . then ( g . resolve , g . reject ) : ( h = f . interpolate ( e [ b ] , c ) , h = Hb ( b , e [ b ] , h , c , a ) , g . resolve ( h ) ) ; f . setLocale ( m ) } else g . reject ( ) } ; return h . displayName = "fallbackTranslationResolver" , J ( a ) . then ( h , g . reject ) , g . promise } , va = function ( a , b , c , e ) { var f , g = W [ a ] ; if ( g &&
Object . prototype . hasOwnProperty . call ( g , b ) ) { if ( e . setLocale ( a ) , f = e . interpolate ( g [ b ] , c ) , f = Hb ( b , g [ b ] , f , c , a ) , "@:" === f . substr ( 0 , 2 ) ) return va ( a , f . substr ( 2 ) , c , e ) ; e . setLocale ( m ) } return f } , ja = function ( a , c , e ) { return t ? ( c = b . get ( t ) ( a , m , c , e ) , void 0 !== c ? c : a ) : a } , La = function ( a , b , c , f , g ) { var m = e . defer ( ) ; a < h . length ? sa ( h [ a ] , b , c , f ) . then ( function ( a ) { m . resolve ( a ) } , function ( ) { return La ( a + 1 , b , c , f , g ) . then ( m . resolve , m . reject ) } ) : g ? m . resolve ( g ) : t ? m . resolve ( ja ( b , c ) ) : m . reject ( ja ( b , c ) ) ; return m . promise } , Sa = function ( a , b , c , e ) { var f ;
a < h . length && ( ( f = va ( h [ a ] , b , c , e ) ) || ( f = Sa ( a + 1 , b , c , e ) ) ) ; return f } , Ta = function ( a , b , c , f , g ) { var m = e . defer ( ) , l = g ? W [ g ] : W , n = c ? A [ c ] : v ; if ( l && Object . prototype . hasOwnProperty . call ( l , a ) ) l = l [ a ] , "@:" === l . substr ( 0 , 2 ) ? E ( l . substr ( 2 ) , b , c , f , g ) . then ( m . resolve , m . reject ) : ( c = n . interpolate ( l , b ) , c = Hb ( a , l , c , b , g ) , m . resolve ( c ) ) ; else { var r ; t && ! y && ( r = ja ( a , b , f ) ) ; g && h && h . length ? La ( 0 < p ? p : q , a , b , n , f ) . then ( function ( a ) { m . resolve ( a ) } , function ( a ) { m . reject ( F ( a ) ) } ) : t && ! y && r ? f ? m . resolve ( f ) : m . resolve ( r ) : f ? m . resolve ( f ) : m . reject ( F ( a ) ) } return m . promise } ,
jb = function ( a , b , c , e ) { var f , g = e ? W [ e ] : W , m = v ; if ( A && Object . prototype . hasOwnProperty . call ( A , c ) && ( m = A [ c ] ) , g && Object . prototype . hasOwnProperty . call ( g , a ) ) g = g [ a ] , "@:" === g . substr ( 0 , 2 ) ? f = jb ( g . substr ( 2 ) , b , c , e ) : ( f = m . interpolate ( g , b ) , f = Hb ( a , g , f , b , e ) ) ; else { var l ; t && ! y && ( l = ja ( a , b ) ) ; e && h && h . length ? ( q = 0 , f = Sa ( 0 < p ? p : q , a , b , m ) ) : f = t && ! y && l ? l : F ( a ) } return f } , Hb = function ( a , c , e , f , g ) { var h = T ; return h && ( "string" == typeof h && ( h = b . get ( h ) ) , h ) ? h ( a , c , e , f , g ) : e } , fc = function ( a ) { W [ a ] || ! K || C [ a ] || ( C [ a ] = H ( a ) . then ( function ( a ) { return Aa ( a . key ,
a . table ) , a } ) ) } ; E . preferredLanguage = function ( a ) { return a && a && ( f = a ) , f } ; E . cloakClassName = function ( ) { return na } ; E . nestedObjectDelimeter = function ( ) { return da } ; E . fallbackLanguage = function ( a ) { if ( void 0 !== a && null !== a ) { if ( ba ( a ) , K && h && h . length ) { a = 0 ; for ( var b = h . length ; a < b ; a ++ ) C [ h [ a ] ] || ( C [ h [ a ] ] = H ( h [ a ] ) ) } E . use ( E . use ( ) ) } return l ? h [ 0 ] : h } ; E . useFallbackLanguage = function ( a ) { void 0 !== a && null !== a && ( a ? ( a = wa ( h , a ) , - 1 < a && ( p = a ) ) : p = 0 ) } ; E . proposedLanguage = function ( ) { return n } ; E . storage = function ( ) { return g } ; E . negotiateLocale =
ra ; E . use = function ( a ) { if ( ! a ) return m ; var b = e . defer ( ) ; c . $emit ( "$translateChangeStart" , { language : a } ) ; var f = ra ( a ) ; return 0 < ca . length && ! f ? e . reject ( a ) : ( f && ( a = f ) , n = a , ! S && W [ a ] || ! K || C [ a ] ? C [ a ] ? C [ a ] . then ( function ( a ) { return n === a . key && I ( a . key ) , b . resolve ( a . key ) , a } , function ( a ) { return ! m && h && 0 < h . length ? E . use ( h [ 0 ] ) . then ( b . resolve , b . reject ) : b . reject ( a ) } ) : ( b . resolve ( a ) , I ( a ) ) : ( C [ a ] = H ( a ) . then ( function ( c ) { return Aa ( c . key , c . table ) , b . resolve ( c . key ) , n === a && I ( c . key ) , c } , function ( a ) { return c . $emit ( "$translateChangeError" , { language : a } ) ,
b . reject ( a ) , c . $emit ( "$translateChangeEnd" , { language : a } ) , e . reject ( a ) } ) , C [ a ] [ "finally" ] ( function ( ) { var b = a ; n === b && ( n = void 0 ) ; C [ b ] = void 0 } ) ) , b . promise ) } ; E . resolveClientLocale = function ( ) { return Ga ( ) } ; E . storageKey = function ( ) { return xb ( ) } ; E . isPostCompilingEnabled = function ( ) { return U } ; E . isForceAsyncReloadEnabled = function ( ) { return S } ; E . isKeepContent = function ( ) { return ka } ; E . refresh = function ( a ) { function b ( ) { g . resolve ( ) ; c . $emit ( "$translateRefreshEnd" , { language : a } ) } function f ( ) { g . reject ( ) ; c . $emit ( "$translateRefreshEnd" ,
{ language : a } ) } if ( ! K ) throw Error ( "Couldn't refresh translation table, no loader registered!" ) ; var g = e . defer ( ) ; if ( c . $emit ( "$translateRefreshStart" , { language : a } ) , a ) if ( W [ a ] ) { var l = function ( c ) { return Aa ( c . key , c . table ) , a === m && I ( m ) , b ( ) , c } ; l . displayName = "refreshPostProcessor" ; H ( a ) . then ( l , f ) } else f ( ) ; else { var l = [ ] , n = { } ; if ( h && h . length ) for ( var r = 0 , B = h . length ; r < B ; r ++ ) l . push ( H ( h [ r ] ) ) , n [ h [ r ] ] = ! 0 ; m && ! n [ m ] && l . push ( H ( m ) ) ; n = function ( a ) { W = { } ; angular . forEach ( a , function ( a ) { Aa ( a . key , a . table ) } ) ; m && I ( m ) ; b ( ) } ; n . displayName =
"refreshPostProcessor" ; e . all ( l ) . then ( n , f ) } return g . promise } ; E . instant = function ( a , b , c , e ) { var g = e && e !== m ? ra ( e ) || e : m ; if ( null === a || angular . isUndefined ( a ) ) return a ; if ( e && fc ( e ) , angular . isArray ( a ) ) { for ( var g = { } , l = 0 , n = a . length ; l < n ; l ++ ) g [ a [ l ] ] = E . instant ( a [ l ] , b , c , e ) ; return g } if ( angular . isString ( a ) && 1 > a . length ) return a ; a && ( a = qa . apply ( a ) ) ; e = [ ] ; f && e . push ( f ) ; g && e . push ( g ) ; h && h . length && ( e = e . concat ( h ) ) ; for ( var n = 0 , r = e . length ; n < r ; n ++ ) { var B = e [ n ] ; if ( W [ B ] && "undefined" != typeof W [ B ] [ a ] && ( l = jb ( a , b , c , g ) ) , "undefined" != typeof l ) break } return l ||
"" === l || ( V || X ? l = F ( a ) : ( l = v . interpolate ( a , b ) , t && ! y && ( l = ja ( a , b ) ) ) ) , l } ; E . versionInfo = function ( ) { return "2.11.1" } ; E . loaderCache = function ( ) { return L } ; E . directivePriority = function ( ) { return ga } ; E . statefulFilter = function ( ) { return Z } ; E . isReady = function ( ) { return Q } ; var Sb = e . defer ( ) ; Sb . promise . then ( function ( ) { Q = ! 0 } ) ; E . onReady = function ( a ) { var b = e . defer ( ) ; return angular . isFunction ( a ) && b . promise . then ( a ) , Q ? b . resolve ( ) : Sb . promise . then ( b . resolve ) , b . promise } ; E . getAvailableLanguageKeys = function ( ) { return 0 < ca . length ? ca :
null } ; var Gc = c . $on ( "$translateReady" , function ( ) { Sb . resolve ( ) ; Gc ( ) ; Gc = null } ) , Ib = c . $on ( "$translateChangeEnd" , function ( ) { Sb . resolve ( ) ; Ib ( ) ; Ib = null } ) ; if ( K ) { if ( angular . equals ( W , { } ) && E . use ( ) && E . use ( E . use ( ) ) , h && h . length ) { a = function ( a ) { return Aa ( a . key , a . table ) , c . $emit ( "$translateChangeEnd" , { language : a . key } ) , a } ; for ( var oc = 0 , Hc = h . length ; oc < Hc ; oc ++ ) { var Tb = h [ oc ] ; ! S && W [ Tb ] || ( C [ Tb ] = H ( Tb ) . then ( a ) ) } } } else c . $emit ( "$translateReady" , { language : E . use ( ) } ) ; return E } ] } function h ( a , b ) { var c = { } ; return c . setLocale = function ( a ) { } ,
c . getInterpolationIdentifier = function ( ) { return "default" } , c . useSanitizeValueStrategy = function ( a ) { return b . useStrategy ( a ) , this } , c . interpolate = function ( c , e ) { e = e || { } ; e = b . sanitize ( e , "params" ) ; var f ; return angular . isNumber ( c ) ? f = "" + c : angular . isString ( c ) ? ( f = a ( c ) ( e ) , f = b . sanitize ( f , "text" ) ) : f = "" , f } , c } function e ( a , b , e , f , g , h ) { var m = function ( ) { return this . toString ( ) . replace ( /^\s+|\s+$/g , "" ) } ; return { restrict : "AE" , scope : ! 0 , priority : a . directivePriority ( ) , compile : function ( b , l ) { var n = l . translateValues ? l . translateValues :
void 0 , r = l . translateInterpolation ? l . translateInterpolation : void 0 , q = b [ 0 ] . outerHTML . match ( /translate-value-+/i ) , t = "^(.*)(" + e . startSymbol ( ) + ".*" + e . endSymbol ( ) + ")(.*)" , x = "^(.*)" + e . startSymbol ( ) + "(.*)" + e . endSymbol ( ) + "(.*)" ; return function ( b , p , v ) { b . interpolateParams = { } ; b . preText = "" ; b . postText = "" ; b . translateNamespace = c ( b ) ; var A = { } , y = function ( a ) { if ( angular . isFunction ( y . _unwatchOld ) && ( y . _unwatchOld ( ) , y . _unwatchOld = void 0 ) , angular . equals ( a , "" ) || ! angular . isDefined ( a ) ) { a = m . apply ( p . text ( ) ) ; var c = a . match ( t ) ; angular . isArray ( c ) ?
( b . preText = c [ 1 ] , b . postText = c [ 3 ] , A . translate = e ( c [ 2 ] ) ( b . $parent ) , a = a . match ( x ) , angular . isArray ( a ) && a [ 2 ] && a [ 2 ] . length && ( y . _unwatchOld = b . $watch ( a [ 2 ] , function ( a ) { A . translate = a ; P ( ) } ) ) ) : A . translate = a ? a : void 0 } else A . translate = a ; P ( ) } , C = function ( a ) { v . $observe ( a , function ( b ) { A [ a ] = b ; P ( ) } ) } ; ( function ( a , c , e ) { if ( c . translateValues && angular . extend ( a , g ( c . translateValues ) ( b . $parent ) ) , q ) for ( var f in e ) if ( Object . prototype . hasOwnProperty . call ( c , f ) && "translateValue" === f . substr ( 0 , 14 ) && "translateValues" !== f ) { var h = angular . lowercase ( f . substr ( 14 ,
1 ) ) + f . substr ( 15 ) ; a [ h ] = e [ f ] } } ) ( b . interpolateParams , v , l ) ; var E = ! 0 ; v . $observe ( "translate" , function ( a ) { "undefined" == typeof a ? y ( "" ) : "" === a && E || ( A . translate = a , P ( ) ) ; E = ! 1 } ) ; for ( var F in v ) v . hasOwnProperty ( F ) && "translateAttr" === F . substr ( 0 , 13 ) && C ( F ) ; if ( v . $observe ( "translateDefault" , function ( a ) { b . defaultText = a ; P ( ) } ) , n && v . $observe ( "translateValues" , function ( a ) { a && b . $parent . $watch ( function ( ) { angular . extend ( b . interpolateParams , g ( a ) ( b . $parent ) ) } ) } ) , q ) { var C = function ( a ) { v . $observe ( a , function ( c ) { var e = angular . lowercase ( a . substr ( 14 ,
1 ) ) + a . substr ( 15 ) ; b . interpolateParams [ e ] = c } ) } , B ; for ( B in v ) Object . prototype . hasOwnProperty . call ( v , B ) && "translateValue" === B . substr ( 0 , 14 ) && "translateValues" !== B && C ( B ) } var P = function ( ) { for ( var a in A ) A . hasOwnProperty ( a ) && void 0 !== A [ a ] && na ( a , A [ a ] , b , b . interpolateParams , b . defaultText , b . translateNamespace ) } , na = function ( b , c , e , f , g , h ) { c ? ( h && "." === c . charAt ( 0 ) && ( c = h + c ) , a ( c , f , r , g , e . translateLanguage ) . then ( function ( a ) { U ( a , e , ! 0 , b ) } , function ( a ) { U ( a , e , ! 1 , b ) } ) ) : U ( c , e , ! 1 , b ) } , U = function ( b , c , e , g ) { ( e || "undefined" != typeof c . defaultText &&
( b = c . defaultText ) , "translate" === g ) ? ( ( e || ! e && ! a . isKeepContent ( ) && "undefined" == typeof v . translateKeepContent ) && p . empty ( ) . append ( c . preText + b + c . postText ) , b = a . isPostCompilingEnabled ( ) , g = ( e = "undefined" != typeof l . translateCompile ) && "false" !== l . translateCompile , ( b && ! e || g ) && f ( p . contents ( ) ) ( c ) ) : ( c = v . $attr [ g ] , "data-" === c . substr ( 0 , 5 ) && ( c = c . substr ( 5 ) ) , c = c . substr ( 15 ) , p . attr ( c , b ) ) } ; ( n || q || v . translateDefault ) && b . $watch ( "interpolateParams" , P , ! 0 ) ; var K = b . $on ( "translateLanguageChanged" , P ) , I = h . $on ( "$translateChangeSuccess" ,
P ) ; p . text ( ) . length ? y ( v . translate ? v . translate : "" ) : v . translate && y ( v . translate ) ; P ( ) ; b . $on ( "$destroy" , function ( ) { K ( ) ; I ( ) } ) } } } } function c ( a ) { return a . translateNamespace ? a . translateNamespace : a . $parent ? c ( a . $parent ) : void 0 } function b ( a , b ) { return { compile : function ( c ) { var e = function ( ) { c . addClass ( a . cloakClassName ( ) ) } , f = function ( ) { c . removeClass ( a . cloakClassName ( ) ) } ; return a . onReady ( function ( ) { f ( ) } ) , e ( ) , function ( c , g , h ) { h . translateCloak && h . translateCloak . length && ( h . $observe ( "translateCloak" , function ( b ) { a ( b ) . then ( f ,
e ) } ) , b . $on ( "$translateChangeSuccess" , function ( ) { a ( h . translateCloak ) . then ( f , e ) } ) ) } } } } function g ( ) { return { restrict : "A" , scope : ! 0 , compile : function ( ) { return { pre : function ( a , b , e ) { a . translateNamespace = c ( a ) ; a . translateNamespace && "." === e . translateNamespace . charAt ( 0 ) ? a . translateNamespace += e . translateNamespace : a . translateNamespace = e . translateNamespace } } } } } function c ( a ) { return a . translateNamespace ? a . translateNamespace : a . $parent ? c ( a . $parent ) : void 0 } function f ( ) { return { restrict : "A" , scope : ! 0 , compile : function ( ) { return function ( a ,
b , c ) { c . $observe ( "translateLanguage" , function ( b ) { a . translateLanguage = b } ) ; a . $watch ( "translateLanguage" , function ( ) { a . $broadcast ( "translateLanguageChanged" ) } ) } } } } function q ( a , b ) { var c = function ( c , e , f , g ) { return angular . isObject ( e ) || ( e = a ( e ) ( this ) ) , b . instant ( c , e , f , g ) } ; return b . statefulFilter ( ) && ( c . $stateful = ! 0 ) , c } function m ( a ) { return a ( "translations" ) } return a . $inject = [ "$translate" ] , l . $inject = [ "$STORAGE_KEY" , "$windowProvider" , "$translateSanitizationProvider" , "pascalprechtTranslateOverrider" ] , h . $inject = [ "$interpolate" ,
"$translateSanitization" ] , e . $inject = "$translate $q $interpolate $compile $parse $rootScope" . split ( " " ) , b . $inject = [ "$translate" , "$rootScope" ] , q . $inject = [ "$parse" , "$translate" ] , m . $inject = [ "$cacheFactory" ] , angular . module ( "pascalprecht.translate" , [ "ng" ] ) . run ( a ) , a . displayName = "runTranslate" , angular . module ( "pascalprecht.translate" ) . provider ( "$translateSanitization" , function ( ) { var a , b , c = null , e = ! 1 , f = ! 1 ; b = { sanitize : function ( a , b ) { return "text" === b && ( a = h ( a ) ) , a } , escape : function ( a , b ) { return "text" === b && ( a = g ( a ) ) ,
a } , sanitizeParameters : function ( a , b ) { return "params" === b && ( a = m ( a , h ) ) , a } , escapeParameters : function ( a , b ) { return "params" === b && ( a = m ( a , g ) ) , a } } ; b . escaped = b . escapeParameters ; this . addStrategy = function ( a , c ) { return b [ a ] = c , this } ; this . removeStrategy = function ( a ) { return delete b [ a ] , this } ; this . useStrategy = function ( a ) { return e = ! 0 , c = a , this } ; this . $get = [ "$injector" , "$log" , function ( g , h ) { var m = { } , l = function ( a , c , e ) { return angular . forEach ( e , function ( e ) { if ( angular . isFunction ( e ) ) a = e ( a , c ) ; else if ( angular . isFunction ( b [ e ] ) ) a =
b [ e ] ( a , c ) ; else { if ( ! angular . isString ( b [ e ] ) ) throw Error ( "pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '" + e + "'" ) ; if ( ! m [ b [ e ] ] ) try { m [ b [ e ] ] = g . get ( b [ e ] ) } catch ( V ) { throw m [ b [ e ] ] = function ( ) { } , Error ( "pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '" + e + "'" ) ; } a = m [ b [ e ] ] ( a , c ) } } ) , a } ; return g . has ( "$sanitize" ) && ( a = g . get ( "$sanitize" ) ) , { useStrategy : function ( a ) { return function ( b ) { a . useStrategy ( b ) } } ( this ) , sanitize : function ( a , b , g ) { c || e || f || ( h . warn ( "pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details." ) ,
f = ! 0 ) ; if ( 3 > arguments . length && ( g = c ) , ! g ) return a ; var m = angular . isArray ( g ) ? g : [ g ] ; return l ( a , b , m ) } } } ] ; var g = function ( a ) { var b = angular . element ( "<div></div>" ) ; return b . text ( a ) , b . html ( ) } , h = function ( b ) { if ( ! a ) throw Error ( "pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'." ) ; return a ( b ) } , m = function ( a , b , c ) { if ( angular . isObject ( a ) ) { var e =
angular . isArray ( a ) ? [ ] : { } ; if ( c ) { if ( - 1 < c . indexOf ( a ) ) throw Error ( "pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object" ) ; } else c = [ ] ; return c . push ( a ) , angular . forEach ( a , function ( a , f ) { angular . isFunction ( a ) || ( e [ f ] = m ( a , b , c ) ) } ) , c . splice ( - 1 , 1 ) , e } return angular . isNumber ( a ) ? a : b ( a ) } } ) , angular . module ( "pascalprecht.translate" ) . constant ( "pascalprechtTranslateOverrider" , { } ) . provider ( "$translate" , l ) , l . displayName = "displayName" , angular . module ( "pascalprecht.translate" ) . factory ( "$translateDefaultInterpolation" ,
h ) , h . displayName = "$translateDefaultInterpolation" , angular . module ( "pascalprecht.translate" ) . constant ( "$STORAGE_KEY" , "NG_TRANSLATE_LANG_KEY" ) , angular . module ( "pascalprecht.translate" ) . directive ( "translate" , e ) , e . displayName = "translateDirective" , angular . module ( "pascalprecht.translate" ) . directive ( "translateCloak" , b ) , b . displayName = "translateCloakDirective" , angular . module ( "pascalprecht.translate" ) . directive ( "translateNamespace" , g ) , g . displayName = "translateNamespaceDirective" , angular . module ( "pascalprecht.translate" ) . directive ( "translateLanguage" ,
f ) , f . displayName = "translateLanguageDirective" , angular . module ( "pascalprecht.translate" ) . filter ( "translate" , q ) , q . displayName = "translateFilterFactory" , angular . module ( "pascalprecht.translate" ) . factory ( "$translationCache" , m ) , m . displayName = "$translationCache" , "pascalprecht.translate" } ) ;
! function ( ) { function a ( a , c ) { window . XMLHttpRequest . prototype [ a ] = c ( window . XMLHttpRequest . prototype [ a ] ) } function l ( a , c , b ) { try { Object . defineProperty ( a , c , { get : b } ) } catch ( g ) { } } if ( window . FileAPI || ( window . FileAPI = { } ) , ! window . XMLHttpRequest ) throw "AJAX is not supported. XMLHttpRequest is not defined." ; if ( FileAPI . shouldLoad = ! window . FormData || FileAPI . forceLoad , FileAPI . shouldLoad ) { var h = function ( a ) { if ( ! a . _ _listeners ) { a . upload || ( a . upload = { } ) ; a . _ _listeners = [ ] ; var c = a . upload . addEventListener ; a . upload . addEventListener =
function ( b , e ) { a . _ _listeners [ b ] = e ; c && c . apply ( this , arguments ) } } } ; a ( "open" , function ( a ) { return function ( c , b , e ) { h ( this ) ; this . _ _url = b ; try { a . apply ( this , [ c , b , e ] ) } catch ( f ) { - 1 < f . message . indexOf ( "Access is denied" ) && ( this . _ _origError = f , a . apply ( this , [ c , "_fix_for_ie_crossdomain__" , e ] ) ) } } } ) ; a ( "getResponseHeader" , function ( a ) { return function ( c ) { return this . _ _fileApiXHR && this . _ _fileApiXHR . getResponseHeader ? this . _ _fileApiXHR . getResponseHeader ( c ) : null == a ? null : a . apply ( this , [ c ] ) } } ) ; a ( "getAllResponseHeaders" , function ( a ) { return function ( ) { return this . _ _fileApiXHR &&
this . _ _fileApiXHR . getAllResponseHeaders ? this . _ _fileApiXHR . getAllResponseHeaders ( ) : null == a ? null : a . apply ( this ) } } ) ; a ( "abort" , function ( a ) { return function ( ) { return this . _ _fileApiXHR && this . _ _fileApiXHR . abort ? this . _ _fileApiXHR . abort ( ) : null == a ? null : a . apply ( this ) } } ) ; a ( "setRequestHeader" , function ( a ) { return function ( c , b ) { if ( "__setXHR_" === c ) { h ( this ) ; var e = b ( this ) ; e instanceof Function && e ( this ) } else this . _ _requestHeaders = this . _ _requestHeaders || { } , this . _ _requestHeaders [ c ] = b , a . apply ( this , arguments ) } } ) ; a ( "send" ,
function ( a ) { return function ( ) { var c = this ; if ( arguments [ 0 ] && arguments [ 0 ] . _ _isFileAPIShim ) { for ( var b = arguments [ 0 ] , e = { url : c . _ _url , jsonp : ! 1 , cache : ! 0 , complete : function ( a , b ) { a && angular . isString ( a ) && - 1 !== a . indexOf ( "#2174" ) && ( a = null ) ; c . _ _completed = ! 0 ; ! a && c . _ _listeners . load && c . _ _listeners . load ( { type : "load" , loaded : c . _ _loaded , total : c . _ _total , target : c , lengthComputable : ! 0 } ) ; ! a && c . _ _listeners . loadend && c . _ _listeners . loadend ( { type : "loadend" , loaded : c . _ _loaded , total : c . _ _total , target : c , lengthComputable : ! 0 } ) ; "abort" ===
a && c . _ _listeners . abort && c . _ _listeners . abort ( { type : "abort" , loaded : c . _ _loaded , total : c . _ _total , target : c , lengthComputable : ! 0 } ) ; void 0 !== b . status && l ( c , "status" , function ( ) { return 0 === b . status && a && "abort" !== a ? 500 : b . status } ) ; void 0 !== b . statusText && l ( c , "statusText" , function ( ) { return b . statusText } ) ; l ( c , "readyState" , function ( ) { return 4 } ) ; void 0 !== b . response && l ( c , "response" , function ( ) { return b . response } ) ; var e = b . responseText || ( a && 0 === b . status && "abort" !== a ? a : void 0 ) ; l ( c , "responseText" , function ( ) { return e } ) ; l ( c ,
"response" , function ( ) { return e } ) ; a && l ( c , "err" , function ( ) { return a } ) ; c . _ _fileApiXHR = b ; c . onreadystatechange && c . onreadystatechange ( ) ; c . onload && c . onload ( ) } , progress : function ( a ) { if ( a . target = c , c . _ _listeners . progress && c . _ _listeners . progress ( a ) , c . _ _total = a . total , c . _ _loaded = a . loaded , a . total === a . loaded ) { var b = this ; setTimeout ( function ( ) { c . _ _completed || ( c . getAllResponseHeaders = function ( ) { } , b . complete ( null , { status : 204 , statusText : "No Content" } ) ) } , FileAPI . noContentTimeout || 1E4 ) } } , headers : c . _ _requestHeaders , data : { } ,
files : { } } , f = 0 ; f < b . data . length ; f ++ ) { var h = b . data [ f ] ; null != h . val && null != h . val . name && null != h . val . size && null != h . val . type ? e . files [ h . key ] = h . val : e . data [ h . key ] = h . val } setTimeout ( function ( ) { if ( ! FileAPI . hasFlash ) throw 'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"' ; c . _ _fileApiXHR = FileAPI . upload ( e ) } , 1 ) } else { if ( this . _ _origError ) throw this . _ _origError ; a . apply ( c , arguments ) } } } ) ; window . XMLHttpRequest . _ _isFileAPIShim = ! 0 ; window . FormData = FormData = function ( ) { return { append : function ( a , c ,
b ) { c . _ _isFileAPIBlobShim && ( c = c . data [ 0 ] ) ; this . data . push ( { key : a , val : c , name : b } ) } , data : [ ] , _ _isFileAPIShim : ! 0 } } ; window . Blob = Blob = function ( a ) { return { data : a , _ _isFileAPIBlobShim : ! 0 } } } } ( ) ;
( function ( ) { function a ( a ) { return "input" === a [ 0 ] . tagName . toLowerCase ( ) && a . attr ( "type" ) && "file" === a . attr ( "type" ) . toLowerCase ( ) } function l ( ) { try { return new ActiveXObject ( "ShockwaveFlash.ShockwaveFlash" ) , ! 0 } catch ( n ) { if ( void 0 !== navigator . mimeTypes [ "application/x-shockwave-flash" ] ) return ! 0 } return ! 1 } function h ( a ) { var b = 0 , c = 0 ; if ( window . jQuery ) return jQuery ( a ) . offset ( ) ; if ( a . offsetParent ) { do b += a . offsetLeft - a . scrollLeft , c += a . offsetTop - a . scrollTop , a = a . offsetParent ; while ( a ) } return { left : b , top : c } } if ( FileAPI . shouldLoad ) { if ( FileAPI . hasFlash =
l ( ) , FileAPI . forceLoad && ( FileAPI . html5 = ! 1 ) , ! FileAPI . upload ) { var e , c , b , g , f , q = document . createElement ( "script" ) , m = document . getElementsByTagName ( "script" ) ; if ( window . FileAPI . jsUrl ) e = window . FileAPI . jsUrl ; else if ( window . FileAPI . jsPath ) c = window . FileAPI . jsPath ; else for ( b = 0 ; b < m . length ; b ++ ) if ( f = m [ b ] . src , g = f . search ( /\/ng\-file\-upload[\-a-zA-z0-9\.]*\.js/ ) , - 1 < g ) { c = f . substring ( 0 , g + 1 ) ; break } null == FileAPI . staticPath && ( FileAPI . staticPath = c ) ; q . setAttribute ( "src" , e || c + "FileAPI.min.js" ) ; document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( q ) } FileAPI . ngfFixIE =
function ( b , c , e ) { if ( ! l ( ) ) throw 'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"' ; b . bind ( "mouseenter" , function ( ) { var g = c . parent ( ) ; b . attr ( "disabled" ) ? g && g . removeClass ( "js-fileapi-wrapper" ) : ( c . attr ( "__ngf_flash_" ) || ( c . unbind ( "change" ) , c . unbind ( "click" ) , c . bind ( "change" , function ( a ) { f . apply ( this , [ a ] ) ; e . apply ( this , [ a ] ) } ) , c . attr ( "__ngf_flash_" , "true" ) ) , g . addClass ( "js-fileapi-wrapper" ) , a ( b ) || ( g . css ( "position" , "absolute" ) . css ( "top" , h ( b [ 0 ] ) . top + "px" ) . css ( "left" , h ( b [ 0 ] ) . left + "px" ) . css ( "width" ,
b [ 0 ] . offsetWidth + "px" ) . css ( "height" , b [ 0 ] . offsetHeight + "px" ) . css ( "filter" , "alpha(opacity=0)" ) . css ( "display" , b . css ( "display" ) ) . css ( "overflow" , "hidden" ) . css ( "z-index" , "900000" ) . css ( "visibility" , "visible" ) , c . css ( "width" , b [ 0 ] . offsetWidth + "px" ) . css ( "height" , b [ 0 ] . offsetHeight + "px" ) . css ( "position" , "absolute" ) . css ( "top" , "0px" ) . css ( "left" , "0px" ) ) ) } ) ; var f = function ( a ) { for ( var b = FileAPI . getFiles ( a ) , c = 0 ; c < b . length ; c ++ ) void 0 === b [ c ] . size && ( b [ c ] . size = 0 ) , void 0 === b [ c ] . name && ( b [ c ] . name = "file" ) , void 0 === b [ c ] . type &&
( b [ c ] . type = "undefined" ) ; a . target || ( a . target = { } ) ; a . target . files = b ; a . target . files !== b && ( a . _ _files _ = b ) ; ( a . _ _files _ || a . target . files ) . item = function ( b ) { return ( a . _ _files _ || a . target . files ) [ b ] || null } } } ; FileAPI . disableFileInput = function ( a , b ) { b ? a . removeClass ( "js-fileapi-wrapper" ) : a . addClass ( "js-fileapi-wrapper" ) } } } ) ( ) ;
window . FileReader || ( window . FileReader = function ( ) { var a = this , l = ! 1 ; this . listeners = { } ; this . addEventListener = function ( c , b ) { a . listeners [ c ] = a . listeners [ c ] || [ ] ; a . listeners [ c ] . push ( b ) } ; this . removeEventListener = function ( c , b ) { a . listeners [ c ] && a . listeners [ c ] . splice ( a . listeners [ c ] . indexOf ( b ) , 1 ) } ; this . dispatchEvent = function ( c ) { var b = a . listeners [ c . type ] ; if ( b ) for ( var e = 0 ; e < b . length ; e ++ ) b [ e ] . call ( a , c ) } ; this . onabort = this . onerror = this . onload = this . onloadstart = this . onloadend = this . onprogress = null ; var h = function ( c , b ) { var e =
{ type : c , target : a , loaded : b . loaded , total : b . total , error : b . error } ; return null != b . result && ( e . target . result = b . result ) , e } , e = function ( c ) { l || ( l = ! 0 , a . onloadstart && a . onloadstart ( h ( "loadstart" , c ) ) ) ; var b ; "load" === c . type ? ( a . onloadend && a . onloadend ( h ( "loadend" , c ) ) , b = h ( "load" , c ) , a . onload && a . onload ( b ) , a . dispatchEvent ( b ) ) : "progress" === c . type ? ( b = h ( "progress" , c ) , a . onprogress && a . onprogress ( b ) , a . dispatchEvent ( b ) ) : ( b = h ( "error" , c ) , a . onerror && a . onerror ( b ) , a . dispatchEvent ( b ) ) } ; this . readAsDataURL = function ( a ) { FileAPI . readAsDataURL ( a ,
e ) } ; this . readAsText = function ( a ) { FileAPI . readAsText ( a , e ) } } ) ; ! window . XMLHttpRequest || window . FileAPI && FileAPI . shouldLoad || ( window . XMLHttpRequest . prototype . setRequestHeader = function ( a ) { return function ( l , h ) { if ( "__setXHR_" === l ) { var e = h ( this ) ; e instanceof Function && e ( this ) } else a . apply ( this , arguments ) } } ( window . XMLHttpRequest . prototype . setRequestHeader ) ) ; var ngFileUpload = angular . module ( "ngFileUpload" , [ ] ) ; ngFileUpload . version = "12.2.13" ;
ngFileUpload . service ( "UploadBase" , [ "$http" , "$q" , "$timeout" , function ( a , l , h ) { function e ( c ) { function e ( a ) { t . notify && t . notify ( a ) ; x . progressFunc && h ( function ( ) { x . progressFunc ( a ) } ) } function f ( a ) { return null != c . _start && g ? { loaded : a . loaded + c . _start , total : c . _file && c . _file . size || a . total , type : a . type , config : c , lengthComputable : ! 0 , target : a . target } : a } function n ( ) { a ( c ) . then ( function ( a ) { g && c . _chunkSize && ! c . _finished && c . _file ? ( a = c . _file && c . _file . size || 0 , e ( { loaded : Math . min ( c . _end , a ) , total : a , config : c , type : "progress" } ) ,
b . upload ( c , ! 0 ) ) : ( c . _finished && delete c . _finished , t . resolve ( a ) ) } , function ( a ) { t . reject ( a ) } , function ( a ) { t . notify ( a ) } ) } c . method = c . method || "POST" ; c . headers = c . headers || { } ; var t = c . _deferred = c . _deferred || l . defer ( ) , x = t . promise ; return c . disableProgress || ( c . headers . _ _setXHR _ = function ( ) { return function ( a ) { a && a . upload && a . upload . addEventListener && ( c . _ _XHR = a , c . xhrFn && c . xhrFn ( a ) , a . upload . addEventListener ( "progress" , function ( a ) { a . config = c ; e ( f ( a ) ) } , ! 1 ) , a . upload . addEventListener ( "load" , function ( a ) { a . lengthComputable &&
( a . config = c , e ( f ( a ) ) ) } , ! 1 ) ) } } ) , g ? c . _chunkSize && c . _end && ! c . _finished ? ( c . _start = c . _end , c . _end += c . _chunkSize , n ( ) ) : c . resumeSizeUrl ? a . get ( c . resumeSizeUrl ) . then ( function ( a ) { c . _start = c . resumeSizeResponseReader ? c . resumeSizeResponseReader ( a . data ) : parseInt ( ( null == a . data . size ? a . data : a . data . size ) . toString ( ) ) ; c . _chunkSize && ( c . _end = c . _start + c . _chunkSize ) ; n ( ) } , function ( a ) { throw a ; } ) : c . resumeSize ? c . resumeSize ( ) . then ( function ( a ) { c . _start = a ; c . _chunkSize && ( c . _end = c . _start + c . _chunkSize ) ; n ( ) } , function ( a ) { throw a ; } ) : ( c . _chunkSize &&
( c . _start = 0 , c . _end = c . _start + c . _chunkSize ) , n ( ) ) : n ( ) , x . success = function ( a ) { return x . then ( function ( b ) { a ( b . data , b . status , b . headers , c ) } ) , x } , x . error = function ( a ) { return x . then ( null , function ( b ) { a ( b . data , b . status , b . headers , c ) } ) , x } , x . progress = function ( a ) { return x . progressFunc = a , x . then ( null , null , function ( b ) { a ( b ) } ) , x } , x . abort = x . pause = function ( ) { return c . _ _XHR && h ( function ( ) { c . _ _XHR . abort ( ) } ) , x } , x . xhr = function ( a ) { return c . xhrFn = function ( b ) { return function ( ) { b && b . apply ( x , arguments ) ; a . apply ( x , arguments ) } } ( c . xhrFn ) ,
x } , b . promisesCount ++ , x [ "finally" ] && x [ "finally" ] instanceof Function && x [ "finally" ] ( function ( ) { b . promisesCount -- } ) , x } function c ( a ) { var b = { } , c ; for ( c in a ) a . hasOwnProperty ( c ) && ( b [ c ] = a [ c ] ) ; return b } var b = this ; b . promisesCount = 0 ; this . isResumeSupported = function ( ) { return window . Blob && window . Blob . prototype . slice } ; var g = this . isResumeSupported ( ) ; this . isUploadInProgress = function ( ) { return 0 < b . promisesCount } ; this . rename = function ( a , b ) { return a . ngfName = b , a } ; this . jsonBlob = function ( a ) { null == a || angular . isString ( a ) || ( a =
JSON . stringify ( a ) ) ; a = new window . Blob ( [ a ] , { type : "application/json" } ) ; return a . _ngfBlob = ! 0 , a } ; this . json = function ( a ) { return angular . toJson ( a ) } ; this . isFile = function ( a ) { return null != a && ( a instanceof window . Blob || a . flashId && a . name && a . size ) } ; this . upload = function ( a , h ) { function f ( c , e , h ) { if ( void 0 !== e ) if ( angular . isDate ( e ) && ( e = e . toISOString ( ) ) , angular . isString ( e ) ) c . append ( h , e ) ; else if ( b . isFile ( e ) ) { if ( ! e . _ngfBlob && ( a . _file = a . _file || e , null != a . _start && g ) ) { a . _end && a . _end >= e . size && ( a . _finished = ! 0 , a . _end = e . size ) ;
var l = e . slice ( a . _start , a . _end || e . size ) ; e = ( l . name = e . name , l . ngfName = e . ngfName , a . _chunkSize && ( c . append ( "_chunkSize" , a . _chunkSize ) , c . append ( "_currentChunkSize" , a . _end - a . _start ) , c . append ( "_chunkNumber" , Math . floor ( a . _start / a . _chunkSize ) ) , c . append ( "_totalSize" , a . _file . size ) ) , l ) } l = h . split ( "," ) ; l [ 1 ] && ( e . ngfName = l [ 1 ] . replace ( /^\s+|\s+$/g , "" ) , h = l [ 0 ] ) ; a . _fileKey = a . _fileKey || h ; c . append ( h , e , e . ngfName || e . name ) } else if ( angular . isObject ( e ) ) { if ( e . $$ngfCircularDetection ) throw "ngFileUpload: Circular reference in config.data. Make sure specified data for Upload.upload() has no circular reference: " +
h ; e . $$ngfCircularDetection = ! 0 ; try { for ( l in e ) if ( e . hasOwnProperty ( l ) && "$$ngfCircularDetection" !== l ) { var m = null == a . objectKey ? "[i]" : a . objectKey ; e . length && - 1 < parseInt ( l ) && ( m = null == a . arrayKey ? m : a . arrayKey ) ; f ( c , e [ l ] , h + m . replace ( /[ik]/g , l ) ) } } finally { delete e . $$ngfCircularDetection } } else c . append ( h , e ) } function l ( ) { a . _chunkSize = b . translateScalars ( a . resumeChunkSize ) ; a . _chunkSize = a . _chunkSize ? parseInt ( a . _chunkSize . toString ( ) ) : null ; a . headers = a . headers || { } ; a . headers [ "Content-Type" ] = void 0 ; a . transformRequest = a . transformRequest ?
angular . isArray ( a . transformRequest ) ? a . transformRequest : [ a . transformRequest ] : [ ] ; a . transformRequest . push ( function ( b ) { var c , e = new window . FormData ; b = b || a . fields || { } ; a . file && ( b . file = a . file ) ; for ( c in b ) if ( b . hasOwnProperty ( c ) ) { var g = b [ c ] ; a . formDataAppender ? a . formDataAppender ( e , c , g ) : f ( e , g , c ) } return e } ) } return h || ( a = c ( a ) ) , a . _isDigested || ( a . _isDigested = ! 0 , l ( ) ) , e ( a ) } ; this . http = function ( f ) { return f = c ( f ) , f . transformRequest = f . transformRequest || function ( b ) { return window . ArrayBuffer && b instanceof window . ArrayBuffer ||
b instanceof window . Blob ? b : a . defaults . transformRequest [ 0 ] . apply ( this , arguments ) } , f . _chunkSize = b . translateScalars ( f . resumeChunkSize ) , f . _chunkSize = f . _chunkSize ? parseInt ( f . _chunkSize . toString ( ) ) : null , e ( f ) } ; this . translateScalars = function ( a ) { if ( angular . isString ( a ) ) { if ( a . search ( /kb/i ) === a . length - 2 ) return parseFloat ( 1024 * a . substring ( 0 , a . length - 2 ) ) ; if ( a . search ( /mb/i ) === a . length - 2 ) return parseFloat ( 1048576 * a . substring ( 0 , a . length - 2 ) ) ; if ( a . search ( /gb/i ) === a . length - 2 ) return parseFloat ( 1073741824 * a . substring ( 0 ,
a . length - 2 ) ) ; if ( a . search ( /b/i ) === a . length - 1 || a . search ( /s/i ) === a . length - 1 ) return parseFloat ( a . substring ( 0 , a . length - 1 ) ) ; if ( a . search ( /m/i ) === a . length - 1 ) return parseFloat ( 60 * a . substring ( 0 , a . length - 1 ) ) ; if ( a . search ( /h/i ) === a . length - 1 ) return parseFloat ( 3600 * a . substring ( 0 , a . length - 1 ) ) } return a } ; this . urlToBlob = function ( b ) { var c = l . defer ( ) ; return a ( { url : b , method : "get" , responseType : "arraybuffer" } ) . then ( function ( a ) { var e = new Uint8Array ( a . data ) ; a = a . headers ( "content-type" ) || "image/WebP" ; e = new window . Blob ( [ e ] , { type : a } ) ;
a = b . match ( /.*\/(.+?)(\?.*)?$/ ) ; 1 < a . length && ( e . name = a [ 1 ] ) ; c . resolve ( e ) } , function ( a ) { c . reject ( a ) } ) , c . promise } ; this . setDefaults = function ( a ) { this . defaults = a || { } } ; this . defaults = { } ; this . version = ngFileUpload . version } ] ) ;
ngFileUpload . service ( "Upload" , [ "$parse" , "$timeout" , "$compile" , "$q" , "UploadExif" , function ( a , l , h , e , c ) { function b ( a , b , c ) { var f = [ q . emptyPromise ( ) ] ; return angular . forEach ( a , function ( e , g ) { 0 === e . type . indexOf ( "image/jpeg" ) && q . attrGetter ( "ngfFixOrientation" , b , c , { $file : e } ) && f . push ( q . happyPromise ( q . applyExifRotation ( e ) , e ) . then ( function ( b ) { a . splice ( g , 1 , b ) } ) ) } ) , e . all ( f ) } function g ( a , b , c , g ) { var h = q . attrGetter ( "ngfResize" , b , c ) ; if ( ! h || ! q . isResizeSupported ( ) || ! a . length ) return q . emptyPromise ( ) ; if ( h instanceof Function ) { var l =
e . defer ( ) ; return h ( a ) . then ( function ( e ) { f ( e , a , b , c , g ) . then ( function ( a ) { l . resolve ( a ) } , function ( a ) { l . reject ( a ) } ) } , function ( a ) { l . reject ( a ) } ) } return f ( h , a , b , c , g ) } function f ( a , b , c , f , g ) { function h ( e , h ) { if ( 0 === e . type . indexOf ( "image" ) && ( ! a . pattern || q . validatePattern ( e , a . pattern ) ) ) { a . resizeIf = function ( a , b ) { return q . attrGetter ( "ngfResizeIf" , c , f , { $width : a , $height : b , $file : e } ) } ; var m = q . resize ( e , a ) ; l . push ( m ) ; m . then ( function ( a ) { b . splice ( h , 1 , a ) } , function ( a ) { e . $error = "resize" ; ( e . $errorMessages = e . $errorMessages || { } ) . resize =
! 0 ; e . $errorParam = ( a ? ( a . message ? a . message : a ) + ": " : "" ) + ( e && e . name ) ; g . $ngfValidations . push ( { name : "resize" , valid : ! 1 } ) ; q . applyModelValidation ( g , b ) } ) } } for ( var l = [ q . emptyPromise ( ) ] , m = 0 ; m < b . length ; m ++ ) h ( b [ m ] , m ) ; return e . all ( l ) } var q = c ; return q . getAttrWithDefaults = function ( a , b ) { if ( null != a [ b ] ) return a [ b ] ; var c = q . defaults [ b ] ; return null == c ? c : angular . isString ( c ) ? c : JSON . stringify ( c ) } , q . attrGetter = function ( b , c , e , f ) { c = this . getAttrWithDefaults ( c , b ) ; if ( ! e ) return c ; try { return f ? a ( c ) ( e , f ) : a ( c ) ( e ) } catch ( r ) { if ( b . search ( /min|max|pattern/i ) ) return c ;
throw r ; } } , q . shouldUpdateOn = function ( a , b , c ) { b = q . attrGetter ( "ngfModelOptions" , b , c ) ; return ! b || ! b . updateOn || - 1 < b . updateOn . split ( " " ) . indexOf ( a ) } , q . emptyPromise = function ( ) { var a = e . defer ( ) , b = arguments ; return l ( function ( ) { a . resolve . apply ( a , b ) } ) , a . promise } , q . rejectPromise = function ( ) { var a = e . defer ( ) , b = arguments ; return l ( function ( ) { a . reject . apply ( a , b ) } ) , a . promise } , q . happyPromise = function ( a , b ) { var c = e . defer ( ) ; return a . then ( function ( a ) { c . resolve ( a ) } , function ( a ) { l ( function ( ) { throw a ; } ) ; c . resolve ( b ) } ) , c . promise } ,
q . updateModel = function ( c , e , f , h , r , y , C ) { function m ( b , g , m , n , p ) { e . $$ngfPrevValidFiles = b ; e . $$ngfPrevInvalidFiles = g ; var B = b && b . length ? b [ 0 ] : null , r = g && g . length ? g [ 0 ] : null ; c && ( q . applyModelValidation ( c , b ) , c . $setViewValue ( p ? B : b ) ) ; h && a ( h ) ( f , { $files : b , $file : B , $newFiles : m , $duplicateFiles : n , $invalidFiles : g , $invalidFile : r , $event : y } ) ; var t = q . attrGetter ( "ngfModelInvalid" , e ) ; t && l ( function ( ) { a ( t ) . assign ( f , p ? r : g ) } ) ; l ( function ( ) { } ) } function n ( ) { function a ( a , b ) { return a . name === b . name && ( a . $ngfOrigSize || a . size ) === ( b . $ngfOrigSize ||
b . size ) && a . type === b . type } function b ( b ) { var c ; for ( c = 0 ; c < x . length ; c ++ ) if ( a ( b , x [ c ] ) ) return ! 0 ; for ( c = 0 ; c < H . length ; c ++ ) if ( a ( b , H [ c ] ) ) return ! 0 ; return ! 1 } if ( r ) { v = [ ] ; J = [ ] ; for ( var c = 0 ; c < r . length ; c ++ ) b ( r [ c ] ) ? J . push ( r [ c ] ) : v . push ( r [ c ] ) } } function t ( a ) { return angular . isArray ( a ) ? a : [ a ] } function p ( ) { function a ( ) { l ( function ( ) { m ( V ? x . concat ( O ) : O , V ? H . concat ( K ) : K , r , J , X ) } , T && T . debounce ? T . debounce . change || T . debounce : 0 ) } var b = L ? v : O ; g ( b , e , f , c ) . then ( function ( ) { L ? q . validate ( v , V ? x . length : 0 , c , e , f ) . then ( function ( b ) { O = b . validsFiles ;
K = b . invalidsFiles ; a ( ) } ) : a ( ) } , function ( ) { for ( var c = 0 ; c < b . length ; c ++ ) { var e = b [ c ] ; if ( "resize" === e . $error ) { var f = O . indexOf ( e ) ; - 1 < f && ( O . splice ( f , 1 ) , K . push ( e ) ) ; a ( ) } } } ) } var v , x , H , J = [ ] , K = [ ] , O = [ ] ; x = e . $$ngfPrevValidFiles || [ ] ; H = e . $$ngfPrevInvalidFiles || [ ] ; c && c . $modelValue && ( x = t ( c . $modelValue ) ) ; var V = q . attrGetter ( "ngfKeep" , e , f ) ; v = ( r || [ ] ) . slice ( 0 ) ; "distinct" !== V && ! 0 !== q . attrGetter ( "ngfKeepDistinct" , e , f ) || n ( e , f ) ; var X = ! V && ! q . attrGetter ( "ngfMultiple" , e , f ) && ! q . attrGetter ( "multiple" , e ) ; if ( ! V || v . length ) { q . attrGetter ( "ngfBeforeModelChange" ,
e , f , { $files : r , $file : r && r . length ? r [ 0 ] : null , $newFiles : v , $duplicateFiles : J , $event : y } ) ; var L = q . attrGetter ( "ngfValidateAfterResize" , e , f ) , T = q . attrGetter ( "ngfModelOptions" , e , f ) ; q . validate ( v , V ? x . length : 0 , c , e , f ) . then ( function ( a ) { C ? m ( v , [ ] , r , J , X ) : ( T && T . allowInvalid || L ? O = v : ( O = a . validFiles , K = a . invalidFiles ) , q . attrGetter ( "ngfFixOrientation" , e , f ) && q . isExifSupported ( ) ? b ( O , e , f ) . then ( function ( ) { p ( ) } ) : p ( ) ) } ) } } , q } ] ) ;
ngFileUpload . directive ( "ngfSelect" , [ "$parse" , "$timeout" , "$compile" , "Upload" , function ( a , l , h , e ) { function c ( a ) { var b = a . match ( /Android[^\d]*(\d+)\.(\d+)/ ) ; return b && 2 < b . length ? ( a = e . defaults . androidFixMinorVersion || 4 , 4 > parseInt ( b [ 1 ] ) || parseInt ( b [ 1 ] ) === a && parseInt ( b [ 2 ] ) < a ) : - 1 === a . indexOf ( "Chrome" ) && /.*Windows.*Safari.*/ . test ( a ) } function b ( a , b , e , h , l , x , r , y ) { function f ( ) { return "input" === b [ 0 ] . tagName . toLowerCase ( ) && e . type && "file" === e . type . toLowerCase ( ) } function m ( ) { return K ( "ngfChange" ) || K ( "ngfSelect" ) } function n ( b ) { if ( y . shouldUpdateOn ( "change" ,
e , a ) ) { var c = b . _ _files _ || b . target && b . target . files , f = [ ] ; if ( c ) { for ( var g = 0 ; g < c . length ; g ++ ) f . push ( c [ g ] ) ; y . updateModel ( h , e , a , m ( ) , f . length ? f : null , b ) } } } function q ( a , c ) { function f ( b ) { a . attr ( "id" , "ngf-" + b ) ; c . attr ( "id" , "ngf-label-" + b ) } for ( var g = 0 ; g < b [ 0 ] . attributes . length ; g ++ ) { var h = b [ 0 ] . attributes [ g ] ; "type" !== h . name && "class" !== h . name && "style" !== h . name && ( "id" === h . name ? ( f ( h . value ) , O . push ( e . $observe ( "id" , f ) ) ) : a . attr ( h . name , h . value || "required" !== h . name && "multiple" !== h . name ? h . value : h . name ) ) } } function p ( ) { if ( f ( ) ) return b ;
var a = angular . element ( '<input type="file">' ) , c = angular . element ( "<label>upload</label>" ) ; return c . css ( "visibility" , "hidden" ) . css ( "position" , "absolute" ) . css ( "overflow" , "hidden" ) . css ( "width" , "0px" ) . css ( "height" , "0px" ) . css ( "border" , "none" ) . css ( "margin" , "0px" ) . css ( "padding" , "0px" ) . attr ( "tabindex" , "-1" ) , q ( a , c ) , g . push ( { el : b , ref : c } ) , document . body . appendChild ( c . append ( a ) [ 0 ] ) , a } function t ( e ) { if ( b . attr ( "disabled" ) ) return ! 1 ; if ( ! K ( "ngfSelectDisabled" , a ) ) { var h = I ( e ) ; if ( null != h ) return h ; H ( e ) ; try { f ( ) || document . body . contains ( L [ 0 ] ) ||
( g . push ( { el : b , ref : L . parent ( ) } ) , document . body . appendChild ( L . parent ( ) [ 0 ] ) , L . bind ( "change" , n ) ) } catch ( ca ) { } return c ( navigator . userAgent ) ? setTimeout ( function ( ) { L [ 0 ] . click ( ) } , 0 ) : L [ 0 ] . click ( ) , ! 1 } } function I ( a ) { var b = a . changedTouches || a . originalEvent && a . originalEvent . changedTouches ; if ( b ) { if ( "touchstart" === a . type ) return X = b [ 0 ] . clientX , V = b [ 0 ] . clientY , ! 0 ; if ( "touchend" === a . type ) { var c = b [ 0 ] . clientY ; if ( 20 < Math . abs ( b [ 0 ] . clientX - X ) || 20 < Math . abs ( c - V ) ) return a . stopPropagation ( ) , a . preventDefault ( ) , ! 1 } return ! 0 } } function H ( b ) { y . shouldUpdateOn ( "click" ,
e , a ) && L . val ( ) && ( L . val ( null ) , y . updateModel ( h , e , a , m ( ) , null , b , ! 0 ) ) } function J ( a ) { if ( L && ! L . attr ( "__ngf_ie10_Fix_" ) ) { if ( ! L [ 0 ] . parentNode ) return void ( L = null ) ; a . preventDefault ( ) ; a . stopPropagation ( ) ; L . unbind ( "click" ) ; a = L . clone ( ) ; return L . replaceWith ( a ) , L = a , L . attr ( "__ngf_ie10_Fix_" , "true" ) , L . bind ( "change" , n ) , L . bind ( "click" , J ) , L [ 0 ] . click ( ) , ! 1 } L . removeAttr ( "__ngf_ie10_Fix_" ) } var K = function ( a , b ) { return y . attrGetter ( a , e , b ) } ; y . registerModelChangeValidator ( h , e , a ) ; var O = [ ] ; K ( "ngfMultiple" ) && O . push ( a . $watch ( K ( "ngfMultiple" ) ,
function ( ) { L . attr ( "multiple" , K ( "ngfMultiple" , a ) ) } ) ) ; K ( "ngfCapture" ) && O . push ( a . $watch ( K ( "ngfCapture" ) , function ( ) { L . attr ( "capture" , K ( "ngfCapture" , a ) ) } ) ) ; K ( "ngfAccept" ) && O . push ( a . $watch ( K ( "ngfAccept" ) , function ( ) { L . attr ( "accept" , K ( "ngfAccept" , a ) ) } ) ) ; O . push ( e . $observe ( "accept" , function ( ) { L . attr ( "accept" , K ( "accept" ) ) } ) ) ; var V = 0 , X = 0 , L = b ; f ( ) || ( L = p ( ) ) ; L . bind ( "change" , n ) ; f ( ) ? b . bind ( "click" , H ) : b . bind ( "click touchstart touchend" , t ) ; - 1 !== navigator . appVersion . indexOf ( "MSIE 10" ) && L . bind ( "click" , J ) ; h && h . $formatters . push ( function ( a ) { return ( null ==
a || 0 === a . length ) && L . val ( ) && L . val ( null ) , a } ) ; a . $on ( "$destroy" , function ( ) { f ( ) || L . parent ( ) . remove ( ) ; angular . forEach ( O , function ( a ) { a ( ) } ) } ) ; x ( function ( ) { for ( var a = 0 ; a < g . length ; a ++ ) { var b = g [ a ] ; document . body . contains ( b . el [ 0 ] ) || ( g . splice ( a , 1 ) , b . ref . remove ( ) ) } } ) ; window . FileAPI && window . FileAPI . ngfFixIE && window . FileAPI . ngfFixIE ( b , L , n ) } var g = [ ] ; return { restrict : "AEC" , require : "?ngModel" , link : function ( c , g , m , n ) { b ( c , g , m , n , a , l , h , e ) } } } ] ) ;
( function ( ) { function a ( a ) { return "img" === a . tagName . toLowerCase ( ) ? "image" : "audio" === a . tagName . toLowerCase ( ) ? "audio" : "video" === a . tagName . toLowerCase ( ) ? "video" : /./ } function l ( h , e , c , b , g , f , l , m ) { function n ( a ) { var f = h . attrGetter ( "ngfNoObjectUrl" , g , c ) ; h . dataUrl ( a , f ) [ "finally" ] ( function ( ) { e ( function ( ) { var c = ( f ? a . $ngfDataUrl : a . $ngfBlobUrl ) || a . $ngfDataUrl ; m ? b . css ( "background-image" , "url('" + ( c || "" ) + "')" ) : b . attr ( "src" , c ) ; c ? b . removeClass ( "ng-hide" ) : b . addClass ( "ng-hide" ) } ) } ) } e ( function ( ) { var e = c . $watch ( g [ f ] , function ( e ) { var q =
l ; if ( "ngfThumbnail" === f && ( q || ( q = { width : b [ 0 ] . naturalWidth || b [ 0 ] . clientWidth , height : b [ 0 ] . naturalHeight || b [ 0 ] . clientHeight } ) , 0 === q . width && window . getComputedStyle ) ) { var t = getComputedStyle ( b [ 0 ] ) ; t . width && - 1 < t . width . indexOf ( "px" ) && t . height && - 1 < t . height . indexOf ( "px" ) && ( q = { width : parseInt ( t . width . slice ( 0 , - 2 ) ) , height : parseInt ( t . height . slice ( 0 , - 2 ) ) } ) } return angular . isString ( e ) ? ( b . removeClass ( "ng-hide" ) , m ? b . css ( "background-image" , "url('" + e + "')" ) : b . attr ( "src" , e ) ) : void ( ! e || ! e . type || 0 !== e . type . search ( a ( b [ 0 ] ) ) ||
m && 0 !== e . type . indexOf ( "image" ) ? b . addClass ( "ng-hide" ) : q && h . isResizeSupported ( ) ? ( q . resizeIf = function ( a , b ) { return h . attrGetter ( "ngfResizeIf" , g , c , { $width : a , $height : b , $file : e } ) } , h . resize ( e , q ) . then ( function ( a ) { n ( a ) } , function ( a ) { throw a ; } ) ) : n ( e ) ) } ) ; c . $on ( "$destroy" , function ( ) { e ( ) } ) } ) } ngFileUpload . service ( "UploadDataUrl" , [ "UploadBase" , "$timeout" , "$q" , function ( a , e , c ) { return a . base64DataUrl = function ( b ) { if ( angular . isArray ( b ) ) { var e = c . defer ( ) , f = 0 ; return angular . forEach ( b , function ( c ) { a . dataUrl ( c , ! 0 ) [ "finally" ] ( function ( ) { if ( f ++ ,
f === b . length ) { var a = [ ] ; angular . forEach ( b , function ( b ) { a . push ( b . $ngfDataUrl ) } ) ; e . resolve ( a , b ) } } ) } ) , e . promise } return a . dataUrl ( b , ! 0 ) } , a . dataUrl = function ( b , g ) { if ( ! b ) return a . emptyPromise ( b , b ) ; if ( g && null != b . $ngfDataUrl || ! g && null != b . $ngfBlobUrl ) return a . emptyPromise ( g ? b . $ngfDataUrl : b . $ngfBlobUrl , b ) ; var f = g ? b . $$ngfDataUrlPromise : b . $$ngfBlobUrlPromise ; if ( f ) return f ; var h = c . defer ( ) ; return e ( function ( ) { if ( window . FileReader && b && ( ! window . FileAPI || - 1 === navigator . userAgent . indexOf ( "MSIE 8" ) || 2E4 > b . size ) && ( ! window . FileAPI ||
- 1 === navigator . userAgent . indexOf ( "MSIE 9" ) || 4E6 > b . size ) ) { var c = window . URL || window . webkitURL ; if ( c && c . createObjectURL && ! g ) { var f ; try { f = c . createObjectURL ( b ) } catch ( x ) { return void e ( function ( ) { b . $ngfBlobUrl = "" ; h . reject ( ) } ) } e ( function ( ) { if ( b . $ngfBlobUrl = f , f ) { h . resolve ( f , b ) ; a . blobUrls = a . blobUrls || [ ] ; a . blobUrlsTotalSize = a . blobUrlsTotalSize || 0 ; a . blobUrls . push ( { url : f , size : b . size } ) ; a . blobUrlsTotalSize += b . size || 0 ; for ( var e = a . defaults . blobUrlsMaxMemory || 268435456 , g = a . defaults . blobUrlsMaxQueueSize || 200 ; ( a . blobUrlsTotalSize >
e || a . blobUrls . length > g ) && 1 < a . blobUrls . length ; ) { var l = a . blobUrls . splice ( 0 , 1 ) [ 0 ] ; c . revokeObjectURL ( l . url ) ; a . blobUrlsTotalSize -= l . size } } } ) } else { var l = new FileReader ; l . onload = function ( a ) { e ( function ( ) { b . $ngfDataUrl = a . target . result ; h . resolve ( a . target . result , b ) ; e ( function ( ) { delete b . $ngfDataUrl } , 1E3 ) } ) } ; l . onerror = function ( ) { e ( function ( ) { b . $ngfDataUrl = "" ; h . reject ( ) } ) } ; l . readAsDataURL ( b ) } } else e ( function ( ) { b [ g ? "$ngfDataUrl" : "$ngfBlobUrl" ] = "" ; h . reject ( ) } ) } ) , f = g ? b . $$ngfDataUrlPromise = h . promise : b . $$ngfBlobUrlPromise =
h . promise , f [ "finally" ] ( function ( ) { delete b [ g ? "$$ngfDataUrlPromise" : "$$ngfBlobUrlPromise" ] } ) , f } , a } ] ) ; ngFileUpload . directive ( "ngfSrc" , [ "Upload" , "$timeout" , function ( a , e ) { return { restrict : "AE" , link : function ( c , b , g ) { l ( a , e , c , b , g , "ngfSrc" , a . attrGetter ( "ngfResize" , g , c ) , ! 1 ) } } } ] ) ; ngFileUpload . directive ( "ngfBackground" , [ "Upload" , "$timeout" , function ( a , e ) { return { restrict : "AE" , link : function ( c , b , g ) { l ( a , e , c , b , g , "ngfBackground" , a . attrGetter ( "ngfResize" , g , c ) , ! 0 ) } } } ] ) ; ngFileUpload . directive ( "ngfThumbnail" , [ "Upload" , "$timeout" ,
function ( a , e ) { return { restrict : "AE" , link : function ( c , b , g ) { var f = a . attrGetter ( "ngfSize" , g , c ) ; l ( a , e , c , b , g , "ngfThumbnail" , f , a . attrGetter ( "ngfAsBackground" , g , c ) ) } } } ] ) ; ngFileUpload . config ( [ "$compileProvider" , function ( a ) { a . imgSrcSanitizationWhitelist && a . imgSrcSanitizationWhitelist ( /^\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/ ) ; a . aHrefSanitizationWhitelist && a . aHrefSanitizationWhitelist ( /^\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/ ) } ] ) ; ngFileUpload . filter ( "ngfDataUrl" , [ "UploadDataUrl" ,
"$sce" , function ( a , e ) { return function ( c , b , g ) { if ( angular . isString ( c ) ) return e . trustAsResourceUrl ( c ) ; var f = c && ( ( b ? c . $ngfDataUrl : c . $ngfBlobUrl ) || c . $ngfDataUrl ) ; return c && ! f ? ( ! c . $ngfDataUrlFilterInProgress && angular . isObject ( c ) && ( c . $ngfDataUrlFilterInProgress = ! 0 , a . dataUrl ( c , b ) ) , "" ) : ( c && delete c . $ngfDataUrlFilterInProgress , ( c && f ? g ? e . trustAsResourceUrl ( f ) : f : c ) || "" ) } } ] ) } ) ( ) ;
ngFileUpload . service ( "UploadValidate" , [ "UploadDataUrl" , "$q" , "$timeout" , function ( a , l , h ) { function e ( a ) { var b = "" , c = [ ] ; if ( 2 < a . length && "/" === a [ 0 ] && "/" === a [ a . length - 1 ] ) b = a . substring ( 1 , a . length - 1 ) ; else { var h = a . split ( "," ) ; if ( 1 < h . length ) for ( a = 0 ; a < h . length ; a ++ ) { var l = e ( h [ a ] ) ; l . regexp ? ( b += "(" + l . regexp + ")" , a < h . length - 1 && ( b += "|" ) ) : c = c . concat ( l . excludes ) } else 0 === a . indexOf ( "!" ) ? c . push ( "^((?!" + e ( a . substring ( 1 ) ) . regexp + ").)*$" ) : ( 0 === a . indexOf ( "." ) && ( a = "*" + a ) , b = "^" + a . replace ( RegExp ( "[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]" ,
"g" ) , "\\$&" ) + "$" , b = b . replace ( /\\\*/g , ".*" ) . replace ( /\\\?/g , "." ) ) } return { regexp : b , excludes : c } } function c ( a , c ) { null == c || a . $dirty || ( a . $setDirty ? a . $setDirty ( ) : a . $dirty = ! 0 ) } return a . validatePattern = function ( a , c ) { if ( ! c ) return ! 0 ; var b = e ( c ) , g = ! 0 ; b . regexp && b . regexp . length && ( g = new RegExp ( b . regexp , "i" ) , g = null != a . type && g . test ( a . type ) || null != a . name && g . test ( a . name ) ) ; for ( var h = b . excludes . length ; h -- ; ) var l = new RegExp ( b . excludes [ h ] , "i" ) , g = g && ( null == a . type || l . test ( a . type ) ) && ( null == a . name || l . test ( a . name ) ) ; return g } ,
a . ratioToFloat = function ( a ) { a = a . toString ( ) ; var b = a . search ( /[x:]/i ) ; return - 1 < b ? parseFloat ( a . substring ( 0 , b ) ) / parseFloat ( a . substring ( b + 1 ) ) : parseFloat ( a ) } , a . registerModelChangeValidator = function ( b , c , e ) { b && b . $formatters . push ( function ( f ) { if ( b . $dirty ) { var g = f ; f && ! angular . isArray ( f ) && ( g = [ f ] ) ; a . validate ( g , 0 , b , c , e ) . then ( function ( ) { a . applyModelValidation ( b , g ) } ) } return f } ) } , a . applyModelValidation = function ( a , e ) { c ( a , e ) ; angular . forEach ( a . $ngfValidations , function ( b ) { a . $setValidity ( b . name , b . valid ) } ) } , a . getValidationAttr =
function ( b , c , e , h , l ) { var f = "ngf" + e [ 0 ] . toUpperCase ( ) + e . substr ( 1 ) , f = a . attrGetter ( f , b , c , { $file : l } ) ; null == f && ( f = a . attrGetter ( "ngfValidate" , b , c , { $file : l } ) ) && ( b = ( h || e ) . split ( "." ) , f = f [ b [ 0 ] ] , 1 < b . length && ( f = f && f [ b [ 1 ] ] ) ) ; return f } , a . validate = function ( b , c , e , h , m ) { function f ( c , f , g ) { if ( b ) { for ( var l = b . length , n = null ; l -- ; ) { var p = b [ l ] ; if ( p ) { var q = a . getValidationAttr ( h , m , c , f , p ) ; null != q && ( g ( p , q , l ) || ( - 1 === r . indexOf ( c ) ? ( p . $error = c , ( p . $errorMessages = p . $errorMessages || { } ) [ c ] = ! 0 , p . $errorParam = q , - 1 === C . indexOf ( p ) && C . push ( p ) ,
y || b . splice ( l , 1 ) , n = ! 1 ) : b . splice ( l , 1 ) ) ) } } null !== n && e . $ngfValidations . push ( { name : c , valid : n } ) } } function g ( c , f , g , n , t ) { function p ( a , e , f ) { function g ( g ) { g ( ) ? - 1 === r . indexOf ( c ) ? ( ( e . $error = c , ( e . $errorMessages = e . $errorMessages || { } ) [ c ] = ! 0 , e . $errorParam = f , - 1 === C . indexOf ( e ) && C . push ( e ) , y ) || ( g = b . indexOf ( e ) , - 1 < g && b . splice ( g , 1 ) ) , a . resolve ( ! 1 ) ) : ( g = b . indexOf ( e ) , - 1 < g && b . splice ( g , 1 ) , a . resolve ( ! 0 ) ) : a . resolve ( ! 0 ) } null != f ? n ( e , f ) . then ( function ( a ) { g ( function ( ) { return ! t ( a , f ) } ) } , function ( ) { g ( function ( ) { return q ( "ngfValidateForce" ,
{ $file : e } ) } ) } ) : a . resolve ( ! 0 ) } var v = [ a . emptyPromise ( ! 0 ) ] ; b && ( b = void 0 === b . length ? [ b ] : b , angular . forEach ( b , function ( b ) { var e = l . defer ( ) ; return v . push ( e . promise ) , ! g || null != b . type && 0 === b . type . search ( g ) ? void ( "dimensions" === c && null != a . attrGetter ( "ngfDimensions" , h ) ? a . imageDimensions ( b ) . then ( function ( a ) { p ( e , b , q ( "ngfDimensions" , { $file : b , $width : a . width , $height : a . height } ) ) } , function ( ) { e . resolve ( ! 1 ) } ) : "duration" === c && null != a . attrGetter ( "ngfDuration" , h ) ? a . mediaDuration ( b ) . then ( function ( a ) { p ( e , b , q ( "ngfDuration" ,
{ $file : b , $duration : a } ) ) } , function ( ) { e . resolve ( ! 1 ) } ) : p ( e , b , a . getValidationAttr ( h , m , c , f , b ) ) ) : void e . resolve ( ! 0 ) } ) ) ; var A = l . defer ( ) ; return l . all ( v ) . then ( function ( a ) { for ( var b = ! 0 , f = 0 ; f < a . length ; f ++ ) if ( ! a [ f ] ) { b = ! 1 ; break } e . $ngfValidations . push ( { name : c , valid : b } ) ; A . resolve ( b ) } ) , A . promise } e = e || { } ; e . $ngfValidations = e . $ngfValidations || [ ] ; angular . forEach ( e . $ngfValidations , function ( a ) { a . valid = ! 0 } ) ; var q = function ( b , c ) { return a . attrGetter ( b , h , m , c ) } , r = ( a . attrGetter ( "ngfIgnoreInvalid" , h , m ) || "" ) . split ( " " ) , y = a . attrGetter ( "ngfRunAllValidations" ,
h , m ) ; if ( null == b || 0 === b . length ) return a . emptyPromise ( { validFiles : b , invalidFiles : [ ] } ) ; b = void 0 === b . length ? [ b ] : b . slice ( 0 ) ; var C = [ ] ; f ( "pattern" , null , a . validatePattern ) ; f ( "minSize" , "size.min" , function ( b , c ) { return b . size + . 1 >= a . translateScalars ( c ) } ) ; f ( "maxSize" , "size.max" , function ( b , c ) { return b . size - . 1 <= a . translateScalars ( c ) } ) ; var A = 0 ; if ( f ( "maxTotalSize" , null , function ( c , e ) { return A += c . size , ! ( A > a . translateScalars ( e ) ) || ( b . splice ( 0 , b . length ) , ! 1 ) } ) , f ( "validateFn" , null , function ( a , b ) { return ! 0 === b || null === b || "" ===
b } ) , ! b . length ) return a . emptyPromise ( { validFiles : [ ] , invalidFiles : C } ) ; var E = l . defer ( ) , F = [ ] ; return F . push ( g ( "maxHeight" , "height.max" , /image/ , this . imageDimensions , function ( a , b ) { return a . height <= b } ) ) , F . push ( g ( "minHeight" , "height.min" , /image/ , this . imageDimensions , function ( a , b ) { return a . height >= b } ) ) , F . push ( g ( "maxWidth" , "width.max" , /image/ , this . imageDimensions , function ( a , b ) { return a . width <= b } ) ) , F . push ( g ( "minWidth" , "width.min" , /image/ , this . imageDimensions , function ( a , b ) { return a . width >= b } ) ) , F . push ( g ( "dimensions" ,
null , /image/ , function ( b , c ) { return a . emptyPromise ( c ) } , function ( a ) { return a } ) ) , F . push ( g ( "ratio" , null , /image/ , this . imageDimensions , function ( b , c ) { for ( var e = c . toString ( ) . split ( "," ) , f = ! 1 , g = 0 ; g < e . length ; g ++ ) . 01 > Math . abs ( b . width / b . height - a . ratioToFloat ( e [ g ] ) ) && ( f = ! 0 ) ; return f } ) ) , F . push ( g ( "maxRatio" , "ratio.max" , /image/ , this . imageDimensions , function ( b , c ) { return 1E-4 > b . width / b . height - a . ratioToFloat ( c ) } ) ) , F . push ( g ( "minRatio" , "ratio.min" , /image/ , this . imageDimensions , function ( b , c ) { return - 1E-4 < b . width / b . height -
a . ratioToFloat ( c ) } ) ) , F . push ( g ( "maxDuration" , "duration.max" , /audio|video/ , this . mediaDuration , function ( b , c ) { return b <= a . translateScalars ( c ) } ) ) , F . push ( g ( "minDuration" , "duration.min" , /audio|video/ , this . mediaDuration , function ( b , c ) { return b >= a . translateScalars ( c ) } ) ) , F . push ( g ( "duration" , null , /audio|video/ , function ( b , c ) { return a . emptyPromise ( c ) } , function ( a ) { return a } ) ) , F . push ( g ( "validateAsyncFn" , null , null , function ( a , b ) { return b } , function ( a ) { return ! 0 === a || null === a || "" === a } ) ) , l . all ( F ) . then ( function ( ) { if ( y ) for ( var a =
0 ; a < b . length ; a ++ ) b [ a ] . $error && b . splice ( a -- , 1 ) ; y = ! 1 ; f ( "maxFiles" , null , function ( a , b , e ) { return b > c + e } ) ; E . resolve ( { validFiles : b , invalidFiles : C } ) } ) , E . promise } , a . imageDimensions = function ( b ) { if ( b . $ngfWidth && b . $ngfHeight ) { var c = l . defer ( ) ; return h ( function ( ) { c . resolve ( { width : b . $ngfWidth , height : b . $ngfHeight } ) } ) , c . promise } if ( b . $ngfDimensionPromise ) return b . $ngfDimensionPromise ; var e = l . defer ( ) ; return h ( function ( ) { return 0 !== b . type . indexOf ( "image" ) ? void e . reject ( "not image" ) : void a . dataUrl ( b ) . then ( function ( a ) { function c ( ) { var a =
l [ 0 ] . naturalWidth || l [ 0 ] . clientWidth , c = l [ 0 ] . naturalHeight || l [ 0 ] . clientHeight ; l . remove ( ) ; b . $ngfWidth = a ; b . $ngfHeight = c ; e . resolve ( { width : a , height : c } ) } function f ( ) { l . remove ( ) ; e . reject ( "load error" ) } function g ( ) { h ( function ( ) { l [ 0 ] . parentNode && ( l [ 0 ] . clientWidth ? c ( ) : 10 < r ++ ? f ( ) : g ( ) ) } , 1E3 ) } var l = angular . element ( "<img>" ) . attr ( "src" , a ) . css ( "visibility" , "hidden" ) . css ( "position" , "fixed" ) . css ( "max-width" , "none !important" ) . css ( "max-height" , "none !important" ) ; l . on ( "load" , c ) ; l . on ( "error" , f ) ; var r = 0 ; g ( ) ; angular . element ( document . getElementsByTagName ( "body" ) [ 0 ] ) . append ( l ) } ,
function ( ) { e . reject ( "load error" ) } ) } ) , b . $ngfDimensionPromise = e . promise , b . $ngfDimensionPromise [ "finally" ] ( function ( ) { delete b . $ngfDimensionPromise } ) , b . $ngfDimensionPromise } , a . mediaDuration = function ( b ) { if ( b . $ngfDuration ) { var c = l . defer ( ) ; return h ( function ( ) { c . resolve ( b . $ngfDuration ) } ) , c . promise } if ( b . $ngfDurationPromise ) return b . $ngfDurationPromise ; var e = l . defer ( ) ; return h ( function ( ) { return 0 !== b . type . indexOf ( "audio" ) && 0 !== b . type . indexOf ( "video" ) ? void e . reject ( "not media" ) : void a . dataUrl ( b ) . then ( function ( a ) { function c ( ) { var a =
l [ 0 ] . duration ; b . $ngfDuration = a ; l . remove ( ) ; e . resolve ( a ) } function f ( ) { l . remove ( ) ; e . reject ( "load error" ) } function g ( ) { h ( function ( ) { l [ 0 ] . parentNode && ( l [ 0 ] . duration ? c ( ) : 10 < r ? f ( ) : g ( ) ) } , 1E3 ) } var l = angular . element ( 0 === b . type . indexOf ( "audio" ) ? "<audio>" : "<video>" ) . attr ( "src" , a ) . css ( "visibility" , "none" ) . css ( "position" , "fixed" ) ; l . on ( "loadedmetadata" , c ) ; l . on ( "error" , f ) ; var r = 0 ; g ( ) ; angular . element ( document . body ) . append ( l ) } , function ( ) { e . reject ( "load error" ) } ) } ) , b . $ngfDurationPromise = e . promise , b . $ngfDurationPromise [ "finally" ] ( function ( ) { delete b . $ngfDurationPromise } ) ,
b . $ngfDurationPromise } , a } ] ) ;
ngFileUpload . service ( "UploadResize" , [ "UploadValidate" , "$q" , function ( a , l ) { var h = function ( e , c , b , g , f , h , m , n ) { var q = l . defer ( ) , x = document . createElement ( "canvas" ) , r = document . createElement ( "img" ) ; return r . setAttribute ( "style" , "visibility:hidden;position:fixed;z-index:-100000" ) , document . body . appendChild ( r ) , r . onload = function ( ) { var e , l , t , E , F = r . width , p = r . height ; if ( r . parentNode . removeChild ( r ) , null != n && ! 1 === n ( F , p ) ) return void q . reject ( "resizeIf" ) ; try { if ( h ) { var v = a . ratioToFloat ( h ) ; v > F / p ? ( c = F , b = c / v ) : ( b = p , c = b * v ) } c ||
( c = F ) ; b || ( b = p ) ; var I = m ? Math . max ( c / F , b / p ) : Math . min ( c / F , b / p ) ; e = F * I ; l = p * I ; t = F * I - c ; E = p * I - b ; x . width = Math . min ( e , c ) ; x . height = Math . min ( l , b ) ; x . getContext ( "2d" ) . drawImage ( r , Math . min ( 0 , - t / 2 ) , Math . min ( 0 , - E / 2 ) , e , l ) ; q . resolve ( x . toDataURL ( f || "image/WebP" , g || . 934 ) ) } catch ( H ) { q . reject ( H ) } } , r . onerror = function ( ) { r . parentNode . removeChild ( r ) ; q . reject ( ) } , r . src = e , q . promise } ; return a . dataUrltoBlob = function ( a , c , b ) { var e = a . split ( "," ) ; a = e [ 0 ] . match ( /:(.*?);/ ) [ 1 ] ; for ( var e = atob ( e [ 1 ] ) , f = e . length , h = new Uint8Array ( f ) ; f -- ; ) h [ f ] = e . charCodeAt ( f ) ;
a = new window . Blob ( [ h ] , { type : a } ) ; return a . name = c , a . $ngfOrigSize = b , a } , a . isResizeSupported = function ( ) { var a = document . createElement ( "canvas" ) ; return window . atob && a . getContext && a . getContext ( "2d" ) && window . Blob } , a . isResizeSupported ( ) && Object . defineProperty ( window . Blob . prototype , "name" , { get : function ( ) { return this . $ngfName } , set : function ( a ) { this . $ngfName = a } , configurable : ! 0 } ) , a . resize = function ( e , c ) { if ( 0 !== e . type . indexOf ( "image" ) ) return a . emptyPromise ( e ) ; var b = l . defer ( ) ; return a . dataUrl ( e , ! 0 ) . then ( function ( g ) { h ( g ,
c . width , c . height , c . quality , c . type || e . type , c . ratio , c . centerCrop , c . resizeIf ) . then ( function ( f ) { if ( "image/jpeg" === e . type && ! 1 !== c . restoreExif ) try { f = a . restoreExif ( g , f ) } catch ( m ) { setTimeout ( function ( ) { throw m ; } , 1 ) } try { var h = a . dataUrltoBlob ( f , e . name , e . size ) ; b . resolve ( h ) } catch ( m ) { b . reject ( m ) } } , function ( a ) { "resizeIf" === a && b . resolve ( e ) ; b . reject ( a ) } ) } , function ( a ) { b . reject ( a ) } ) , b . promise } , a } ] ) ;
( function ( ) { function a ( a , e , c , b , g , f , q , m , n , t ) { function h ( ) { return e . attr ( "disabled" ) || p ( "ngfDropDisabled" , a ) } function r ( b , c , e ) { if ( b ) { var f ; try { f = b && b . getData && b . getData ( "text/html" ) } catch ( L ) { } E ( b . items , b . files , ! 1 !== p ( "ngfAllowDir" , a ) , p ( "multiple" ) || p ( "ngfMultiple" , a ) ) . then ( function ( a ) { a . length ? y ( a , c ) : C ( e , f ) . then ( function ( a ) { y ( a , c ) } ) } ) } } function y ( e , f ) { m . updateModel ( b , c , a , p ( "ngfChange" ) || p ( "ngfDrop" ) , e , f ) } function C ( b , e ) { if ( ! m . shouldUpdateOn ( b , c , a ) || "string" != typeof e ) return m . rejectPromise ( [ ] ) ; var f =
[ ] ; e . replace ( /<(img src|img [^>]* src) *=\"([^\"]*)\"/gi , function ( a , b , c ) { f . push ( c ) } ) ; var g = [ ] , h = [ ] ; if ( f . length ) { angular . forEach ( f , function ( a ) { g . push ( m . urlToBlob ( a ) . then ( function ( a ) { h . push ( a ) } ) ) } ) ; var l = t . defer ( ) ; return t . all ( g ) . then ( function ( ) { l . resolve ( h ) } , function ( a ) { l . reject ( a ) } ) , l . promise } return m . emptyPromise ( ) } function A ( a , b , c , e ) { b = p ( "ngfDragOverClass" , a , { $event : c } ) ; var f = "dragover" ; if ( angular . isString ( b ) ) f = b ; else if ( b && ( b . delay && ( J = b . delay ) , b . accept || b . reject ) ) { var g = c . dataTransfer . items ; if ( null !=
g && g . length ) for ( a = b . pattern || p ( "ngfPattern" , a , { $event : c } ) , c = g . length ; c -- ; ) { if ( ! m . validatePattern ( g [ c ] , a ) ) { f = b . reject ; break } f = b . accept } else f = b . accept } e ( f ) } function E ( b , e , f , g ) { function h ( a , b ) { var c = t . defer ( ) ; if ( null != a ) if ( a . isDirectory ) { var e = [ m . emptyPromise ( ) ] ; if ( r ) { var f = { type : "directory" } ; f . name = f . path = ( b || "" ) + a . name ; B . push ( f ) } var g = a . createReader ( ) , q = [ ] , p = function ( ) { g . readEntries ( function ( f ) { try { f . length ? ( q = q . concat ( Array . prototype . slice . call ( f || [ ] , 0 ) ) , p ( ) ) : ( angular . forEach ( q . slice ( 0 ) , function ( c ) { B . length <=
l && n >= v && e . push ( h ( c , ( b ? b : "" ) + a . name + "/" ) ) } ) , t . all ( e ) . then ( function ( ) { c . resolve ( ) } , function ( a ) { c . reject ( a ) } ) ) } catch ( wa ) { c . reject ( wa ) } } , function ( a ) { c . reject ( a ) } ) } ; p ( ) } else a . file ( function ( a ) { try { a . path = ( b ? b : "" ) + a . name , r && ( a = m . rename ( a , a . path ) ) , B . push ( a ) , v += a . size , c . resolve ( ) } catch ( wa ) { c . reject ( wa ) } } , function ( a ) { c . reject ( a ) } ) ; return c . promise } var l = m . getValidationAttr ( c , a , "maxFiles" ) ; null == l && ( l = Number . MAX _VALUE ) ; var n = m . getValidationAttr ( c , a , "maxTotalSize" ) ; null == n && ( n = Number . MAX _VALUE ) ; var r = p ( "ngfIncludeDir" ,
a ) , B = [ ] , v = 0 , A = [ m . emptyPromise ( ) ] ; if ( b && 0 < b . length && "file:" !== q . location . protocol ) for ( e = 0 ; e < b . length ; e ++ ) { if ( b [ e ] . webkitGetAsEntry && b [ e ] . webkitGetAsEntry ( ) && b [ e ] . webkitGetAsEntry ( ) . isDirectory ) { var x = b [ e ] . webkitGetAsEntry ( ) ; if ( x . isDirectory && ! f ) continue ; null != x && A . push ( h ( x ) ) } else x = b [ e ] . getAsFile ( ) , null != x && ( B . push ( x ) , v += x . size ) ; if ( B . length > l || v > n || ! g && 0 < B . length ) break } else if ( null != e ) for ( b = 0 ; b < e . length && ! ( f = e . item ( b ) , ( f . type || 0 < f . size ) && ( B . push ( f ) , v += f . size ) , B . length > l || v > n || ! g && 0 < B . length ) ; b ++ ) ;
var y = t . defer ( ) ; return t . all ( A ) . then ( function ( ) { if ( g || r || ! B . length ) y . resolve ( B ) ; else { for ( var a = 0 ; B [ a ] && "directory" === B [ a ] . type ; ) a ++ ; y . resolve ( [ B [ a ] ] ) } } , function ( a ) { y . reject ( a ) } ) , y . promise } var F = l ( ) , p = function ( a , b , e ) { return m . attrGetter ( a , c , b , e ) } ; if ( p ( "dropAvailable" ) && f ( function ( ) { a [ p ( "dropAvailable" ) ] ? a [ p ( "dropAvailable" ) ] . value = F : a [ p ( "dropAvailable" ) ] = F } ) , ! F ) return void ( ! 0 === p ( "ngfHideOnDropNotAvailable" , a ) && e . css ( "display" , "none" ) ) ; null == p ( "ngfSelect" ) && m . registerModelChangeValidator ( b , c , a ) ; var v ,
I = null , H = g ( p ( "ngfStopPropagation" ) ) , J = 1 ; e [ 0 ] . addEventListener ( "dragover" , function ( b ) { if ( ! h ( ) && m . shouldUpdateOn ( "drop" , c , a ) ) { if ( b . preventDefault ( ) , H ( a ) && b . stopPropagation ( ) , - 1 < navigator . userAgent . indexOf ( "Chrome" ) ) { var g = b . dataTransfer . effectAllowed ; b . dataTransfer . dropEffect = "move" === g || "linkMove" === g ? "move" : "copy" } f . cancel ( I ) ; v || ( v = "C" , A ( a , c , b , function ( c ) { v = c ; e . addClass ( v ) ; p ( "ngfDrag" , a , { $isDragging : ! 0 , $class : v , $event : b } ) } ) ) } } , ! 1 ) ; e [ 0 ] . addEventListener ( "dragenter" , function ( b ) { ! h ( ) && m . shouldUpdateOn ( "drop" ,
c , a ) && ( b . preventDefault ( ) , H ( a ) && b . stopPropagation ( ) ) } , ! 1 ) ; e [ 0 ] . addEventListener ( "dragleave" , function ( b ) { ! h ( ) && m . shouldUpdateOn ( "drop" , c , a ) && ( b . preventDefault ( ) , H ( a ) && b . stopPropagation ( ) , I = f ( function ( ) { v && e . removeClass ( v ) ; v = null ; p ( "ngfDrag" , a , { $isDragging : ! 1 , $event : b } ) } , J || 100 ) ) } , ! 1 ) ; e [ 0 ] . addEventListener ( "drop" , function ( b ) { ! h ( ) && m . shouldUpdateOn ( "drop" , c , a ) && ( b . preventDefault ( ) , H ( a ) && b . stopPropagation ( ) , v && e . removeClass ( v ) , v = null , r ( b . dataTransfer , b , "dropUrl" ) ) } , ! 1 ) ; e [ 0 ] . addEventListener ( "paste" , function ( b ) { - 1 <
navigator . userAgent . toLowerCase ( ) . indexOf ( "firefox" ) && p ( "ngfEnableFirefoxPaste" , a ) && b . preventDefault ( ) ; ! h ( ) && m . shouldUpdateOn ( "paste" , c , a ) && r ( b . clipboardData || b . originalEvent . clipboardData , b , "pasteUrl" ) } , ! 1 ) ; - 1 < navigator . userAgent . toLowerCase ( ) . indexOf ( "firefox" ) && p ( "ngfEnableFirefoxPaste" , a ) && ( e . attr ( "contenteditable" , ! 0 ) , e . on ( "keypress" , function ( a ) { a . metaKey || a . ctrlKey || a . preventDefault ( ) } ) ) } function l ( ) { var a = document . createElement ( "div" ) ; return "draggable" in a && "ondrop" in a && ! /Edge\/12./i . test ( navigator . userAgent ) }
ngFileUpload . directive ( "ngfDrop" , [ "$parse" , "$timeout" , "$window" , "Upload" , "$http" , "$q" , function ( h , e , c , b , g , f ) { return { restrict : "AEC" , require : "?ngModel" , link : function ( l , m , n , t ) { a ( l , m , n , t , h , e , c , b , g , f ) } } } ] ) ; ngFileUpload . directive ( "ngfNoFileDrop" , function ( ) { return function ( a , e ) { l ( ) && e . css ( "display" , "none" ) } } ) ; ngFileUpload . directive ( "ngfDropAvailable" , [ "$parse" , "$timeout" , "Upload" , function ( a , e , c ) { return function ( b , g , f ) { if ( l ( ) ) { var h = a ( c . attrGetter ( "ngfDropAvailable" , f ) ) ; e ( function ( ) { h ( b ) ; h . assign && h . assign ( b ,
! 0 ) } ) } } } ] ) } ) ( ) ;
ngFileUpload . service ( "UploadExif" , [ "UploadResize" , "$q" , function ( a , l ) { function h ( a , b , e , f ) { switch ( b ) { case 2 : return a . transform ( - 1 , 0 , 0 , 1 , e , 0 ) ; case 3 : return a . transform ( - 1 , 0 , 0 , - 1 , e , f ) ; case 4 : return a . transform ( 1 , 0 , 0 , - 1 , 0 , f ) ; case 5 : return a . transform ( 0 , 1 , 1 , 0 , 0 , 0 ) ; case 6 : return a . transform ( 0 , 1 , - 1 , 0 , f , 0 ) ; case 7 : return a . transform ( 0 , - 1 , - 1 , 0 , f , e ) ; case 8 : return a . transform ( 0 , - 1 , 1 , 0 , 0 , e ) } } function e ( a ) { var b = "" ; a = new Uint8Array ( a ) ; for ( var c = a . byteLength , e = 0 ; c > e ; e ++ ) b += String . fromCharCode ( a [ e ] ) ; return window . btoa ( b ) }
return a . isExifSupported = function ( ) { return window . FileReader && ( new FileReader ) . readAsArrayBuffer && a . isResizeSupported ( ) } , a . readOrientation = function ( a ) { var b = l . defer ( ) , c = new FileReader ; a = a . slice ? a . slice ( 0 , 65536 ) : a ; return c . readAsArrayBuffer ( a ) , c . onerror = function ( a ) { return b . reject ( a ) } , c . onload = function ( a ) { var c = { orientation : 1 } , e = new DataView ( this . result ) ; if ( 65496 !== e . getUint16 ( 0 , ! 1 ) ) return b . resolve ( c ) ; for ( var f = e . byteLength , g = 2 ; f > g ; ) { var h = e . getUint16 ( g , ! 1 ) ; if ( g += 2 , 65505 === h ) { if ( 1165519206 !== e . getUint32 ( g +=
2 , ! 1 ) ) break ; for ( var h = 18761 === e . getUint16 ( g += 6 , ! 1 ) , g = g + e . getUint32 ( g + 4 , h ) , l = e . getUint16 ( g , h ) , g = g + 2 , y = 0 ; l > y ; y ++ ) if ( 274 === e . getUint16 ( g + 12 * y , h ) ) return f = e . getUint16 ( g + 12 * y + 8 , h ) , 2 <= f && 8 >= f && ( e . setUint16 ( g + 12 * y + 8 , 1 , h ) , c . fixedArrayBuffer = a . target . result ) , c . orientation = f , b . resolve ( c ) } else { if ( 65280 !== ( 65280 & h ) ) break ; g += e . getUint16 ( g , ! 1 ) } } return b . resolve ( c ) } , b . promise } , a . applyExifRotation = function ( c ) { if ( 0 !== c . type . indexOf ( "image/jpeg" ) ) return a . emptyPromise ( c ) ; var b = l . defer ( ) ; return a . readOrientation ( c ) . then ( function ( g ) { return 2 >
g . orientation || 8 < g . orientation ? b . resolve ( c ) : void a . dataUrl ( c , ! 0 ) . then ( function ( f ) { var l = document . createElement ( "canvas" ) , m = document . createElement ( "img" ) ; m . onload = function ( ) { try { l . width = 4 < g . orientation ? m . height : m . width ; l . height = 4 < g . orientation ? m . width : m . height ; var f = l . getContext ( "2d" ) ; h ( f , g . orientation , m . width , m . height ) ; f . drawImage ( m , 0 , 0 ) ; var q = l . toDataURL ( c . type || "image/WebP" , . 934 ) , q = a . restoreExif ( e ( g . fixedArrayBuffer ) , q ) , x = a . dataUrltoBlob ( q , c . name ) ; b . resolve ( x ) } catch ( r ) { return b . reject ( r ) } } ; m . onerror =
function ( ) { b . reject ( ) } ; m . src = f } , function ( a ) { b . reject ( a ) } ) } , function ( a ) { b . reject ( a ) } ) , b . promise } , a . restoreExif = function ( a , b ) { var c = { } ; return c . KEY _STR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" , c . encode64 = function ( a ) { var b , c , e , f , g = "" , h , l , C = 0 ; do b = a [ C ++ ] , c = a [ C ++ ] , h = a [ C ++ ] , e = b >> 2 , b = ( 3 & b ) << 4 | c >> 4 , f = ( 15 & c ) << 2 | h >> 6 , l = 63 & h , isNaN ( c ) ? f = l = 64 : isNaN ( h ) && ( l = 64 ) , g = g + this . KEY _STR . charAt ( e ) + this . KEY _STR . charAt ( b ) + this . KEY _STR . charAt ( f ) + this . KEY _STR . charAt ( l ) ; while ( C < a . length ) ; return g } , c . restore =
function ( a , b ) { a . match ( "data:image/jpeg;base64," ) && ( a = a . replace ( "data:image/jpeg;base64," , "" ) ) ; var c = this . decode64 ( a ) , c = this . slice2Segments ( c ) , c = this . exifManipulation ( b , c ) ; return "data:image/jpeg;base64," + this . encode64 ( c ) } , c . exifManipulation = function ( a , b ) { var c = this . getExifArray ( b ) , c = this . insertExif ( a , c ) ; return new Uint8Array ( c ) } , c . getExifArray = function ( a ) { for ( var b , c = 0 ; c < a . length ; c ++ ) if ( b = a [ c ] , 255 === b [ 0 ] & 225 === b [ 1 ] ) return b ; return [ ] } , c . insertExif = function ( a , b ) { var c = a . replace ( "data:image/jpeg;base64," ,
"" ) , e = this . decode64 ( c ) , f = e . indexOf ( 255 , 3 ) , c = e . slice ( 0 , f ) , e = e . slice ( f ) ; return c = c . concat ( b ) , c . concat ( e ) } , c . slice2Segments = function ( a ) { for ( var b = 0 , c = [ ] ; ! ( 255 === a [ b ] & 218 === a [ b + 1 ] ) ; ) { if ( 255 === a [ b ] & 216 === a [ b + 1 ] ) b += 2 ; else { var e = b + ( 256 * a [ b + 2 ] + a [ b + 3 ] ) + 2 , b = a . slice ( b , e ) ; c . push ( b ) ; b = e } if ( b > a . length ) break } return c } , c . decode64 = function ( a ) { var b , c , e , f , g , h = 0 , l = [ ] ; /[^A-Za-z0-9\+\/\=]/g . exec ( a ) && console . log ( "There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, NaNExpect errors in decoding." ) ;
a = a . replace ( /[^A-Za-z0-9\+\/\=]/g , "" ) ; do b = this . KEY _STR . indexOf ( a . charAt ( h ++ ) ) , c = this . KEY _STR . indexOf ( a . charAt ( h ++ ) ) , e = this . KEY _STR . indexOf ( a . charAt ( h ++ ) ) , g = this . KEY _STR . indexOf ( a . charAt ( h ++ ) ) , b = b << 2 | c >> 4 , c = ( 15 & c ) << 4 | e >> 2 , f = ( 3 & e ) << 6 | g , l . push ( b ) , 64 !== e && l . push ( c ) , 64 !== g && l . push ( f ) ; while ( h < a . length ) ; return l } , c . restore ( a , b ) } , a } ] ) ; "undefined" != typeof module && "undefined" != typeof exports && module . exports === exports && ( module . exports = "ui.date" ) ;
( function ( a ) { a . module ( "ui.date" , [ ] ) . constant ( "uiDateConfig" , { } ) . constant ( "uiDateFormatConfig" , "" ) . factory ( "uiDateConverter" , [ "uiDateFormatConfig" , function ( l ) { return { stringToDate : function ( h , e ) { if ( h = h || l , a . isDate ( e ) && ! isNaN ( e ) ) return e ; if ( a . isString ( e ) ) { if ( h ) return jQuery . datepicker . parseDate ( h , e ) ; var c = new Date ( e ) ; return isNaN ( c . getTime ( ) ) ? null : c } return a . isNumber ( e ) ? new Date ( e ) : null } , dateToString : function ( a , e ) { if ( a = a || l , e ) { if ( a ) try { return jQuery . datepicker . formatDate ( a , e ) } catch ( c ) { return } if ( e . toISOString ) return e . toISOString ( ) } return null } } } ] ) . directive ( "uiDate" ,
[ "uiDateConfig" , "uiDateConverter" , function ( l , h ) { return { require : "?ngModel" , link : function ( e , c , b , g ) { var f = function ( ) { return a . extend ( { } , l , e . $eval ( b . uiDate ) ) } ; e . $watch ( f , function ( ) { function l ( ) { var b = [ "Hours" , "Minutes" , "Seconds" , "Milliseconds" ] , e = a . isDate ( g . $modelValue ) , f = { } ; e && g . $modelValue . toDateString ( ) === c . datepicker ( "getDate" ) . toDateString ( ) || ( e && a . forEach ( b , function ( a ) { f [ a ] = g . $modelValue [ "get" + a ] ( ) } ) , g . $setViewValue ( c . datepicker ( "getDate" ) ) , e && a . forEach ( b , function ( a ) { g . $viewValue [ "set" + a ] ( f [ a ] ) } ) ) }
var m = ! 1 , n = f ( ) ; if ( g ) { var t = n . onSelect || a . noop ; n . onSelect = function ( a , b ) { e . $apply ( function ( ) { m = ! 0 ; l ( ) ; t ( a , b ) ; c . blur ( ) } ) } ; var x = n . beforeShow || a . noop ; n . beforeShow = function ( a , b ) { m = ! 0 ; x ( a , b ) } ; var r = n . onClose || a . noop ; n . onClose = function ( a , b ) { m = ! 1 ; r ( a , b ) } ; c . off ( "blur.datepicker" ) . on ( "blur.datepicker" , function ( ) { m || e . $apply ( function ( ) { c . datepicker ( "setDate" , c . datepicker ( "getDate" ) ) ; l ( ) } ) } ) ; g . $validators . uiDateValidator = function ( c , e ) { return a . isDate ( h . stringToDate ( b . uiDateFormat , e ) ) } ; g . $parsers . push ( function ( a ) { return h . stringToDate ( b . uiDateFormat ,
a ) } ) ; g . $render = function ( ) { c . datepicker ( "setDate" , g . $modelValue ) } } c . data ( "datepicker" ) ? ( c . datepicker ( "option" , n ) , c . datepicker ( "refresh" ) ) : ( c . datepicker ( n ) , c . on ( "$destroy" , function ( ) { c . datepicker ( "hide" ) ; c . datepicker ( "destroy" ) } ) ) ; g && g . $render ( ) } , ! 0 ) } } } ] ) . directive ( "uiDateFormat" , [ "uiDateConverter" , function ( a ) { return { require : "ngModel" , link : function ( h , e , c , b ) { var g = c . uiDateFormat ; b . $formatters . unshift ( function ( b ) { return a . stringToDate ( g , b ) } ) ; b . $parsers . push ( function ( b ) { return a . dateToString ( g , b ) } ) } } } ] ) } ) ( angular ) ;
angular . module ( "angular-input-stars" , [ ] ) . service ( "FontAwesomeIcons" , [ "$http" , "$q" , function ( a , l ) { this . get = function ( ) { var h = l . defer ( ) ; return a . get ( "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/gh-pages/icons.yml" ) . then ( function ( a ) { var c = { iconMap : { } , iconList : [ ] , iconCategoryList : [ ] } ; a = jsyaml . load ( a . data ) . icons ; for ( var b = 0 ; b < a . length ; b ++ ) { c . iconMap [ a [ b ] . name ] = a [ b ] . id ; c . iconList . push ( a [ b ] . name ) ; for ( var e = 0 ; e < a [ b ] . categories . length ; e ++ ) c . iconCategoryList [ a [ b ] . categories [ e ] ] || ( c . iconCategoryList [ a [ b ] . categories [ e ] ] =
[ ] ) , c . iconCategoryList [ a [ b ] . categories [ e ] ] . push ( a [ b ] . name ) } h . resolve ( c ) } , function ( a ) { var c = "Could not fetch FontAwesome Github Repo" ; a || ( c = a . data || a ) ; h . reject ( c ) } ) , h . promise } } ] ) . filter ( "toFaIcon" , [ "FontAwesomeIcons" , "$timeout" , function ( a , l ) { return function ( a , e , c ) { var b = { full : "" , empty : "" } ; a = 0 <= _ _indexOf . call ( c . iconList , a ) ? ( b . full = "fa-" + c . iconMap [ a ] , b . empty = "fa-" + c . iconMap [ a ] + "-o" , "thumbs-up" == a || "thumbs-down" == a ? b . empty = "fa-" + c . iconMap [ a ] . split ( "-" ) [ 0 ] + "-o-" + c . iconMap [ a ] . split ( "-" ) [ 1 ] : "Smile Outlined" ==
a && ( b . empty = "fa-frown-o" ) , b ) : ( console . error ( "Error no shape of type: " + a + " for rating input" ) , b ) ; return e ? a . empty : a . full } } ] ) . directive ( "inputStars" , [ "$rootScope" , "$filter" , "FontAwesomeIcons" , "$q" , function ( a , l , h , e ) { return { restrict : "EA" , replace : ! 0 , template : '<ul ng-class="listClass"><li ng-touch="paintStars($index)" ng-mouseenter="paintStars($index, true)" ng-mouseleave="unpaintStars($index, false)" ng-repeat="item in items track by $index"><i ng-class="getClass($index)" ng-click="setValue($index, $event)"></i></li></ul>' ,
require : "ngModel" , scope : ! 0 , link : function ( a , b , g , f ) { var c , m , n , t ; ( function ( ) { var a = e . defer ( ) ; return h . get ( ) . then ( function ( b ) { a . resolve ( b ) } , function ( b ) { a . reject ( Error ( "toShapeIcon Error: " + b ) ) } ) , a . promise } ) ( ) . then ( function ( e ) { a . items = Array ( + g . max ) ; c = l ( "toFaIcon" ) ( g . iconEmpty , ! 0 , e ) || g . iconEmpty || "fa-stars-o" ; m = g . iconHover || "angular-input-stars-hover" ; n = l ( "toFaIcon" ) ( g . iconFull , ! 1 , e ) || g . iconEmpty || "fa-stars" ; t = g . iconBase || "fa fa-fw" ; a . listClass = g . listClass || "angular-input-stars" ; a . readonly = void 0 !== g . readonly ;
! 0 ; g . $observe ( "max" , function ( b ) { a . items = Array ( + b ) } ) ; g . $observe ( "iconEmpty" , function ( a ) { c = l ( "toFaIcon" ) ( a , ! 0 , e ) || a || "fa-stars-o" } ) ; g . $observe ( "iconFull" , function ( a ) { n = l ( "toFaIcon" ) ( a , ! 1 , e ) || a || "fa-stars" } ) ; f . $render = function ( ) { a . last _value = f . $viewValue || 0 } ; a . getClass = function ( b ) { return b >= a . last _value ? t + " " + c : t + " " + n + " active " } ; a . unpaintStars = function ( b , c ) { a . paintStars ( a . last _value - 1 , c ) } ; a . paintStars = function ( e , f ) { if ( ! a . readonly ) { for ( var g = b . find ( "li" ) . find ( "i" ) , h = 0 ; h < g . length ; h ++ ) { var l = angular . element ( g [ h ] ) ;
e >= h ? ( l . removeClass ( c ) , l . addClass ( n ) , l . addClass ( "active" ) , l . addClass ( m ) ) : ( l . removeClass ( n ) , l . removeClass ( "active" ) , l . removeClass ( m ) , l . addClass ( c ) ) } ! f && g . removeClass ( m ) } } ; a . setValue = function ( b , c ) { a . readonly || ( c . target . getBoundingClientRect ( ) , a . last _value = b + 1 , f . $setViewValue ( a . last _value ) , g . onShapeClick && a . $eval ( g . onStarClick ) ) } } , function ( a ) { console . error ( "angular-input-stars.js | " + a . message || a ) } ) } } } ] ) ;
! function ( a ) { var l = function ( a , b ) { var c = Error ( a + " at character " + b ) ; throw c . index = b , c . description = a , c ; } , h = { "-" : ! 0 , "!" : ! 0 , "~" : ! 0 , "+" : ! 0 } , e = { "||" : 1 , "&&" : 2 , "|" : 3 , "^" : 4 , "&" : 5 , "==" : 6 , "!=" : 6 , "===" : 6 , "!==" : 6 , "<" : 7 , ">" : 7 , "<=" : 7 , ">=" : 7 , "<<" : 8 , ">>" : 8 , ">>>" : 8 , "+" : 9 , "-" : 9 , "*" : 10 , "/" : 10 , "%" : 10 } , c = function ( a ) { var b , c = 0 , e ; for ( e in a ) ( b = e . length ) > c && a . hasOwnProperty ( e ) && ( c = b ) ; return c } , b = c ( h ) , g = c ( e ) , f = { "true" : ! 0 , "false" : ! 1 , "null" : null } , q = function ( a , b , c ) { return { type : "||" === a || "&&" === a ? "LogicalExpression" : "BinaryExpression" ,
operator : a , left : b , right : c } } , m = function ( a ) { return 48 <= a && 57 >= a } , n = function ( a ) { return 36 === a || 95 === a || 65 <= a && 90 >= a || 97 <= a && 122 >= a || 128 <= a && ! e [ String . fromCharCode ( a ) ] } , t = function ( a ) { for ( var c , r , t = 0 , x = a . charAt , F = a . charCodeAt , p = function ( b ) { return x . call ( a , b ) } , v = function ( b ) { return F . call ( a , b ) } , I = a . length , H = function ( ) { for ( var a = v ( t ) ; 32 === a || 9 === a ; ) a = v ( ++ t ) } , J = function ( ) { var a , b , c ; var f , g , h , m , n ; if ( f = O ( ) , g = K ( ) , g ) { m = { value : g , prec : e [ g ] || 0 } ; ( n = O ( ) ) || l ( "Expected expression after " + g , t ) ; for ( c = [ f , m , n ] ; ( g = K ( ) ) &&
( h = e [ g ] || 0 , 0 !== h ) ; ) { for ( m = { value : g , prec : h } ; 2 < c . length && h <= c [ c . length - 2 ] . prec ; ) n = c . pop ( ) , g = c . pop ( ) . value , f = c . pop ( ) , f = q ( g , f , n ) , c . push ( f ) ; ( f = O ( ) ) || l ( "Expected expression after " + g , t ) ; c . push ( m , f ) } g = c . length - 1 ; for ( f = c [ g ] ; 1 < g ; ) f = q ( c [ g - 1 ] . value , c [ g - 2 ] , f ) , g -= 2 } c = f ; return H ( ) , 63 !== v ( t ) ? c : ( t ++ , a = J ( ) , a || l ( "Expected expression" , t ) , H ( ) , 58 === v ( t ) ? ( t ++ , b = J ( ) , b || l ( "Expected expression" , t ) , { type : "ConditionalExpression" , test : c , consequent : a , alternate : b } ) : void l ( "Expected :" , t ) ) } , K = function ( ) { H ( ) ; for ( var b = a . substr ( t ,
g ) , c = b . length ; 0 < c ; ) { if ( e . hasOwnProperty ( b ) ) return t += c , b ; b = b . substr ( 0 , -- c ) } return ! 1 } , O = function ( ) { var c , e , f ; if ( H ( ) , c = v ( t ) , m ( c ) || 46 === c ) { var g ; for ( e = "" ; m ( v ( t ) ) ; ) e += p ( t ++ ) ; if ( 46 === v ( t ) ) for ( e += p ( t ++ ) ; m ( v ( t ) ) ; ) e += p ( t ++ ) ; if ( f = p ( t ) , "e" === f || "E" === f ) { e += p ( t ++ ) ; f = p ( t ) ; for ( "+" !== f && "-" !== f || ( e += p ( t ++ ) ) ; m ( v ( t ) ) ; ) e += p ( t ++ ) ; m ( v ( t - 1 ) ) || l ( "Expected exponent (" + e + p ( t ) + ")" , t ) } return g = v ( t ) , n ( g ) ? l ( "Variable names cannot start with a number (" + e + p ( t ) + ")" , t ) : 46 === g && l ( "Unexpected period" , t ) , { type : "Literal" , value : parseFloat ( e ) ,
raw : e } } if ( 39 === c || 34 === c ) { f = "" ; g = p ( t ++ ) ; for ( c = ! 1 ; t < I ; ) { if ( e = p ( t ++ ) , e === g ) { c = ! 0 ; break } if ( "\\" === e ) switch ( e = p ( t ++ ) ) { case "n" : f += "\n" ; break ; case "r" : f += "\r" ; break ; case "t" : f += "\t" ; break ; case "b" : f += "\b" ; break ; case "f" : f += "\f" ; break ; case "v" : f += "\x0B" ; break ; default : f += "\\" + e } else f += e } return c || l ( 'Unclosed quote after "' + f + '"' , t ) , { type : "Literal" , value : f , raw : g + f + g } } if ( n ( c ) || 40 === c ) { e = v ( t ) ; 40 === e ? ( t ++ , e = J ( ) , e = ( H ( ) , 41 === v ( t ) ? ( t ++ , e ) : void l ( "Unclosed (" , t ) ) ) : e = V ( ) ; f = e ; H ( ) ; for ( e = v ( t ) ; 46 === e || 91 === e || 40 ===
e ; ) t ++ , 46 === e ? ( H ( ) , f = { type : "MemberExpression" , computed : ! 1 , object : f , property : V ( ) } ) : 91 === e ? ( f = { type : "MemberExpression" , computed : ! 0 , object : f , property : J ( ) } , H ( ) , e = v ( t ) , 93 !== e && l ( "Unclosed [" , t ) , t ++ ) : 40 === e && ( f = { type : "CallExpression" , arguments : X ( 41 ) , callee : f } ) , H ( ) , e = v ( t ) ; return f } if ( 91 === c ) return t ++ , { type : "ArrayExpression" , elements : X ( 93 ) } ; e = a . substr ( t , b ) ; for ( f = e . length ; 0 < f ; ) { if ( h . hasOwnProperty ( e ) ) return t += f , { type : "UnaryExpression" , operator : e , argument : O ( ) , prefix : ! 0 } ; e = e . substr ( 0 , -- f ) } return ! 1 } , V = function ( ) { var b ,
c = v ( t ) , g = t ; for ( n ( c ) ? t ++ : l ( "Unexpected " + p ( t ) , t ) ; t < I && ( c = v ( t ) , 36 === c || 95 === c || 65 <= c && 90 >= c || 97 <= c && 122 >= c || 48 <= c && 57 >= c || 128 <= c && ! e [ String . fromCharCode ( c ) ] ) ; ) t ++ ; return b = a . slice ( g , t ) , f . hasOwnProperty ( b ) ? { type : "Literal" , value : f [ b ] , raw : b } : "this" === b ? { type : "ThisExpression" } : { type : "Identifier" , name : b } } , X = function ( a ) { for ( var b , c , e = [ ] , f = ! 1 ; t < I ; ) { if ( H ( ) , b = v ( t ) , b === a ) { f = ! 0 ; t ++ ; break } 44 === b ? t ++ : ( c = J ( ) , c && "Compound" !== c . type || l ( "Expected comma" , t ) , e . push ( c ) ) } return f || l ( "Expected " + String . fromCharCode ( a ) , t ) ,
e } , L = [ ] ; t < I ; ) c = v ( t ) , 59 === c || 44 === c ? t ++ : ( r = J ( ) ) ? L . push ( r ) : t < I && l ( 'Unexpected "' + p ( t ) + '"' , t ) ; return 1 === L . length ? L [ 0 ] : { type : "Compound" , body : L } } ; if ( t . version = "0.3.1" , t . toString = function ( ) { return "JavaScript Expression Parser (JSEP) v" + t . version } , t . addUnaryOp = function ( a ) { return b = Math . max ( a . length , b ) , h [ a ] = ! 0 , this } , t . addBinaryOp = function ( a , b ) { return g = Math . max ( a . length , g ) , e [ a ] = b , this } , t . addLiteral = function ( a , b ) { return f [ a ] = b , this } , t . removeUnaryOp = function ( a ) { return delete h [ a ] , a . length === b && ( b = c ( h ) ) , this } ,
t . removeBinaryOp = function ( a ) { return delete e [ a ] , a . length === g && ( g = c ( e ) ) , this } , t . removeLiteral = function ( a ) { return delete f [ a ] , this } , "undefined" == typeof exports ) { var x = a . jsep ; a . jsep = t ; t . noConflict = function ( ) { return a . jsep === t && ( a . jsep = x ) , t } } else "undefined" != typeof module && module . exports ? exports = module . exports = t : exports . parse = t } ( this ) ;
! function ( a ) { "object" == typeof exports && "undefined" != typeof module ? module . exports = a ( ) : "function" == typeof define && define . amd ? define ( [ ] , a ) : ( "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this ) . Raven = a ( ) } ( function ( ) { return function l ( h , e , c ) { function b ( f , m ) { if ( ! e [ f ] ) { if ( ! h [ f ] ) { var n = "function" == typeof require && require ; if ( ! m && n ) return n ( f , ! 0 ) ; if ( g ) return g ( f , ! 0 ) ; n = Error ( "Cannot find module '" + f + "'" ) ; throw n . code = "MODULE_NOT_FOUND" , n ; } n = e [ f ] = { exports : { } } ;
h [ f ] [ 0 ] . call ( n . exports , function ( c ) { var e = h [ f ] [ 1 ] [ c ] ; return b ( e ? e : c ) } , n , n . exports , l , h , e , c ) } return e [ f ] . exports } for ( var g = "function" == typeof require && require , f = 0 ; f < c . length ; f ++ ) b ( c [ f ] ) ; return b } ( { 1 : [ function ( l , h , e ) { function c ( b ) { this . name = "RavenConfigError" ; this . message = b } c . prototype = Error ( ) ; c . prototype . constructor = c ; h . exports = c } , { } ] , 2 : [ function ( l , h , e ) { h . exports = { wrapMethod : function ( c , b , e ) { var f = c [ b ] ; if ( b in c ) { var g = "warn" === b ? "warning" : b ; c [ b ] = function ( ) { var b = [ ] . slice . call ( arguments ) , h = "" + b . join ( " " ) ,
l = { level : g , logger : "console" , extra : { arguments : b } } ; e && e ( h , l ) ; f && Function . prototype . apply . call ( f , c , b ) } } } } } , { } ] , 3 : [ function ( l , h , e ) { ( function ( c ) { function b ( ) { this . a = ! ( "object" != typeof JSON || ! JSON . stringify ) ; this . b = void 0 !== T ; this . c = void 0 !== W ; this . i = this . h = this . g = this . f = this . e = this . d = null ; this . j = { } ; this . k = { logger : "javascript" , ignoreErrors : [ ] , ignoreUrls : [ ] , whitelistUrls : [ ] , includePaths : [ ] , crossOrigin : "anonymous" , collectWindowErrors : ! 0 , maxMessageLength : 0 , stackTraceLimit : 50 , autoBreadcrumbs : ! 0 , sampleRate : 1 } ;
this . l = 0 ; this . m = ! 1 ; this . n = Error . stackTraceLimit ; this . o = L . console || { } ; this . p = { } ; this . q = [ ] ; this . r = + new Date ; this . s = [ ] ; this . t = [ ] ; this . u = null ; this . w = ( this . v = L . location ) && this . v . href ; this . x ( ) ; for ( var b in this . o ) this . p [ b ] = this . o [ b ] } function e ( b ) { return "function" == typeof b } function f ( b ) { return "[object String]" === ca . toString . call ( b ) } function q ( b ) { for ( var c in b ) return ! 1 ; return ! 0 } function m ( b , c ) { var e , f ; if ( void 0 === b . length ) for ( e in b ) ca . hasOwnProperty . call ( b , e ) && c . call ( null , e , b [ e ] ) ; else if ( f = b . length ) for ( e =
0 ; e < f ; e ++ ) c . call ( null , e , b [ e ] ) } function n ( b , c ) { return c ? ( m ( c , function ( c , e ) { b [ c ] = e } ) , b ) : b } function t ( b , c ) { return ! c || b . length <= c ? b : b . substr ( 0 , c ) + "\u2026" } function x ( b ) { for ( var c , e = [ ] , g = 0 , h = b . length ; g < h ; g ++ ) c = b [ g ] , f ( c ) ? e . push ( c . replace ( /([.*+?^=!:${}()|\[\]\/\\])/g , "\\$1" ) ) : c && c . source && e . push ( c . source ) ; return new RegExp ( e . join ( "|" ) , "i" ) } function r ( b ) { var c = [ ] ; return m ( b , function ( b , e ) { c . push ( encodeURIComponent ( b ) + "=" + encodeURIComponent ( e ) ) } ) , c . join ( "&" ) } function y ( b ) { return ( b = b . match ( /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/ ) ) ?
{ protocol : b [ 2 ] , host : b [ 4 ] , path : b [ 5 ] , relative : b [ 5 ] + ( b [ 6 ] || "" ) + ( b [ 8 ] || "" ) } : { } } function C ( ) { var b = L . crypto || L . msCrypto ; if ( void 0 !== b && b . getRandomValues ) { var c = new Uint16Array ( 8 ) ; b . getRandomValues ( c ) ; c [ 3 ] = 4095 & c [ 3 ] | 16384 ; c [ 4 ] = 16383 & c [ 4 ] | 32768 ; b = function ( b ) { for ( b = b . toString ( 16 ) ; 4 > b . length ; ) b = "0" + b ; return b } ; return b ( c [ 0 ] ) + b ( c [ 1 ] ) + b ( c [ 2 ] ) + b ( c [ 3 ] ) + b ( c [ 4 ] ) + b ( c [ 5 ] ) + b ( c [ 6 ] ) + b ( c [ 7 ] ) } return "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx" . replace ( /[xy]/g , function ( b ) { var c = 16 * Math . random ( ) | 0 ; return ( "x" === b ? c : 3 & c | 8 ) . toString ( 16 ) } ) }
function A ( b ) { var c , e , g , h = [ ] ; if ( ! b || ! b . tagName ) return "" ; if ( h . push ( b . tagName . toLowerCase ( ) ) , b . id && h . push ( "#" + b . id ) , c = b . className , c && f ( c ) ) for ( e = c . split ( /\s+/ ) , c = 0 ; c < e . length ; c ++ ) h . push ( "." + e [ c ] ) ; var l = [ "type" , "name" , "title" , "alt" ] ; for ( c = 0 ; c < l . length ; c ++ ) e = l [ c ] , ( g = b . getAttribute ( e ) ) && h . push ( "[" + e + '="' + g + '"]' ) ; return h . join ( "" ) } function E ( b , c ) { if ( ! ! b ^ ! ! c ) return ! 1 ; var e = b . frames , f = c . frames ; if ( e . length !== f . length ) return ! 1 ; for ( var g , h , l = 0 ; l < e . length ; l ++ ) if ( g = e [ l ] , h = f [ l ] , g . filename !== h . filename || g . lineno !==
h . lineno || g . colno !== h . colno || g [ "function" ] !== h [ "function" ] ) return ! 1 ; return ! 0 } function F ( b , c , e , f ) { var g = b [ c ] ; b [ c ] = e ( g ) ; f && f . push ( [ b , c , g ] ) } var p = l ( 6 ) , v = l ( 7 ) , I = l ( 1 ) , H = l ( 5 ) , J = H . isError , K = H . isObject , O = l ( 2 ) . wrapMethod , V = "source protocol user pass host port path" . split ( " " ) , X = /^(?:(\w+):)?\/\/(?:(\w+)(:\w+)?@)?([\w\.-]+)(?::(\d+))?(\/.*)/ , L = "undefined" != typeof window ? window : "undefined" != typeof c ? c : "undefined" != typeof self ? self : { } , T = L . document , W = L . navigator ; b . prototype = { VERSION : "3.13.1" , debug : ! 1 , TraceKit : p ,
config : function ( b , c ) { var e = this ; if ( e . g ) return this . y ( "error" , "Error: Raven has already been configured" ) , e ; if ( ! b ) return e ; var f = e . k ; c && m ( c , function ( b , c ) { "tags" === b || "extra" === b || "user" === b ? e . j [ b ] = c : f [ b ] = c } ) ; e . setDSN ( b ) ; f . ignoreErrors . push ( /^Script error\.?$/ ) ; f . ignoreErrors . push ( /^Javascript error: Script error\.? on line 0$/ ) ; f . ignoreErrors = x ( f . ignoreErrors ) ; f . ignoreUrls = ! ! f . ignoreUrls . length && x ( f . ignoreUrls ) ; f . whitelistUrls = ! ! f . whitelistUrls . length && x ( f . whitelistUrls ) ; f . includePaths = x ( f . includePaths ) ;
f . maxBreadcrumbs = Math . max ( 0 , Math . min ( f . maxBreadcrumbs || 100 , 100 ) ) ; var g = { xhr : ! 0 , console : ! 0 , dom : ! 0 , location : ! 0 } , h = f . autoBreadcrumbs ; return "[object Object]" === { } . toString . call ( h ) ? h = n ( g , h ) : ! 1 !== h && ( h = g ) , f . autoBreadcrumbs = h , p . collectWindowErrors = ! ! f . collectWindowErrors , e } , install : function ( ) { var b = this ; return b . isSetup ( ) && ! b . m && ( p . report . subscribe ( function ( ) { b . z . apply ( b , arguments ) } ) , b . A ( ) , b . k . autoBreadcrumbs && b . B ( ) , b . C ( ) , b . m = ! 0 ) , Error . stackTraceLimit = b . k . stackTraceLimit , this } , setDSN : function ( b ) { var c = this . D ( b ) ,
e = c . path . lastIndexOf ( "/" ) , f = c . path . substr ( 1 , e ) ; this . E = b ; this . h = c . user ; this . F = c . pass && c . pass . substr ( 1 ) ; this . i = c . path . substr ( e + 1 ) ; this . g = this . G ( c ) ; this . H = this . g + "/" + f + "api/" + this . i + "/store/" ; this . x ( ) } , context : function ( b , c , f ) { return e ( b ) && ( f = c || [ ] , c = b , b = void 0 ) , this . wrap ( b , c ) . apply ( this , f ) } , wrap : function ( b , c , f ) { function g ( ) { var g = [ ] , l = arguments . length , m = ! b || b && ! 1 !== b . deep ; for ( f && e ( f ) && f . apply ( this , arguments ) ; l -- ; ) g [ l ] = m ? h . wrap ( b , arguments [ l ] ) : arguments [ l ] ; try { return c . apply ( this , g ) } catch ( Z ) { throw h . I ( ) ,
h . captureException ( Z , b ) , Z ; } } var h = this ; if ( void 0 === c && ! e ( b ) ) return b ; if ( e ( b ) && ( c = b , b = void 0 ) , ! e ( c ) ) return c ; try { if ( c . J ) return c ; if ( c . K ) return c . K } catch ( Q ) { return c } for ( var l in c ) ca . hasOwnProperty . call ( c , l ) && ( g [ l ] = c [ l ] ) ; return g . prototype = c . prototype , c . K = g , g . J = ! 0 , g . L = c , g } , uninstall : function ( ) { return p . report . uninstall ( ) , this . M ( ) , Error . stackTraceLimit = this . n , this . m = ! 1 , this } , captureException : function ( b , c ) { if ( ! J ( b ) ) return this . captureMessage ( b , n ( { trimHeadFrames : 1 , stacktrace : ! 0 } , c ) ) ; this . d = b ; try { var e =
p . computeStackTrace ( b ) ; this . N ( e , c ) } catch ( U ) { if ( b !== U ) throw U ; } return this } , captureMessage : function ( b , c ) { if ( ! this . k . ignoreErrors . test || ! this . k . ignoreErrors . test ( b ) ) { c = c || { } ; var e = n ( { message : b + "" } , c ) ; if ( this . k . stacktrace || c && c . stacktrace ) { var f ; try { throw Error ( b ) ; } catch ( S ) { f = S } f . name = null ; c = n ( { fingerprint : b , trimHeadFrames : ( c . trimHeadFrames || 0 ) + 1 } , c ) ; f = p . computeStackTrace ( f ) ; f = this . O ( f , c ) ; e . stacktrace = { frames : f . reverse ( ) } } return this . P ( e ) , this } } , captureBreadcrumb : function ( b ) { b = n ( { timestamp : + new Date /
1E3 } , b ) ; if ( e ( this . k . breadcrumbCallback ) ) { var c = this . k . breadcrumbCallback ( b ) ; if ( K ( c ) && ! q ( c ) ) b = c ; else if ( ! 1 === c ) return this } return this . t . push ( b ) , this . t . length > this . k . maxBreadcrumbs && this . t . shift ( ) , this } , addPlugin : function ( b ) { var c = [ ] . slice . call ( arguments , 1 ) ; return this . q . push ( [ b , c ] ) , this . m && this . C ( ) , this } , setUserContext : function ( b ) { return this . j . user = b , this } , setExtraContext : function ( b ) { return this . Q ( "extra" , b ) , this } , setTagsContext : function ( b ) { return this . Q ( "tags" , b ) , this } , clearContext : function ( ) { return this . j =
{ } , this } , getContext : function ( ) { return JSON . parse ( v ( this . j ) ) } , setEnvironment : function ( b ) { return this . k . environment = b , this } , setRelease : function ( b ) { return this . k . release = b , this } , setDataCallback : function ( b ) { var c = this . k . dataCallback ; return this . k . dataCallback = e ( b ) ? function ( e ) { return b ( e , c ) } : b , this } , setBreadcrumbCallback : function ( b ) { var c = this . k . breadcrumbCallback ; return this . k . breadcrumbCallback = e ( b ) ? function ( e ) { return b ( e , c ) } : b , this } , setShouldSendCallback : function ( b ) { var c = this . k . shouldSendCallback ;
return this . k . shouldSendCallback = e ( b ) ? function ( e ) { return b ( e , c ) } : b , this } , setTransport : function ( b ) { return this . k . transport = b , this } , lastException : function ( ) { return this . d } , lastEventId : function ( ) { return this . f } , isSetup : function ( ) { return ! ( ! this . a || ! this . g && ( this . ravenNotConfiguredError || ( this . ravenNotConfiguredError = ! 0 , this . y ( "error" , "Error: Raven has not been configured." ) ) , 1 ) ) } , afterLoad : function ( ) { var b = L . RavenConfig ; b && this . config ( b . dsn , b . config ) . install ( ) } , showReportDialog : function ( b ) { if ( T ) { b = b ||
{ } ; var c = b . eventId || this . lastEventId ( ) ; if ( ! c ) throw new I ( "Missing eventId" ) ; var e = b . dsn || this . E ; if ( ! e ) throw new I ( "Missing DSN" ) ; var f = encodeURIComponent , c = "?eventId=" + f ( c ) , c = c + ( "&dsn=" + f ( e ) ) ; ( b = b . user || this . j . user ) && ( b . name && ( c += "&name=" + f ( b . name ) ) , b . email && ( c += "&email=" + f ( b . email ) ) ) ; e = this . G ( this . D ( e ) ) ; f = T . createElement ( "script" ) ; f . async = ! 0 ; f . src = e + "/api/embed/error-page/" + c ; ( T . head || T . body ) . appendChild ( f ) } } , I : function ( ) { var b = this ; this . l += 1 ; setTimeout ( function ( ) { -- b . l } ) } , R : function ( b , c ) { var e ,
f ; if ( this . b ) { c = c || { } ; b = "raven" + b . substr ( 0 , 1 ) . toUpperCase ( ) + b . substr ( 1 ) ; T . createEvent ? ( e = T . createEvent ( "HTMLEvents" ) , e . initEvent ( b , ! 0 , ! 0 ) ) : ( e = T . createEventObject ( ) , e . eventType = b ) ; for ( f in c ) ca . hasOwnProperty . call ( c , f ) && ( e [ f ] = c [ f ] ) ; if ( T . createEvent ) T . dispatchEvent ( e ) ; else try { T . fireEvent ( "on" + e . eventType . toLowerCase ( ) , e ) } catch ( S ) { } } } , S : function ( b ) { var c = this ; return function ( e ) { if ( c . T = null , c . u !== e ) { c . u = e ; var f ; try { var g = e . target , h ; e = [ ] ; for ( var l = 0 , m = 0 ; g && 5 > l ++ && ( h = A ( g ) , ! ( "html" === h || 1 < l && 80 <= m + 3 * e . length +
h . length ) ) ; ) e . push ( h ) , m += h . length , g = g . parentNode ; f = e . reverse ( ) . join ( " > " ) } catch ( ga ) { f = "<unknown>" } c . captureBreadcrumb ( { category : "ui." + b , message : f } ) } } } , U : function ( ) { var b = this ; return function ( c ) { var e ; try { e = c . target } catch ( S ) { return } var f = e && e . tagName ; f && ( "INPUT" === f || "TEXTAREA" === f || e . isContentEditable ) && ( ( e = b . T ) || b . S ( "input" ) ( c ) , clearTimeout ( e ) , b . T = setTimeout ( function ( ) { b . T = null } , 1E3 ) ) } } , V : function ( b , c ) { var e = y ( this . v . href ) , f = y ( c ) , g = y ( b ) ; this . w = c ; e . protocol === f . protocol && e . host === f . host && ( c = f . relative ) ;
e . protocol === g . protocol && e . host === g . host && ( b = g . relative ) ; this . captureBreadcrumb ( { category : "navigation" , data : { to : c , from : b } } ) } , A : function ( ) { function b ( b ) { return function ( c , g ) { for ( var h = Array ( arguments . length ) , l = 0 ; l < h . length ; ++ l ) h [ l ] = arguments [ l ] ; l = h [ 0 ] ; return e ( l ) && ( h [ 0 ] = f . wrap ( l ) ) , b . apply ? b . apply ( this , h ) : b ( h [ 0 ] , h [ 1 ] ) } } function c ( b ) { var c = L [ b ] && L [ b ] . prototype ; c && c . hasOwnProperty && c . hasOwnProperty ( "addEventListener" ) && ( F ( c , "addEventListener" , function ( c ) { return function ( e , g , l , m ) { try { g && g . handleEvent &&
( g . handleEvent = f . wrap ( g . handleEvent ) ) } catch ( Aa ) { } var n , p , r ; return h && h . dom && ( "EventTarget" === b || "Node" === b ) && ( p = f . S ( "click" ) , r = f . U ( ) , n = function ( b ) { if ( b ) { var c ; try { c = b . type } catch ( ba ) { return } return "click" === c ? p ( b ) : "keypress" === c ? r ( b ) : void 0 } } ) , c . call ( this , e , f . wrap ( g , void 0 , n ) , l , m ) } } , g ) , F ( c , "removeEventListener" , function ( b ) { return function ( c , e , f , g ) { try { e = e && ( e . K ? e . K : e ) } catch ( wa ) { } return b . call ( this , c , e , f , g ) } } , g ) ) } var f = this , g = f . s , h = this . k . autoBreadcrumbs ; F ( L , "setTimeout" , b , g ) ; F ( L , "setInterval" , b , g ) ;
L . requestAnimationFrame && F ( L , "requestAnimationFrame" , function ( b ) { return function ( c ) { return b ( f . wrap ( c ) ) } } , g ) ; for ( var l = "EventTarget Window Node ApplicationCache AudioTrackList ChannelMergerNode CryptoOperation EventSource FileReader HTMLUnknownElement IDBDatabase IDBRequest IDBTransaction KeyOperation MediaController MessagePort ModalWindow Notification SVGElementInstance Screen TextTrack TextTrackCue TextTrackList WebSocket WebSocketWorker Worker XMLHttpRequest XMLHttpRequestEventTarget XMLHttpRequestUpload" . split ( " " ) ,
m = 0 ; m < l . length ; m ++ ) c ( l [ m ] ) } , B : function ( ) { function b ( b , f ) { b in f && e ( f [ b ] ) && F ( f , b , function ( b ) { return c . wrap ( b ) } ) } var c = this , g = this . k . autoBreadcrumbs , h = c . s ; if ( g . xhr && "XMLHttpRequest" in L ) { var l = XMLHttpRequest . prototype ; F ( l , "open" , function ( b ) { return function ( e , g ) { return f ( g ) && - 1 === g . indexOf ( c . h ) && ( this . W = { method : e , url : g , status _code : null } ) , b . apply ( this , arguments ) } } , h ) ; F ( l , "send" , function ( f ) { return function ( g ) { function h ( ) { if ( l . W && ( 1 === l . readyState || 4 === l . readyState ) ) { try { l . W . status _code = l . status } catch ( Ga ) { } c . captureBreadcrumb ( { type : "http" ,
category : "xhr" , data : l . W } ) } } for ( var l = this , m = [ "onload" , "onerror" , "onprogress" ] , n = 0 ; n < m . length ; n ++ ) b ( m [ n ] , l ) ; return "onreadystatechange" in l && e ( l . onreadystatechange ) ? F ( l , "onreadystatechange" , function ( b ) { return c . wrap ( b , void 0 , h ) } ) : l . onreadystatechange = h , f . apply ( this , arguments ) } } , h ) } g . xhr && "fetch" in L && F ( L , "fetch" , function ( b ) { return function ( e , f ) { for ( var g = Array ( arguments . length ) , h = 0 ; h < g . length ; ++ h ) g [ h ] = arguments [ h ] ; h = "GET" ; g [ 1 ] && g [ 1 ] . method && ( h = g [ 1 ] . method ) ; var l = { method : h , url : g [ 0 ] , status _code : null } ;
return c . captureBreadcrumb ( { type : "http" , category : "fetch" , data : l } ) , b . apply ( this , g ) . then ( function ( b ) { return l . status _code = b . status , b } ) } } , h ) ; g . dom && this . b && ( T . addEventListener ? ( T . addEventListener ( "click" , c . S ( "click" ) , ! 1 ) , T . addEventListener ( "keypress" , c . U ( ) , ! 1 ) ) : ( T . attachEvent ( "onclick" , c . S ( "click" ) ) , T . attachEvent ( "onkeypress" , c . U ( ) ) ) ) ; l = L . chrome ; l = ! ( l && l . app && l . app . runtime ) && L . history && history . pushState ; if ( g . location && l ) { var n = L . onpopstate ; L . onpopstate = function ( ) { if ( c . V ( c . w , c . v . href ) , n ) return n . apply ( this ,
arguments ) } ; F ( history , "pushState" , function ( b ) { return function ( ) { var e = 2 < arguments . length ? arguments [ 2 ] : void 0 ; return e && c . V ( c . w , e + "" ) , b . apply ( this , arguments ) } } , h ) } if ( g . console && "console" in L && console . log ) { var p = function ( b , e ) { c . captureBreadcrumb ( { message : b , level : e . level , category : "console" } ) } ; m ( [ "debug" , "info" , "warn" , "error" , "log" ] , function ( b , c ) { O ( console , c , p ) } ) } } , M : function ( ) { for ( var b ; this . s . length ; ) b = this . s . shift ( ) , b [ 0 ] [ b [ 1 ] ] = b [ 2 ] } , C : function ( ) { var b = this ; m ( this . q , function ( c , e ) { e [ 0 ] . apply ( b , [ b ] . concat ( e [ 1 ] ) ) } ) } ,
D : function ( b ) { var c = X . exec ( b ) , e = { } , f = 7 ; try { for ( ; f -- ; ) e [ V [ f ] ] = c [ f ] || "" } catch ( S ) { throw new I ( "Invalid DSN: " + b ) ; } if ( e . pass && ! this . k . allowSecretKey ) throw new I ( "Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key" ) ; return e } , G : function ( b ) { var c = "//" + b . host + ( b . port ? ":" + b . port : "" ) ; return b . protocol && ( c = b . protocol + ":" + c ) , c } , z : function ( ) { this . l || this . N . apply ( this , arguments ) } , N : function ( b , c ) { var e = this . O ( b , c ) ; this . R ( "handle" , { stackInfo : b , options : c } ) ; this . X ( b . name , b . message , b . url ,
b . lineno , e , c ) } , O : function ( b , c ) { var e = this , f = [ ] ; if ( b . stack && b . stack . length && ( m ( b . stack , function ( b , c ) { var g = e . Y ( c ) ; g && f . push ( g ) } ) , c && c . trimHeadFrames ) ) for ( var g = 0 ; g < c . trimHeadFrames && g < f . length ; g ++ ) f [ g ] . in _app = ! 1 ; return f = f . slice ( 0 , this . k . stackTraceLimit ) } , Y : function ( b ) { if ( b . url ) return b = { filename : b . url , lineno : b . line , colno : b . column , "function" : b . func || "?" } , b . in _app = ! ( this . k . includePaths . test && ! this . k . includePaths . test ( b . filename ) || /(Raven|TraceKit)\./ . test ( b [ "function" ] ) || /raven\.(min\.)?js$/ . test ( b . filename ) ) ,
b } , X : function ( b , c , e , f , g , h ) { var l ; this . k . ignoreErrors . test && this . k . ignoreErrors . test ( c ) || ( c += "" , g && g . length ? ( e = g [ 0 ] . filename || e , g . reverse ( ) , l = { frames : g } ) : e && ( l = { frames : [ { filename : e , lineno : f , in _app : ! 0 } ] } ) , this . k . ignoreUrls . test && this . k . ignoreUrls . test ( e ) || this . k . whitelistUrls . test && ! this . k . whitelistUrls . test ( e ) ) || ( b = n ( { exception : { values : [ { type : b , value : c , stacktrace : l } ] } , culprit : e } , h ) , this . P ( b ) ) } , Z : function ( b ) { var c = this . k . maxMessageLength ; if ( b . message && ( b . message = t ( b . message , c ) ) , b . exception ) { var e = b . exception . values [ 0 ] ;
e . value = t ( e . value , c ) } return b } , $ : function ( ) { if ( this . c || this . b ) { var b = { } ; return this . c && W . userAgent && ( b . headers = { "User-Agent" : navigator . userAgent } ) , this . b && ( T . location && T . location . href && ( b . url = T . location . href ) , T . referrer && ( b . headers || ( b . headers = { } ) , b . headers . Referer = T . referrer ) ) , b } } , x : function ( ) { this . _ = 0 ; this . aa = null } , ba : function ( ) { return this . _ && + new Date - this . aa < this . _ } , ca : function ( b ) { var c = this . e , e ; if ( e = ! ( ! c || b . message !== c . message || b . culprit !== c . culprit ) ) b . stacktrace || c . stacktrace ? c = E ( b . stacktrace ,
c . stacktrace ) : ( ( e = ! b . exception && ! c . exception ) || ( b = b . exception , c = c . exception , e = ! ( ! ! b ^ ! ! c ) && ( b = b . values [ 0 ] , c = c . values [ 0 ] , b . type === c . type && b . value === c . value && E ( b . stacktrace , c . stacktrace ) ) ) , c = e ) , e = c ; return e } , da : function ( b ) { if ( ! this . ba ( ) ) { var c = b . status ; if ( 400 === c || 401 === c || 429 === c ) { var e ; try { e = b . getResponseHeader ( "Retry-After" ) , e = 1E3 * parseInt ( e , 10 ) } catch ( U ) { } this . _ = e ? e : 2 * this . _ || 1E3 ; this . aa = + new Date } } } , P : function ( b ) { var c = this . k , f = { project : this . i , logger : c . logger , platform : "javascript" } , g = this . $ ( ) ; if ( g &&
( f . request = g ) , b . trimHeadFrames && delete b . trimHeadFrames , b = n ( f , b ) , b . tags = n ( n ( { } , this . j . tags ) , b . tags ) , b . extra = n ( n ( { } , this . j . extra ) , b . extra ) , b . extra [ "session:duration" ] = + new Date - this . r , this . t && 0 < this . t . length && ( b . breadcrumbs = { values : [ ] . slice . call ( this . t , 0 ) } ) , q ( b . tags ) && delete b . tags , this . j . user && ( b . user = this . j . user ) , c . environment && ( b . environment = c . environment ) , c . release && ( b . release = c . release ) , c . serverName && ( b . server _name = c . serverName ) , e ( c . dataCallback ) && ( b = c . dataCallback ( b ) || b ) , b && ! q ( b ) && ( ! e ( c . shouldSendCallback ) ||
c . shouldSendCallback ( b ) ) ) return this . ba ( ) ? void this . y ( "warn" , "Raven dropped error due to backoff: " , b ) : void ( "number" == typeof c . sampleRate ? Math . random ( ) < c . sampleRate && this . ea ( b ) : this . ea ( b ) ) } , fa : function ( ) { return C ( ) } , ea : function ( b , c ) { var e = this , f = this . k ; if ( this . isSetup ( ) ) { if ( this . f = b . event _id || ( b . event _id = this . fa ( ) ) , b = this . Z ( b ) , ! this . k . allowDuplicates && this . ca ( b ) ) return void this . y ( "warn" , "Raven dropped repeat event: " , b ) ; this . e = b ; this . y ( "debug" , "Raven about to send:" , b ) ; var g = { sentry _version : "7" ,
sentry _client : "raven-js/" + this . VERSION , sentry _key : this . h } ; this . F && ( g . sentry _secret = this . F ) ; var h = b . exception && b . exception . values [ 0 ] ; this . captureBreadcrumb ( { category : "sentry" , message : h ? ( h . type ? h . type + ": " : "" ) + h . value : b . message , event _id : b . event _id , level : b . level || "error" } ) ; var l = this . H ; ( f . transport || this . ga ) . call ( this , { url : l , auth : g , data : b , options : f , onSuccess : function ( ) { e . x ( ) ; e . R ( "success" , { data : b , src : l } ) ; c && c ( ) } , onError : function ( f ) { e . y ( "error" , "Raven transport failed to send: " , f ) ; f . request && e . da ( f . request ) ;
e . R ( "failure" , { data : b , src : l } ) ; f = f || Error ( "Raven send failed (no additional details provided)" ) ; c && c ( f ) } } ) } } , ga : function ( b ) { var c = new XMLHttpRequest ; if ( "withCredentials" in c || "undefined" != typeof XDomainRequest ) { var e = b . url ; "withCredentials" in c ? c . onreadystatechange = function ( ) { if ( 4 === c . readyState ) if ( 200 === c . status ) b . onSuccess && b . onSuccess ( ) ; else if ( b . onError ) { var e = Error ( "Sentry error code: " + c . status ) ; e . request = c ; b . onError ( e ) } } : ( c = new XDomainRequest , e = e . replace ( /^https?:/ , "" ) , b . onSuccess && ( c . onload =
b . onSuccess ) , b . onError && ( c . onerror = function ( ) { var e = Error ( "Sentry error code: XDomainRequest" ) ; e . request = c ; b . onError ( e ) } ) ) ; c . open ( "POST" , e + "?" + r ( b . auth ) ) ; c . send ( v ( b . data ) ) } } , y : function ( b ) { this . p [ b ] && this . debug && Function . prototype . apply . call ( this . p [ b ] , this . o , [ ] . slice . call ( arguments , 1 ) ) } , Q : function ( b , c ) { void 0 === c ? delete this . j [ b ] : this . j [ b ] = n ( this . j [ b ] || { } , c ) } } ; var ca = Object . prototype ; b . prototype . setUser = b . prototype . setUserContext ; b . prototype . setReleaseContext = b . prototype . setRelease ; h . exports = b } ) . call ( this ,
"undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { 1 : 1 , 2 : 2 , 5 : 5 , 6 : 6 , 7 : 7 } ] , 4 : [ function ( l , h , e ) { ( function ( c ) { var b = l ( 3 ) , e = "undefined" != typeof window ? window : "undefined" != typeof c ? c : "undefined" != typeof self ? self : { } , f = e . Raven , q = new b ; q . noConflict = function ( ) { return e . Raven = f , q } ; q . afterLoad ( ) ; h . exports = q } ) . call ( this , "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { 3 : 3 } ] , 5 : [ function ( l , h , e ) { function c ( b ) { return "object" ==
typeof b && null !== b } h . exports = { isObject : c , isError : function ( b ) { var e = { } . toString . call ( b ) ; return c ( b ) && "[object Error]" === e || "[object Exception]" === e || b instanceof Error } } } , { } ] , 6 : [ function ( l , h , e ) { ( function ( c ) { function b ( ) { return "undefined" == typeof document || "undefined" == typeof document . location ? "" : document . location . href } var e = l ( 5 ) , f = { collectWindowErrors : ! 0 , debug : ! 1 } , q = "undefined" != typeof window ? window : "undefined" != typeof c ? c : "undefined" != typeof self ? self : { } , m = [ ] . slice , n = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/ ;
f . report = function ( ) { function c ( b , c ) { var e = null ; if ( ! c || f . collectWindowErrors ) { for ( var g in E ) if ( E . hasOwnProperty ( g ) ) try { E [ g ] . apply ( null , [ b ] . concat ( m . call ( arguments , 2 ) ) ) } catch ( O ) { e = O } if ( e ) throw e ; } } function g ( g , l , m , p , r ) { var t ; if ( v ) f . computeStackTrace . augmentStackTraceWithInitialElement ( v , l , m , g ) , h ( ) ; else { if ( r && e . isError ( r ) ) t = f . computeStackTrace ( r ) ; else { var q = { url : l , line : m , column : p } , x = void 0 , A = g ; "[object String]" === { } . toString . call ( g ) && ( t = g . match ( n ) ) && ( x = t [ 1 ] , A = t [ 2 ] ) ; q . func = "?" ; t = { name : x , message : A , url : b ( ) ,
stack : [ q ] } } c ( t , ! 0 ) } return ! ! C && C . apply ( this , arguments ) } function h ( ) { var b = v , e = F ; p = v = F = null ; c . apply ( null , [ b , ! 1 ] . concat ( e ) ) } function l ( b , c ) { var e = m . call ( arguments , 1 ) ; if ( v ) { if ( p === b ) return ; h ( ) } var g = f . computeStackTrace ( b ) ; if ( v = g , p = b , F = e , setTimeout ( function ( ) { p === b && h ( ) } , g . incomplete ? 2E3 : 0 ) , ! 1 !== c ) throw b ; } var C , A , E = [ ] , F = null , p = null , v = null ; return l . subscribe = function ( b ) { A || ( C = q . onerror , q . onerror = g , A = ! 0 ) ; E . push ( b ) } , l . unsubscribe = function ( b ) { for ( var c = E . length - 1 ; 0 <= c ; -- c ) E [ c ] === b && E . splice ( c , 1 ) } , l . uninstall =
function ( ) { A && ( q . onerror = C , A = ! 1 , C = void 0 ) ; E = [ ] } , l } ( ) ; f . computeStackTrace = function ( ) { function c ( c ) { if ( "undefined" != typeof c . stack && c . stack ) { for ( var e , f = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|<anonymous>).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i , g = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|resource|\[native).*?)(?::(\d+))?(?::(\d+))?\s*$/i , h = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i , l = c . stack . split ( "\n" ) ,
m = [ ] , n = ( /^(.*) is undefined$/ . exec ( c . message ) , 0 ) , r = l . length ; n < r ; ++ n ) { if ( e = f . exec ( l [ n ] ) ) { var t = e [ 2 ] && - 1 !== e [ 2 ] . indexOf ( "native" ) ; e = { url : t ? null : e [ 2 ] , func : e [ 1 ] || "?" , args : t ? [ e [ 2 ] ] : [ ] , line : e [ 3 ] ? + e [ 3 ] : null , column : e [ 4 ] ? + e [ 4 ] : null } } else if ( e = h . exec ( l [ n ] ) ) e = { url : e [ 2 ] , func : e [ 1 ] || "?" , args : [ ] , line : + e [ 3 ] , column : e [ 4 ] ? + e [ 4 ] : null } ; else { if ( ! ( e = g . exec ( l [ n ] ) ) ) continue ; e = { url : e [ 3 ] , func : e [ 1 ] || "?" , args : e [ 2 ] ? e [ 2 ] . split ( "," ) : [ ] , line : e [ 4 ] ? + e [ 4 ] : null , column : e [ 5 ] ? + e [ 5 ] : null } } ! e . func && e . line && ( e . func = "?" ) ; m . push ( e ) } return m . length ?
( m [ 0 ] . column || "undefined" == typeof c . columnNumber || ( m [ 0 ] . column = c . columnNumber + 1 ) , { name : c . name , message : c . message , url : b ( ) , stack : m } ) : null } } function e ( b , c , e , f ) { c = { url : c , line : e } ; if ( c . url && c . line ) { if ( b . incomplete = ! 1 , c . func || ( c . func = "?" ) , 0 < b . stack . length && b . stack [ 0 ] . url === c . url ) { if ( b . stack [ 0 ] . line === c . line ) return ! 1 ; if ( ! b . stack [ 0 ] . line && b . stack [ 0 ] . func === c . func ) return b . stack [ 0 ] . line = c . line , ! 1 } return b . stack . unshift ( c ) , b . partial = ! 0 , ! 0 } return b . incomplete = ! 0 , ! 1 } function g ( c , l ) { for ( var m , n , p = /function\s+([_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*)?\s*\(/i ,
t = [ ] , r = { } , q = ! 1 , x = g . caller ; x && ! q ; x = x . caller ) if ( x !== h && x !== f . report ) { if ( n = { url : null , func : "?" , line : null , column : null } , x . name ? n . func = x . name : ( m = p . exec ( x . toString ( ) ) ) && ( n . func = m [ 1 ] ) , "undefined" == typeof n . func ) try { n . func = m . input . substring ( 0 , m . input . indexOf ( "{" ) ) } catch ( K ) { } r [ "" + x ] ? q = ! 0 : r [ "" + x ] = ! 0 ; t . push ( n ) } l && t . splice ( 0 , l ) ; m = { name : c . name , message : c . message , url : b ( ) , stack : t } ; return e ( m , c . sourceURL || c . fileName , c . line || c . lineNumber , c . message || c . description ) , m } function h ( e , h ) { var l = null ; h = null == h ? 0 : + h ; try { if ( l =
c ( e ) ) return l } catch ( F ) { if ( f . debug ) throw F ; } try { if ( l = g ( e , h + 1 ) ) return l } catch ( F ) { if ( f . debug ) throw F ; } return { name : e . name , message : e . message , url : b ( ) } } return h . augmentStackTraceWithInitialElement = e , h . computeStackTraceFromStackProp = c , h } ( ) ; h . exports = f } ) . call ( this , "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { 5 : 5 } ] , 7 : [ function ( l , h , e ) { function c ( b , c ) { for ( var e = 0 ; e < b . length ; ++ e ) if ( b [ e ] === c ) return e ; return - 1 } function b ( b , e ) { var f = [ ] , g = [ ] ; return null ==
e && ( e = function ( b , e ) { return f [ 0 ] === e ? "[Circular ~]" : "[Circular ~." + g . slice ( 0 , c ( f , e ) ) . join ( "." ) + "]" } ) , function ( h , l ) { if ( 0 < f . length ) { var m = c ( f , this ) ; ~ m ? f . splice ( m + 1 ) : f . push ( this ) ; ~ m ? g . splice ( m , 1 / 0 , h ) : g . push ( h ) ; ~ c ( f , l ) && ( l = e . call ( this , h , l ) ) } else f . push ( l ) ; return null == b ? l : b . call ( this , h , l ) } } e = h . exports = function ( c , e , h , l ) { return JSON . stringify ( c , b ( e , l ) , h ) } ; e . getSerialize = b } , { } ] } , { } , [ 4 ] ) ( 4 ) } ) ;
( function ( ) { function a ( a , b ) { if ( a !== b ) { var c = null === a , e = a === v , f = a === a , g = null === b , h = b === v , l = b === b ; if ( a > b && ! g || ! f || c && ! h && l || e && l ) return 1 ; if ( a < b && ! c || ! l || g && ! e && f || h && f ) return - 1 } return 0 } function l ( a , b , c ) { for ( var e = a . length , f = c ? e : - 1 ; c ? f -- : ++ f < e ; ) if ( b ( a [ f ] , f , a ) ) return f ; return - 1 } function h ( a , b , c ) { if ( b !== b ) return x ( a , c ) ; -- c ; for ( var e = a . length ; ++ c < e ; ) if ( a [ c ] === b ) return c ; return - 1 } function e ( a ) { return "function" == typeof a || ! 1 } function c ( a ) { return null == a ? "" : a + "" } function b ( a , b ) { for ( var c = - 1 , e = a . length ; ++ c <
e && - 1 < b . indexOf ( a . charAt ( c ) ) ; ) ; return c } function g ( a , b ) { for ( var c = a . length ; c -- && - 1 < b . indexOf ( a . charAt ( c ) ) ; ) ; return c } function f ( b , c ) { return a ( b . a , c . a ) || b . b - c . b } function q ( a ) { return kb [ a ] } function m ( a ) { return Jb [ a ] } function n ( a , b , c ) { return b ? a = Gd [ a ] : c && ( a = Bb [ a ] ) , "\\" + a } function t ( a ) { return "\\" + Bb [ a ] } function x ( a , b , c ) { var e = a . length ; for ( b += c ? 0 : - 1 ; c ? b -- : ++ b < e ; ) { var f = a [ b ] ; if ( f !== f ) return b } return - 1 } function r ( a ) { return ! ! a && "object" == typeof a } function y ( a ) { return 160 >= a && 9 <= a && 13 >= a || 32 == a || 160 == a || 5760 ==
a || 6158 == a || 8192 <= a && ( 8202 >= a || 8232 == a || 8233 == a || 8239 == a || 8287 == a || 12288 == a || 65279 == a ) } function C ( a , b ) { for ( var c = - 1 , e = a . length , f = - 1 , g = [ ] ; ++ c < e ; ) a [ c ] === b && ( a [ c ] = ka , g [ ++ f ] = c ) ; return g } function A ( a ) { for ( var b = - 1 , c = a . length ; ++ b < c && y ( a . charCodeAt ( b ) ) ; ) ; return b } function E ( a ) { for ( var b = a . length ; b -- && y ( a . charCodeAt ( b ) ) ; ) ; return b } function F ( a ) { return Pd [ a ] } function p ( y ) { function D ( a ) { if ( r ( a ) && ! ( ia ( a ) || a instanceof oa ) ) { if ( a instanceof sb ) return a ; if ( Ja . call ( a , "__chain__" ) && Ja . call ( a , "__wrapped__" ) ) return vc ( a ) } return new sb ( a ) }
function Ua ( ) { } function sb ( a , b , c ) { this . _ _wrapped _ _ = a ; this . _ _actions _ _ = c || [ ] ; this . _ _chain _ _ = ! ! b } function oa ( a ) { this . _ _wrapped _ _ = a ; this . _ _actions _ _ = [ ] ; this . _ _dir _ _ = 1 ; this . _ _filtered _ _ = ! 1 ; this . _ _iteratees _ _ = [ ] ; this . _ _takeCount _ _ = Wc ; this . _ _views _ _ = [ ] } function ab ( ) { this . _ _data _ _ = { } } function kb ( a ) { var b = a ? a . length : 0 ; for ( this . data = { hash : bd ( null ) , set : new sc } ; b -- ; ) this . push ( a [ b ] ) } function mb ( a , b ) { var c = a . data ; return ( "string" == typeof b || za ( b ) ? c . set . has ( b ) : c . hash [ b ] ) ? 0 : - 1 } function Ya ( a , b ) { var c = - 1 , d = a . length ;
for ( b || ( b = Da ( d ) ) ; ++ c < d ; ) b [ c ] = a [ c ] ; return b } function ib ( a , b ) { for ( var c = - 1 , d = a . length ; ++ c < d && ! 1 !== b ( a [ c ] , c , a ) ; ) ; return a } function Jb ( a , b ) { for ( var c = - 1 , d = a . length ; ++ c < d ; ) if ( ! b ( a [ c ] , c , a ) ) return ! 1 ; return ! 0 } function Bb ( a , b ) { for ( var c = - 1 , d = a . length , e = - 1 , f = [ ] ; ++ c < d ; ) { var w = a [ c ] ; b ( w , c , a ) && ( f [ ++ e ] = w ) } return f } function ic ( a , b ) { for ( var c = - 1 , d = a . length , e = Da ( d ) ; ++ c < d ; ) e [ c ] = b ( a [ c ] , c , a ) ; return e } function tb ( a , b ) { for ( var c = - 1 , d = b . length , e = a . length ; ++ c < d ; ) a [ e + c ] = b [ c ] ; return a } function Ac ( a , b , c , d ) { var e = - 1 , f = a . length ;
for ( d && f && ( c = a [ ++ e ] ) ; ++ e < f ; ) c = b ( c , a [ e ] , e , a ) ; return c } function Oe ( a , b ) { for ( var c = - 1 , d = a . length ; ++ c < d ; ) if ( b ( a [ c ] , c , a ) ) return ! 0 ; return ! 1 } function kf ( a , b , c , d ) { return a !== v && Ja . call ( d , c ) ? a : b } function Jd ( a , b , c ) { for ( var d = - 1 , e = pa ( b ) , f = e . length ; ++ d < f ; ) { var g = e [ d ] , w = a [ g ] , h = c ( w , b [ g ] , g , a , b ) ; ( h === h ? h === w : w !== w ) && ( w !== v || g in a ) || ( a [ g ] = h ) } return a } function Cc ( a , b ) { return null == b ? a : Yd ( b , pa ( b ) , a ) } function pd ( a , b ) { for ( var c = - 1 , d = null == a , e = ! d && xa ( a ) , f = e ? a . length : 0 , g = b . length , w = Da ( g ) ; ++ c < g ; ) { var h = b [ c ] ; w [ c ] = e ? Eb ( h ,
f ) ? a [ h ] : v : d ? v : a [ h ] } return w } function Yd ( a , b , c ) { c || ( c = { } ) ; for ( var d = - 1 , e = b . length ; ++ d < e ; ) { var f = b [ d ] ; c [ f ] = a [ f ] } return c } function Lc ( a , b , c ) { var d = typeof a ; return "function" == d ? b === v ? a : gb ( a , b , c ) : null == a ? dc : "object" == d ? qc ( a ) : b === v ? od ( a ) : Na ( a , b ) } function Wa ( a , b , c , d , e , f , g ) { var w ; if ( c && ( w = e ? c ( a , d , e ) : c ( a ) ) , w !== v ) return w ; if ( ! za ( a ) ) return a ; if ( d = ia ( a ) ) { if ( w = Df ( a ) , ! b ) return Ya ( a , w ) } else { var h = $a . call ( a ) , k = h == Ga ; if ( h != qa && h != ga && ( ! k || e ) ) return Ba [ h ] ? hc ( a , h , b ) : e ? a : { } ; if ( w = Ff ( k ? { } : a ) , ! b ) return Cc ( w , a ) } f || ( f = [ ] ) ;
g || ( g = [ ] ) ; for ( e = f . length ; e -- ; ) if ( f [ e ] == a ) return g [ e ] ; return f . push ( a ) , g . push ( w ) , ( d ? ib : Gb ) ( a , function ( d , e ) { w [ e ] = Wa ( d , b , c , e , a , f , g ) } ) , w } function Vb ( a , b , c ) { if ( "function" != typeof a ) throw new nb ( Q ) ; return wd ( function ( ) { a . apply ( v , c ) } , b ) } function Lb ( a , b ) { var c = a ? a . length : 0 , d = [ ] ; if ( ! c ) return d ; var e = - 1 , f = jc ( ) , g = f === h , w = g && b . length >= U && bd && sc ? new kb ( b ) : null , k = b . length ; w && ( f = mb , g = ! 1 , b = w ) ; a : for ( ; ++ e < c ; ) if ( w = a [ e ] , g && w === w ) { for ( var l = k ; l -- ; ) if ( b [ l ] === w ) continue a ; d . push ( w ) } else 0 > f ( b , w , 0 ) && d . push ( w ) ; return d } function Zd ( a ,
b ) { var c = ! 0 ; return vb ( a , function ( a , d , e ) { return c = ! ! b ( a , d , e ) } ) , c } function $d ( a , b , c , d ) { var e = d , f = e ; return vb ( a , function ( a , g , w ) { g = + b ( a , g , w ) ; ( c ( g , e ) || g === d && g === f ) && ( e = g , f = a ) } ) , f } function ae ( a , b ) { var c = [ ] ; return vb ( a , function ( a , d , e ) { b ( a , d , e ) && c . push ( a ) } ) , c } function Mc ( a , b , c , d ) { var e ; return c ( a , function ( a , c , f ) { return b ( a , c , f ) ? ( e = d ? c : a , ! 1 ) : void 0 } ) , e } function Za ( a , b , c , d ) { d || ( d = [ ] ) ; for ( var e = - 1 , f = a . length ; ++ e < f ; ) { var g = a [ e ] ; r ( g ) && xa ( g ) && ( c || ia ( g ) || Ma ( g ) ) ? b ? Za ( g , b , c , d ) : tb ( d , g ) : c || ( d [ d . length ] = g ) } return d }
function Pe ( a , b ) { Dd ( a , b , Rb ) } function Gb ( a , b ) { return Dd ( a , b , pa ) } function Xb ( a , b ) { return De ( a , b , pa ) } function qd ( a , b ) { for ( var c = - 1 , d = b . length , e = - 1 , f = [ ] ; ++ c < d ; ) { var g = b [ c ] ; Ab ( a [ g ] ) && ( f [ ++ e ] = g ) } return f } function bb ( a , b , c ) { if ( null != a ) { c !== v && c in Pa ( a ) && ( b = [ c ] ) ; c = 0 ; for ( var d = b . length ; null != a && c < d ; ) a = a [ b [ c ++ ] ] ; return c && c == d ? a : v } } function Nc ( a , b , c , d , e , f ) { if ( a === b ) a = ! 0 ; else if ( null == a || null == b || ! za ( a ) && ! r ( b ) ) a = a !== a && b !== b ; else a : { var g = Nc , w = ia ( a ) , h = ia ( b ) , k = Z , l = Z ; w || ( k = $a . call ( a ) , k == ga ? k = qa : k != qa && ( w = gc ( a ) ) ) ;
h || ( l = $a . call ( b ) , l == ga ? l = qa : l != qa && gc ( b ) ) ; var z = k == qa , h = l == qa , l = k == l ; if ( ! l || w || z ) if ( ! d && ( k = z && Ja . call ( a , "__wrapped__" ) , h = h && Ja . call ( b , "__wrapped__" ) , k || h ) ) a = g ( k ? a . value ( ) : a , h ? b . value ( ) : b , c , d , e , f ) ; else if ( l ) { e || ( e = [ ] ) ; f || ( f = [ ] ) ; for ( k = e . length ; k -- ; ) if ( e [ k ] == a ) { a = f [ k ] == b ; break a } e . push ( a ) ; f . push ( b ) ; a = ( w ? Cf : Sc ) ( a , b , g , c , d , e , f ) ; e . pop ( ) ; f . pop ( ) } else a = ! 1 ; else a = ne ( a , b , k ) } return a } function Oc ( a , b , c ) { var d = b . length , e = d , f = ! c ; if ( null == a ) return ! e ; for ( a = Pa ( a ) ; d -- ; ) { var g = b [ d ] ; if ( f && g [ 2 ] ? g [ 1 ] !== a [ g [ 0 ] ] : ! ( g [ 0 ] in
a ) ) return ! 1 } for ( ; ++ d < e ; ) { var g = b [ d ] , h = g [ 0 ] , w = a [ h ] , k = g [ 1 ] ; if ( f && g [ 2 ] ) { if ( w === v && ! ( h in a ) ) return ! 1 } else if ( g = c ? c ( w , k , h ) : v , g === v ? ! Nc ( k , w , c , ! 0 ) : ! g ) return ! 1 } return ! 0 } function ce ( a , b ) { var c = - 1 , d = xa ( a ) ? Da ( a . length ) : [ ] ; return vb ( a , function ( a , e , f ) { d [ ++ c ] = b ( a , e , f ) } ) , d } function qc ( a ) { var b = oe ( a ) ; if ( 1 == b . length && b [ 0 ] [ 2 ] ) { var c = b [ 0 ] [ 0 ] , d = b [ 0 ] [ 1 ] ; return function ( a ) { return null != a && a [ c ] === d && ( d !== v || c in Pa ( a ) ) } } return function ( a ) { return Oc ( a , b ) } } function Na ( a , b ) { var c = ia ( a ) , d = ma ( a ) && b === b && ! za ( b ) , e = a + "" ; return a =
Ha ( a ) , function ( f ) { if ( null == f ) return ! 1 ; var g = e ; if ( f = Pa ( f ) , ! ( ! c && d || g in f ) ) { if ( f = 1 == a . length ? f : bb ( f , cb ( a , 0 , - 1 ) ) , null == f ) return ! 1 ; g = rc ( a ) ; f = Pa ( f ) } return f [ g ] === b ? b !== v || g in f : Nc ( b , f [ g ] , v , ! 0 ) } } function de ( a , b , c , d , e ) { if ( ! za ( a ) ) return a ; var f = xa ( b ) && ( ia ( b ) || gc ( b ) ) , g = f ? v : pa ( b ) ; return ib ( g || b , function ( h , w ) { if ( g && ( w = h , h = b [ w ] ) , r ( h ) ) { d || ( d = [ ] ) ; e || ( e = [ ] ) ; a : { for ( var k = w , l = d , z = e , m = l . length , N = b [ k ] ; m -- ; ) if ( l [ m ] == N ) { a [ k ] = z [ m ] ; break a } var m = a [ k ] , n = c ? c ( m , N , k , a , b ) : v , p = n === v ; p && ( n = N , xa ( N ) && ( ia ( N ) || gc ( N ) ) ? n = ia ( m ) ? m :
xa ( m ) ? Ya ( m ) : [ ] : Ic ( N ) || Ma ( N ) ? n = Ma ( m ) ? Me ( m ) : Ic ( m ) ? m : { } : p = ! 1 ) ; l . push ( N ) ; z . push ( n ) ; p ? a [ k ] = de ( n , N , c , l , z ) : ( n === n ? n !== m : m === m ) && ( a [ k ] = n ) } } else k = a [ w ] , l = c ? c ( k , h , w , a , b ) : v , ( z = l === v ) && ( l = h ) , l === v && ( ! f || w in a ) || ! z && ( l === l ? l === k : k !== k ) || ( a [ w ] = l ) } ) , a } function rd ( a ) { return function ( b ) { return null == b ? v : b [ a ] } } function nf ( a ) { var b = a + "" ; return a = Ha ( a ) , function ( c ) { return bb ( c , a , b ) } } function ee ( a , b ) { for ( var c = a ? b . length : 0 ; c -- ; ) { var d = b [ c ] ; if ( d != e && Eb ( d ) ) { var e = d ; Bf . call ( a , d , 1 ) } } } function sd ( a , b ) { return a + yb ( Kf ( ) * ( b -
a + 1 ) ) } function of ( a , b , c , d , e ) { return e ( a , function ( a , e , f ) { c = d ? ( d = ! 1 , a ) : b ( c , a , e , f ) } ) , c } function cb ( a , b , c ) { var d = - 1 , e = a . length ; b = null == b ? 0 : + b || 0 ; 0 > b && ( b = - b > e ? 0 : e + b ) ; c = c === v || c > e ? e : + c || 0 ; 0 > c && ( c += e ) ; e = b > c ? 0 : c - b >>> 0 ; b >>>= 0 ; for ( c = Da ( e ) ; ++ d < e ; ) c [ d ] = a [ d + b ] ; return c } function Gd ( a , b ) { var c ; return vb ( a , function ( a , d , e ) { return c = b ( a , d , e ) , ! c } ) , ! ! c } function Qe ( a , b ) { var c = a . length ; for ( a . sort ( b ) ; c -- ; ) a [ c ] = a [ c ] . c ; return a } function Re ( b , c , d ) { var e = ua ( ) , f = - 1 ; return c = ic ( c , function ( a ) { return e ( a ) } ) , b = ce ( b , function ( a ) { return { a : ic ( c ,
function ( b ) { return b ( a ) } ) , b : ++ f , c : a } } ) , Qe ( b , function ( b , c ) { var e ; a : { for ( var f = - 1 , g = b . a , h = c . a , w = g . length , k = d . length ; ++ f < w ; ) if ( e = a ( g [ f ] , h [ f ] ) ) { if ( f >= k ) break a ; f = d [ f ] ; e *= "asc" === f || ! 0 === f ? 1 : - 1 ; break a } e = b . b - c . b } return e } ) } function pf ( a , b ) { var c = 0 ; return vb ( a , function ( a , d , e ) { c += + b ( a , d , e ) || 0 } ) , c } function Ld ( a , b ) { var c = - 1 , d = jc ( ) , e = a . length , f = d === h , g = f && e >= U , w = g && bd && sc ? new kb ( void 0 ) : null , k = [ ] ; w ? ( d = mb , f = ! 1 ) : ( g = ! 1 , w = b ? [ ] : k ) ; a : for ( ; ++ c < e ; ) { var l = a [ c ] , z = b ? b ( l , c , a ) : l ; if ( f && l === l ) { for ( var m = w . length ; m -- ; ) if ( w [ m ] ===
z ) continue a ; b && w . push ( z ) ; k . push ( l ) } else 0 > d ( w , z , 0 ) && ( ( b || g ) && w . push ( z ) , k . push ( l ) ) } return k } function Kd ( a , b ) { for ( var c = - 1 , d = b . length , e = Da ( d ) ; ++ c < d ; ) e [ c ] = a [ b [ c ] ] ; return e } function ad ( a , b , c , d ) { for ( var e = a . length , f = d ? e : - 1 ; ( d ? f -- : ++ f < e ) && b ( a [ f ] , f , a ) ; ) ; return c ? cb ( a , d ? 0 : f , d ? f + 1 : e ) : cb ( a , d ? f + 1 : 0 , d ? e : f ) } function qf ( a , b ) { var c = a ; c instanceof oa && ( c = c . value ( ) ) ; for ( var d = - 1 , e = b . length ; ++ d < e ; ) var f = b [ d ] , c = f . func . apply ( f . thisArg , tb ( [ c ] , f . args ) ) ; return c } function td ( a , b , c ) { var d = 0 , e = a ? a . length : d ; if ( "number" == typeof b &&
b === b && e <= Mf ) { for ( ; d < e ; ) { var f = d + e >>> 1 , g = a [ f ] ; ( c ? g <= b : g < b ) && null !== g ? d = f + 1 : e = f } return e } return Se ( a , b , dc , c ) } function Se ( a , b , c , d ) { b = c ( b ) ; for ( var e = 0 , f = a ? a . length : 0 , g = b !== b , h = null === b , k = b === v ; e < f ; ) { var w = yb ( ( e + f ) / 2 ) , l = c ( a [ w ] ) , z = l !== v , m = l === l ; ( g ? m || d : h ? m && z && ( d || null != l ) : k ? m && ( d || z ) : null == l ? 0 : d ? l <= b : l < b ) ? e = w + 1 : f = w } return eb ( f , se ) } function gb ( a , b , c ) { if ( "function" != typeof a ) return dc ; if ( b === v ) return a ; switch ( c ) { case 1 : return function ( c ) { return a . call ( b , c ) } ; case 3 : return function ( c , d , e ) { return a . call ( b ,
c , d , e ) } ; case 4 : return function ( c , d , e , f ) { return a . call ( b , c , d , e , f ) } ; case 5 : return function ( c , d , e , f , g ) { return a . call ( b , c , d , e , f , g ) } } return function ( ) { return a . apply ( b , arguments ) } } function Te ( a ) { var b = new ub ( a . byteLength ) ; return ( new Af ( b ) ) . set ( new Af ( a ) ) , b } function Ue ( a , b , c ) { for ( var d = c . length , e = - 1 , f = Qa ( a . length - d , 0 ) , g = - 1 , h = b . length , k = Da ( h + f ) ; ++ g < h ; ) k [ g ] = b [ g ] ; for ( ; ++ e < d ; ) k [ c [ e ] ] = a [ e ] ; for ( ; f -- ; ) k [ g ++ ] = a [ e ++ ] ; return k } function Ve ( a , b , c ) { for ( var d = - 1 , e = c . length , f = - 1 , g = Qa ( a . length - e , 0 ) , h = - 1 , k = b . length , l = Da ( g +
k ) ; ++ f < g ; ) l [ f ] = a [ f ] ; for ( g = f ; ++ h < k ; ) l [ g + h ] = b [ h ] ; for ( ; ++ d < e ; ) l [ g + c [ d ] ] = a [ f ++ ] ; return l } function fd ( a , b ) { return function ( c , d , e ) { var f = b ? b ( ) : { } ; if ( d = ua ( d , e , 3 ) , ia ( c ) ) { e = - 1 ; for ( var g = c . length ; ++ e < g ; ) { var h = c [ e ] ; a ( f , h , d ( h , e , c ) , c ) } } else vb ( c , function ( b , c , e ) { a ( f , b , d ( b , c , e ) , e ) } ) ; return f } } function Kb ( a ) { return ta ( function ( b , c ) { var d = - 1 , e = null == b ? 0 : c . length , f = 2 < e ? c [ e - 2 ] : v , g = 2 < e ? c [ 2 ] : v , h = 1 < e ? c [ e - 1 ] : v ; "function" == typeof f ? ( f = gb ( f , h , 5 ) , e -= 2 ) : ( f = "function" == typeof h ? h : v , e -= f ? 1 : 0 ) ; for ( g && la ( c [ 0 ] , c [ 1 ] , g ) && ( f = 3 > e ?
v : f , e = 1 ) ; ++ d < e ; ) ( g = c [ d ] ) && a ( b , g , f ) ; return b } ) } function Xd ( a , b ) { return function ( c , d ) { var e = c ? yc ( c ) : 0 ; if ( ! fb ( e ) ) return a ( c , d ) ; for ( var f = b ? e : - 1 , g = Pa ( c ) ; ( b ? f -- : ++ f < e ) && ! 1 !== d ( g [ f ] , f , g ) ; ) ; return c } } function We ( a ) { return function ( b , c , d ) { var e = Pa ( b ) ; d = d ( b ) ; for ( var f = d . length , g = a ? f : - 1 ; a ? g -- : ++ g < f ; ) { var h = d [ g ] ; if ( ! 1 === c ( e [ h ] , h , e ) ) break } return b } } function sf ( a , b ) { function c ( ) { return ( this && this !== zb && this instanceof c ? d : a ) . apply ( b , arguments ) } var d = Bc ( a ) ; return c } function gd ( a ) { return function ( b ) { var c = - 1 ; b =
gf ( Le ( b ) ) ; for ( var d = b . length , e = "" ; ++ c < d ; ) e = a ( e , b [ c ] , c ) ; return e } } function Bc ( a ) { return function ( ) { var b = arguments ; switch ( b . length ) { case 0 : return new a ; case 1 : return new a ( b [ 0 ] ) ; case 2 : return new a ( b [ 0 ] , b [ 1 ] ) ; case 3 : return new a ( b [ 0 ] , b [ 1 ] , b [ 2 ] ) ; case 4 : return new a ( b [ 0 ] , b [ 1 ] , b [ 2 ] , b [ 3 ] ) ; case 5 : return new a ( b [ 0 ] , b [ 1 ] , b [ 2 ] , b [ 3 ] , b [ 4 ] ) ; case 6 : return new a ( b [ 0 ] , b [ 1 ] , b [ 2 ] , b [ 3 ] , b [ 4 ] , b [ 5 ] ) ; case 7 : return new a ( b [ 0 ] , b [ 1 ] , b [ 2 ] , b [ 3 ] , b [ 4 ] , b [ 5 ] , b [ 6 ] ) } var c = mc ( a . prototype ) , b = a . apply ( c , b ) ; return za ( b ) ? b : c } } function tf ( a ) { function b ( c ,
d , e ) { return e && la ( c , d , e ) && ( d = v ) , c = db ( c , a , v , v , v , v , v , d ) , c . placeholder = b . placeholder , c } return b } function vf ( a , b ) { return ta ( function ( c ) { var d = c [ 0 ] ; return null == d ? d : ( c . push ( b ) , a . apply ( v , c ) ) } ) } function Zb ( a , b ) { return function ( c , d , e ) { if ( e && la ( c , d , e ) && ( d = v ) , d = ua ( d , e , 3 ) , 1 == d . length ) { e = c = ia ( c ) ? c : uc ( c ) ; for ( var f = d , g = - 1 , h = e . length , k = b , l = k ; ++ g < h ; ) { var w = e [ g ] , m = + f ( w ) ; a ( m , k ) && ( k = m , l = w ) } if ( e = l , ! c . length || e !== b ) return e } return $d ( c , d , a , b ) } } function vd ( a , b ) { return function ( c , d , e ) { return d = ua ( d , e , 3 ) , ia ( c ) ? ( d = l ( c , d ,
b ) , - 1 < d ? c [ d ] : v ) : Mc ( c , d , a ) } } function fe ( a ) { return function ( b , c , d ) { return b && b . length ? ( c = ua ( c , d , 3 ) , l ( b , c , a ) ) : - 1 } } function ie ( a ) { return function ( b , c , d ) { return c = ua ( c , d , 3 ) , Mc ( b , c , a , ! 0 ) } } function wf ( a ) { return function ( ) { for ( var b , c = arguments . length , d = a ? c : - 1 , e = 0 , f = Da ( c ) ; a ? d -- : ++ d < c ; ) { var g = f [ e ++ ] = arguments [ d ] ; if ( "function" != typeof g ) throw new nb ( Q ) ; ! b && sb . prototype . thru && "wrapper" == $b ( g ) && ( b = new sb ( [ ] , ! 0 ) ) } for ( d = b ? - 1 : c ; ++ d < c ; ) { var g = f [ d ] , e = $b ( g ) , h = "wrapper" == e ? Ed ( g ) : v ; b = h && ob ( h [ 0 ] ) && h [ 1 ] == ( T | O | X | W ) && ! h [ 4 ] . length &&
1 == h [ 9 ] ? b [ $b ( h [ 0 ] ) ] . apply ( b , h [ 3 ] ) : 1 == g . length && ob ( g ) ? b [ e ] ( ) : b . thru ( g ) } return function ( ) { var a = arguments , d = a [ 0 ] ; if ( b && 1 == a . length && ia ( d ) && d . length >= U ) return b . plant ( d ) . value ( ) ; for ( var e = 0 , a = c ? f [ e ] . apply ( this , a ) : d ; ++ e < c ; ) a = f [ e ] . call ( this , a ) ; return a } } } function zf ( a , b ) { return function ( c , d , e ) { return "function" == typeof d && e === v && ia ( c ) ? a ( c , d ) : b ( c , gb ( d , e , 3 ) ) } } function ke ( a ) { return function ( b , c , d ) { return ( "function" != typeof c || d !== v ) && ( c = gb ( c , d , 3 ) ) , a ( b , c , Rb ) } } function Pc ( a ) { return function ( b , c , d ) { return ( "function" !=
typeof c || d !== v ) && ( c = gb ( c , d , 3 ) ) , a ( b , c ) } } function Ra ( a ) { return function ( b , c , d ) { var e = { } ; return c = ua ( c , d , 3 ) , Gb ( b , function ( b , d , f ) { f = c ( b , d , f ) ; d = a ? f : d ; b = a ? b : f ; e [ d ] = b } ) , e } } function Qc ( a ) { return function ( b , d , e ) { return b = c ( b ) , ( a ? b : "" ) + ge ( b , d , e ) + ( a ? "" : b ) } } function le ( a ) { var b = ta ( function ( c , d ) { var e = C ( d , b . placeholder ) ; return db ( c , a , v , d , e ) } ) ; return b } function me ( a , b ) { return function ( c , d , e , f ) { var g = 3 > arguments . length ; return "function" == typeof d && f === v && ia ( c ) ? a ( c , d , e , g ) : of ( c , ua ( d , f , 4 ) , e , g , b ) } } function Rc ( a , b , c ,
d , e , f , g , h , k , l ) { function w ( ) { for ( var q = arguments . length , u = q , ea = Da ( q ) ; u -- ; ) ea [ u ] = arguments [ u ] ; if ( d && ( ea = Ue ( ea , d , e ) ) , f && ( ea = Ve ( ea , f , g ) ) , n || r ) { var u = w . placeholder , x = C ( ea , u ) , q = q - x . length ; if ( q < l ) { var y = h ? Ya ( h ) : v , q = Qa ( l - q , 0 ) , B = n ? x : v , x = n ? v : x , A = n ? ea : v , ea = n ? v : ea ; return b |= n ? X : L , b &= ~ ( n ? L : X ) , p || ( b &= ~ ( H | J ) ) , ea = [ a , b , c , A , B , ea , x , y , k , q ] , y = Rc . apply ( v , ea ) , ob ( a ) && Ee ( y , ea ) , y . placeholder = u , y } } if ( u = z ? c : this , y = N ? u [ a ] : a , h ) for ( q = ea . length , B = eb ( h . length , q ) , x = Ya ( ea ) ; B -- ; ) A = h [ B ] , ea [ B ] = Eb ( A , q ) ? x [ A ] : v ; return m && k < ea . length && ( ea . length =
k ) , this && this !== zb && this instanceof w && ( y = t || Bc ( a ) ) , y . apply ( u , ea ) } var m = b & T , z = b & H , N = b & J , n = b & O , p = b & K , r = b & V , t = N ? v : Bc ( a ) ; return w } function ge ( a , b , c ) { return a = a . length , b = + b , a < b && lc ( b ) ? ( b -= a , c = null == c ? " " : c + "" , Va ( c , ud ( b / c . length ) ) . slice ( 0 , b ) ) : "" } function Id ( a , b , c , d ) { function e ( ) { for ( var b = - 1 , h = arguments . length , k = - 1 , l = d . length , w = Da ( l + h ) ; ++ k < l ; ) w [ k ] = d [ k ] ; for ( ; h -- ; ) w [ k ++ ] = arguments [ ++ b ] ; return ( this && this !== zb && this instanceof e ? g : a ) . apply ( f ? c : this , w ) } var f = b & H , g = Bc ( a ) ; return e } function he ( a ) { var b = kc [ a ] ;
return function ( a , c ) { return ( c = c === v ? 0 : + c || 0 ) ? ( c = yf ( 10 , c ) , b ( a * c ) / c ) : b ( a ) } } function je ( a ) { return function ( b , c , d , e ) { var f = ua ( d ) ; return null == d && f === Lc ? td ( b , c , a ) : Se ( b , c , f ( d , e , 1 ) , a ) } } function db ( a , b , c , d , e , f , g , h ) { var k = b & J ; if ( ! k && "function" != typeof a ) throw new nb ( Q ) ; var l = d ? d . length : 0 ; if ( l || ( b &= ~ ( X | L ) , d = e = v ) , l -= e ? e . length : 0 , b & L ) { var w = d , m = e ; d = e = v } var z = k ? v : Ed ( a ) ; return c = [ a , b , c , d , e , w , m , f , g , h ] , z && ( d = c [ 1 ] , b = z [ 1 ] , h = d | b , e = b == T && d == O || b == T && d == W && c [ 7 ] . length <= z [ 8 ] || b == ( T | W ) && d == O , ( h < T || e ) && ( b & H && ( c [ 2 ] = z [ 2 ] ,
h |= d & H ? 0 : K ) , ( d = z [ 3 ] ) && ( e = c [ 3 ] , c [ 3 ] = e ? Ue ( e , d , z [ 4 ] ) : Ya ( d ) , c [ 4 ] = e ? C ( c [ 3 ] , ka ) : Ya ( z [ 4 ] ) ) , ( d = z [ 5 ] ) && ( e = c [ 5 ] , c [ 5 ] = e ? Ve ( e , d , z [ 6 ] ) : Ya ( d ) , c [ 6 ] = e ? C ( c [ 5 ] , ka ) : Ya ( z [ 6 ] ) ) , ( d = z [ 7 ] ) && ( c [ 7 ] = Ya ( d ) ) , b & T && ( c [ 8 ] = null == c [ 8 ] ? z [ 8 ] : eb ( c [ 8 ] , z [ 8 ] ) ) , null == c [ 9 ] && ( c [ 9 ] = z [ 9 ] ) , c [ 0 ] = z [ 0 ] , c [ 1 ] = h ) , b = c [ 1 ] , h = c [ 9 ] ) , c [ 9 ] = null == h ? k ? 0 : a . length : Qa ( h - l , 0 ) || 0 , ( z ? Ce : Ee ) ( b == H ? sf ( c [ 0 ] , c [ 2 ] ) : b != X && b != ( H | X ) || c [ 4 ] . length ? Rc . apply ( v , c ) : Id . apply ( v , c ) , c ) } function Cf ( a , b , c , d , e , f , g ) { var h = - 1 , k = a . length , l = b . length ; if ( k != l && ( ! e || l <= k ) ) return ! 1 ; for ( ; ++ h <
k ; ) { var w = a [ h ] , l = b [ h ] , m = d ? d ( e ? l : w , e ? w : l , h ) : v ; if ( m !== v ) { if ( m ) continue ; return ! 1 } if ( e ) { if ( ! Oe ( b , function ( a ) { return w === a || c ( w , a , d , e , f , g ) } ) ) return ! 1 } else if ( w !== l && ! c ( w , l , d , e , f , g ) ) return ! 1 } return ! 0 } function ne ( a , b , c ) { switch ( c ) { case va : case sa : return + a == + b ; case ja : return a . name == b . name && a . message == b . message ; case wa : return a != + a ? b != + b : a == + b ; case ra : case Aa : return a == b + "" } return ! 1 } function Sc ( a , b , c , d , e , f , g ) { var h = pa ( a ) , k = h . length , l = pa ( b ) . length ; if ( k != l && ! e ) return ! 1 ; for ( l = k ; l -- ; ) { var w = h [ l ] ; if ( ! ( e ? w in b :
Ja . call ( b , w ) ) ) return ! 1 } for ( var m = e ; ++ l < k ; ) { var w = h [ l ] , z = a [ w ] , n = b [ w ] , N = d ? d ( e ? n : z , e ? z : n , w ) : v ; if ( N === v ? ! c ( z , n , d , e , f , g ) : ! N ) return ! 1 ; m || ( m = "constructor" == w ) } return ! ( ! m && ( c = a . constructor , d = b . constructor , c != d && "constructor" in a && "constructor" in b && ! ( "function" == typeof c && c instanceof c && "function" == typeof d && d instanceof d ) ) ) } function ua ( a , b , c ) { var d = D . callback || Jc , d = d === Jc ? Lc : d ; return c ? d ( a , b , c ) : d } function $b ( a ) { for ( var b = a . name + "" , c = Xc [ b ] , d = c ? c . length : 0 ; d -- ; ) { var e = c [ d ] , f = e . func ; if ( null == f || f == a ) return e . name } return b }
function jc ( a , b , c ) { var d = D . indexOf || ya , d = d === ya ? h : d ; return a ? d ( a , b , c ) : d } function oe ( a ) { a = Ne ( a ) ; for ( var b = a . length ; b -- ; ) { var c = a [ b ] [ 1 ] ; a [ b ] [ 2 ] = c === c && ! za ( c ) } return a } function ac ( a , b ) { var c = null == a ? v : a [ b ] ; return Vd ( c ) ? c : v } function Df ( a ) { var b = a . length , c = new a . constructor ( b ) ; return b && "string" == typeof a [ 0 ] && Ja . call ( a , "index" ) && ( c . index = a . index , c . input = a . input ) , c } function Ff ( a ) { return a = a . constructor , "function" == typeof a && a instanceof a || ( a = Cb ) , new a } function hc ( a , b , c ) { var d = a . constructor ; switch ( b ) { case qb : return Te ( a ) ;
case va : case sa : return new d ( + a ) ; case ba : case xb : case La : case jb : case Sa : case Ta : case rb : case Ob : case cc : return b = a . buffer , new d ( c ? Te ( b ) : b , a . byteOffset , a . length ) ; case wa : case Aa : return new d ( a ) ; case ra : var e = new d ( a . source , Sb . exec ( a ) ) ; e . lastIndex = a . lastIndex } return e } function Y ( a , b , c ) { return null == a || ma ( b , a ) || ( b = Ha ( b ) , a = 1 == b . length ? a : bb ( a , cb ( b , 0 , - 1 ) ) , b = rc ( b ) ) , b = null == a ? a : a [ b ] , null == b ? v : b . apply ( a , c ) } function xa ( a ) { return null != a && fb ( yc ( a ) ) } function Eb ( a , b ) { return a = "number" == typeof a || oc . test ( a ) ? + a :
- 1 , b = null == b ? te : b , - 1 < a && 0 == a % 1 && a < b } function la ( a , b , c ) { if ( ! za ( c ) ) return ! 1 ; var d = typeof b ; return ! ! ( "number" == d ? xa ( c ) && Eb ( b , c . length ) : "string" == d && b in c ) && ( b = c [ b ] , a === a ? a === b : b !== b ) } function ma ( a , b ) { var c = typeof a ; return ! ! ( "string" == c && cf . test ( a ) || "number" == c ) || ! ia ( a ) && ( ! kd . test ( a ) || null != b && a in Pa ( b ) ) } function ob ( a ) { var b = $b ( a ) , c = D [ b ] ; return "function" == typeof c && b in oa . prototype && ( a === c || ( b = Ed ( c ) , ! ! b && a === b [ 0 ] ) ) } function fb ( a ) { return "number" == typeof a && - 1 < a && 0 == a % 1 && a <= te } function wb ( a , b ) { return a ===
v ? b : cd ( a , b , wb ) } function ff ( a , b ) { a = Pa ( a ) ; for ( var c = - 1 , d = b . length , e = { } ; ++ c < d ; ) { var f = b [ c ] ; f in a && ( e [ f ] = a [ f ] ) } return e } function Gf ( a , b ) { var c = { } ; return Pe ( a , function ( a , d , e ) { b ( a , d , e ) && ( c [ d ] = a ) } ) , c } function pb ( a ) { for ( var b = Rb ( a ) , c = b . length , d = c && a . length , e = ! ! d && fb ( d ) && ( ia ( a ) || Ma ( a ) ) , f = - 1 , g = [ ] ; ++ f < c ; ) { var h = b [ f ] ; ( e && Eb ( h , d ) || Ja . call ( a , h ) ) && g . push ( h ) } return g } function uc ( a ) { return null == a ? [ ] : xa ( a ) ? za ( a ) ? a : Cb ( a ) : ed ( a ) } function Pa ( a ) { return za ( a ) ? a : Cb ( a ) } function Ha ( a ) { if ( ia ( a ) ) return a ; var b = [ ] ; return c ( a ) . replace ( ld ,
function ( a , c , d , e ) { b . push ( d ? e . replace ( Hb , "$1" ) : c || a ) } ) , b } function vc ( a ) { return a instanceof oa ? a . clone ( ) : new sb ( a . _ _wrapped _ _ , a . _ _chain _ _ , Ya ( a . _ _actions _ _ ) ) } function Yc ( a , b , c ) { return a && a . length ? ( ( c ? la ( a , b , c ) : null == b ) && ( b = 1 ) , cb ( a , 0 > b ? 0 : b ) ) : [ ] } function ha ( a , b , c ) { var d = a ? a . length : 0 ; return d ? ( ( c ? la ( a , b , c ) : null == b ) && ( b = 1 ) , b = d - ( + b || 0 ) , cb ( a , 0 , 0 > b ? 0 : b ) ) : [ ] } function xe ( a ) { return a ? a [ 0 ] : v } function ya ( a , b , c ) { var d = a ? a . length : 0 ; if ( ! d ) return - 1 ; if ( "number" == typeof c ) c = 0 > c ? Qa ( d + c , 0 ) : c ; else if ( c ) return c = td ( a , b ) ,
c < d && ( b === b ? b === a [ c ] : a [ c ] !== a [ c ] ) ? c : - 1 ; return h ( a , b , c || 0 ) } function rc ( a ) { var b = a ? a . length : 0 ; return b ? a [ b - 1 ] : v } function Qb ( a ) { return Yc ( a , 1 ) } function wc ( a , b , c , d ) { if ( ! a || ! a . length ) return [ ] ; null != b && "boolean" != typeof b && ( d = c , c = la ( a , b , d ) ? v : b , b = ! 1 ) ; var e = ua ( ) ; if ( ( null != c || e !== Lc ) && ( c = e ( c , d , 3 ) ) , b && jc ( ) === h ) { b = c ; var f ; c = - 1 ; d = a . length ; for ( var e = - 1 , g = [ ] ; ++ c < d ; ) { var k = a [ c ] , l = b ? b ( k , c , a ) : k ; c && f === l || ( f = l , g [ ++ e ] = k ) } a = g } else a = Ld ( a , c ) ; return a } function Bd ( a ) { if ( ! a || ! a . length ) return [ ] ; var b = - 1 , c = 0 ; a = Bb ( a , function ( a ) { return xa ( a ) ?
( c = Qa ( a . length , c ) , ! 0 ) : void 0 } ) ; for ( var d = Da ( c ) ; ++ b < c ; ) d [ b ] = ic ( a , rd ( b ) ) ; return d } function bc ( a , b , c ) { return a && a . length ? ( a = Bd ( a ) , null == b ? a : ( b = gb ( b , c , 4 ) , ic ( a , function ( a ) { return Ac ( a , b , v , ! 0 ) } ) ) ) : [ ] } function ye ( a , b ) { var c = - 1 , d = a ? a . length : 0 , e = { } ; for ( ! d || b || ia ( a [ 0 ] ) || ( b = [ ] ) ; ++ c < d ; ) { var f = a [ c ] ; b ? e [ f ] = b [ c ] : f && ( e [ f [ 0 ] ] = f [ 1 ] ) } return e } function Cd ( a ) { return a = D ( a ) , a . _ _chain _ _ = ! 0 , a } function Mb ( a , b , c ) { return b . call ( c , a ) } function Ae ( a , b , c ) { var d = ia ( a ) ? Jb : Zd ; return c && la ( a , b , c ) && ( b = v ) , ( "function" != typeof b || c !==
v ) && ( b = ua ( b , c , 3 ) ) , d ( a , b ) } function ec ( a , b , c ) { var d = ia ( a ) ? Bb : ae ; return b = ua ( b , c , 3 ) , d ( a , b ) } function Nd ( a , b , c , d ) { var e = a ? yc ( a ) : 0 ; return fb ( e ) || ( a = ed ( a ) , e = a . length ) , c = "number" != typeof c || d && la ( b , c , d ) ? 0 : 0 > c ? Qa ( e + c , 0 ) : c || 0 , "string" == typeof a || ! ia ( a ) && pe ( a ) ? c <= e && - 1 < a . indexOf ( b , c ) : ! ! e && - 1 < jc ( a , b , c ) } function Md ( a , b , c ) { var d = ia ( a ) ? ic : ce ; return b = ua ( b , c , 3 ) , d ( a , b ) } function hd ( a , b , c ) { if ( c ? la ( a , b , c ) : null == b ) { a = uc ( a ) ; var d = a . length ; return 0 < d ? a [ sd ( 0 , d - 1 ) ] : v } c = - 1 ; a = qe ( a ) ; var d = a . length , e = d - 1 ; for ( b = eb ( 0 > b ? 0 : + b || 0 ,
d ) ; ++ c < b ; ) { var d = sd ( c , e ) , f = a [ d ] ; a [ d ] = a [ c ] ; a [ c ] = f } return a . length = b , a } function Fc ( a , b , c ) { var d = ia ( a ) ? Oe : Gd ; return c && la ( a , b , c ) && ( b = v ) , ( "function" != typeof b || c !== v ) && ( b = ua ( b , c , 3 ) ) , d ( a , b ) } function id ( a , b ) { var c ; if ( "function" != typeof b ) { if ( "function" != typeof a ) throw new nb ( Q ) ; b = a = b } return function ( ) { return 0 < -- a && ( c = b . apply ( this , arguments ) ) , 1 >= a && ( b = v ) , c } } function bf ( a , b , c ) { function d ( b , c ) { c && Ka ( c ) ; k = z = n = v ; b && ( p = zc ( ) , l = a . apply ( w , h ) , z || k || ( h = w = v ) ) } function e ( ) { var a = b - ( zc ( ) - m ) ; 0 >= a || a > b ? d ( n , k ) : z = wd ( e ,
a ) } function f ( ) { d ( t , z ) } function g ( ) { if ( h = arguments , m = zc ( ) , w = this , n = t && ( z || ! q ) , ! 1 === r ) var c = q && ! z ; else { k || q || ( p = m ) ; var d = r - ( m - p ) , g = 0 >= d || d > r ; g ? ( k && ( k = Ka ( k ) ) , p = m , l = a . apply ( w , h ) ) : k || ( k = wd ( f , d ) ) } return g && z ? z = Ka ( z ) : z || b === r || ( z = wd ( e , b ) ) , c && ( g = ! 0 , l = a . apply ( w , h ) ) , ! g || z || k || ( h = w = v ) , l } var h , k , l , m , w , z , n , p = 0 , r = ! 1 , t = ! 0 ; if ( "function" != typeof a ) throw new nb ( Q ) ; if ( b = 0 > b ? 0 : + b || 0 , ! 0 === c ) var q = ! 0 , t = ! 1 ; else za ( c ) && ( q = ! ! c . leading , r = "maxWait" in c && Qa ( + c . maxWait || 0 , b ) , t = "trailing" in c ? ! ! c . trailing : t ) ; return g . cancel =
function ( ) { z && Ka ( z ) ; k && Ka ( k ) ; p = 0 ; k = z = n = v } , g } function Dc ( a , b ) { function c ( ) { var d = arguments , e = b ? b . apply ( this , d ) : d [ 0 ] , f = c . cache ; return f . has ( e ) ? f . get ( e ) : ( d = a . apply ( this , d ) , c . cache = f . set ( e , d ) , d ) } if ( "function" != typeof a || b && "function" != typeof b ) throw new nb ( Q ) ; return c . cache = new Dc . Cache , c } function ta ( a , b ) { if ( "function" != typeof a ) throw new nb ( Q ) ; return b = Qa ( b === v ? a . length - 1 : + b || 0 , 0 ) , function ( ) { for ( var c = arguments , d = - 1 , e = Qa ( c . length - b , 0 ) , f = Da ( e ) ; ++ d < e ; ) f [ d ] = c [ b + d ] ; switch ( b ) { case 0 : return a . call ( this , f ) ;
case 1 : return a . call ( this , c [ 0 ] , f ) ; case 2 : return a . call ( this , c [ 0 ] , c [ 1 ] , f ) } e = Da ( b + 1 ) ; for ( d = - 1 ; ++ d < b ; ) e [ d ] = c [ d ] ; return e [ b ] = f , a . apply ( this , e ) } } function $e ( a , b ) { return a > b } function Ma ( a ) { return r ( a ) && xa ( a ) && Ja . call ( a , "callee" ) && ! xf . call ( a , "callee" ) } function ef ( a , b , c , d ) { return d = ( c = "function" == typeof c ? gb ( c , d , 3 ) : v ) ? c ( a , b ) : v , d === v ? Nc ( a , b , c ) : ! ! d } function Nb ( a ) { return r ( a ) && "string" == typeof a . message && $a . call ( a ) == ja } function Ab ( a ) { return za ( a ) && $a . call ( a ) == Ga } function za ( a ) { var b = typeof a ; return ! ! a && ( "object" ==
b || "function" == b ) } function Vd ( a ) { return null != a && ( Ab ( a ) ? Yb . test ( Jf . call ( a ) ) : r ( a ) && Ib . test ( a ) ) } function Xe ( a ) { return "number" == typeof a || r ( a ) && $a . call ( a ) == wa } function Ic ( a ) { var b ; if ( ! r ( a ) || $a . call ( a ) != qa || Ma ( a ) || ! ( Ja . call ( a , "constructor" ) || ( b = a . constructor , "function" != typeof b || b instanceof b ) ) ) return ! 1 ; var c ; return Pe ( a , function ( a , b ) { c = b } ) , c === v || Ja . call ( a , c ) } function Hf ( a ) { return za ( a ) && $a . call ( a ) == ra } function pe ( a ) { return "string" == typeof a || r ( a ) && $a . call ( a ) == Aa } function gc ( a ) { return r ( a ) && fb ( a . length ) &&
! ! Ca [ $a . call ( a ) ] } function Ub ( a , b ) { return a < b } function qe ( a ) { var b = a ? yc ( a ) : 0 ; return fb ( b ) ? b ? Ya ( a ) : [ ] : ed ( a ) } function Me ( a ) { return Yd ( a , Rb ( a ) ) } function Hd ( a ) { return qd ( a , Rb ( a ) ) } function Rb ( a ) { if ( null == a ) return [ ] ; za ( a ) || ( a = Cb ( a ) ) ; for ( var b = a . length , b = b && fb ( b ) && ( ia ( a ) || Ma ( a ) ) && b || 0 , c = a . constructor , d = - 1 , c = "function" == typeof c && c . prototype === a , e = Da ( b ) , f = 0 < b ; ++ d < b ; ) e [ d ] = d + "" ; for ( var g in a ) f && Eb ( g , b ) || "constructor" == g && ( c || ! Ja . call ( a , g ) ) || e . push ( g ) ; return e } function Ne ( a ) { a = Pa ( a ) ; for ( var b = - 1 , c = pa ( a ) , d = c . length ,
e = Da ( d ) ; ++ b < d ; ) { var f = c [ b ] ; e [ b ] = [ f , a [ f ] ] } return e } function ed ( a ) { return Kd ( a , pa ( a ) ) } function Le ( a ) { return ( a = c ( a ) ) && a . replace ( Hc , q ) . replace ( md , "" ) } function Va ( a , b ) { var d = "" ; if ( a = c ( a ) , b = + b , 1 > b || ! a || ! lc ( b ) ) return d ; do b % 2 && ( d += a ) , b = yb ( b / 2 ) , a += a ; while ( b ) ; return d } function Sd ( a , d , e ) { var f = a ; return ( a = c ( a ) ) ? ( e ? la ( f , d , e ) : null == d ) ? a . slice ( A ( a ) , E ( a ) + 1 ) : ( d += "" , a . slice ( b ( a , d ) , g ( a , d ) + 1 ) ) : a } function gf ( a , b , d ) { return d && la ( a , b , d ) && ( b = v ) , a = c ( a ) , a . match ( b || jg ) || [ ] } function Jc ( a , b , c ) { return c && la ( a , b , c ) && ( b = v ) , r ( a ) ?
Wd ( a ) : Lc ( a , b ) } function dc ( a ) { return a } function Wd ( a ) { return qc ( Wa ( a , ! 0 ) ) } function Kc ( a , b , c ) { if ( null == c ) { var d = za ( b ) , e = d ? pa ( b ) : v ; ( ( e = e && e . length ? qd ( b , e ) : v ) ? e . length : d ) || ( e = ! 1 , c = b , b = a , a = this ) } e || ( e = qd ( b , pa ( b ) ) ) ; var f = ! 0 , d = - 1 , g = Ab ( a ) , h = e . length ; ! 1 === c ? f = ! 1 : za ( c ) && "chain" in c && ( f = c . chain ) ; for ( ; ++ d < h ; ) { c = e [ d ] ; var k = b [ c ] ; a [ c ] = k ; g && ( a . prototype [ c ] = function ( b ) { return function ( ) { var c = this . _ _chain _ _ ; if ( f || c ) { var d = a ( this . _ _wrapped _ _ ) ; return ( d . _ _actions _ _ = Ya ( this . _ _actions _ _ ) ) . push ( { func : b , args : arguments , thisArg : a } ) ,
d . _ _chain _ _ = c , d } return b . apply ( a , tb ( [ this . value ( ) ] , arguments ) ) } } ( k ) ) } return a } function hf ( ) { } function od ( a ) { return ma ( a ) ? rd ( a ) : nf ( a ) } y = y ? Fb . defaults ( zb . Object ( ) , y , Fb . pick ( zb , kg ) ) : zb ; var Da = y . Array , If = y . Date , jf = y . Error , Wb = y . Function , kc = y . Math , lf = y . Number , Cb = y . Object , re = y . RegExp , Xa = y . String , nb = y . TypeError , mf = Da . prototype , be = Cb . prototype , Ad = Xa . prototype , Jf = Wb . prototype . toString , Ja = be . hasOwnProperty , R = 0 , $a = be . toString , Pd = zb . _ , Yb = re ( "^" + Jf . call ( Ja ) . replace ( /[\\^$.*+?()[\]{}|]/g , "\\$&" ) . replace ( /hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g ,
"$1.*?" ) + "$" ) , ub = y . ArrayBuffer , Ka = y . clearTimeout , rf = y . parseFloat , yf = kc . pow , xf = be . propertyIsEnumerable , sc = ac ( y , "Set" ) , wd = y . setTimeout , Bf = mf . splice , Af = y . Uint8Array , uf = ac ( y , "WeakMap" ) , ud = kc . ceil , bd = ac ( Cb , "create" ) , yb = kc . floor , xd = ac ( Da , "isArray" ) , lc = y . isFinite , Be = ac ( Cb , "keys" ) , Qa = kc . max , eb = kc . min , Rd = ac ( If , "now" ) , og = y . parseInt , Kf = kc . random , Lf = lf . NEGATIVE _INFINITY , Wc = lf . POSITIVE _INFINITY , se = 4294967294 , Mf = 2147483647 , te = 9007199254740991 , Tc = uf && new uf , Xc = { } ; D . support = { } ; D . templateSettings = { escape : af , evaluate : Ia ,
interpolate : jd , variable : "" , imports : { _ : D } } ; var mc = function ( ) { function a ( ) { } return function ( b ) { if ( za ( b ) ) { a . prototype = b ; var c = new a ; a . prototype = v } return c || { } } } ( ) , vb = Xd ( Gb ) , Fd = Xd ( Xb , ! 0 ) , Dd = We ( ) , De = We ( ! 0 ) , Ce = Tc ? function ( a , b ) { return Tc . set ( a , b ) , a } : dc , Ed = Tc ? function ( a ) { return Tc . get ( a ) } : hf , yc = rd ( "length" ) , Ee = function ( ) { var a = 0 , b = 0 ; return function ( c , d ) { var e = zc ( ) , f = na - ( e - b ) ; if ( b = e , 0 < f ) { if ( ++ a >= P ) return c } else a = 0 ; return Ce ( c , d ) } } ( ) , Uf = ta ( function ( a , b ) { return r ( a ) && xa ( a ) ? Lb ( a , Za ( b , ! 1 , ! 0 ) ) : [ ] } ) , Vf = fe ( ) , Wf =
fe ( ! 0 ) , Ke = ta ( function ( a ) { for ( var b = a . length , c = b , d = Da ( m ) , e = jc ( ) , f = e === h , g = [ ] ; c -- ; ) { var k = a [ c ] = xa ( k = a [ c ] ) ? k : [ ] ; d [ c ] = f && 120 <= k . length && bd && sc ? new kb ( c && k ) : null } var f = a [ 0 ] , l = - 1 , m = f ? f . length : 0 , w = d [ 0 ] ; a : for ( ; ++ l < m ; ) if ( k = f [ l ] , 0 > ( w ? mb ( w , k ) : e ( g , k , 0 ) ) ) { for ( c = b ; -- c ; ) { var n = d [ c ] ; if ( 0 > ( n ? mb ( n , k ) : e ( a [ c ] , k , 0 ) ) ) continue a } w && w . push ( k ) ; g . push ( k ) } return g } ) , pg = ta ( function ( b , c ) { c = Za ( c ) ; var d = pd ( b , c ) ; return ee ( b , c . sort ( a ) ) , d } ) , Yf = je ( ) , Zf = je ( ! 0 ) , ig = ta ( function ( a ) { return Ld ( Za ( a , ! 1 , ! 0 ) ) } ) , $f = ta ( function ( a , b ) { return xa ( a ) ?
Lb ( a , b ) : [ ] } ) , gg = ta ( Bd ) , Vc = ta ( function ( a ) { var b = a . length , c = 2 < b ? a [ b - 2 ] : v , d = 1 < b ? a [ b - 1 ] : v ; return 2 < b && "function" == typeof c ? b -= 2 : ( c = 1 < b && "function" == typeof d ? ( -- b , d ) : v , d = v ) , a . length = b , bc ( a , c , d ) } ) , Ef = ta ( function ( a ) { return a = Za ( a ) , this . thru ( function ( b ) { b = ia ( b ) ? b : [ Pa ( b ) ] ; for ( var c = a , d = - 1 , e = b . length , f = - 1 , g = c . length , h = Da ( e + g ) ; ++ d < e ; ) h [ d ] = b [ d ] ; for ( ; ++ f < g ; ) h [ d ++ ] = c [ f ] ; return h } ) } ) , tc = ta ( function ( a , b ) { return pd ( a , Za ( b ) ) } ) , yd = fd ( function ( a , b , c ) { Ja . call ( a , c ) ? ++ a [ c ] : a [ c ] = 1 } ) , zd = vd ( vb ) , Uc = vd ( Fd , ! 0 ) , Nf = zf ( ib , vb ) , Ie =
zf ( function ( a , b ) { for ( var c = a . length ; c -- && ! 1 !== b ( a [ c ] , c , a ) ; ) ; return a } , Fd ) , qg = fd ( function ( a , b , c ) { Ja . call ( a , c ) ? a [ c ] . push ( b ) : a [ c ] = [ b ] } ) , hg = fd ( function ( a , b , c ) { a [ c ] = b } ) , ag = ta ( function ( a , b , c ) { var d = - 1 , e = "function" == typeof b , f = ma ( b ) , g = xa ( a ) ? Da ( a . length ) : [ ] ; return vb ( a , function ( a ) { var h = e ? b : f && null != a ? a [ b ] : v ; g [ ++ d ] = h ? h . apply ( a , c ) : Y ( a , b , c ) } ) , g } ) , rg = fd ( function ( a , b , c ) { a [ c ? 0 : 1 ] . push ( b ) } , function ( ) { return [ [ ] , [ ] ] } ) , ue = me ( Ac , vb ) , He = me ( function ( a , b , c , d ) { var e = a . length ; for ( d && e && ( c = a [ -- e ] ) ; e -- ; ) c = b ( c , a [ e ] , e , a ) ; return c } ,
Fd ) , bg = ta ( function ( a , b ) { if ( null == a ) return [ ] ; var c = b [ 2 ] ; return c && la ( b [ 0 ] , b [ 1 ] , c ) && ( b . length = 1 ) , Re ( a , Za ( b ) , [ ] ) } ) , zc = Rd || function ( ) { return ( new If ) . getTime ( ) } , Fe = ta ( function ( a , b , c ) { var d = H ; if ( c . length ) var e = C ( c , Fe . placeholder ) , d = d | X ; return db ( a , d , b , c , e ) } ) , Xf = ta ( function ( a , b ) { b = b . length ? Za ( b ) : Hd ( a ) ; for ( var c = - 1 , d = b . length ; ++ c < d ; ) { var e = b [ c ] ; a [ e ] = db ( a [ e ] , H , a ) } return a } ) , Ge = ta ( function ( a , b , c ) { var d = H | J ; if ( c . length ) var e = C ( c , Ge . placeholder ) , d = d | X ; return db ( b , d , a , c , e ) } ) , cg = tf ( O ) , dg = tf ( V ) , eg = ta ( function ( a ,
b ) { return Vb ( a , 1 , b ) } ) , fg = ta ( function ( a , b , c ) { return Vb ( a , b , c ) } ) , Qf = wf ( ) , ve = wf ( ! 0 ) , sg = ta ( function ( a , b ) { if ( b = Za ( b ) , "function" != typeof a || ! Jb ( b , e ) ) throw new nb ( Q ) ; var c = b . length ; return ta ( function ( d ) { for ( var e = eb ( d . length , c ) ; e -- ; ) d [ e ] = b [ e ] ( d [ e ] ) ; return a . apply ( this , d ) } ) } ) , Rf = le ( X ) , Tf = le ( L ) , Sf = ta ( function ( a , b ) { return db ( a , W , v , v , v , Za ( b ) ) } ) , ia = xd || function ( a ) { return r ( a ) && fb ( a . length ) && $a . call ( a ) == Z } , cd = Kb ( de ) , dd = Kb ( function ( a , b , c ) { return c ? Jd ( a , b , c ) : Cc ( a , b ) } ) , Je = vf ( dd , function ( a , b ) { return a === v ? b : a } ) , d =
vf ( cd , wb ) , k = ie ( Gb ) , G = ie ( Xb ) , u = ke ( Dd ) , aa = ke ( De ) , M = Pc ( Gb ) , fa = Pc ( Xb ) , pa = Be ? function ( a ) { var b = null == a ? v : a . constructor ; return "function" == typeof b && b . prototype === a || "function" != typeof a && xa ( a ) ? pb ( a ) : za ( a ) ? Be ( a ) : [ ] } : pb , Oa = Ra ( ! 0 ) , Ea = Ra ( ) , we = ta ( function ( a , b ) { if ( null == a ) return { } ; if ( "function" != typeof b [ 0 ] ) return b = ic ( Za ( b ) , Xa ) , ff ( a , Lb ( Rb ( a ) , b ) ) ; var c = gb ( b [ 0 ] , b [ 1 ] , 3 ) ; return Gf ( a , function ( a , b , d ) { return ! c ( a , b , d ) } ) } ) , Of = ta ( function ( a , b ) { return null == a ? { } : "function" == typeof b [ 0 ] ? Gf ( a , gb ( b [ 0 ] , b [ 1 ] , 3 ) ) : ff ( a , Za ( b ) ) } ) ,
zg = gd ( function ( a , b , c ) { return b = b . toLowerCase ( ) , a + ( c ? b . charAt ( 0 ) . toUpperCase ( ) + b . slice ( 1 ) : b ) } ) , $c = gd ( function ( a , b , c ) { return a + ( c ? "-" : "" ) + b . toLowerCase ( ) } ) , yg = Qc ( ) , Db = Qc ( ! 0 ) , xc = gd ( function ( a , b , c ) { return a + ( c ? "_" : "" ) + b . toLowerCase ( ) } ) , xg = gd ( function ( a , b , c ) { return a + ( c ? " " : "" ) + ( b . charAt ( 0 ) . toUpperCase ( ) + b . slice ( 1 ) ) } ) , Pb = ta ( function ( a , b ) { try { return a . apply ( v , b ) } catch ( N ) { return Nb ( N ) ? N : new jf ( N ) } } ) , lg = ta ( function ( a , b ) { return function ( c ) { return Y ( c , a , b ) } } ) , lb = ta ( function ( a , b ) { return function ( c ) { return Y ( a ,
c , b ) } } ) , Qd = he ( "ceil" ) , pc = he ( "floor" ) , nd = Zb ( $e , Lf ) , tg = Zb ( Ub , Wc ) , mg = he ( "round" ) ; return D . prototype = Ua . prototype , sb . prototype = mc ( Ua . prototype ) , sb . prototype . constructor = sb , oa . prototype = mc ( Ua . prototype ) , oa . prototype . constructor = oa , ab . prototype [ "delete" ] = function ( a ) { return this . has ( a ) && delete this . _ _data _ _ [ a ] } , ab . prototype . get = function ( a ) { return "__proto__" == a ? v : this . _ _data _ _ [ a ] } , ab . prototype . has = function ( a ) { return "__proto__" != a && Ja . call ( this . _ _data _ _ , a ) } , ab . prototype . set = function ( a , b ) { return "__proto__" !=
a && ( this . _ _data _ _ [ a ] = b ) , this } , kb . prototype . push = function ( a ) { var b = this . data ; "string" == typeof a || za ( a ) ? b . set . add ( a ) : b . hash [ a ] = ! 0 } , Dc . Cache = ab , D . after = function ( a , b ) { if ( "function" != typeof b ) { if ( "function" != typeof a ) throw new nb ( Q ) ; b = a = b } return a = lc ( a = + a ) ? a : 0 , function ( ) { return 1 > -- a ? b . apply ( this , arguments ) : void 0 } } , D . ary = function ( a , b , c ) { return c && la ( a , b , c ) && ( b = v ) , b = a && null == b ? a . length : Qa ( + b || 0 , 0 ) , db ( a , T , v , v , v , v , b ) } , D . assign = dd , D . at = tc , D . before = id , D . bind = Fe , D . bindAll = Xf , D . bindKey = Ge , D . callback = Jc , D . chain =
Cd , D . chunk = function ( a , b , c ) { b = ( c ? la ( a , b , c ) : null == b ) ? 1 : Qa ( yb ( b ) || 1 , 1 ) ; c = 0 ; for ( var d = a ? a . length : 0 , e = - 1 , f = Da ( ud ( d / b ) ) ; c < d ; ) f [ ++ e ] = cb ( a , c , c += b ) ; return f } , D . compact = function ( a ) { for ( var b = - 1 , c = a ? a . length : 0 , d = - 1 , e = [ ] ; ++ b < c ; ) { var f = a [ b ] ; f && ( e [ ++ d ] = f ) } return e } , D . constant = function ( a ) { return function ( ) { return a } } , D . countBy = yd , D . create = function ( a , b , c ) { var d = mc ( a ) ; return c && la ( a , b , c ) && ( b = v ) , b ? Cc ( d , b ) : d } , D . curry = cg , D . curryRight = dg , D . debounce = bf , D . defaults = Je , D . defaultsDeep = d , D . defer = eg , D . delay = fg , D . difference =
Uf , D . drop = Yc , D . dropRight = ha , D . dropRightWhile = function ( a , b , c ) { return a && a . length ? ad ( a , ua ( b , c , 3 ) , ! 0 , ! 0 ) : [ ] } , D . dropWhile = function ( a , b , c ) { return a && a . length ? ad ( a , ua ( b , c , 3 ) , ! 0 ) : [ ] } , D . fill = function ( a , b , c , d ) { var e = a ? a . length : 0 ; if ( ! e ) return [ ] ; c && "number" != typeof c && la ( a , b , c ) && ( c = 0 , d = e ) ; e = a . length ; c = null == c ? 0 : + c || 0 ; 0 > c && ( c = - c > e ? 0 : e + c ) ; d = d === v || d > e ? e : + d || 0 ; 0 > d && ( d += e ) ; e = c > d ? 0 : d >>> 0 ; for ( c >>>= 0 ; c < e ; ) a [ c ++ ] = b ; return a } , D . filter = ec , D . flatten = function ( a , b , c ) { var d = a ? a . length : 0 ; return c && la ( a , b , c ) && ( b = ! 1 ) , d ? Za ( a ,
b ) : [ ] } , D . flattenDeep = function ( a ) { return a && a . length ? Za ( a , ! 0 ) : [ ] } , D . flow = Qf , D . flowRight = ve , D . forEach = Nf , D . forEachRight = Ie , D . forIn = u , D . forInRight = aa , D . forOwn = M , D . forOwnRight = fa , D . functions = Hd , D . groupBy = qg , D . indexBy = hg , D . initial = function ( a ) { return ha ( a , 1 ) } , D . intersection = Ke , D . invert = function ( a , b , c ) { c && la ( a , b , c ) && ( b = v ) ; c = - 1 ; for ( var d = pa ( a ) , e = d . length , f = { } ; ++ c < e ; ) { var g = d [ c ] , h = a [ g ] ; b ? Ja . call ( f , h ) ? f [ h ] . push ( g ) : f [ h ] = [ g ] : f [ h ] = g } return f } , D . invoke = ag , D . keys = pa , D . keysIn = Rb , D . map = Md , D . mapKeys = Oa , D . mapValues =
Ea , D . matches = Wd , D . matchesProperty = function ( a , b ) { return Na ( a , Wa ( b , ! 0 ) ) } , D . memoize = Dc , D . merge = cd , D . method = lg , D . methodOf = lb , D . mixin = Kc , D . modArgs = sg , D . negate = function ( a ) { if ( "function" != typeof a ) throw new nb ( Q ) ; return function ( ) { return ! a . apply ( this , arguments ) } } , D . omit = we , D . once = function ( a ) { return id ( 2 , a ) } , D . pairs = Ne , D . partial = Rf , D . partialRight = Tf , D . partition = rg , D . pick = Of , D . pluck = function ( a , b ) { return Md ( a , od ( b ) ) } , D . property = od , D . propertyOf = function ( a ) { return function ( b ) { return bb ( a , Ha ( b ) , b + "" ) } } , D . pull =
function ( ) { var a = arguments , b = a [ 0 ] ; if ( ! b || ! b . length ) return b ; for ( var c = 0 , d = jc ( ) , e = a . length ; ++ c < e ; ) for ( var f = 0 , g = a [ c ] ; - 1 < ( f = d ( b , g , f ) ) ; ) Bf . call ( b , f , 1 ) ; return b } , D . pullAt = pg , D . range = function ( a , b , c ) { c && la ( a , b , c ) && ( b = c = v ) ; a = + a || 0 ; c = null == c ? 1 : + c || 0 ; null == b ? ( b = a , a = 0 ) : b = + b || 0 ; var d = - 1 ; b = Qa ( ud ( ( b - a ) / ( c || 1 ) ) , 0 ) ; for ( var e = Da ( b ) ; ++ d < b ; ) e [ d ] = a , a += c ; return e } , D . rearg = Sf , D . reject = function ( a , b , c ) { var d = ia ( a ) ? Bb : ae ; return b = ua ( b , c , 3 ) , d ( a , function ( a , c , d ) { return ! b ( a , c , d ) } ) } , D . remove = function ( a , b , c ) { var d = [ ] ; if ( ! a || ! a . length ) return d ;
var e = - 1 , f = [ ] , g = a . length ; for ( b = ua ( b , c , 3 ) ; ++ e < g ; ) c = a [ e ] , b ( c , e , a ) && ( d . push ( c ) , f . push ( e ) ) ; return ee ( a , f ) , d } , D . rest = Qb , D . restParam = ta , D . set = function ( a , b , c ) { if ( null == a ) return a ; var d = b + "" ; b = null != a [ d ] || ma ( b , a ) ? [ d ] : Ha ( b ) ; for ( var d = - 1 , e = b . length , f = e - 1 , g = a ; null != g && ++ d < e ; ) { var h = b [ d ] ; za ( g ) && ( d == f ? g [ h ] = c : null == g [ h ] && ( g [ h ] = Eb ( b [ d + 1 ] ) ? [ ] : { } ) ) ; g = g [ h ] } return a } , D . shuffle = function ( a ) { return hd ( a , Wc ) } , D . slice = function ( a , b , c ) { var d = a ? a . length : 0 ; return d ? ( c && "number" != typeof c && la ( a , b , c ) && ( b = 0 , c = d ) , cb ( a , b , c ) ) : [ ] } ,
D . sortBy = function ( a , b , c ) { if ( null == a ) return [ ] ; c && la ( a , b , c ) && ( b = v ) ; var d = - 1 ; return b = ua ( b , c , 3 ) , a = ce ( a , function ( a , c , e ) { return { a : b ( a , c , e ) , b : ++ d , c : a } } ) , Qe ( a , f ) } , D . sortByAll = bg , D . sortByOrder = function ( a , b , c , d ) { return null == a ? [ ] : ( d && la ( b , c , d ) && ( c = v ) , ia ( b ) || ( b = null == b ? [ ] : [ b ] ) , ia ( c ) || ( c = null == c ? [ ] : [ c ] ) , Re ( a , b , c ) ) } , D . spread = function ( a ) { if ( "function" != typeof a ) throw new nb ( Q ) ; return function ( b ) { return a . apply ( this , b ) } } , D . take = function ( a , b , c ) { return a && a . length ? ( ( c ? la ( a , b , c ) : null == b ) && ( b = 1 ) , cb ( a , 0 , 0 > b ? 0 : b ) ) : [ ] } ,
D . takeRight = function ( a , b , c ) { var d = a ? a . length : 0 ; return d ? ( ( c ? la ( a , b , c ) : null == b ) && ( b = 1 ) , b = d - ( + b || 0 ) , cb ( a , 0 > b ? 0 : b ) ) : [ ] } , D . takeRightWhile = function ( a , b , c ) { return a && a . length ? ad ( a , ua ( b , c , 3 ) , ! 1 , ! 0 ) : [ ] } , D . takeWhile = function ( a , b , c ) { return a && a . length ? ad ( a , ua ( b , c , 3 ) ) : [ ] } , D . tap = function ( a , b , c ) { return b . call ( c , a ) , a } , D . throttle = function ( a , b , c ) { var d = ! 0 , e = ! 0 ; if ( "function" != typeof a ) throw new nb ( Q ) ; return ! 1 === c ? d = ! 1 : za ( c ) && ( d = "leading" in c ? ! ! c . leading : d , e = "trailing" in c ? ! ! c . trailing : e ) , bf ( a , b , { leading : d , maxWait : + b ,
trailing : e } ) } , D . thru = Mb , D . times = function ( a , b , c ) { if ( a = yb ( a ) , 1 > a || ! lc ( a ) ) return [ ] ; var d = - 1 , e = Da ( eb ( a , 4294967295 ) ) ; for ( b = gb ( b , c , 1 ) ; ++ d < a ; ) 4294967295 > d ? e [ d ] = b ( d ) : b ( d ) ; return e } , D . toArray = qe , D . toPlainObject = Me , D . transform = function ( a , b , c , d ) { var e = ia ( a ) || gc ( a ) ; return b = ua ( b , d , 4 ) , null == c && ( e || za ( a ) ? ( d = a . constructor , c = e ? ia ( a ) ? new d : [ ] : mc ( Ab ( d ) ? d . prototype : v ) ) : c = { } ) , ( e ? ib : Gb ) ( a , function ( a , d , e ) { return b ( c , a , d , e ) } ) , c } , D . union = ig , D . uniq = wc , D . unzip = Bd , D . unzipWith = bc , D . values = ed , D . valuesIn = function ( a ) { return Kd ( a ,
Rb ( a ) ) } , D . where = function ( a , b ) { return ec ( a , qc ( b ) ) } , D . without = $f , D . wrap = function ( a , b ) { return b = null == b ? dc : b , db ( b , X , v , [ a ] , [ ] ) } , D . xor = function ( ) { for ( var a = - 1 , b = arguments . length ; ++ a < b ; ) { var c = arguments [ a ] ; if ( xa ( c ) ) var d = d ? tb ( Lb ( d , c ) , Lb ( c , d ) ) : c } return d ? Ld ( d ) : [ ] } , D . zip = gg , D . zipObject = ye , D . zipWith = Vc , D . backflow = ve , D . collect = Md , D . compose = ve , D . each = Nf , D . eachRight = Ie , D . extend = dd , D . iteratee = Jc , D . methods = Hd , D . object = ye , D . select = ec , D . tail = Qb , D . unique = wc , Kc ( D , D ) , D . add = function ( a , b ) { return ( + a || 0 ) + ( + b || 0 ) } , D . attempt =
Pb , D . camelCase = zg , D . capitalize = function ( a ) { return ( a = c ( a ) ) && a . charAt ( 0 ) . toUpperCase ( ) + a . slice ( 1 ) } , D . ceil = Qd , D . clone = function ( a , b , c , d ) { return b && "boolean" != typeof b && la ( a , b , c ) ? b = ! 1 : "function" == typeof b && ( d = c , c = b , b = ! 1 ) , "function" == typeof c ? Wa ( a , b , gb ( c , d , 3 ) ) : Wa ( a , b ) } , D . cloneDeep = function ( a , b , c ) { return "function" == typeof b ? Wa ( a , ! 0 , gb ( b , c , 3 ) ) : Wa ( a , ! 0 ) } , D . deburr = Le , D . endsWith = function ( a , b , d ) { a = c ( a ) ; b += "" ; var e = a . length ; return d = d === v ? e : eb ( 0 > d ? 0 : + d || 0 , e ) , d -= b . length , 0 <= d && a . indexOf ( b , d ) == d } , D . escape = function ( a ) { return ( a =
c ( a ) ) && Ze . test ( a ) ? a . replace ( nc , m ) : a } , D . escapeRegExp = function ( a ) { return ( a = c ( a ) ) && Od . test ( a ) ? a . replace ( Ec , n ) : a || "(?:)" } , D . every = Ae , D . find = zd , D . findIndex = Vf , D . findKey = k , D . findLast = Uc , D . findLastIndex = Wf , D . findLastKey = G , D . findWhere = function ( a , b ) { return zd ( a , qc ( b ) ) } , D . first = xe , D . floor = pc , D . get = function ( a , b , c ) { return a = null == a ? v : bb ( a , Ha ( b ) , b + "" ) , a === v ? c : a } , D . gt = $e , D . gte = function ( a , b ) { return a >= b } , D . has = function ( a , b ) { if ( null == a ) return ! 1 ; var c = Ja . call ( a , b ) ; if ( ! c && ! ma ( b ) ) { if ( b = Ha ( b ) , a = 1 == b . length ? a : bb ( a , cb ( b ,
0 , - 1 ) ) , null == a ) return ! 1 ; b = rc ( b ) ; c = Ja . call ( a , b ) } return c || fb ( a . length ) && Eb ( b , a . length ) && ( ia ( a ) || Ma ( a ) ) } , D . identity = dc , D . includes = Nd , D . indexOf = ya , D . inRange = function ( a , b , c ) { return b = + b || 0 , c === v ? ( c = b , b = 0 ) : c = + c || 0 , a >= eb ( b , c ) && a < Qa ( b , c ) } , D . isArguments = Ma , D . isArray = ia , D . isBoolean = function ( a ) { return ! 0 === a || ! 1 === a || r ( a ) && $a . call ( a ) == va } , D . isDate = function ( a ) { return r ( a ) && $a . call ( a ) == sa } , D . isElement = function ( a ) { return ! ! a && 1 === a . nodeType && r ( a ) && ! Ic ( a ) } , D . isEmpty = function ( a ) { return null == a || ( xa ( a ) && ( ia ( a ) || pe ( a ) ||
Ma ( a ) || r ( a ) && Ab ( a . splice ) ) ? ! a . length : ! pa ( a ) . length ) } , D . isEqual = ef , D . isError = Nb , D . isFinite = function ( a ) { return "number" == typeof a && lc ( a ) } , D . isFunction = Ab , D . isMatch = function ( a , b , c , d ) { return c = "function" == typeof c ? gb ( c , d , 3 ) : v , Oc ( a , oe ( b ) , c ) } , D . isNaN = function ( a ) { return Xe ( a ) && a != + a } , D . isNative = Vd , D . isNull = function ( a ) { return null === a } , D . isNumber = Xe , D . isObject = za , D . isPlainObject = Ic , D . isRegExp = Hf , D . isString = pe , D . isTypedArray = gc , D . isUndefined = function ( a ) { return a === v } , D . kebabCase = $c , D . last = rc , D . lastIndexOf =
function ( a , b , c ) { var d = a ? a . length : 0 ; if ( ! d ) return - 1 ; var e = d ; if ( "number" == typeof c ) e = ( 0 > c ? Qa ( d + c , 0 ) : eb ( c || 0 , d - 1 ) ) + 1 ; else if ( c ) return e = td ( a , b , ! 0 ) - 1 , a = a [ e ] , ( b === b ? b === a : a !== a ) ? e : - 1 ; if ( b !== b ) return x ( a , e , ! 0 ) ; for ( ; e -- ; ) if ( a [ e ] === b ) return e ; return - 1 } , D . lt = Ub , D . lte = function ( a , b ) { return a <= b } , D . max = nd , D . min = tg , D . noConflict = function ( ) { return zb . _ = Pd , this } , D . noop = hf , D . now = zc , D . pad = function ( a , b , d ) { a = c ( a ) ; b = + b ; var e = a . length ; return e < b && lc ( b ) ? ( e = ( b - e ) / 2 , b = yb ( e ) , e = ud ( e ) , d = ge ( "" , e , d ) , d . slice ( 0 , b ) + a + d ) : a } , D . padLeft =
yg , D . padRight = Db , D . parseInt = function ( a , b , c ) { return ( c ? la ( a , b , c ) : null == b ) ? b = 0 : b && ( b = + b ) , a = Sd ( a ) , og ( a , b || ( Gc . test ( a ) ? 16 : 10 ) ) } , D . random = function ( a , b , c ) { c && la ( a , b , c ) && ( b = c = v ) ; var d = null == b ; return null == c && ( d && "boolean" == typeof a ? ( c = a , a = 1 ) : "boolean" == typeof b && ( c = b , d = ! 0 ) ) , null == a && d && ( b = 1 , d = ! 1 ) , a = + a || 0 , d ? ( b = a , a = 0 ) : b = + b || 0 , c || a % 1 || b % 1 ? ( c = Kf ( ) , eb ( a + c * ( b - a + rf ( "1e-" + ( ( c + "" ) . length - 1 ) ) ) , b ) ) : sd ( a , b ) } , D . reduce = ue , D . reduceRight = He , D . repeat = Va , D . result = function ( a , b , c ) { var d = null == a ? v : a [ b ] ; return d === v && ( null == a ||
ma ( b , a ) || ( b = Ha ( b ) , a = 1 == b . length ? a : bb ( a , cb ( b , 0 , - 1 ) ) , d = null == a ? v : a [ rc ( b ) ] ) , d = d === v ? c : d ) , Ab ( d ) ? d . call ( a ) : d } , D . round = mg , D . runInContext = p , D . size = function ( a ) { var b = a ? yc ( a ) : 0 ; return fb ( b ) ? b : pa ( a ) . length } , D . snakeCase = xc , D . some = Fc , D . sortedIndex = Yf , D . sortedLastIndex = Zf , D . startCase = xg , D . startsWith = function ( a , b , d ) { return a = c ( a ) , d = null == d ? 0 : eb ( 0 > d ? 0 : + d || 0 , a . length ) , a . lastIndexOf ( b , d ) == d } , D . sum = function ( a , b , c ) { if ( c && la ( a , b , c ) && ( b = v ) , b = ua ( b , c , 3 ) , 1 == b . length ) { a = ia ( a ) ? a : uc ( a ) ; c = a . length ; for ( var d = 0 ; c -- ; ) d += + b ( a [ c ] ) ||
0 ; a = d } else a = pf ( a , b ) ; return a } , D . template = function ( a , b , d ) { var e = D . templateSettings ; d && la ( a , b , d ) && ( b = d = v ) ; a = c ( a ) ; b = Jd ( Cc ( { } , d || b ) , e , kf ) ; d = Jd ( Cc ( { } , b . imports ) , e . imports , kf ) ; var f , g , h = pa ( d ) , k = Kd ( d , h ) , l = 0 ; d = b . interpolate || Tb ; var m = "__p+='" ; d = re ( ( b . escape || Tb ) . source + "|" + d . source + "|" + ( d === jd ? fc : Tb ) . source + "|" + ( b . evaluate || Tb ) . source + "|$" , "g" ) ; var n = "sourceURL" in b ? "//# sourceURL=" + b . sourceURL + "\n" : "" ; if ( a . replace ( d , function ( b , c , d , e , h , k ) { return d || ( d = e ) , m += a . slice ( l , k ) . replace ( df , t ) , c && ( f = ! 0 , m += "'+__e(" +
c + ")+'" ) , h && ( g = ! 0 , m += "';" + h + ";\n__p+='" ) , d && ( m += "'+((__t=(" + d + "))==null?'':__t)+'" ) , l = k + b . length , b } ) , m += "';" , ( b = b . variable ) || ( m = "with(obj){" + m + "}" ) , m = ( g ? m . replace ( Zc , "" ) : m ) . replace ( Fa , "$1" ) . replace ( Pf , "$1;" ) , m = "function(" + ( b || "obj" ) + "){" + ( b ? "" : "obj||(obj={});" ) + "var __t,__p=''" + ( f ? ",__e=_.escape" : "" ) + ( g ? ",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}" : ";" ) + m + "return __p}" , b = Pb ( function ( ) { return Wb ( h , n + "return " + m ) . apply ( v , k ) } ) , b . source = m , Nb ( b ) ) throw b ; return b } , D . trim = Sd ,
D . trimLeft = function ( a , d , e ) { var f = a ; return ( a = c ( a ) ) ? a . slice ( ( e ? la ( f , d , e ) : null == d ) ? A ( a ) : b ( a , d + "" ) ) : a } , D . trimRight = function ( a , b , d ) { var e = a ; return ( a = c ( a ) ) ? ( d ? la ( e , b , d ) : null == b ) ? a . slice ( 0 , E ( a ) + 1 ) : a . slice ( 0 , g ( a , b + "" ) + 1 ) : a } , D . trunc = function ( a , b , d ) { d && la ( a , b , d ) && ( b = v ) ; var e = ca ; if ( d = B , null != b ) if ( za ( b ) ) { var f = "separator" in b ? b . separator : f , e = "length" in b ? + b . length || 0 : e ; d = "omission" in b ? c ( b . omission ) : d } else e = + b || 0 ; if ( a = c ( a ) , e >= a . length ) return a ; if ( e -= d . length , 1 > e ) return d ; if ( b = a . slice ( 0 , e ) , null == f ) return b + d ;
if ( Hf ( f ) ) { if ( a . slice ( e ) . search ( f ) ) { var g , h = a . slice ( 0 , e ) ; f . global || ( f = re ( f . source , ( Sb . exec ( f ) || "" ) + "g" ) ) ; for ( f . lastIndex = 0 ; a = f . exec ( h ) ; ) g = a . index ; b = b . slice ( 0 , null == g ? e : g ) } } else a . indexOf ( f , e ) != e && ( f = b . lastIndexOf ( f ) , - 1 < f && ( b = b . slice ( 0 , f ) ) ) ; return b + d } , D . unescape = function ( a ) { return ( a = c ( a ) ) && Ye . test ( a ) ? a . replace ( ze , F ) : a } , D . uniqueId = function ( a ) { var b = ++ R ; return c ( a ) + b } , D . words = gf , D . all = Ae , D . any = Fc , D . contains = Nd , D . eq = ef , D . detect = zd , D . foldl = ue , D . foldr = He , D . head = xe , D . include = Nd , D . inject = ue , Kc ( D , function ( ) { var a =
{ } ; return Gb ( D , function ( b , c ) { D . prototype [ c ] || ( a [ c ] = b ) } ) , a } ( ) , ! 1 ) , D . sample = hd , D . prototype . sample = function ( a ) { return this . _ _chain _ _ || null != a ? this . thru ( function ( b ) { return hd ( b , a ) } ) : hd ( this . value ( ) ) } , D . VERSION = I , ib ( "bind bindKey curry curryRight partial partialRight" . split ( " " ) , function ( a ) { D [ a ] . placeholder = D } ) , ib ( [ "drop" , "take" ] , function ( a , b ) { oa . prototype [ a ] = function ( c ) { var d = this . _ _filtered _ _ ; if ( d && ! b ) return new oa ( this ) ; c = null == c ? 1 : Qa ( yb ( c ) || 0 , 0 ) ; var e = this . clone ( ) ; return d ? e . _ _takeCount _ _ = eb ( e . _ _takeCount _ _ ,
c ) : e . _ _views _ _ . push ( { size : c , type : a + ( 0 > e . _ _dir _ _ ? "Right" : "" ) } ) , e } ; oa . prototype [ a + "Right" ] = function ( b ) { return this . reverse ( ) [ a ] ( b ) . reverse ( ) } } ) , ib ( [ "filter" , "map" , "takeWhile" ] , function ( a , b ) { var c = b + 1 , d = c != da ; oa . prototype [ a ] = function ( a , b ) { var e = this . clone ( ) ; return e . _ _iteratees _ _ . push ( { iteratee : ua ( a , b , 1 ) , type : c } ) , e . _ _filtered _ _ = e . _ _filtered _ _ || d , e } } ) , ib ( [ "first" , "last" ] , function ( a , b ) { var c = "take" + ( b ? "Right" : "" ) ; oa . prototype [ a ] = function ( ) { return this [ c ] ( 1 ) . value ( ) [ 0 ] } } ) , ib ( [ "initial" , "rest" ] , function ( a ,
b ) { var c = "drop" + ( b ? "" : "Right" ) ; oa . prototype [ a ] = function ( ) { return this . _ _filtered _ _ ? new oa ( this ) : this [ c ] ( 1 ) } } ) , ib ( [ "pluck" , "where" ] , function ( a , b ) { var c = b ? "filter" : "map" , d = b ? qc : od ; oa . prototype [ a ] = function ( a ) { return this [ c ] ( d ( a ) ) } } ) , oa . prototype . compact = function ( ) { return this . filter ( dc ) } , oa . prototype . reject = function ( a , b ) { return a = ua ( a , b , 1 ) , this . filter ( function ( b ) { return ! a ( b ) } ) } , oa . prototype . slice = function ( a , b ) { a = null == a ? 0 : + a || 0 ; var c = this ; return c . _ _filtered _ _ && ( 0 < a || 0 > b ) ? new oa ( c ) : ( 0 > a ? c = c . takeRight ( - a ) :
a && ( c = c . drop ( a ) ) , b !== v && ( b = + b || 0 , c = 0 > b ? c . dropRight ( - b ) : c . take ( b - a ) ) , c ) } , oa . prototype . takeRightWhile = function ( a , b ) { return this . reverse ( ) . takeWhile ( a , b ) . reverse ( ) } , oa . prototype . toArray = function ( ) { return this . take ( Wc ) } , Gb ( oa . prototype , function ( a , b ) { var c = /^(?:filter|map|reject)|While$/ . test ( b ) , d = /^(?:first|last)$/ . test ( b ) , e = D [ d ? "take" + ( "last" == b ? "Right" : "" ) : b ] ; e && ( D . prototype [ b ] = function ( ) { function b ( a ) { return d && g ? e ( a , 1 ) [ 0 ] : e . apply ( v , tb ( [ a ] , f ) ) } var f = d ? [ 1 ] : arguments , g = this . _ _chain _ _ , h = this . _ _wrapped _ _ ,
k = ! ! this . _ _actions _ _ . length , l = h instanceof oa , m = f [ 0 ] , n = l || ia ( h ) ; return n && c && "function" == typeof m && 1 != m . length && ( l = n = ! 1 ) , m = { func : Mb , args : [ b ] , thisArg : v } , k = l && ! k , d && ! g ? k ? ( h = h . clone ( ) , h . _ _actions _ _ . push ( m ) , a . call ( h ) ) : e . call ( v , this . value ( ) ) [ 0 ] : ! d && n ? ( h = k ? h : new oa ( this ) , h = a . apply ( h , f ) , h . _ _actions _ _ . push ( m ) , new sb ( h , g ) ) : this . thru ( b ) } ) } ) , ib ( "join pop push replace shift sort splice split unshift" . split ( " " ) , function ( a ) { var b = ( /^(?:replace|split)$/ . test ( a ) ? Ad : mf ) [ a ] , c = /^(?:push|sort|unshift)$/ . test ( a ) ? "tap" :
"thru" , d = /^(?:join|pop|replace|shift)$/ . test ( a ) ; D . prototype [ a ] = function ( ) { var a = arguments ; return d && ! this . _ _chain _ _ ? b . apply ( this . value ( ) , a ) : this [ c ] ( function ( c ) { return b . apply ( c , a ) } ) } } ) , Gb ( oa . prototype , function ( a , b ) { var c = D [ b ] ; if ( c ) { var d = c . name + "" ; ( Xc [ d ] || ( Xc [ d ] = [ ] ) ) . push ( { name : b , func : c } ) } } ) , Xc [ Rc ( v , J ) . name ] = [ { name : "wrapper" , func : v } ] , oa . prototype . clone = function ( ) { var a = new oa ( this . _ _wrapped _ _ ) ; return a . _ _actions _ _ = Ya ( this . _ _actions _ _ ) , a . _ _dir _ _ = this . _ _dir _ _ , a . _ _filtered _ _ = this . _ _filtered _ _ , a . _ _iteratees _ _ =
Ya ( this . _ _iteratees _ _ ) , a . _ _takeCount _ _ = this . _ _takeCount _ _ , a . _ _views _ _ = Ya ( this . _ _views _ _ ) , a } , oa . prototype . reverse = function ( ) { if ( this . _ _filtered _ _ ) { var a = new oa ( this ) ; a . _ _dir _ _ = - 1 ; a . _ _filtered _ _ = ! 0 } else a = this . clone ( ) , a . _ _dir _ _ *= - 1 ; return a } , oa . prototype . value = function ( ) { var a , b = this . _ _wrapped _ _ . value ( ) , c = this . _ _dir _ _ , d = ia ( b ) , e = 0 > c , f = d ? b . length : 0 ; a = f ; for ( var g = this . _ _views _ _ , h = 0 , k = - 1 , l = g . length ; ++ k < l ; ) { var m = g [ k ] , n = m . size ; switch ( m . type ) { case "drop" : h += n ; break ; case "dropRight" : a -= n ; break ; case "take" : a =
eb ( a , h + n ) ; break ; case "takeRight" : h = Qa ( h , a - n ) } } if ( a = { start : h , end : a } , g = a . start , h = a . end , a = h - g , e = e ? h : g - 1 , g = this . _ _iteratees _ _ , h = g . length , k = 0 , l = eb ( a , this . _ _takeCount _ _ ) , ! d || f < U || f == a && l == a ) return qf ( b , this . _ _actions _ _ ) ; d = [ ] ; a : for ( ; a -- && k < l ; ) { e += c ; f = - 1 ; for ( m = b [ e ] ; ++ f < h ; ) { var p = g [ f ] , n = p . type , p = p . iteratee ( m ) ; if ( n == da ) m = p ; else if ( ! p ) { if ( n == S ) continue a ; break a } } d [ k ++ ] = m } return d } , D . prototype . chain = function ( ) { return Cd ( this ) } , D . prototype . commit = function ( ) { return new sb ( this . value ( ) , this . _ _chain _ _ ) } , D . prototype . concat =
Ef , D . prototype . plant = function ( a ) { for ( var b , c = this ; c instanceof Ua ; ) { var d = vc ( c ) ; b ? e . _ _wrapped _ _ = d : b = d ; var e = d , c = c . _ _wrapped _ _ } return e . _ _wrapped _ _ = a , b } , D . prototype . reverse = function ( ) { function a ( a ) { return a . reverse ( ) } var b = this . _ _wrapped _ _ ; return b instanceof oa ? ( this . _ _actions _ _ . length && ( b = new oa ( this ) ) , b = b . reverse ( ) , b . _ _actions _ _ . push ( { func : Mb , args : [ a ] , thisArg : v } ) , new sb ( b , this . _ _chain _ _ ) ) : this . thru ( a ) } , D . prototype . toString = function ( ) { return this . value ( ) + "" } , D . prototype . run = D . prototype . toJSON = D . prototype . valueOf =
D . prototype . value = function ( ) { return qf ( this . _ _wrapped _ _ , this . _ _actions _ _ ) } , D . prototype . collect = D . prototype . map , D . prototype . head = D . prototype . first , D . prototype . select = D . prototype . filter , D . prototype . tail = D . prototype . rest , D } var v , I = "3.10.1" , H = 1 , J = 2 , K = 4 , O = 8 , V = 16 , X = 32 , L = 64 , T = 128 , W = 256 , ca = 30 , B = "..." , P = 150 , na = 16 , U = 200 , S = 1 , da = 2 , Q = "Expected a function" , ka = "__lodash_placeholder__" , ga = "[object Arguments]" , Z = "[object Array]" , va = "[object Boolean]" , sa = "[object Date]" , ja = "[object Error]" , Ga = "[object Function]" , wa =
"[object Number]" , qa = "[object Object]" , ra = "[object RegExp]" , Aa = "[object String]" , qb = "[object ArrayBuffer]" , ba = "[object Float32Array]" , xb = "[object Float64Array]" , La = "[object Int8Array]" , jb = "[object Int16Array]" , Sa = "[object Int32Array]" , Ta = "[object Uint8Array]" , rb = "[object Uint8ClampedArray]" , Ob = "[object Uint16Array]" , cc = "[object Uint32Array]" , Zc = /\b__p\+='';/g , Fa = /\b(__p\+=)''\+/g , Pf = /(__e\(.*?\)|\b__t\))\+'';/g , ze = /&(?:amp|lt|gt|quot|#39|#96);/g , nc = /[&<>"'`]/g , Ye = RegExp ( ze . source ) , Ze = RegExp ( nc . source ) ,
af = /<%-([\s\S]+?)%>/g , Ia = /<%([\s\S]+?)%>/g , jd = /<%=([\s\S]+?)%>/g , kd = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/ , cf = /^\w*$/ , ld = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g , Ec = /^[:!,]|[\\^$.*+?()[\]{}|\/]|(^[0-9a-fA-Fnrtuvx])|([\n\r\u2028\u2029])/g , Od = RegExp ( Ec . source ) , md = /[\u0300-\u036f\ufe20-\ufe23]/g , Hb = /\\(\\)?/g , fc = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g , Sb = /\w*$/ , Gc = /^0[xX]/ , Ib = /^\[object .+?Constructor\]$/ , oc = /^\d+$/ , Hc = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g ,
Tb = /($^)/ , df = /['\n\r\u2028\u2029\\]/g , jg = RegExp ( "[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+" , "g" ) , kg = "Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout isFinite parseFloat parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap" . split ( " " ) ,
Ca = { } ; Ca [ ba ] = Ca [ xb ] = Ca [ La ] = Ca [ jb ] = Ca [ Sa ] = Ca [ Ta ] = Ca [ rb ] = Ca [ Ob ] = Ca [ cc ] = ! 0 ; Ca [ ga ] = Ca [ Z ] = Ca [ qb ] = Ca [ va ] = Ca [ sa ] = Ca [ ja ] = Ca [ Ga ] = Ca [ "[object Map]" ] = Ca [ wa ] = Ca [ qa ] = Ca [ ra ] = Ca [ "[object Set]" ] = Ca [ Aa ] = Ca [ "[object WeakMap]" ] = ! 1 ; var Ba = { } ; Ba [ ga ] = Ba [ Z ] = Ba [ qb ] = Ba [ va ] = Ba [ sa ] = Ba [ ba ] = Ba [ xb ] = Ba [ La ] = Ba [ jb ] = Ba [ Sa ] = Ba [ wa ] = Ba [ qa ] = Ba [ ra ] = Ba [ Aa ] = Ba [ Ta ] = Ba [ rb ] = Ba [ Ob ] = Ba [ cc ] = ! 0 ; Ba [ ja ] = Ba [ Ga ] = Ba [ "[object Map]" ] = Ba [ "[object Set]" ] = Ba [ "[object WeakMap]" ] = ! 1 ; var kb = { "\u00c0" : "A" , "\u00c1" : "A" , "\u00c2" : "A" , "\u00c3" : "A" , "\u00c4" : "A" ,
"\u00c5" : "A" , "\u00e0" : "a" , "\u00e1" : "a" , "\u00e2" : "a" , "\u00e3" : "a" , "\u00e4" : "a" , "\u00e5" : "a" , "\u00c7" : "C" , "\u00e7" : "c" , "\u00d0" : "D" , "\u00f0" : "d" , "\u00c8" : "E" , "\u00c9" : "E" , "\u00ca" : "E" , "\u00cb" : "E" , "\u00e8" : "e" , "\u00e9" : "e" , "\u00ea" : "e" , "\u00eb" : "e" , "\u00cc" : "I" , "\u00cd" : "I" , "\u00ce" : "I" , "\u00cf" : "I" , "\u00ec" : "i" , "\u00ed" : "i" , "\u00ee" : "i" , "\u00ef" : "i" , "\u00d1" : "N" , "\u00f1" : "n" , "\u00d2" : "O" , "\u00d3" : "O" , "\u00d4" : "O" , "\u00d5" : "O" , "\u00d6" : "O" , "\u00d8" : "O" , "\u00f2" : "o" , "\u00f3" : "o" , "\u00f4" : "o" , "\u00f5" : "o" ,
"\u00f6" : "o" , "\u00f8" : "o" , "\u00d9" : "U" , "\u00da" : "U" , "\u00db" : "U" , "\u00dc" : "U" , "\u00f9" : "u" , "\u00fa" : "u" , "\u00fb" : "u" , "\u00fc" : "u" , "\u00dd" : "Y" , "\u00fd" : "y" , "\u00ff" : "y" , "\u00c6" : "Ae" , "\u00e6" : "ae" , "\u00de" : "Th" , "\u00fe" : "th" , "\u00df" : "ss" } , Jb = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "`" : "`" } , Pd = { "&" : "&" , "<" : "<" , ">" : ">" , """ : '"' , "'" : "'" , "`" : "`" } , ab = { "function" : ! 0 , object : ! 0 } , Gd = { 0 : "x30" , 1 : "x31" , 2 : "x32" , 3 : "x33" , 4 : "x34" , 5 : "x35" , 6 : "x36" , 7 : "x37" , 8 : "x38" , 9 : "x39" ,
A : "x41" , B : "x42" , C : "x43" , D : "x44" , E : "x45" , F : "x46" , a : "x61" , b : "x62" , c : "x63" , d : "x64" , e : "x65" , f : "x66" , n : "x6e" , r : "x72" , t : "x74" , u : "x75" , v : "x76" , x : "x78" } , Bb = { "\\" : "\\" , "'" : "'" , "\n" : "n" , "\r" : "r" , "\u2028" : "u2028" , "\u2029" : "u2029" } , tb = ab [ typeof exports ] && exports && ! exports . nodeType && exports , Ua = ab [ typeof module ] && module && ! module . nodeType && module , Rd = ab [ typeof self ] && self && self . Object && self , Ac = ab [ typeof window ] && window && Object && window , Id = Ua && Ua . exports === tb && tb , zb = tb && Ua && "object" == typeof global && global && global . Object &&
global || Ac !== ( this && this . window ) && Ac || Rd || this , Fb = p ( ) ; "function" == typeof define && "object" == typeof define . amd && define . amd ? ( zb . _ = Fb , define ( function ( ) { return Fb } ) ) : tb && Ua ? Id ? ( Ua . exports = Fb ) . _ = Fb : tb . _ = Fb : zb . _ = Fb } ) . call ( this ) ;
( function ( a , l ) { a ( function ( ) { function a ( a , b ) { return null != a && null != b && a . toLowerCase ( ) === b . toLowerCase ( ) } function e ( a , b ) { var c , e , f = a . length ; if ( ! f || ! b ) return ! 1 ; c = b . toLowerCase ( ) ; for ( e = 0 ; e < f ; ++ e ) if ( c === a [ e ] . toLowerCase ( ) ) return ! 0 ; return ! 1 } function c ( a ) { for ( var b in a ) q . call ( a , b ) && ( a [ b ] = new RegExp ( a [ b ] , "i" ) ) } function b ( a , b ) { this . ua = a || "" ; this . _cache = { } ; this . maxPhoneWidth = b || 600 } var g = { mobileDetectRules : { phones : { iPhone : "\\biPhone\\b|\\biPod\\b" , BlackBerry : "BlackBerry|\\bBB10\\b|rim[0-9]+" , HTC : "HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m" ,
Nexus : "Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6" , Dell : "Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b" , Motorola : "Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b" ,
Samsung : " \ \ bSamsung \ \ b | SM - G9250 | GT - 19300 | SGH - I337 | BGT - S5230 | GT - B2100 | GT - B2700 | GT - B2710 | GT - B3210 | GT - B3310 | GT - B3410 | GT - B3730 | GT - B3740 | GT - B5510 | GT - B5512 | GT - B5722 | GT - B6520 | GT - B7300 | GT - B7320 | GT - B7330 | GT - B7350 | GT - B7510 | GT - B7722 | GT - B7800 | GT - C3010 | GT - C3011 | GT - C3060 | GT - C3200 | GT - C3212 | GT - C3212I | GT - C3262 | GT - C3222 | GT - C3300 | GT - C3300K | GT - C3303 | GT - C3303K | GT - C3310 | GT - C3322 | GT - C3330 | GT - C3350 | GT - C3500 | GT - C3510 | GT - C3530 | GT - C3630 | GT - C3780 | GT - C5010 | GT - C5212 | GT - C6620 | GT - C6625 | GT - C6712 | GT - E1050 | GT - E1070 | GT - E1075 | GT - E1080 | GT - E1081 | GT - E1085 | GT - E1087 | GT - E1100 | GT - E1107 | GT - E1110 | GT - E1120 | GT - E1125 | GT - E1130 | GT - E1160 | GT - E1170 | GT - E1175 | GT - E1180 | GT - E1182 | GT - E1200 | GT - E1210 | GT - E1225 | GT - E1230 | GT - E1390 | GT - E2100 | GT - E2120 | GT - E2121 | GT - E2152 | GT - E2220 | GT - E2222 | GT - E2230 | GT - E2232 | GT - E2250 | GT - E2370 | GT - E2550 | GT - E2652 | GT - E3210 | GT - E3213 | GT - I5500 | GT - I5503 | GT - I5700 | GT - I5800 | GT - I5801 | GT - I6410 | GT - I6420 | GT - I7110 | GT - I7410 | GT - I7500 | GT - I8000 | GT - I8150 | GT - I8160 | GT - I8190 | GT - I8320 | GT - I8330 | GT - I8350 | GT - I8530 | GT - I8700 | GT - I8703 | GT - I8910 | GT - I9000 | GT - I9001 | GT - I9003 | GT - I9010 | GT - I9020 | GT - I9023 | GT - I9070 | GT - I9082 | GT - I9100 | GT - I9103 | GT - I9220 | GT - I9250 | GT - I9300 | GT - I9305 | GT - I9500 | GT - I9505 | GT - M3510 | GT - M5650 | GT - M7500 | GT - M7600 | GT - M7603 | GT - M8800 | GT - M8910 | GT - N7000 | GT - S3110 | GT - S3310 | GT - S3350 | GT - S3353 | GT - S3370 | GT - S3650 | GT - S3653 | GT - S3770 | GT - S3850 | GT - S5210 | GT - S5220 | GT - S5229 | GT - S5230 | GT - S5233 | GT - S5250 | GT - S5253 | GT - S5260 | GT - S5263 | GT - S5270 | GT - S5300 | GT - S5330 | GT - S5350 | GT - S5360 | GT - S5363 | GT - S5369 | GT - S5380 | GT - S5380D | GT - S5560 | GT - S5570 | GT - S5600 | GT - S5603 | GT - S5610 | GT - S5620 | GT - S5660 | GT - S5670 | GT - S5690 | GT - S5750 | GT - S5780 | GT - S5830 | GT - S5839 | GT - S6102 | GT - S6500 | GT - S7070 | GT - S7200 | GT - S7220 | GT - S7230 | GT - S7233 | GT - S7250 | GT - S7500 | GT - S7530 | GT - S7550 | GT - S7562 | GT - S7710 | GT - S8000 | GT - S8003 | GT - S8500 | GT - S8530 | GT - S8600 | SCH - A310 | SCH - A530 | SCH - A570 | SCH - A610 | SCH - A630 | SCH - A650 | SCH - A790 | SCH - A795 | SCH - A850 | SCH - A870 | SCH - A890 | SCH - A930 | SCH - A950 | SCH - A970 | SCH - A990 | SCH - I100 | SCH - I110 | SCH - I400 | SCH - I405 | SCH - I500 | SCH - I510 | SCH - I515 | SCH - I600 | SCH - I730 | SCH - I760 | SCH - I770 | SCH - I830 | SCH - I910 | SCH - I920 | SCH - I959 | SCH - LC11 | SCH - N150 | SCH - N300 | SCH - R100 | SCH - R300 | SCH - R351 | SCH - R400 | SCH - R410 | SCH - T300 | SCH - U310 | SCH - U320 | SCH - U350 | SCH - U360 | SCH - U365 | SCH - U370 | SCH - U380 | SCH - U410 | SCH - U430 | SCH - U450 | SCH - U460 | SCH - U470 | SCH - U490 | SCH - U540 | SCH - U550 | SCH - U620 | SCH - U640 | SCH - U650 | SCH - U660 | SCH - U700 | SCH - U740 | SCH - U750 | SCH - U810 | SCH - U820 | SCH - U900 | SCH - U940 | SCH - U960 | SCS - 26 UC | SGH - A107 | SGH - A117 | SGH - A127 | SGH - A137 | SGH - A157 | SGH - A167 | SGH - A177 | SGH - A187 | SGH - A197 | SGH - A227 | SGH - A237 | SGH - A257 | SGH - A437 | SGH - A517 | SGH - A597 | SGH - A637 | SGH - A657 | SGH - A667 | SGH - A687 | SGH - A697 | SGH - A707 | SGH - A717 | SGH - A727 | SGH - A737 | SGH - A747 | SGH - A767 | SGH - A777 | SGH - A797 | SGH - A817 | SGH - A827 | SGH - A837 | SGH - A847 | SGH - A867 | SGH - A877 | SGH - A887 | SGH - A897 | SGH - A927 | SGH - B100 | SGH - B130 | SGH - B200 | SGH - B220 | SGH - C100 | SGH - C110 | SGH - C120 | SGH - C130 | SGH - C140 | SGH - C160 | SGH - C170 | SGH - C180 | SGH - C200 | SGH - C207 | SGH - C210 | SGH - C225 | SGH - C230 | SGH - C417 | SGH - C450 | SGH - D307 | SGH - D347 | SGH - D357 | SGH - D407 | SGH - D415 | SGH - D780 | SGH - D807 | SGH - D980 | SGH - E105 | SGH - E200 | SGH - E315 | SGH - E316 | SGH - E317 | SGH - E335 | SGH - E590 | SGH - E635 | SGH - E715 | SGH - E890 | SGH - F300 | SGH - F480 | SGH - I200 | SGH - I300 | SGH - I320 | SGH - I550 | SGH - I577 | SGH - I600 | SGH - I607 | SGH - I617 | SGH - I627 | SGH - I637 | SGH - I677 | SGH - I700 | SGH - I717 | SGH - I727 | SGH - i747M | SGH - I777 | SGH - I780 | SGH - I827 | SGH - I847 | SGH - I857 | SGH - I896 | SGH - I897 | SGH - I900 | SGH - I907 | SGH - I917 | SGH - I927 | SGH - I937 | SGH - I997 | SGH - J150 | SGH - J200 | SGH - L170 | SGH - L700 | SGH - M110 | SGH - M150 | SGH - M200 | SGH - N105 | SGH - N500 | SGH - N600 | SGH - N620 | SGH - N625 | SGH - N700 | SGH - N710 | SGH - P107 | SGH - P207 | SGH - P300 | SGH - P310 | SGH - P520 | SGH - P735 | SGH - P777 | SGH - Q105 | SGH - R210 | SGH - R220 | SGH - R225 | SGH - S105 | SGH - S307 | SGH - T109 | SGH - T119 | SGH - T139 | SGH - T209 | SGH - T219 | SGH - T229 | SGH - T239 | SGH - T249 | SGH - T259 | SGH - T309 | SGH - T319 | SGH - T329 | SGH - T339 | SGH - T349 | SGH - T359 | SGH - T369 | SGH - T379 | SGH - T409 | SGH - T429 | SGH - T439 | SGH - T459 | SGH - T469 | SGH - T479 | SGH - T499 | SGH - T509 | SGH - T519 | SGH - T539 | SGH - T559 | SGH - T589 | SGH - T609 | SGH - T619 | SGH - T629 | SGH - T639 | SGH - T659 | SGH - T669 | SGH - T679 | SGH - T709 | SGH - T719 | SGH - T729 | SGH - T739 | SGH - T746 | SGH - T749 | SGH - T759 | SGH - T769 | SGH - T809 | SGH - T819 | SGH - T839 | SGH - T919 | SGH - T929 | SGH - T939 | SGH - T959 | SGH - T989 | SGH - U100 | SGH - U200 | SGH - U800 | SGH - V205 | SGH - V206 | SGH - X100 | SGH - X105 | SGH - X120 | SGH - X140 | SGH - X426 | SGH - X427 | SGH - X475 | SGH - X49
LG : "\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)" ,
Sony : "SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533" , Asus : "Asus.*Galaxy|PadFone.*Mobile" , NokiaLumia : "Lumia [0-9]{3,4}" , Micromax : "Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b" , Palm : "PalmSource|Palm" , Vertu : "Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature" , Pantech : "PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790" ,
Fly : "IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250" , Wiko : "KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM" , iMobile : "i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)" , SimValley : "\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b" ,
Wolfgang : "AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q" , Alcatel : "Alcatel" , Nintendo : "Nintendo 3DS" , Amoi : "Amoi" , INQ : "INQ" , GenericPhone : "Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser" } , tablets : { iPad : "iPad|iPad.*Mobile" , NexusTablet : "Android.*Nexus[\\s]+(7|9|10)" , SamsungTablet : "SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y|SM-T280" ,
Kindle : "Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI)\\b" , SurfaceTablet : "Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)" , HPTablet : "HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10" , AsusTablet : "^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z" ,
BlackBerryTablet : "PlayBook|RIM Tablet" , HTCtablet : "HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410" , MotorolaTablet : "xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617" , NookTablet : "Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2" , AcerTablet : "Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b|\\bA3-A20\\b|\\bA3-A30" ,
ToshibaTablet : "Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO" , LGTablet : "\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b" , FujitsuTablet : "Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b" , PrestigioTablet : "PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002" ,
LenovoTablet : "Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)" , DellTablet : "Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7" , YarvikTablet : "Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b" ,
MedionTablet : "Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB" , ArnovaTablet : "97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2" , IntensoTablet : "INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004" , IRUTablet : "M702pro" , MegafonTablet : "MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b" , EbodaTablet : "E-Boda (Supreme|Impresspeed|Izzycomm|Essential)" , AllViewTablet : "Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)" , ArchosTablet : "\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b" ,
AinolTablet : "NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark" , NokiaLumiaTablet : "Lumia 2520" , SonyTablet : "Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31" , PhilipsTablet : "\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b" ,
CubeTablet : "Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT" , CobyTablet : "MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010" , MIDTablet : "M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10" ,
MSITablet : "MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b" , SMiTTablet : "Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)" , RockChipTablet : "Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A" , FlyTablet : "IQ310|Fly Vision" , bqTablet : "Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris [E|M]10)|Maxwell.*Lite|Maxwell.*Plus" ,
HuaweiTablet : "MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim" , NecTablet : "\\bN-06D|\\bN-08D" , PantechTablet : "Pantech.*P4100" , BronchoTablet : "Broncho.*(N701|N708|N802|a710)" , VersusTablet : "TOUCHPAD.*[78910]|\\bTOUCHTAB\\b" , ZyncTablet : "z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900" , PositivoTablet : "TB07STA|TB10STA|TB07FTA|TB10FTA" , NabiTablet : "Android.*\\bNabi" , KoboTablet : "Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build" , DanewTablet : "DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b" ,
TexetTablet : "NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE" ,
PlaystationTablet : "Playstation.*(Portable|Vita)" , TrekstorTablet : "ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab" , PyleAudioTablet : "\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b" , AdvanTablet : "Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b " , DanyTechTablet : "Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1" ,
GalapadTablet : "Android.*\\bG1\\b" , MicromaxTablet : "Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b" , KarbonnTablet : "Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b" , AllFineTablet : "Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide" , PROSCANTablet : "\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b" ,
YONESTablet : "BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026" , ChangJiaTablet : "TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503" , GUTablet : "TX-A1301|TX-M9002|Q702|kf026" ,
PointOfViewTablet : "TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10" , OvermaxTablet : "OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)" , HCLTablet : "HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync" ,
DPSTablet : "DPS Dream 9|DPS Dual 7" , VistureTablet : "V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10" , CrestaTablet : "CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989" , MediatekTablet : "\\bMT8125|MT8389|MT8135|MT8377\\b" , ConcordeTablet : "Concorde([ ]+)?Tab|ConCorde ReadMan" , GoCleverTablet : "GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042" ,
ModecomTablet : "FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003" , VoninoTablet : "\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b" ,
ECSTablet : "V07OT2|TM105A|S10OT1|TR10CS1" , StorexTablet : "eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab" , VodafoneTablet : "SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497" , EssentielBTablet : "Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2" , RossMoorTablet : "RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711" , iMobileTablet : "i-mobile i-note" , TolinoTablet : "tolino tab [0-9.]+|tolino shine" , AudioSonicTablet : "\\bC-22Q|T7-QC|T-17B|T-17P\\b" , AMPETablet : "Android.* A78 " , SkkTablet : "Android.* (SKYPAD|PHOENIX|CYCLOPS)" ,
TecnoTablet : "TECNO P9" , JXDTablet : "Android.* \\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b" , iJoyTablet : "Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)" ,
FX2Tablet : "FX2 PAD7|FX2 PAD10" , XoroTablet : "KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151" , ViewsonicTablet : "ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a" ,
OdysTablet : "LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10" , CaptivaTablet : "CAPTIVA PAD" , IconbitTablet : "NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S" , TeclastTablet : "T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi" ,
OndaTablet : "\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+" , JaytechTablet : "TPC-PA762" , BlaupunktTablet : "Endeavour 800NG|Endeavour 1010" , DigmaTablet : "\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b" ,
EvolioTablet : "ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b" , LavaTablet : "QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b" , AocTablet : "MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712" , MpmanTablet : "MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\bMPG7\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010" ,
CelkonTablet : "CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b" , WolderTablet : "miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b" , MiTablet : "\\bMI PAD\\b|\\bHM NOTE 1W\\b" , NibiruTablet : "Nibiru M1|Nibiru Jupiter One" , NexoTablet : "NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI" ,
LeaderTablet : "TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100" , UbislateTablet : "UbiSlate[\\s]?7C" , PocketBookTablet : "Pocketbook" , KocasoTablet : "\\b(TB-1207)\\b" , HisenseTablet : "\\b(F5281|E2371)\\b" , Hudl : "Hudl HT7S3|Hudl 2" , TelstraTablet : "T-Hub2" , GenericTablet : "Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bTP750\\b" } ,
oss : { AndroidOS : "Android" , BlackBerryOS : "blackberry|\\bBB10\\b|rim tablet os" , PalmOS : "PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino" , SymbianOS : "Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b" , WindowsMobileOS : "Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;" , WindowsPhoneOS : "Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;" , iOS : "\\biPhone.*Mobile|\\biPod|\\biPad" , MeeGoOS : "MeeGo" ,
MaemoOS : "Maemo" , JavaOS : "J2ME/|\\bMIDP\\b|\\bCLDC\\b" , webOS : "webOS|hpwOS" , badaOS : "\\bBada\\b" , BREWOS : "BREW" } , uas : { Chrome : "\\bCrMo\\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?" , Dolfin : "\\bDolfin\\b" , Opera : "Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+" , Skyfire : "Skyfire" , Edge : "Mobile Safari/[.0-9]* Edge" , IE : "IEMobile|MSIEMobile" , Firefox : "fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS" , Bolt : "bolt" , TeaShark : "teashark" , Blazer : "Blazer" , Safari : "Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari" ,
UCBrowser : "UC.*Browser|UCWEB" , baiduboxapp : "baiduboxapp" , baidubrowser : "baidubrowser" , DiigoBrowser : "DiigoBrowser" , Puffin : "Puffin" , Mercury : "\\bMercury\\b" , ObigoBrowser : "Obigo" , NetFront : "NF-Browser" , GenericBrowser : "NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger" , PaleMoon : "Android.*PaleMoon|Mobile.*PaleMoon" } , props : { Mobile : "Mobile/[VER]" , Build : "Build/[VER]" , Version : "Version/[VER]" , VendorID : "VendorID/[VER]" , iPad : "iPad.*CPU[a-z ]+[VER]" ,
iPhone : "iPhone.*CPU[a-z ]+[VER]" , iPod : "iPod.*CPU[a-z ]+[VER]" , Kindle : "Kindle/[VER]" , Chrome : [ "Chrome/[VER]" , "CriOS/[VER]" , "CrMo/[VER]" ] , Coast : [ "Coast/[VER]" ] , Dolfin : "Dolfin/[VER]" , Firefox : [ "Firefox/[VER]" , "FxiOS/[VER]" ] , Fennec : "Fennec/[VER]" , Edge : "Edge/[VER]" , IE : [ "IEMobile/[VER];" , "IEMobile [VER]" , "MSIE [VER];" , "Trident/[0-9.]+;.*rv:[VER]" ] , NetFront : "NetFront/[VER]" , NokiaBrowser : "NokiaBrowser/[VER]" , Opera : [ " OPR/[VER]" , "Opera Mini/[VER]" , "Version/[VER]" ] , "Opera Mini" : "Opera Mini/[VER]" , "Opera Mobi" : "Version/[VER]" ,
"UC Browser" : "UC Browser[VER]" , MQQBrowser : "MQQBrowser/[VER]" , MicroMessenger : "MicroMessenger/[VER]" , baiduboxapp : "baiduboxapp/[VER]" , baidubrowser : "baidubrowser/[VER]" , SamsungBrowser : "SamsungBrowser/[VER]" , Iron : "Iron/[VER]" , Safari : [ "Version/[VER]" , "Safari/[VER]" ] , Skyfire : "Skyfire/[VER]" , Tizen : "Tizen/[VER]" , Webkit : "webkit[ /][VER]" , PaleMoon : "PaleMoon/[VER]" , Gecko : "Gecko/[VER]" , Trident : "Trident/[VER]" , Presto : "Presto/[VER]" , Goanna : "Goanna/[VER]" , iOS : " \\bi?OS\\b [VER][ ;]{1}" , Android : "Android [VER]" , BlackBerry : [ "BlackBerry[\\w]+/[VER]" ,
"BlackBerry.*Version/[VER]" , "Version/[VER]" ] , BREW : "BREW [VER]" , Java : "Java/[VER]" , "Windows Phone OS" : [ "Windows Phone OS [VER]" , "Windows Phone [VER]" ] , "Windows Phone" : "Windows Phone [VER]" , "Windows CE" : "Windows CE/[VER]" , "Windows NT" : "Windows NT [VER]" , Symbian : [ "SymbianOS/[VER]" , "Symbian/[VER]" ] , webOS : [ "webOS/[VER]" , "hpwOS/[VER];" ] } , utils : { Bot : "Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom" ,
MobileBot : "Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2" , DesktopMode : "WPDesktop" , TV : "SonyDTV|HbbTV" , WebKit : "(webkit)[ /]([\\w.]+)" , Console : "\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\b" , Watch : "SM-V700" } } , detectMobileBrowsers : { fullPattern : /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i ,
shortPattern : /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i ,
tabletPattern : /android|ipad|playbook|silk/i } } , f , q = Object . prototype . hasOwnProperty ; return g . FALLBACK _PHONE = "UnknownPhone" , g . FALLBACK _TABLET = "UnknownTablet" , g . FALLBACK _MOBILE = "UnknownMobile" , f = "isArray" in Array ? Array . isArray : function ( a ) { return "[object Array]" === Object . prototype . toString . call ( a ) } , function ( ) { var a , b , e , h , l , y , C = g . mobileDetectRules ; for ( a in C . props ) if ( q . call ( C . props , a ) ) { b = C . props [ a ] ; f ( b ) || ( b = [ b ] ) ; l = b . length ; for ( h = 0 ; h < l ; ++ h ) e = b [ h ] , y = e . indexOf ( "[VER]" ) , 0 <= y && ( e = e . substring ( 0 , y ) + "([\\w._\\+]+)" +
e . substring ( y + 5 ) ) , b [ h ] = new RegExp ( e , "i" ) ; C . props [ a ] = b } c ( C . oss ) ; c ( C . phones ) ; c ( C . tablets ) ; c ( C . uas ) ; c ( C . utils ) ; C . oss0 = { WindowsPhoneOS : C . oss . WindowsPhoneOS , WindowsMobileOS : C . oss . WindowsMobileOS } } ( ) , g . findMatch = function ( a , b ) { for ( var c in a ) if ( q . call ( a , c ) && a [ c ] . test ( b ) ) return c ; return null } , g . findMatches = function ( a , b ) { var c = [ ] , e ; for ( e in a ) q . call ( a , e ) && a [ e ] . test ( b ) && c . push ( e ) ; return c } , g . getVersionStr = function ( a , b ) { var c , e , f , h ; c = g . mobileDetectRules . props ; if ( q . call ( c , a ) ) for ( c = c [ a ] , f = c . length , e = 0 ; e < f ; ++ e ) if ( h =
c [ e ] . exec ( b ) , null !== h ) return h [ 1 ] ; return null } , g . getVersion = function ( a , b ) { var c = g . getVersionStr ( a , b ) ; return c ? g . prepareVersionNo ( c ) : NaN } , g . prepareVersionNo = function ( a ) { var b ; return b = a . split ( /[a-z._ \/\-]/i ) , 1 === b . length && ( a = b [ 0 ] ) , 1 < b . length && ( a = b [ 0 ] + "." , b . shift ( ) , a += b . join ( "" ) ) , Number ( a ) } , g . isMobileFallback = function ( a ) { return g . detectMobileBrowsers . fullPattern . test ( a ) || g . detectMobileBrowsers . shortPattern . test ( a . substr ( 0 , 4 ) ) } , g . isTabletFallback = function ( a ) { return g . detectMobileBrowsers . tabletPattern . test ( a ) } ,
g . prepareDetectionCache = function ( a , c , e ) { if ( a . mobile === l ) { var f , h , m ; return ( h = g . findMatch ( g . mobileDetectRules . tablets , c ) ) ? ( a . mobile = a . tablet = h , void ( a . phone = null ) ) : ( f = g . findMatch ( g . mobileDetectRules . phones , c ) ) ? ( a . mobile = a . phone = f , void ( a . tablet = null ) ) : void ( g . isMobileFallback ( c ) ? ( m = b . isPhoneSized ( e ) , m === l ? ( a . mobile = g . FALLBACK _MOBILE , a . tablet = a . phone = null ) : m ? ( a . mobile = a . phone = g . FALLBACK _PHONE , a . tablet = null ) : ( a . mobile = a . tablet = g . FALLBACK _TABLET , a . phone = null ) ) : g . isTabletFallback ( c ) ? ( a . mobile = a . tablet = g . FALLBACK _TABLET ,
a . phone = null ) : a . mobile = a . tablet = a . phone = null ) } } , g . mobileGrade = function ( a ) { var b = null !== a . mobile ( ) ; return a . os ( "iOS" ) && 4.3 <= a . version ( "iPad" ) || a . os ( "iOS" ) && 3.1 <= a . version ( "iPhone" ) || a . os ( "iOS" ) && 3.1 <= a . version ( "iPod" ) || 2.1 < a . version ( "Android" ) && a . is ( "Webkit" ) || 7 <= a . version ( "Windows Phone OS" ) || a . is ( "BlackBerry" ) && 6 <= a . version ( "BlackBerry" ) || a . match ( "Playbook.*Tablet" ) || 1.4 <= a . version ( "webOS" ) && a . match ( "Palm|Pre|Pixi" ) || a . match ( "hp.*TouchPad" ) || a . is ( "Firefox" ) && 12 <= a . version ( "Firefox" ) || a . is ( "Chrome" ) &&
a . is ( "AndroidOS" ) && 4 <= a . version ( "Android" ) || a . is ( "Skyfire" ) && 4.1 <= a . version ( "Skyfire" ) && a . is ( "AndroidOS" ) && 2.3 <= a . version ( "Android" ) || a . is ( "Opera" ) && 11 < a . version ( "Opera Mobi" ) && a . is ( "AndroidOS" ) || a . is ( "MeeGoOS" ) || a . is ( "Tizen" ) || a . is ( "Dolfin" ) && 2 <= a . version ( "Bada" ) || ( a . is ( "UC Browser" ) || a . is ( "Dolfin" ) ) && 2.3 <= a . version ( "Android" ) || a . match ( "Kindle Fire" ) || a . is ( "Kindle" ) && 3 <= a . version ( "Kindle" ) || a . is ( "AndroidOS" ) && a . is ( "NookTablet" ) || 11 <= a . version ( "Chrome" ) && ! b || 5 <= a . version ( "Safari" ) && ! b || 4 <= a . version ( "Firefox" ) &&
! b || 7 <= a . version ( "MSIE" ) && ! b || 10 <= a . version ( "Opera" ) && ! b ? "A" : a . os ( "iOS" ) && 4.3 > a . version ( "iPad" ) || a . os ( "iOS" ) && 3.1 > a . version ( "iPhone" ) || a . os ( "iOS" ) && 3.1 > a . version ( "iPod" ) || a . is ( "Blackberry" ) && 5 <= a . version ( "BlackBerry" ) && 6 > a . version ( "BlackBerry" ) || 5 <= a . version ( "Opera Mini" ) && 6.5 >= a . version ( "Opera Mini" ) && ( 2.3 <= a . version ( "Android" ) || a . is ( "iOS" ) ) || a . match ( "NokiaN8|NokiaC7|N97.*Series60|Symbian/3" ) || 11 <= a . version ( "Opera Mobi" ) && a . is ( "SymbianOS" ) ? "B" : ( 5 > a . version ( "BlackBerry" ) || a . match ( "MSIEMobile|Windows CE.*Mobile" ) ||
5.2 >= a . version ( "Windows Mobile" ) , "C" ) } , g . detectOS = function ( a ) { return g . findMatch ( g . mobileDetectRules . oss0 , a ) || g . findMatch ( g . mobileDetectRules . oss , a ) } , g . getDeviceSmallerSide = function ( ) { return window . screen . width < window . screen . height ? window . screen . width : window . screen . height } , b . prototype = { constructor : b , mobile : function ( ) { return g . prepareDetectionCache ( this . _cache , this . ua , this . maxPhoneWidth ) , this . _cache . mobile } , phone : function ( ) { return g . prepareDetectionCache ( this . _cache , this . ua , this . maxPhoneWidth ) , this . _cache . phone } ,
tablet : function ( ) { return g . prepareDetectionCache ( this . _cache , this . ua , this . maxPhoneWidth ) , this . _cache . tablet } , userAgent : function ( ) { return this . _cache . userAgent === l && ( this . _cache . userAgent = g . findMatch ( g . mobileDetectRules . uas , this . ua ) ) , this . _cache . userAgent } , userAgents : function ( ) { return this . _cache . userAgents === l && ( this . _cache . userAgents = g . findMatches ( g . mobileDetectRules . uas , this . ua ) ) , this . _cache . userAgents } , os : function ( ) { return this . _cache . os === l && ( this . _cache . os = g . detectOS ( this . ua ) ) , this . _cache . os } ,
version : function ( a ) { return g . getVersion ( a , this . ua ) } , versionStr : function ( a ) { return g . getVersionStr ( a , this . ua ) } , is : function ( b ) { return e ( this . userAgents ( ) , b ) || a ( b , this . os ( ) ) || a ( b , this . phone ( ) ) || a ( b , this . tablet ( ) ) || e ( g . findMatches ( g . mobileDetectRules . utils , this . ua ) , b ) } , match : function ( a ) { return a instanceof RegExp || ( a = new RegExp ( a , "i" ) ) , a . test ( this . ua ) } , isPhoneSized : function ( a ) { return b . isPhoneSized ( a || this . maxPhoneWidth ) } , mobileGrade : function ( ) { return this . _cache . grade === l && ( this . _cache . grade = g . mobileGrade ( this ) ) ,
this . _cache . grade } } , "undefined" != typeof window && window . screen ? b . isPhoneSized = function ( a ) { return 0 > a ? l : g . getDeviceSmallerSide ( ) <= a } : b . isPhoneSized = function ( ) { } , b . _impl = g , b . version = "1.3.5 2016-11-14" , b } ) } ) ( function ( a ) { if ( "undefined" != typeof module && module . exports ) return function ( a ) { module . exports = a ( ) } ; if ( "function" == typeof define && define . amd ) return define ; if ( "undefined" != typeof window ) return function ( a ) { window . MobileDetect = a ( ) } ; throw Error ( "unknown environment" ) ; } ( ) ) ;
( function ( a , l ) { function h ( a ) { var b = [ ] ; return t ( b , q ) . chars ( a ) , b . join ( "" ) } var e , c , b , g , f , q , m , n , t , x = l . $$minErr ( "$sanitize" ) ; l . module ( "ngSanitize" , [ ] ) . provider ( "$sanitize" , function ( ) { function h ( a , b ) { var c , e = { } , g = a . split ( "," ) ; for ( c = 0 ; c < g . length ; c ++ ) e [ b ? f ( g [ c ] ) : g [ c ] ] = ! 0 ; return e } function y ( a ) { for ( var b = { } , c = 0 , e = a . length ; c < e ; c ++ ) { var f = a [ c ] ; b [ f . name ] = f . value } return b } function C ( a ) { return a . replace ( /&/g , "&" ) . replace ( v , function ( a ) { var b = a . charCodeAt ( 0 ) ; return a = a . charCodeAt ( 1 ) , "&#" + ( 1024 * ( b - 55296 ) + ( a - 56320 ) +
65536 ) + ";" } ) . replace ( I , function ( a ) { return "&#" + a . charCodeAt ( 0 ) + ";" } ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) } function A ( b ) { for ( ; b ; ) { if ( b . nodeType === a . Node . ELEMENT _NODE ) for ( var c = b . attributes , e = 0 , f = c . length ; e < f ; e ++ ) { var g = c [ e ] , h = g . name . toLowerCase ( ) ; "xmlns:ns1" !== h && 0 !== h . lastIndexOf ( "ns1:" , 0 ) || ( b . removeAttributeNode ( g ) , e -- , f -- ) } ( c = b . firstChild ) && A ( c ) ; b = E ( "nextSibling" , b ) } } function E ( a , b ) { var c = b [ a ] ; if ( c && m . call ( b , c ) ) throw x ( "elclob" , b . outerHTML || b . outerText ) ; return c } var F = ! 1 ; this . $get = [ "$$sanitizeUri" ,
function ( a ) { return F && c ( L , V ) , function ( b ) { var c = [ ] ; return n ( b , t ( c , function ( b , c ) { return ! /^unsafe:/ . test ( a ( b , c ) ) } ) ) , c . join ( "" ) } } ] ; this . enableSvg = function ( a ) { return g ( a ) ? ( F = a , this ) : F } ; e = l . bind ; c = l . extend ; b = l . forEach ; g = l . isDefined ; f = l . lowercase ; q = l . noop ; n = function ( b , c ) { null === b || void 0 === b ? b = "" : "string" != typeof b && ( b = "" + b ) ; p . innerHTML = b ; var e = 5 ; do { if ( 0 === e ) throw x ( "uinput" ) ; e -- ; a . document . documentMode && A ( p ) ; b = p . innerHTML ; p . innerHTML = b } while ( b !== p . innerHTML ) ; for ( e = p . firstChild ; e ; ) { switch ( e . nodeType ) { case 1 : c . start ( e . nodeName . toLowerCase ( ) ,
y ( e . attributes ) ) ; break ; case 3 : c . chars ( e . textContent ) } var f ; if ( ! ( f = e . firstChild ) && ( 1 === e . nodeType && c . end ( e . nodeName . toLowerCase ( ) ) , f = E ( "nextSibling" , e ) , ! f ) ) for ( ; null == f && ( e = E ( "parentNode" , e ) , e !== p ) ; ) f = E ( "nextSibling" , e ) , 1 === e . nodeType && c . end ( e . nodeName . toLowerCase ( ) ) ; e = f } for ( ; e = p . firstChild ; ) p . removeChild ( e ) } ; t = function ( a , c ) { var g = ! 1 , h = e ( a , a . push ) ; return { start : function ( a , e ) { a = f ( a ) ; ! g && X [ a ] && ( g = a ) ; g || ! 0 !== L [ a ] || ( h ( "<" ) , h ( a ) , b ( e , function ( b , e ) { var g = f ( e ) , l = "img" === a && "src" === g || "background" === g ; ! 0 !==
W [ g ] || ! 0 === T [ g ] && ! c ( b , l ) || ( h ( " " ) , h ( e ) , h ( '="' ) , h ( C ( b ) ) , h ( '"' ) ) } ) , h ( ">" ) ) } , end : function ( a ) { a = f ( a ) ; g || ! 0 !== L [ a ] || ! 0 === H [ a ] || ( h ( "</" ) , h ( a ) , h ( ">" ) ) ; a == g && ( g = ! 1 ) } , chars : function ( a ) { g || h ( C ( a ) ) } } } ; m = a . Node . prototype . contains || function ( a ) { return ! ! ( 16 & this . compareDocumentPosition ( a ) ) } ; var p , v = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g , I = /([^#-~ |!])/g , H = h ( "area,br,col,hr,img,wbr" ) , J = h ( "colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr" ) , K = h ( "rp,rt" ) , O = c ( { } , K , J ) , J = c ( { } , J , h ( "address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul" ) ) ,
K = c ( { } , K , h ( "a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var" ) ) , V = h ( "circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan" ) , X = h ( "script,style" ) , L = c ( { } , H , J , K , O ) , T = h ( "background,cite,href,longdesc,src,xlink:href" ) , O = h ( "abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width" ) ,
K = h ( "accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan" ,
! 0 ) , W = c ( { } , T , K , O ) ; ! function ( a ) { if ( ! a . document || ! a . document . implementation ) throw x ( "noinert" ) ; a = a . document . implementation . createHTMLDocument ( "inert" ) ; var b = ( a . documentElement || a . getDocumentElement ( ) ) . getElementsByTagName ( "body" ) ; 1 === b . length ? p = b [ 0 ] : ( b = a . createElement ( "html" ) , p = a . createElement ( "body" ) , b . appendChild ( p ) , a . appendChild ( b ) ) } ( a ) } ) . info ( { angularVersion : "1.6.3" } ) ; l . module ( "ngSanitize" ) . filter ( "linky" , [ "$sanitize" , function ( a ) { var b = /((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i ,
c = /^mailto:/i , e = l . $$minErr ( "linky" ) , f = l . isDefined , g = l . isFunction , m = l . isObject , n = l . isString ; return function ( l , p , q ) { function r ( a ) { a && C . push ( h ( a ) ) } function t ( a , b ) { var c , e = y ( a ) ; C . push ( "<a " ) ; for ( c in e ) C . push ( c + '="' + e [ c ] + '" ' ) ; ! f ( p ) || "target" in e || C . push ( 'target="' , p , '" ' ) ; C . push ( 'href="' , a . replace ( /"/g , """ ) , '">' ) ; r ( b ) ; C . push ( "</a>" ) } if ( null == l || "" === l ) return l ; if ( ! n ( l ) ) throw e ( "notstring" , l ) ; for ( var v , x , y = g ( q ) ? q : m ( q ) ? function ( ) { return q } : function ( ) { return { } } , A = l , C = [ ] ; l = A . match ( b ) ; ) v = l [ 0 ] , l [ 2 ] ||
l [ 4 ] || ( v = ( l [ 3 ] ? "http://" : "mailto:" ) + v ) , x = l . index , r ( A . substr ( 0 , x ) ) , t ( v , l [ 0 ] . replace ( c , "" ) ) , A = A . substring ( x + l [ 0 ] . length ) ; return r ( A ) , a ( C . join ( "" ) ) } } ] ) } ) ( window , window . angular ) ;