( function ( K ) { function Ad ( ) { function O ( d , e ) { d . attr ( "transform" , function ( d ) { return "translate(" + ( e ( d ) + ga ) + ", 0)" } ) } function w ( d , e ) { d . attr ( "transform" , function ( d ) { return "translate(0," + e ( d ) + ")" } ) } function z ( d ) { var e = d [ 0 ] ; d = d [ d . length - 1 ] ; return e < d ? [ e , d ] : [ d , e ] } function A ( d ) { for ( var e = [ ] , m = Math . ceil ( d [ 0 ] ) ; m < d [ 1 ] ; m ++ ) e . push ( m ) ; 0 < e . length && 0 < e [ 0 ] && e . unshift ( e [ 0 ] - ( e [ 1 ] - e [ 0 ] ) ) ; return e } function K ( d , e ) { var m = d . length - 1 ; return m <= W || 0 === e % Math . ceil ( m / W ) } function La ( d ) { d = d < X . length ? X [ d ] : d ; return P ? P ( d ) : d } function m ( m ) { m . each ( function ( ) { var m =
e . select ( this ) , Ka = A ( t . domain ( ) ) , Q = m . selectAll ( ".tick.major" ) . data ( Ka , String ) , R = Q . enter ( ) . insert ( "g" , "path" ) . attr ( "class" , "tick major" ) . style ( "opacity" , 1E-6 ) , ha = e . transition ( Q . exit ( ) ) . style ( "opacity" , 1E-6 ) . remove ( ) , S = e . transition ( Q ) . style ( "opacity" , 1 ) , u , L = t . rangeExtent ? t . rangeExtent ( ) : z ( t . range ( ) ) , m = m . selectAll ( ".domain" ) . data ( [ 0 ] ) ; m . enter ( ) . append ( "path" ) . attr ( "class" , "domain" ) ; var m = e . transition ( m ) , M = t . copy ( ) , Y = this . _ _chart _ _ || M ; this . _ _chart _ _ = M ; R . append ( "line" ) ; R . append ( "text" ) ; var P = R . select ( "line" ) ,
W = S . select ( "line" ) , Z = Q . select ( "text" ) , X = R . select ( "text" ) , ia = S . select ( "text" ) ; ga = ( M ( 1 ) - M ( 0 ) ) / 2 ; Q = oa ? 0 : ga ; switch ( pa ) { case "bottom" : u = O ; P . attr ( "y2" , H ) ; X . attr ( "y" , Math . max ( H , 0 ) + qa ) ; W . attr ( "x1" , Q ) . attr ( "x2" , Q ) . attr ( "y2" , H ) ; ia . attr ( "x" , 0 ) . attr ( "y" , Math . max ( H , 0 ) + qa ) ; Z . attr ( "dy" , ".71em" ) . style ( "text-anchor" , "middle" ) ; Z . text ( function ( d ) { return K ( Ka , d ) ? La ( d ) : "" } ) ; m . attr ( "d" , "M" + L [ 0 ] + "," + d + "V0H" + L [ 1 ] + "V" + d ) ; break ; case "left" : u = w , P . attr ( "x2" , - H ) , X . attr ( "x" , - ( Math . max ( H , 0 ) + qa ) ) , W . attr ( "x2" , - H ) . attr ( "y2" , 0 ) , ia . attr ( "x" ,
- ( Math . max ( H , 0 ) + qa ) ) . attr ( "y" , ga ) , Z . attr ( "dy" , ".32em" ) . style ( "text-anchor" , "end" ) , Z . text ( function ( d ) { return K ( Ka , d ) ? La ( d ) : "" } ) , m . attr ( "d" , "M" + - d + "," + L [ 0 ] + "H0V" + L [ 1 ] + "H" + - d ) } if ( t . ticks ) R . call ( u , Y ) , S . call ( u , M ) , ha . call ( u , M ) ; else { var wb = M . rangeBand ( ) / 2 , ha = function ( d ) { return M ( d ) + wb } ; R . call ( u , ha ) ; S . call ( u , ha ) } } ) } var t = e . scale . linear ( ) , pa = "bottom" , H = 6 , d = 6 , qa = 3 , oa = ! 1 , W = 10 , ga = 0 , P = null , ia = ! 0 , X = [ ] ; m . scale = function ( d ) { if ( ! arguments . length ) return t ; t = d ; return m } ; m . orient = function ( d ) { if ( ! arguments . length ) return pa ;
pa = d in { top : 1 , right : 1 , bottom : 1 , left : 1 } ? d + "" : "bottom" ; return m } ; m . categories = function ( d ) { if ( ! arguments . length ) return X ; X = d ; return m } ; m . tickCentered = function ( d ) { if ( ! arguments . length ) return oa ; oa = d ; return m } ; m . tickFormat = function ( d ) { if ( ! arguments . length ) return P ; P = d ; return m } ; m . tickOffset = function ( ) { return ga } ; m . ticks = function ( d ) { if ( ! arguments . length ) return W ; W = d ; return m } ; m . tickCulling = function ( d ) { if ( ! arguments . length ) return ia ; ia = d ; return m } ; return m } function A ( e ) { return e || 0 === e } function w ( e ) { return "undefined" ===
typeof e } function z ( e ) { return "undefined" !== typeof e } var xb = K . c3 = { } , e = K . d3 ; xb . generate = function ( O ) { var oc , pc , vb , qc , La , m , t , pa , H ; function d ( a , b ) { for ( var c = O , f = 0 ; f < a . length ; f ++ ) { if ( ! ( a [ f ] in c ) ) return b ; c = c [ a [ f ] ] } return c } function qa ( ) { yb = Ma ? Ma : P ( ) ; wa = ga ( ) ; m = 0 ; t = ( h ? zb + tc : 0 ) + ( bb ? bb : cb ? 1 : 40 ) ; pa = 20 + ( h ? 0 : zb ) + ra ; H = db ? db : Ab ? eb || h ? 1 : 40 : 1 ; r = yb - t - H ; q = wa - m - pa ; vb = h ? m : wa - zb - ra ; qc = h ? uc : t ; La = 20 + ra ; Bb = h ? t - uc - tc : r ; fb = h ? q : wa - vb - La ; oc = wa - ra ; pc = t ; oa ( ) } function oa ( ) { Cb = q / 2 ; Na = 0.95 * Cb ; Db = $ ( g . data . targets , "donut" ) ? 0.6 * Na : 0 }
function W ( ) { var a = p . property ( "offsetLeft" ) ; return a ? a : 0 } function ga ( ) { var a = Eb ? Eb : + e . select ( xa ) . style ( "height" ) . replace ( "px" , "" ) ; return 0 < a ? a : 320 } function P ( ) { return + e . select ( xa ) . style ( "width" ) . replace ( "px" , "" ) } function ia ( ) { return r + 2 + t + H } function X ( ) { return 40 } function Ka ( ) { return t + 20 } function xb ( ) { return q - m + 2 } function Bd ( ) { var a = h ? q : r , b = ya ( aa ) / ya ( n . domain ( ) ) , c = za ( ) ; return 1 < c ? a * b / ( c - 1 ) : a } function Q ( ) { var a , b ; Fb = h ? 1 : 0 ; Gb = h ? q : r ; Hb = h ? 0 : q ; Ib = h ? r : 1 ; Jb = h ? 0 : fb ; Kb = h ? Bb : 1 ; n = ha ( Fb , Gb , n ? n . domain ( ) : void 0 ,
function ( ) { return T . tickOffset ( ) } ) ; B = S ( Hb , Ib , B ? B . domain ( ) : void 0 ) ; ba = S ( Hb , Ib , ba ? ba . domain ( ) : void 0 ) ; U = ha ( Fb , Gb , aa , function ( a ) { return a % 1 ? 0 : Lb . tickOffset ( ) } ) ; gb = S ( Jb , Kb ) ; hb = S ( Jb , Kb ) ; a = rc ( ) ; b = Cd ( ) ; T = M ( n , Fd , a , b ) ; Lb = M ( U , Gd , a , b ) ; Mb = e . svg . axis ( ) . scale ( B ) . orient ( Hd ) . tickFormat ( Nb ) . ticks ( Id ) . outerTickSize ( 0 ) ; vc = e . svg . axis ( ) . scale ( ba ) . orient ( Jd ) . tickFormat ( Kd ) . ticks ( Ld ) . outerTickSize ( 0 ) ; R ( ) } function R ( ) { ib = Dd ( ) ; wc = sc ( ) ; xc = sc ( 0.98 ) } function ha ( a , b , c , f ) { var k = ( D ? e . time . scale ( ) : e . scale . linear ( ) ) . range ( [ a , b ] ) ;
k . orgDomain = function ( ) { return k . domain ( ) } ; z ( c ) && k . domain ( c ) ; w ( f ) && ( f = function ( ) { return 0 } ) ; if ( ja ) { var d = k , s , k = function ( a ) { return d ( a ) + f ( a ) } ; for ( s in d ) k [ s ] = d [ s ] ; k . orgDomain = function ( ) { return d . domain ( ) } ; k . domain = function ( a ) { if ( ! arguments . length ) return a = d . domain ( ) , [ a [ 0 ] , a [ 1 ] + 1 ] ; d . domain ( a ) ; return k } } return k } function S ( a , b ) { return e . scale . linear ( ) . range ( [ a , b ] ) } function u ( a ) { return "y2" === Y ( a ) ? ba : B } function L ( a ) { return "y2" === Y ( a ) ? hb : gb } function M ( a , b , c , f ) { a = ( ja ? Ad ( ) : e . svg . axis ( ) ) . scale ( a ) . orient ( b ) ;
a . tickFormat ( c ) . ticks ( f ) ; ja ? a . tickCentered ( Md ) : a . tickOffset = function ( ) { return ( h ? q : r ) * ( ya ( aa ) / ya ( n . domain ( ) ) ) / za ( ) / 2 } ; ja && a . categories ( Oa ) ; return a } function Y ( a ) { return a in yc ? yc [ a ] : "y" } function rc ( ) { var a = D ? Nd : ja ? Od : null ; jb && ( "function" === typeof jb ? a = jb : D && ( a = function ( a ) { return e . time . format ( jb ) ( a ) } ) ) ; return a } function Cd ( ) { var a = za ( ) ; return Pd && a > zc ? zc : a } function Z ( a ) { var b = ! 1 ; Ob ( g . data . targets ) . forEach ( function ( c ) { b || c . data . id !== a . data . id || ( b = ! 0 , a = c ) } ) ; return b ? a : null } function Dd ( ) { var a = e . svg . arc ( ) . outerRadius ( Na ) . innerRadius ( Db ) ,
b = function ( b , f ) { var k ; return f ? a ( b ) : ( k = Z ( b ) ) ? a ( k ) : "M 0 0" } ; b . centroid = a . centroid ; return b } function sc ( a ) { var b = e . svg . arc ( ) . outerRadius ( Cb * ( a ? a : 1 ) ) . innerRadius ( Db ) ; return function ( a ) { return ( a = Z ( a ) ) ? b ( a ) : "M 0 0" } } function wb ( a ) { a = Z ( a ) ; var b , c ; b = "" ; a && ( b = ib . centroid ( a ) , a = b [ 0 ] , b = b [ 1 ] , c = Math . sqrt ( a * a + b * b ) , b = "translate(" + 0.8 * ( a / c ) * Na + "," + 0.8 * ( b / c ) * Na + ")" ) ; return b } function Ed ( a ) { return Qd ( a , ( a . endAngle - a . startAngle ) / ( 2 * Math . PI ) ) } function Ac ( a , b ) { var c = p . selectAll ( ".chart-arc" + ka ( a ) ) , f = p . selectAll ( ".-arc" ) . filter ( function ( b ) { return b . data . id !==
a } ) ; c . selectAll ( "path" ) . transition ( ) . duration ( 50 ) . attr ( "d" , wc ) . transition ( ) . duration ( 100 ) . attr ( "d" , xc ) . each ( function ( a ) { Pb ( a . data ) } ) ; b || f . style ( "opacity" , 0.3 ) } function Qb ( a ) { p . selectAll ( ".chart-arc" + ka ( a ) ) . selectAll ( "path" ) . transition ( ) . duration ( 50 ) . attr ( "d" , ib ) ; p . selectAll ( ".-arc" ) . style ( "opacity" , 1 ) } function Rd ( a ) { var b = Bc ( a ) , c , f , k , d ; if ( 0 < v . length ) for ( d = Cc ( a ) , a = 0 ; a < v . length ; a ++ ) for ( f = v [ a ] [ 0 ] , d && b [ f ] && b [ f ] . forEach ( function ( a , c ) { b [ f ] [ c ] = 0 > a ? a : 0 } ) , c = 1 ; c < v [ a ] . length ; c ++ ) k = v [ a ] [ c ] , b [ k ] && b [ k ] . forEach ( function ( a ,
c ) { Y ( k ) !== Y ( f ) || ! b [ f ] || d && 0 < + a || ( b [ f ] [ c ] += + a ) } ) ; return e . min ( Object . keys ( b ) . map ( function ( a ) { return e . min ( b [ a ] ) } ) ) } function Sd ( a ) { var b = Bc ( a ) , c , f , k , d ; if ( 0 < v . length ) for ( d = Td ( a ) , a = 0 ; a < v . length ; a ++ ) for ( f = v [ a ] [ 0 ] , d && b [ f ] && b [ f ] . forEach ( function ( a , c ) { b [ f ] [ c ] = 0 < a ? a : 0 } ) , c = 1 ; c < v [ a ] . length ; c ++ ) k = v [ a ] [ c ] , b [ k ] && b [ k ] . forEach ( function ( a , c ) { Y ( k ) !== Y ( f ) || ! b [ f ] || d && 0 > + a || ( b [ f ] [ c ] += + a ) } ) ; return e . max ( Object . keys ( b ) . map ( function ( a ) { return e . max ( b [ a ] ) } ) ) } function kb ( a ) { var b = lb ( function ( b ) { return Y ( b . id ) === a } ) , c = "y2" ===
a ? Ud : Vd , f = "y2" === a ? Wd : Xd , c = c ? c : Rd ( b ) , f = f ? f : Sd ( b ) , k = 0.22 * Math . abs ( f - c ) , d = k , e = k , h = "y2" === a ? Yd : Zd ; h && ( c = Math . max ( Math . abs ( c ) , Math . abs ( f ) ) , f = c - h , c = h - c ) ; "y" === a && Pa && ( d = A ( Pa . top ) ? Pa . top : k , e = A ( Pa . bottom ) ? Pa . bottom : k ) ; "y2" === a && Qa && ( d = A ( Qa . top ) ? Qa . top : k , e = A ( Qa . bottom ) ? Qa . bottom : k ) ; $ ( b , "bar" ) && ! Cc ( b ) && ( e = c ) ; return [ c - e , f + d ] } function $d ( a ) { return e . min ( a , function ( a ) { return e . min ( a . values , function ( a ) { return a . x } ) } ) } function ae ( a ) { return e . max ( a , function ( a ) { return e . max ( a . values , function ( a ) { return a . x } ) } ) } function mb ( a ) { var b =
[ $d ( a ) , ae ( a ) ] , c = b [ 0 ] , f = b [ 1 ] , b = Math . abs ( b [ 0 ] - b [ 1 ] ) ; a = ja ? 0 : $ ( a , "bar" ) ? b / ( za ( ) - 1 ) / 2 : 0.01 * b ; c = D ? new Date ( c . getTime ( ) - a ) : c - a ; f = D ? new Date ( f . getTime ( ) + a ) : f + a ; return [ c , f ] } function ya ( a ) { return a [ 1 ] - a [ 0 ] } function be ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) if ( ! ( a [ b ] in nb ) ) return ! 1 ; return ! 0 } function ce ( a ) { for ( var b = [ ] , c = 0 ; c < a . length ; c ++ ) a [ c ] in nb && b . push ( Dc ( nb [ a [ c ] ] ) ) ; return b } function Rb ( a ) { return "start" in a ? n ( D ? sa ( a . start ) : a . start ) : 0 } function Ec ( a ) { var b = Rb ( a ) ; a = ( "end" in a ? n ( D ? sa ( a . end ) : a . end ) : r ) - b ; return 0 > a ? 0 : a }
function Fc ( a ) { return ta && a === ta || ca && de ( ca , a ) } function ee ( a ) { return ! Fc ( a ) } function fe ( a ) { Object . keys ( a ) . forEach ( function ( b ) { ca [ b ] = a [ b ] } ) } function ob ( a ) { var b ; a && ( b = Ra [ a . id ] , a . name = b ? b : a . id ) ; return a } function Gc ( a ) { var b = a [ 0 ] , c = { } , f = [ ] , k , d ; for ( k = 1 ; k < a . length ; k ++ ) { c = { } ; for ( d = 0 ; d < a [ k ] . length ; d ++ ) c [ b [ d ] ] = a [ k ] [ d ] ; f . push ( c ) } return f } function Hc ( a ) { var b = [ ] , c , f , k ; for ( c = 0 ; c < a . length ; c ++ ) for ( k = a [ c ] [ 0 ] , f = 1 ; f < a [ c ] . length ; f ++ ) w ( b [ f - 1 ] ) && ( b [ f - 1 ] = { } ) , b [ f - 1 ] [ k ] = a [ c ] [ f ] ; return b } function Sa ( a ) { var b = e . keys ( a [ 0 ] ) . filter ( ee ) ,
c = e . keys ( a [ 0 ] ) . filter ( Fc ) ; if ( D && 0 === c . length ) return K . alert ( 'data.x or data.xs must be specified when axis.x.type == "timeseries"' ) , [ ] ; Sb && b . forEach ( function ( b ) { var k = ta ? ta : ca ? ca [ b ] : null ; 0 <= c . indexOf ( k ) ? g . data . x [ b ] = a . map ( function ( a ) { return a [ k ] } ) : g . data . x [ b ] = g . data . x [ Object . keys ( g . data . x ) [ 0 ] ] } ) ; b = b . map ( function ( b ) { var c = ge ( b ) ; return { id : c , id _org : b , values : a . map ( function ( a , d ) { var e ; e = ta ? ta : ca ? ca [ b ] : null ; e = D ? sa ( a [ e ] ) : Sb ? a [ e ] ? + a [ e ] : b in g . data . x && g . data . x [ b ] && g . data . x [ b ] [ d ] ? g . data . x [ b ] [ d ] : d : d ; a . x = e ; return { x : e ,
value : null === a [ b ] || isNaN ( a [ b ] ) ? null : + a [ b ] , id : c } } ) } } ) ; b . forEach ( function ( a ) { var b ; a . values = a . values . sort ( function ( a , b ) { return ( a . x || 0 === a . x ? a . x : Infinity ) - ( b . x || 0 === b . x ? b . x : Infinity ) } ) ; b = 0 ; a . values . forEach ( function ( a ) { a . index = b ++ } ) } ) ; Ic && da ( Ta ( b ) . filter ( function ( a ) { return ! ( a in y ) } ) , Ic ) ; b . forEach ( function ( a ) { nb [ a . id _org ] = Dc ( a ) } ) ; return b } function Dc ( a ) { return { id : a . id , id _org : a . id _org , values : a . values . map ( function ( a ) { return { x : a . x , value : a . value , id : a . id } } ) } } function Jc ( a ) { return 0 < a && g . data . targets [ 0 ] . values [ a -
1 ] ? g . data . targets [ 0 ] . values [ a - 1 ] . x : void 0 } function za ( ) { return e . max ( g . data . targets , function ( a ) { return a . values . length } ) } function he ( ) { var a = g . data . targets . length , b = 0 , c ; 1 < a ? g . data . targets . forEach ( function ( a ) { a . values . length > b && ( c = a , b = a . values . length ) } ) : c = a ? g . data . targets [ 0 ] : null ; return c } function Ta ( a ) { a = w ( a ) ? g . data . targets : a ; return a . map ( function ( a ) { return a . id } ) } function Kc ( a ) { var b = Ta ( ) , c ; for ( c = 0 ; c < b . length ; c ++ ) if ( b [ c ] === a ) return ! 0 ; return ! 1 } function lb ( a ) { return z ( a ) ? g . data . targets . filter ( a ) : g . data . targets }
function Bc ( a ) { var b = { } ; a . forEach ( function ( a ) { b [ a . id ] = [ ] ; a . values . forEach ( function ( f ) { b [ a . id ] . push ( f . value ) } ) } ) ; return b } function Lc ( a , b ) { var c = Object . keys ( a ) , f , k , d ; for ( f = 0 ; f < c . length ; f ++ ) for ( d = a [ c [ f ] ] . values , k = 0 ; k < d . length ; k ++ ) if ( b ( d [ k ] . value ) ) return ! 0 ; return ! 1 } function Cc ( a ) { return Lc ( a , function ( a ) { return 0 > a } ) } function Td ( a ) { return Lc ( a , function ( a ) { return 0 < a } ) } function Od ( a ) { return a < Oa . length ? Oa [ a ] : a } function ie ( a ) { return "-text -text-" + a . id } function je ( a ) { return "-texts -texts-" + a . id } function Ua ( a ) { return "-shapes -shapes-" +
a . id } function Mc ( a ) { return Ua ( a ) + " -line -line-" + a . id } function ke ( a ) { return Ua ( a ) + " -circles -circles-" + a . id } function Nc ( a ) { return Ua ( a ) + " -bars -bars-" + a . id } function le ( a ) { return Ua ( a . data ) + " -arc -arc-" + a . data . id } function me ( a ) { return Ua ( a ) + " -area -area-" + a . id } function ne ( a , b ) { return "-shape -shape-" + b + " -circle -circle-" + b } function Oc ( a , b ) { return "-shape -shape-" + b + " -bar -bar-" + b } function oe ( a , b ) { return "region region-" + b + " " + ( "classes" in a ? [ ] . concat ( a . classes ) . join ( " " ) : "" ) } function Pc ( a , b ) { return "event-rect event-rect-" +
b } function Aa ( a ) { return Tb [ a . id ] ? 1 : 0 } function pe ( a ) { var b = Qc ( a ) ; return Aa ( a ) * b } function qe ( a ) { return A ( a . value ) ? Rc ( a ) ? 0.5 : 1 : 0 } function Qc ( a ) { return "boolean" === typeof Ba && Ba || "boolean" === Ba [ a . id ] && Ba [ a . id ] || Ba [ a . id ] && Ba [ a . id ] . show ? 1 : 0 } function Ca ( a ) { return a ? n ( a . x ) : null } function Va ( a ) { return n ( D ? sa ( a . value ) : a . value ) } function Wa ( a ) { return B ( a . value ) } function Sc ( a ) { return U ( a . x ) } function Tc ( a ) { return ( Nb ? Nb : function ( a ) { return + a } ) ( a ) } function Uc ( a , b ) { var c , f = a [ b ] . x , k = [ ] ; for ( c = b - 1 ; 0 <= c && f === a [ c ] . x ; c -- ) k . push ( a [ c ] ) ;
for ( c = b ; c < a . length && f === a [ c ] . x ; c ++ ) k . push ( a [ c ] ) ; return k } function Vc ( a , b , c , f ) { c = c ? c : 0 ; f = f ? f : a . length - 1 ; var k = Math . floor ( ( f - c ) / 2 ) + c ; 0 < n ( a [ k ] . x ) - b [ 0 ] ? f = k : c = k ; return 1 === f - c ? ( k = [ ] , a [ c ] . x && ( k = k . concat ( Uc ( a , c ) ) ) , a [ f ] . x && ( k = k . concat ( Uc ( a , f ) ) ) , Wc ( k , b ) ) : Vc ( a , b , c , f ) } function Xc ( a , b ) { var c ; c = a . map ( function ( a ) { return Vc ( a . values , b ) } ) ; return Wc ( c , b ) } function Wc ( a , b ) { var c , f ; a . forEach ( function ( a ) { var d = Ub ( a , b ) ; if ( d < c || ! c ) c = d , f = a } ) ; return f } function re ( a ) { var b = Da && "asc" === Da . toLowerCase ( ) , c = Da && "desc" === Da . toLowerCase ( ) ;
b || c ? a . sort ( function ( a , c ) { var d = function ( a , b ) { return a + Math . abs ( b . value ) } , e = a . values . reduce ( d , 0 ) , d = c . values . reduce ( d , 0 ) ; return b ? d - e : e - d } ) : "function" === typeof Da && a . sort ( Da ) ; return a } function Yc ( a , b ) { var c , f , k , d , e ; d = a . filter ( function ( a ) { return a && A ( a . value ) } ) ; Zc && 0 !== d . length && ( V . html ( $c ( a ) ) . style ( "visibility" , "hidden" ) . style ( "display" , "block" ) , c = V . property ( "offsetWidth" ) , f = V . property ( "offsetHeight" ) , h ? d = b [ 0 ] : ( k = W ( ) , d = k + ( bb ? bb : cb ? 1 : 40 ) + n ( d [ 0 ] . x ) + 20 , e = d + c , k = k + ( Ma ? Ma : P ( ) ) - ( db ? db : Ab ? eb || h ? 1 : 40 : 1 ) , e >
k && ( d -= c + 30 ) ) , c = b [ 1 ] + 15 + f < ga ( ) ? b [ 1 ] + 15 : b [ 1 ] - f , V . style ( "top" , c + "px" ) . style ( "left" , d + "px" ) . style ( "visibility" , "visible" ) ) } function ad ( a ) { a = a . filter ( function ( a ) { return a && A ( a . value ) } ) ; Zc && ( $ ( g . data . targets , "scatter" ) || E ( g . data . targets ) || l . selectAll ( "line.xgrid-focus" ) . style ( "visibility" , "visible" ) . data ( [ a [ 0 ] ] ) . attr ( h ? "y1" : "x1" , Ca ) . attr ( h ? "y2" : "x2" , Ca ) ) } function bd ( ) { l . select ( "line.xgrid-focus" ) . style ( "visibility" , "hidden" ) } function Ea ( a ) { return a . x || 0 === a . x ? n ( a . x ) : null } function Fa ( a ) { return u ( a . id ) ( a . value ) }
function se ( ) { var a = { } , b = 0 , c , f ; lb ( ua ) . forEach ( function ( k ) { for ( c = 0 ; c < v . length ; c ++ ) if ( ! ( 0 > v [ c ] . indexOf ( k . id ) ) ) for ( f = 0 ; f < v [ c ] . length ; f ++ ) if ( v [ c ] [ f ] in a ) { a [ k . id ] = a [ v [ c ] [ f ] ] ; break } w ( a [ k . id ] ) && ( a [ k . id ] = b ++ ) } ) ; a . _ _max _ _ = b - 1 ; return a } function te ( a , b , c , f ) { var k = f ? U : n ; return function ( f ) { var d = f . id in c ? c [ f . id ] : 0 ; return f . x || 0 === f . x ? k ( f . x ) - a * ( b / 2 - d ) : 0 } } function ue ( a ) { return function ( b ) { return ( a ? L ( b . id ) : u ( b . id ) ) ( b . value ) } } function ve ( a , b ) { var c = re ( lb ( ua ) ) , f = c . map ( function ( a ) { return a . id } ) ; return function ( k , d ) { var e =
b ? L ( k . id ) : u ( k . id ) , h = e ( 0 ) , g = h ; c . forEach ( function ( b ) { b . id !== k . id && a [ b . id ] === a [ k . id ] && f . indexOf ( b . id ) < f . indexOf ( k . id ) && 0 < b . values [ d ] . value * k . value && ( g += e ( b . values [ d ] . value ) - h ) } ) ; return g } } function da ( a , b ) { var c = w ( a ) ? Ta ( ) : a ; "string" === typeof c && ( c = [ c ] ) ; for ( var f = 0 ; f < c . length ; f ++ ) Tb [ c [ f ] ] = b === y [ c [ f ] ] , y [ c [ f ] ] = b } function $ ( a , b ) { var c = ! 1 ; a . forEach ( function ( a ) { y [ a . id ] === b && ( c = ! 0 ) ; a . id in y || "line" !== b || ( c = ! 0 ) } ) ; return c } function E ( a ) { return $ ( a , "pie" ) || $ ( a , "donut" ) } function pb ( a ) { a = "string" === typeof a ? a : a . id ;
return ! ( a in y ) || "line" === y [ a ] || "spline" === y [ a ] || "area" === y [ a ] || "area-spline" === y [ a ] } function cd ( a ) { a = "string" === typeof a ? a : a . id ; return "spline" === y [ a ] || "area-spline" === y [ a ] } function ua ( a ) { return "bar" === y [ "string" === typeof a ? a : a . id ] } function Rc ( a ) { return "scatter" === y [ "string" === typeof a ? a : a . id ] } function dd ( a ) { return "pie" === y [ "string" === typeof a ? a : a . id ] } function Pb ( a ) { return "donut" === y [ "string" === typeof a ? a : a . id ] } function ed ( a ) { return ua ( a ) ? a . values : [ ] } function we ( a ) { return pb ( a ) || Rc ( a ) ? a . values : [ ] }
function xe ( a ) { return ua ( a ) || pb ( a ) ? a . values : [ ] } function sa ( a ) { var b ; if ( ! a ) throw Error ( a + " can not be parsed as d3.time with format " + Vb + ". Maybe 'x' of this data is not defined. See data.x or data.xs option." ) ; b = e . time . format ( Vb ) . parse ( a ) ; if ( ! b ) throw Error ( "Failed to parse '" + a + "' with format " + Vb ) ; return b } function fd ( a , b ) { var c = e . mouse ( a ) , f = e . select ( a ) , d = 1 * f . attr ( "cx" ) , f = 1 * f . attr ( "cy" ) ; return Math . sqrt ( Math . pow ( d - c [ 0 ] , 2 ) + Math . pow ( f - c [ 1 ] , 2 ) ) < b } function gd ( a ) { var b = e . mouse ( a ) , c = e . select ( a ) ; a = 1 * c . attr ( "x" ) ;
var f = 1 * c . attr ( "y" ) , c = 1 * c . attr ( "width" ) ; return a - 10 < b [ 0 ] && b [ 0 ] < a + c + 10 && f - 10 < b [ 1 ] } function ye ( a , b ) { var c ; for ( c = 0 ; c < b . length ; c ++ ) if ( b [ c ] . start < a && a <= b [ c ] . end ) return ! 0 ; return ! 1 } function de ( a , b ) { var c = ! 1 ; Object . keys ( a ) . forEach ( function ( f ) { a [ f ] === b && ( c = ! 0 ) } ) ; return c } function Ub ( a , b ) { return Math . pow ( n ( a . x ) - b [ 0 ] , 2 ) + Math . pow ( B ( a . value ) - b [ 1 ] , 2 ) } function hd ( a , b , c ) { ze ( a , b ) ; l . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + c ) . data ( [ b ] ) . enter ( ) . append ( "circle" ) . attr ( "class" , function ( ) { return "selected-circle selected-circle-" +
c } ) . attr ( "cx" , h ? Fa : Ea ) . attr ( "cy" , h ? Ea : Fa ) . attr ( "stroke" , function ( ) { return I ( b . id ) } ) . attr ( "r" , 1.4 * Xa ) . transition ( ) . duration ( 100 ) . attr ( "r" , Xa ) } function Wb ( a , b , c ) { Ae ( a , b ) ; l . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + c ) . transition ( ) . duration ( 100 ) . attr ( "r" , 0 ) . remove ( ) } function id ( a , b , c , f ) { a ? hd ( b , c , f ) : Wb ( b , c , f ) } function Be ( ) { } function jd ( ) { } function kd ( a , b , c , f ) { } function Xb ( a ) { return a . filter ( function ( a ) { return A ( a . value ) } ) } function Yb ( a , b ) { return ( b ? l . selectAll ( ".-circles-" + b ) : l ) . selectAll ( ".-circle" +
( A ( a ) ? "-" + a : "" ) ) } function Zb ( a ) { Yb ( a ) . filter ( function ( ) { return e . select ( this ) . classed ( ea ) } ) . classed ( ea , ! 1 ) . attr ( "r" , $b ) } function ld ( a , b ) { var c = md ( a , b ) ; return function ( a , b ) { var d = c ( a , b ) , e = h ? 1 : 0 , g = h ? 0 : 1 ; return "M " + d [ 0 ] [ e ] + "," + d [ 0 ] [ g ] + " L" + d [ 1 ] [ e ] + "," + d [ 1 ] [ g ] + " L" + d [ 2 ] [ e ] + "," + d [ 2 ] [ g ] + " L" + d [ 3 ] [ e ] + "," + d [ 3 ] [ g ] + " z" } } function nd ( a , b ) { var c = md ( a , ! 1 ) , f = b ? Ce : De ; return function ( a , b ) { return f ( c ( a , b ) , a , this ) } } function Ce ( a , b ) { var c ; return h ? ( c = ua ( b ) ? 4 : 6 , a [ 2 ] [ 1 ] + c * ( 0 > b . value ? - 1 : 1 ) ) : a [ 0 ] [ 0 ] + ( a [ 2 ] [ 0 ] - a [ 0 ] [ 0 ] ) / 2 }
function De ( a , b , c ) { return h ? ( a [ 0 ] [ 0 ] + a [ 2 ] [ 0 ] + 0.6 * c . offsetHeight ) / 2 : a [ 2 ] [ 1 ] + ( 0 > b . value ? c . offsetHeight : ua ( b ) ? - 3 : - 6 ) } function md ( a , b ) { var c = a . _ _max _ _ + 1 , f = c ? 1.2 * T . tickOffset ( ) / c : 0 , d = te ( f , c , a , ! ! b ) , e = ue ( ! ! b ) , h = ve ( a , ! ! b ) , g = b ? L : u ; return function ( a , b ) { var c = g ( a . id ) ( 0 ) , l = h ( a , b ) || c ; return [ [ d ( a ) , l ] , [ d ( a ) , e ( a ) - ( c - l ) ] , [ d ( a ) + f , e ( a ) - ( c - l ) ] , [ d ( a ) + f , l ] ] } } function Ee ( a , b , c , f ) { var d , e , g = "M" , l , m , n , p , r , q = [ ] ; if ( z ( f ) ) for ( d = 0 ; d < f . length ; d ++ ) q [ d ] = { } , w ( f [ d ] . start ) ? q [ d ] . start = a [ 0 ] . x : q [ d ] . start = D ? sa ( f [ d ] . start ) : f [ d ] . start , w ( f [ d ] . end ) ?
q [ d ] . end = a [ a . length - 1 ] . x : q [ d ] . end = D ? sa ( f [ d ] . end ) : f [ d ] . end ; p = h ? function ( a ) { return c ( a . value ) } : function ( a ) { return b ( a . x ) } ; r = h ? function ( a ) { return b ( a . x ) } : function ( a ) { return c ( a . value ) } ; f = D ? function ( a , d , f , k ) { var e = a . x . getTime ( ) ; a = d . x - a . x ; d = new Date ( e + a * ( f + k ) ) ; return "M" + b ( new Date ( e + a * f ) ) + " " + c ( m ( f ) ) + " " + b ( d ) + " " + c ( m ( f + k ) ) } : function ( a , d , f , k ) { return "M" + b ( l ( f ) ) + " " + c ( m ( f ) ) + " " + b ( l ( f + k ) ) + " " + c ( m ( f + k ) ) } ; for ( d = 0 ; d < a . length ; d ++ ) if ( w ( q ) || ! ye ( a [ d ] . x , q ) ) g += " " + p ( a [ d ] ) + " " + r ( a [ d ] ) ; else { l = ha ( a [ d - 1 ] . x , a [ d ] . x ) ; m = S ( a [ d -
1 ] . value , a [ d ] . value ) ; e = b ( a [ d ] . x ) - b ( a [ d - 1 ] . x ) ; n = c ( a [ d ] . value ) - c ( a [ d - 1 ] . value ) ; e = Math . sqrt ( Math . pow ( e , 2 ) + Math . pow ( n , 2 ) ) ; n = 2 / e ; var Fe = 2 * n ; for ( e = n ; 1 >= e ; e += Fe ) g += f ( a [ d - 1 ] , a [ d ] , e , n ) } return g } function ac ( a ) { var b ; qb = e . select ( xa ) ; if ( qb . empty ( ) ) K . alert ( 'No bind element found. Check the selector specified by "bindto" and existance of that element. Default "bindto" is "#chart".' ) ; else { qb . html ( "" ) ; g . data . x = { } ; g . data . targets = Sa ( a ) ; qa ( ) ; Q ( ) ; n . domain ( e . extent ( mb ( g . data . targets ) ) ) ; B . domain ( kb ( "y" ) ) ; ba . domain ( kb ( "y2" ) ) ;
U . domain ( n . domain ( ) ) ; gb . domain ( B . domain ( ) ) ; hb . domain ( ba . domain ( ) ) ; aa = n . domain ( ) ; G . scale ( U ) ; fa && C . scale ( n ) ; p = e . select ( xa ) . append ( "svg" ) . attr ( "width" , r + t + H ) . attr ( "height" , q + m + pa ) . on ( "mouseenter" , Ge ) . on ( "mouseleave" , He ) ; rb = p . append ( "defs" ) ; rb . append ( "clipPath" ) . attr ( "id" , bc ) . append ( "rect" ) . attr ( "y" , m ) . attr ( "width" , r ) . attr ( "height" , q - m ) ; rb . append ( "clipPath" ) . attr ( "id" , "xaxis-clip" ) . append ( "rect" ) . attr ( "x" , - 1 - t ) . attr ( "y" , - 20 ) . attr ( "width" , ia ) . attr ( "height" , X ) ; rb . append ( "clipPath" ) . attr ( "id" , "yaxis-clip" ) . append ( "rect" ) . attr ( "x" ,
- t + 1 ) . attr ( "y" , m - 1 ) . attr ( "width" , Ka ) . attr ( "height" , xb ) ; l = p . append ( "g" ) . attr ( "transform" , J . main ) ; F = Ga ? p . append ( "g" ) . attr ( "transform" , J . context ) : null ; Ha = Ia ? p . append ( "g" ) . attr ( "transform" , J . legend ) : null ; V = e . select ( xa ) . style ( "position" , "relative" ) . append ( "div" ) . style ( "position" , "absolute" ) . style ( "z-index" , "10" ) . style ( "display" , "none" ) ; l . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "clip-path" , h ? "" : "url(" + document . URL + "#xaxis-clip)" ) . attr ( "transform" , J . x ) . append ( "text" ) . attr ( "class" , "-axis-x-label" ) . attr ( "x" ,
r ) . attr ( "dy" , "-.5em" ) . style ( "text-anchor" , "end" ) . text ( Ie ) ; l . append ( "g" ) . attr ( "class" , "y axis" ) . attr ( "clip-path" , h ? "url(" + document . URL + "#yaxis-clip)" : "" ) . append ( "text" ) . attr ( "transform" , "rotate(-90)" ) . attr ( "dy" , "1.2em" ) . attr ( "dx" , "-.5em" ) . style ( "text-anchor" , "end" ) . text ( Je ) ; Ab && l . append ( "g" ) . attr ( "class" , "y2 axis" ) . attr ( "transform" , J . y2 ) ; a = l . append ( "g" ) . attr ( "clip-path" , Ya ) . attr ( "class" , "grid" ) ; od && a . append ( "g" ) . attr ( "class" , "xgrids" ) ; cc && ( b = a . append ( "g" ) . attr ( "class" , "xgrid-lines" ) . selectAll ( ".xgrid-line" ) . data ( cc ) . enter ( ) . append ( "g" ) . attr ( "class" ,
"xgrid-line" ) , b . append ( "line" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) , b . append ( "text" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) . attr ( "text-anchor" , "end" ) . attr ( "transform" , h ? "" : "rotate(-90)" ) . attr ( "dx" , h ? 0 : - m ) . attr ( "dy" , - 5 ) . text ( function ( a ) { return a . text } ) ) ; Ke && a . append ( "g" ) . attr ( "class" , "xgrid-focus" ) . append ( "line" ) . attr ( "class" , "xgrid-focus" ) . attr ( "x1" , h ? 0 : - 10 ) . attr ( "x2" , h ? r : - 10 ) . attr ( "y1" , h ? - 10 : m ) . attr ( "y2" , h ? - 10 : q ) ; pd && a . append ( "g" ) . attr ( "class" , "ygrids" ) ; dc && ( a = a . append ( "g" ) . attr ( "class" ,
"ygrid-lines" ) . selectAll ( "ygrid-line" ) . data ( dc ) . enter ( ) . append ( "g" ) . attr ( "class" , "ygrid-line" ) , a . append ( "line" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) , a . append ( "text" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) . attr ( "text-anchor" , "end" ) . attr ( "transform" , h ? "rotate(-90)" : "" ) . attr ( "dx" , h ? 0 : - m ) . attr ( "dy" , - 5 ) . text ( function ( a ) { return a . text } ) ) ; l . append ( "g" ) . attr ( "clip-path" , Ya ) . attr ( "class" , "regions" ) ; l . append ( "g" ) . attr ( "clip-path" , Ya ) . attr ( "class" , "chart" ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" ,
"event-rects" ) . style ( "fill-opacity" , 0 ) . style ( "cursor" , fa ? h ? "ns-resize" : "ew-resize" : null ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-arcs" ) . attr ( "transform" , J . arc ) . append ( "text" ) . attr ( "class" , "chart-arcs-title" ) . style ( "text-anchor" , "middle" ) . text ( Le ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-texts" ) ; if ( fa ) l . insert ( "rect" , Me ? null : "g.grid" ) . attr ( "class" , "zoom-rect" ) . attr ( "width" ,
r ) . attr ( "height" , q ) . style ( "opacity" , 0 ) . style ( "cursor" , h ? "ns-resize" : "ew-resize" ) . call ( C ) . on ( "dblclick.zoom" , null ) ; null !== sb && G . extent ( "function" !== typeof sb ? sb : sb ( mb ( ) ) ) ; Ga && ( F . append ( "g" ) . attr ( "clip-path" , Ya ) . attr ( "class" , "chart" ) , F . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) , F . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) , F . append ( "g" ) . attr ( "clip-path" , Ya ) . attr ( "class" , "x brush" ) . call ( G ) . selectAll ( "rect" ) . attr ( h ? "width" : "height" , h ? Bb : fb ) , F . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "transform" ,
J . subx ) . attr ( "clip-path" , h ? "url(" + document . URL + "#yaxis-clip)" : "" ) ) ; Ia && tb ( g . data . targets ) ; qd ( g . data . targets ) ; x ( { withTransform : ! 0 , withUpdateXDomain : ! 0 } ) ; if ( Ne ) { if ( D && "string" === typeof Ja ) { Ja = sa ( Ja ) ; for ( a = 0 ; a < g . data . targets [ 0 ] . values . length && 0 !== g . data . targets [ 0 ] . values [ a ] . x - Ja ; a ++ ) ; Ja = a } V . html ( $c ( g . data . targets . map ( function ( a ) { return ob ( a . values [ Ja ] ) } ) ) ) ; V . style ( "top" , rd . top ) . style ( "left" , rd . left ) . style ( "display" , "block" ) } null == K . onresize && ( K . onresize = Oe ( ) ) ; K . onresize . add && K . onresize . add ( sd ) } } function Pe ( a ) { a . append ( "rect" ) . attr ( "class" ,
Pc ) . style ( "cursor" , la && va ? "pointer" : null ) . on ( "mouseover" , function ( a , c ) { if ( ! Za && ! E ( g . data . targets ) ) { var f = g . data . targets . map ( function ( a ) { return ob ( a . values [ c ] ) } ) , d , e ; if ( 0 < Object . keys ( Ra ) . length ) { e = [ ] ; for ( var h in Ra ) for ( d = 0 ; d < f . length ; d ++ ) if ( f [ d ] . id === h ) { e . push ( f [ d ] ) ; f . shift ( d ) ; break } f = e . concat ( f ) } ec && Yb ( c , void 0 ) . classed ( ea , ! 0 ) . attr ( "r" , fc ) ; l . selectAll ( ".-bar" + ( A ( c ) ? "-" + c : "" ) ) . classed ( ea , ! 1 ) ; ad ( f ) } } ) . on ( "mouseout" , function ( a , c ) { E ( g . data . targets ) || ( bd ( ) , V . style ( "display" , "none" ) , Zb ( c ) , l . selectAll ( ".-bar" +
( A ( void 0 ) ? "-undefined" : "" ) ) . classed ( ea , ! 1 ) ) } ) . on ( "mousemove" , function ( a , c ) { var d ; Za || E ( g . data . targets ) || ( d = g . data . targets . map ( function ( a ) { return ob ( a . values [ c ] ) } ) , Yc ( d , e . mouse ( this ) ) , la && ( va || l . selectAll ( ".-shape-" + c ) . filter ( function ( a ) { return ma ( a ) } ) . each ( function ( ) { var a = e . select ( this ) . classed ( ea , ! 0 ) ; "circle" === this . nodeName && a . attr ( "r" , fc ) ; p . select ( ".event-rect-" + c ) . style ( "cursor" , null ) } ) . filter ( function ( ) { var a = e . select ( this ) ; if ( "circle" === this . nodeName ) return fd ( this , Xa ) ; if ( "rect" === this . nodeName ) return gd ( this ,
a . attr ( "x" ) , a . attr ( "y" ) ) } ) . each ( function ( ) { var a = e . select ( this ) ; a . classed ( ea ) || ( a . classed ( ea , ! 0 ) , "circle" === this . nodeName && a . attr ( "r" , Xa ) ) ; p . select ( ".event-rect-" + c ) . style ( "cursor" , "pointer" ) } ) ) ) } ) . on ( "click" , function ( a , c ) { E ( g . data . targets ) || ( gc ? gc = ! 1 : l . selectAll ( ".-shape-" + c ) . each ( function ( a ) { td ( this , a , c ) } ) ) } ) . call ( e . behavior . drag ( ) . origin ( Object ) . on ( "drag" , function ( ) { ud ( e . mouse ( this ) ) } ) . on ( "dragstart" , function ( ) { vd ( e . mouse ( this ) ) } ) . on ( "dragend" , function ( ) { wd ( ) } ) ) . call ( C ) . on ( "dblclick.zoom" , null ) }
function Qe ( a ) { a . append ( "rect" ) . attr ( "x" , 0 ) . attr ( "y" , 0 ) . attr ( "width" , r ) . attr ( "height" , q ) . attr ( "class" , "event-rect" ) . on ( "mouseout" , function ( ) { E ( g . data . targets ) || ( bd ( ) , V . style ( "display" , "none" ) , Zb ( ) ) } ) . on ( "mousemove" , function ( ) { var a , c , d ; Za || E ( g . data . targets ) || ( a = e . mouse ( this ) , c = Xc ( g . data . targets , a ) , d = [ ob ( c ) ] , Yc ( d , a ) , ec && ( Zb ( ) , Yb ( c . index , c . id ) . classed ( ea , ! 0 ) . attr ( "r" , fc ) ) , ad ( d ) , 100 > Ub ( c , a ) ? p . select ( ".event-rect" ) . style ( "cursor" , "pointer" ) : p . select ( ".event-rect" ) . style ( "cursor" , null ) ) } ) . on ( "click" , function ( ) { var a ,
c ; E ( g . data . targets ) || ( a = e . mouse ( this ) , c = Xc ( g . data . targets , a ) , 100 > Ub ( c , a ) && l . select ( ".-circles-" + c . id ) . select ( ".-circle-" + c . index ) . each ( function ( ) { td ( this , c , c . index ) } ) ) } ) . call ( e . behavior . drag ( ) . origin ( Object ) . on ( "drag" , function ( ) { ud ( e . mouse ( this ) ) } ) . on ( "dragstart" , function ( ) { vd ( e . mouse ( this ) ) } ) . on ( "dragend" , function ( ) { wd ( ) } ) ) . call ( C ) . on ( "dblclick.zoom" , null ) } function td ( a , b , c ) { var d = e . select ( a ) , k = d . classed ( na ) , g = ! 1 , h ; "circle" === a . nodeName ? ( g = fd ( a , 1.5 * Xa ) , h = id ) : "rect" === a . nodeName && ( g = gd ( a ) , h = kd ) ; if ( va ||
g ) la && ma ( b ) && ( d . classed ( na , ! k ) , h ( ! k , d , b , c ) ) , Re ( b , d ) } function ud ( a ) { var b , c , d , k , h , n , p ; E ( g . data . targets ) || ! la || fa && ! C . altDomain || ( b = hc [ 0 ] , c = hc [ 1 ] , d = a [ 0 ] , a = a [ 1 ] , k = Math . min ( b , d ) , h = Math . max ( b , d ) , n = va ? m : Math . min ( c , a ) , p = va ? q : Math . max ( c , a ) , l . select ( ".dragarea" ) . attr ( "x" , k ) . attr ( "y" , n ) . attr ( "width" , h - k ) . attr ( "height" , p - n ) , l . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . filter ( function ( a ) { return ma ( a ) } ) . each ( function ( a , b ) { var c = e . select ( this ) , d = c . classed ( na ) , f = c . classed ( ic ) , g , l , m , q ; g = ! 1 ; "circle" === this . nodeName ?
( g = 1 * c . attr ( "cx" ) , l = 1 * c . attr ( "cy" ) , q = id , g = k < g && g < h && n < l && l < p ) : "rect" === this . nodeName && ( g = 1 * c . attr ( "x" ) , l = 1 * c . attr ( "y" ) , m = 1 * c . attr ( "width" ) , q = kd , g = k < g + m && g < h && l < p ) ; g ^ f && ( c . classed ( ic , ! f ) , c . classed ( na , ! d ) , q ( ! d , c , a , b ) ) } ) ) } function vd ( a ) { ! E ( g . data . targets ) && la && ( hc = a , l . select ( ".chart" ) . append ( "rect" ) . attr ( "class" , "dragarea" ) . style ( "opacity" , 0.1 ) , Za = ! 0 ) } function wd ( ) { ! E ( g . data . targets ) && la && ( l . select ( ".dragarea" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0 ) . remove ( ) , l . selectAll ( ".-shape" ) . classed ( ic ,
! 1 ) , Za = ! 1 ) } function x ( a ) { var b , c , d , k ; d = se ( ) ; var p , s , u , t , v = E ( g . data . targets ) , x ; a = z ( a ) ? a : { } ; c = z ( a . withY ) ? a . withY : ! 0 ; k = z ( a . withSubchart ) ? a . withSubchart : ! 0 ; s = z ( a . withTransition ) ? a . withTransition : ! 0 ; u = z ( a . withTransform ) ? a . withTransform : ! 1 ; t = z ( a . withUpdateXDomain ) ? a . withUpdateXDomain : ! 1 ; a = z ( a . withUpdateOrgXDomain ) ? a . withUpdateOrgXDomain : ! 1 ; s = s ? Se : 0 ; a && ( n . domain ( e . extent ( mb ( g . data . targets ) ) ) , aa = n . domain ( ) , fa && C . scale ( n ) . updateScaleExtent ( ) , U . domain ( n . domain ( ) ) , G . scale ( U ) ) ; t && ( n . domain ( G . empty ( ) ? aa : G . extent ( ) ) ,
fa && C . scale ( n ) . updateScaleExtent ( ) ) ; B . domain ( kb ( "y" ) ) ; ba . domain ( kb ( "y2" ) ) ; l . select ( ".x.axis" ) . style ( "opacity" , v ? 0 : 1 ) . transition ( ) . duration ( h ? s : 0 ) . call ( h ? Mb : T ) ; l . select ( ".y.axis" ) . style ( "opacity" , v ? 0 : 1 ) . transition ( ) . duration ( h ? 0 : s ) . call ( h ? T : Mb ) ; l . select ( ".y2.axis" ) . style ( "opacity" , v ? 0 : 1 ) . transition ( ) . call ( vc ) ; x = ld ( d ) ; t = nd ( d , ! 0 ) ; a = nd ( d , ! 1 ) ; l . select ( ".x.axis .-axis-x-label" ) . attr ( "x" , r ) ; gb . domain ( B . domain ( ) ) ; hb . domain ( ba . domain ( ) ) ; V . style ( "display" , "none" ) ; l . select ( "line.xgrid-focus" ) . style ( "visibility" ,
"hidden" ) . attr ( "y2" , q ) ; if ( od ) { if ( "year" === Te ) { b = [ ] ; for ( var w = mb ( ) , y = w [ 0 ] . getFullYear ( ) , w = w [ 1 ] . getFullYear ( ) ; y <= w ; y ++ ) b . push ( new Date ( y + "-01-01 00:00:00" ) ) } else b = n . ticks ( 10 ) ; b = l . select ( ".xgrids" ) . selectAll ( ".xgrid" ) . data ( b ) ; b . enter ( ) . append ( "line" ) . attr ( "class" , "xgrid" ) ; b . attr ( "x1" , h ? 0 : function ( a ) { return n ( a ) - T . tickOffset ( ) } ) . attr ( "x2" , h ? r : function ( a ) { return n ( a ) - T . tickOffset ( ) } ) . attr ( "y1" , h ? function ( a ) { return n ( a ) - T . tickOffset ( ) } : m ) . attr ( "y2" , h ? function ( a ) { return n ( a ) - T . tickOffset ( ) } : q ) . style ( "opacity" ,
function ( ) { return + e . select ( this ) . attr ( h ? "y1" : "x1" ) === ( h ? q : 0 ) ? 0 : 1 } ) ; b . exit ( ) . remove ( ) } cc && ( b = l . selectAll ( ".xgrid-lines" ) , b . selectAll ( "line" ) . transition ( ) . duration ( s ) . attr ( "x1" , h ? 0 : Va ) . attr ( "x2" , h ? r : Va ) . attr ( "y1" , h ? Va : m ) . attr ( "y2" , h ? Va : q ) , b . selectAll ( "text" ) . attr ( "x" , h ? r : 0 ) . attr ( "y" , Va ) ) ; c && pd && ( b = l . select ( ".ygrids" ) . selectAll ( ".ygrid" ) . data ( B . ticks ( 10 ) ) , b . enter ( ) . append ( "line" ) . attr ( "class" , "ygrid" ) , b . attr ( "x1" , h ? B : 0 ) . attr ( "x2" , h ? B : r ) . attr ( "y1" , h ? 0 : B ) . attr ( "y2" , h ? q : B ) , b . exit ( ) . remove ( ) ) ; c && dc && ( c =
l . select ( ".ygrid-lines" ) , c . selectAll ( "line" ) . transition ( ) . duration ( s ) . attr ( "x1" , h ? Wa : 0 ) . attr ( "x2" , h ? Wa : r ) . attr ( "y1" , h ? 0 : Wa ) . attr ( "y2" , h ? q : Wa ) , c . selectAll ( "text" ) . attr ( "x" , h ? 0 : r ) . attr ( "y" , Wa ) ) ; c = l . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( ed ) ; c . enter ( ) . append ( "path" ) . attr ( "d" , x ) . style ( "stroke" , "none" ) . style ( "opacity" , 0 ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) . attr ( "class" , Oc ) ; c . style ( "opacity" , Aa ) . transition ( ) . duration ( s ) . attr ( "d" , x ) . style ( "opacity" , 1 ) ; c . exit ( ) . transition ( ) . duration ( s ) . style ( "opacity" ,
0 ) . remove ( ) ; c = l . selectAll ( ".-texts" ) . selectAll ( ".-text" ) . data ( xe ) ; c . enter ( ) . append ( "text" ) . attr ( "class" , ie ) . attr ( "text-anchor" , function ( a ) { return h ? 0 > a . value ? "end" : "start" : "middle" } ) . style ( "stroke" , "none" ) . style ( "fill-opacity" , 0 ) . text ( function ( a ) { return Tc ( a . value ) } ) ; c . style ( "fill-opacity" , pe ) . transition ( ) . duration ( s ) . attr ( "x" , t ) . attr ( "y" , a ) . style ( "fill-opacity" , Qc ) ; c . exit ( ) . transition ( ) . duration ( s ) . style ( "fill-opacity" , 0 ) . remove ( ) ; l . selectAll ( ".-line" ) . style ( "opacity" , Aa ) . transition ( ) . duration ( s ) . attr ( "d" ,
Ue ) . style ( "opacity" , 1 ) ; l . selectAll ( ".-area" ) . style ( "opacity" , 0 ) . transition ( ) . duration ( s ) . attr ( "d" , Ve ) . style ( "opacity" , xd ) ; c = l . selectAll ( ".-circles" ) . selectAll ( ".-circle" ) . data ( we ) ; c . enter ( ) . append ( "circle" ) . attr ( "class" , ne ) . style ( "opacity" , 0 ) . attr ( "r" , $b ) ; c . style ( "opacity" , Aa ) . transition ( ) . duration ( s ) . style ( "opacity" , qe ) . attr ( "cx" , h ? Fa : Ea ) . attr ( "cy" , h ? Ea : Fa ) ; c . exit ( ) . remove ( ) ; l . selectAll ( ".chart-arc" ) . select ( ".-arc" ) . attr ( "transform" , u ? "scale(0)" : "" ) . style ( "opacity" , function ( a ) { return a === this . _current ?
0 : 1 } ) . transition ( ) . duration ( s ) . attrTween ( "d" , function ( a ) { a = Z ( a ) ; if ( ! a ) return function ( ) { return "M 0 0" } ; var b = e . interpolate ( this . _current , a ) ; this . _current = b ( 0 ) ; return function ( a ) { a = b ( a ) ; return dd ( a . data ) || Pb ( a . data ) ? ib ( a , ! 0 ) : "M 0 0" } } ) . attr ( "transform" , u ? "scale(1)" : "" ) . style ( "opacity" , 1 ) ; l . selectAll ( ".chart-arc" ) . select ( "text" ) . attr ( "transform" , wb ) . style ( "opacity" , 0 ) . transition ( ) . duration ( s ) . text ( Ed ) . style ( "opacity" , function ( a ) { return dd ( a . data ) || Pb ( a . data ) ? 1 : 0 } ) ; l . select ( ".chart-arcs-title" ) . style ( "opacity" ,
$ ( g . data . targets , "donut" ) ? 1 : 0 ) ; Ga && ( null !== e . event && "zoom" === e . event . type && G . extent ( n . orgDomain ( ) ) . update ( ) , k && ( F . select ( ".x.axis" ) . style ( "opacity" , v ? 0 : 1 ) . transition ( ) . duration ( h ? s : 0 ) . call ( Lb ) , G . empty ( ) || G . extent ( n . orgDomain ( ) ) . update ( ) , k = ld ( d , ! 0 ) , d = F . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( ed ) , d . enter ( ) . append ( "path" ) . attr ( "d" , k ) . style ( "stroke" , "none" ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) . attr ( "class" , Oc ) , d . style ( "opacity" , Aa ) . transition ( ) . duration ( s ) . attr ( "d" , k ) . style ( "opacity" , 1 ) , d . exit ( ) . transition ( ) . duration ( s ) . style ( "opacity" ,
0 ) . remove ( ) , F . selectAll ( ".-line" ) . style ( "opacity" , Aa ) . transition ( ) . duration ( s ) . attr ( "d" , We ) . style ( "opacity" , 1 ) ) ) ; l . selectAll ( ".selected-circles" ) . filter ( function ( a ) { return ua ( a ) } ) . selectAll ( "circle" ) . remove ( ) ; l . selectAll ( ".selected-circle" ) . transition ( ) . duration ( s ) . attr ( "cx" , h ? Fa : Ea ) . attr ( "cy" , h ? Ea : Fa ) ; ca ? ( k = l . select ( ".event-rects" ) . selectAll ( ".event-rect" ) . data ( [ 0 ] ) , Qe ( k . enter ( ) ) , k . attr ( "x" , 0 ) . attr ( "y" , 0 ) . attr ( "width" , r ) . attr ( "height" , q ) ) : ( Sb ? ( p = function ( a , b ) { var c = Jc ( b ) , d = b < za ( ) - 1 ? g . data . targets [ 0 ] . values [ b +
1 ] . x : void 0 ; return ( n ( d ? d : a . x + 50 ) - n ( c ? c : a . x - 50 ) ) / 2 } , d = function ( a , b ) { var c = Jc ( b ) ; return ( n ( a . x ) + n ( c ? c : a . x - 50 ) ) / 2 } ) : ( p = Bd ( ) , d = function ( a ) { return n ( a . x ) - p / 2 } ) , k = he ( ) , l . select ( ".event-rects" ) . datum ( k ? k . values : [ ] ) , k = l . select ( ".event-rects" ) . selectAll ( ".event-rect" ) . data ( function ( a ) { return a } ) , Pe ( k . enter ( ) ) , k . attr ( "class" , Pc ) . attr ( "x" , h ? 0 : d ) . attr ( "y" , h ? d : 0 ) . attr ( "width" , h ? r : p ) . attr ( "height" , h ? p : q ) , k . exit ( ) . remove ( ) ) ; d = l . select ( ".regions" ) . selectAll ( "rect.region" ) . data ( N ) ; d . enter ( ) . append ( "rect" ) . style ( "fill-opacity" ,
0 ) ; d . attr ( "class" , oe ) . attr ( "x" , h ? 0 : Rb ) . attr ( "y" , h ? Rb : m ) . attr ( "width" , h ? r : Ec ) . attr ( "height" , h ? Ec : q ) . transition ( ) . duration ( s ) . style ( "fill-opacity" , function ( a ) { return A ( a . opacity ) ? a . opacity : 0.1 } ) ; d . exit ( ) . transition ( ) . duration ( s ) . style ( "fill-opacity" , 0 ) . remove ( ) ; Ta ( ) . forEach ( function ( a ) { Tb [ a ] = ! 0 } ) } function Xe ( ) { "mousemove" === e . event . sourceEvent . type && C . altDomain ? ( n . domain ( C . altDomain ) , C . scale ( n ) . updateScaleExtent ( ) ) : ( ja && n . orgDomain ( ) [ 0 ] === aa [ 0 ] && n . domain ( [ aa [ 0 ] - 1E-10 , n . orgDomain ( ) [ 1 ] ] ) , x ( { withTransition : ! 1 ,
withY : ! 1 , withSubchart : ! 1 } ) , "mousemove" === e . event . sourceEvent . type && ( gc = ! 0 ) ) } function Oe ( ) { function a ( ) { b . forEach ( function ( a ) { a ( ) } ) } var b = [ ] ; a . add = function ( a ) { b . push ( a ) } ; return a } function sd ( ) { qa ( ) ; Q ( ) ; G . scale ( U ) ; fa && C . scale ( n ) ; p . attr ( "width" , yb ) . attr ( "height" , wa ) ; p . select ( "#" + bc ) . select ( "rect" ) . attr ( "width" , r ) . attr ( "height" , q ) ; p . select ( "#xaxis-clip" ) . select ( "rect" ) . attr ( "width" , ia ) ; p . select ( ".zoom-rect" ) . attr ( "width" , r ) . attr ( "height" , q ) ; l . select ( ".x.axis" ) . attr ( "transform" , J . x ) ; l . select ( ".y2.axis" ) . attr ( "transform" ,
J . y2 ) ; l . select ( ".chart-arcs" ) . attr ( "transform" , J . arc ) ; Ga && ( F . attr ( "transform" , J . context ) , F . select ( ".x.axis" ) . attr ( "transform" , J . subx ) ) ; Ia && ( Ha . attr ( "transform" , J . legend ) , tb ( g . data . targets , { withTransition : ! 1 } ) ) ; x ( { withTransition : ! 1 , withUpdateXDomain : ! 0 } ) } function qd ( a ) { var b ; l . select ( ".chart-texts" ) . selectAll ( ".chart-text" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-text target target-" + a . id } ) . style ( "pointer-events" , "none" ) . append ( "g" ) . attr ( "class" , je ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) ;
l . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "pointer-events" , "none" ) . append ( "g" ) . attr ( "class" , Nc ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) . style ( "stroke" , "none" ) . style ( "cursor" , function ( a ) { return ma ( a ) ? "pointer" : null } ) ; b = l . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) . style ( "pointer-events" , "none" ) ; b . append ( "path" ) . attr ( "class" ,
Mc ) . style ( "opacity" , 0 ) . style ( "stroke" , function ( a ) { return I ( a . id ) } ) ; b . append ( "path" ) . attr ( "class" , me ) . style ( "opacity" , function ( ) { xd = + e . select ( this ) . style ( "opacity" ) ; return 0 } ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) ; b . append ( "g" ) . attr ( "class" , function ( a ) { return "selected-circles selected-circles-" + a . id } ) ; b . append ( "g" ) . attr ( "class" , ke ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) . style ( "cursor" , function ( a ) { return ma ( a ) ? "pointer" : null } ) ; a . forEach ( function ( a ) { var b = ub ( a . id ) ; l . selectAll ( ".selected-circles" +
b ) . selectAll ( ".selected-circle" ) . each ( function ( b ) { b . value = a . values [ b . x ] . value } ) } ) ; b = l . select ( ".chart-arcs" ) . selectAll ( ".chart-arc" ) . data ( Ob ( a ) ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-arc target target-" + a . data . id } ) ; b . append ( "path" ) . attr ( "class" , le ) . style ( "opacity" , 0 ) . style ( "fill" , function ( a ) { return I ( a . data . id ) } ) . style ( "cursor" , function ( a ) { return ma ( a ) ? "pointer" : null } ) . each ( function ( a ) { this . _current = a } ) . on ( "mouseover" , function ( a ) { Ac ( a . data . id ) ; jc ( a . data . id ) } ) . on ( "mouseout" , function ( a ) { Qb ( a . data . id ) ;
kc ( ) } ) ; b . append ( "text" ) . attr ( "dy" , ".35em" ) . style ( "opacity" , 0 ) . style ( "text-anchor" , "middle" ) . style ( "pointer-events" , "none" ) ; Ga && ( b = F . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) , b . append ( "g" ) . attr ( "class" , Nc ) . style ( "fill" , function ( a ) { return I ( a . id ) } ) , b = F . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) , b . append ( "path" ) . attr ( "class" ,
Mc ) . style ( "opacity" , 0 ) . style ( "stroke" , function ( a ) { return I ( a . id ) } ) ) ; Ia && tb ( a ) ; p . selectAll ( ".target" ) . transition ( ) . style ( "opacity" , 1 ) } function $a ( a , b ) { g . data . targets . forEach ( function ( b ) { for ( var d = 0 ; d < a . length ; d ++ ) if ( b . id === a [ d ] . id ) { b . values = a [ d ] . values ; a . splice ( d , 1 ) ; break } } ) ; g . data . targets = g . data . targets . concat ( a ) ; qd ( g . data . targets ) ; x ( { withUpdateOrgXDomain : ! 0 , withUpdateXDomain : ! 0 } ) ; b ( ) } function jc ( a ) { var b = p . selectAll ( ".legend-item" ) , c = function ( b ) { return ! a || b === a } ; b . filter ( function ( a ) { return ! c ( a ) } ) . transition ( ) . duration ( 100 ) . style ( "opacity" ,
0.3 ) ; b . filter ( c ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } function Ye ( a ) { var b = p . selectAll ( ".legend-item" ) , c = function ( b ) { return ! a || b === a } ; b . filter ( function ( a ) { return ! c ( a ) } ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; b . filter ( c ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) } function kc ( ) { p . selectAll ( ".legend-item" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } function tb ( a , b ) { var c = Ta ( a ) , d , e = r / 2 - ab * Object . keys ( a ) . length / 2 , h ; b = w ( b ) ? { } : b ; h = z ( b . withTransition ) ? b . withTransition : ! 0 ; d = Ha . selectAll ( ".legend-item" ) . data ( c ) . enter ( ) . append ( "g" ) . attr ( "class" ,
function ( a ) { return "legend-item legend-item-" + a } ) . style ( "cursor" , "pointer" ) . on ( "click" , function ( a ) { Ze ( a ) } ) . on ( "mouseover" , function ( a ) { jc ( a ) ; g . focus ( a ) } ) . on ( "mouseout" , function ( ) { kc ( ) ; g . revert ( ) } ) ; d . append ( "rect" ) . attr ( "class" , "legend-item-event" ) . style ( "fill-opacity" , 0 ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ra / 2 - 16 } ) . attr ( "width" , ab ) . attr ( "height" , 24 ) ; d . append ( "rect" ) . attr ( "class" , "legend-item-tile" ) . style ( "pointer-events" , "none" ) . style ( "fill" , function ( a ) { return I ( a ) } ) . attr ( "x" , - 200 ) . attr ( "y" ,
function ( ) { return ra / 2 - 9 } ) . attr ( "width" , 10 ) . attr ( "height" , 10 ) ; d . append ( "text" ) . text ( function ( a ) { return z ( Ra [ a ] ) ? Ra [ a ] : a } ) . style ( "pointer-events" , "none" ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return ra / 2 } ) ; Ha . selectAll ( "rect.legend-item-event" ) . data ( c ) . transition ( ) . duration ( h ? 250 : 0 ) . attr ( "x" , function ( a , b ) { return e + ab * b } ) ; Ha . selectAll ( "rect.legend-item-tile" ) . data ( c ) . transition ( ) . duration ( h ? 250 : 0 ) . attr ( "x" , function ( a , b ) { return e + ab * b } ) ; Ha . selectAll ( "text" ) . data ( c ) . transition ( ) . duration ( h ? 250 : 0 ) . attr ( "x" ,
function ( a , b ) { return e + ab * b + 14 } ) } function ub ( a ) { return a ? "-" + a . replace ( /\./g , "\\." ) : "" } function ka ( a ) { return ".target" + ub ( a ) } function lc ( a ) { return Kc ( a . id ) } function mc ( a ) { return "data" in a && Kc ( a . data . id ) } var g = { data : { } } , nb = { } , ea = "_expanded_" , na = "_selected_" , ic = "_included_" , xa = d ( [ "bindto" ] , "#chart" ) , Ma = d ( [ "size" , "width" ] , null ) , Eb = d ( [ "size" , "height" ] , null ) , bb = d ( [ "padding" , "left" ] , null ) , db = d ( [ "padding" , "right" ] , null ) , fa = d ( [ "zoom" , "enabled" ] , ! 1 ) , yd = d ( [ "zoom" , "extent" ] , null ) , Me = d ( [ "zoom" , "privileged" ] , ! 1 ) ,
Ge = d ( [ "onenter" ] , function ( ) { } ) , He = d ( [ "onleave" ] , function ( ) { } ) , Se = d ( [ "transition" , "duration" ] , 350 ) ; if ( ! ( "data" in O ) ) throw Error ( "data is required in config" ) ; var ta = d ( [ "data" , "x" ] , null ) , ca = d ( [ "data" , "xs" ] , null ) , Vb = d ( [ "data" , "x_format" ] , "%Y-%m-%d" ) , ge = d ( [ "data" , "id_converter" ] , function ( a ) { return a } ) , Ra = d ( [ "data" , "names" ] , { } ) , v = d ( [ "data" , "groups" ] , [ ] ) , yc = d ( [ "data" , "axes" ] , { } ) , Ic = d ( [ "data" , "type" ] , null ) , y = d ( [ "data" , "types" ] , { } ) , Ba = d ( [ "data" , "labels" ] , { } ) , Da = d ( [ "data" , "order" ] , null ) , zd = d ( [ "data" , "regions" ] ,
{ } ) , $e = d ( [ "data" , "colors" ] , { } ) , la = d ( [ "data" , "selection" , "enabled" ] , ! 1 ) , va = d ( [ "data" , "selection" , "grouped" ] , ! 1 ) , ma = d ( [ "data" , "selection" , "isselectable" ] , function ( ) { return ! 0 } ) , Ga = d ( [ "subchart" , "show" ] , ! 1 ) , zb = Ga ? d ( [ "subchart" , "size" , "height" ] , 60 ) : 0 , af = d ( [ "color" , "pattern" ] , null ) , Ia = d ( [ "legend" , "show" ] , ! 0 ) , ab = d ( [ "legend" , "item" , "width" ] , 80 ) , Ze = d ( [ "legend" , "item" , "onclick" ] , function ( ) { } ) , h = d ( [ "axis" , "rotated" ] , ! 1 ) , nc = d ( [ "axis" , "x" , "type" ] , "indexed" ) , Oa = d ( [ "axis" , "x" , "categories" ] , [ ] ) , Md = d ( [ "axis" , "x" ,
"tick" , "centered" ] , ! 1 ) , jb = d ( [ "axis" , "x" , "tick" , "format" ] , null ) , Pd = d ( [ "axis" , "x" , "tick" , "culling" ] , h || "categorized" === nc ? ! 1 : ! 0 ) , zc = d ( [ "axis" , "x" , "tick" , "count" ] , 10 ) , sb = d ( [ "axis" , "x" , "default" ] , null ) , Ie = d ( [ "axis" , "x" , "label" ] , null ) , Xd = d ( [ "axis" , "y" , "max" ] , null ) , Vd = d ( [ "axis" , "y" , "min" ] , null ) , Zd = d ( [ "axis" , "y" , "center" ] , null ) , Je = d ( [ "axis" , "y" , "label" ] , null ) , cb = d ( [ "axis" , "y" , "inner" ] , ! 1 ) , Nb = d ( [ "axis" , "y" , "tick" , "format" ] , null ) , Pa = d ( [ "axis" , "y" , "padding" ] , null ) , Id = d ( [ "axis" , "y" , "ticks" ] , 10 ) , Ab = d ( [ "axis" ,
"y2" , "show" ] , ! 1 ) , Wd = d ( [ "axis" , "y2" , "max" ] , null ) , Ud = d ( [ "axis" , "y2" , "min" ] , null ) , Yd = d ( [ "axis" , "y2" , "center" ] , null ) , eb = d ( [ "axis" , "y2" , "inner" ] , ! 1 ) , Kd = d ( [ "axis" , "y2" , "tick" , "format" ] , null ) , Qa = d ( [ "axis" , "y2" , "padding" ] , null ) , Ld = d ( [ "axis" , "y2" , "ticks" ] , 10 ) , od = d ( [ "grid" , "x" , "show" ] , ! 1 ) , Te = d ( [ "grid" , "x" , "type" ] , "tick" ) , cc = d ( [ "grid" , "x" , "lines" ] , null ) , pd = d ( [ "grid" , "y" , "show" ] , ! 1 ) , dc = d ( [ "grid" , "y" , "lines" ] , null ) , $b = d ( [ "point" , "show" ] , ! 0 ) ? d ( [ "point" , "r" ] , 2.5 ) : 0 , Ke = d ( [ "point" , "focus" , "line" , "enabled" ] , ! 0 ) , ec =
d ( [ "point" , "focus" , "expand" , "enabled" ] , ! 0 ) , fc = d ( [ "point" , "focus" , "expand" , "r" ] , ec ? 4 : $b ) , Xa = d ( [ "point" , "focus" , "select" , "r" ] , 8 ) , Re = d ( [ "point" , "onclick" ] , function ( ) { } ) , ze = d ( [ "point" , "onselected" ] , function ( ) { } ) , Ae = d ( [ "point" , "onunselected" ] , function ( ) { } ) , Qd = d ( [ "arc" , "label" , "format" ] , function ( a , b ) { return ( 100 * b ) . toFixed ( 1 ) + "%" } ) , Le = d ( [ "arc" , "title" ] , "" ) , N = d ( [ "regions" ] , [ ] ) , Zc = d ( [ "tooltip" , "enabled" ] , ! 0 ) , $c = d ( [ "tooltip" , "contents" ] , function ( a ) { var b = rc ( ) , c , d , e , g ; for ( d = 0 ; d < a . length ; d ++ ) a [ d ] && A ( a [ d ] . value ) &&
( c || ( c = b ? b ( a [ d ] . x ) : a [ d ] . x , c = "<table class='-tooltip'><tr><th colspan='2'>" + c + "</th></tr>" ) , g = a [ d ] . name , e = Tc ( a [ d ] . value ) , c += "<tr class='-tooltip-name-" + a [ d ] . id + "'><td class='name'><span style='background-color:" + I ( a [ d ] . id ) + "'></span>" + g + "</td><td class='value'>" + e + "</td></tr>" ) ; return c + "</table>" } ) , Ne = d ( [ "tooltip" , "init" , "show" ] , ! 1 ) , Ja = d ( [ "tooltip" , "init" , "x" ] , 0 ) , rd = d ( [ "tooltip" , "init" , "position" ] , { top : "0px" , left : "50px" } ) , bc = xa . replace ( "#" , "" ) + "-clip" , Ya = "url(" + document . URL + "#" + bc + ")" , D = "timeseries" ===
nc , ja = "categorized" === nc , Sb = ! D && ( ta || ca ) , hc = null , Za = ! 1 , gc = ! 1 , ra = Ia ? 40 : 0 , I = function ( a , b ) { var c = [ ] , d = null !== b ? b : "#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf" . split ( " " ) ; return function ( b ) { if ( b in a ) return a [ b ] ; - 1 === c . indexOf ( b ) && c . push ( b ) ; return d [ c . indexOf ( b ) % d . length ] } } ( $e , af ) , Nd = function ( ) { var a = [ [ e . time . format ( "%Y/%-m/%-d" ) , function ( ) { return ! 0 } ] , [ e . time . format ( "%-m/%-d" ) , function ( a ) { return a . getMonth ( ) } ] , [ e . time . format ( "%-m/%-d" ) , function ( a ) { return 1 !== a . getDate ( ) } ] ,
[ e . time . format ( "%-m/%-d" ) , function ( a ) { return a . getDay ( ) && 1 !== a . getDate ( ) } ] , [ e . time . format ( "%I %p" ) , function ( a ) { return a . getHours ( ) } ] , [ e . time . format ( "%I:%M" ) , function ( a ) { return a . getMinutes ( ) } ] , [ e . time . format ( ":%S" ) , function ( a ) { return a . getSeconds ( ) } ] , [ e . time . format ( ".%L" ) , function ( a ) { return a . getMilliseconds ( ) } ] ] ; return function ( b ) { for ( var c = a . length - 1 , d = a [ c ] ; ! d [ 1 ] ( b ) ; ) d = a [ -- c ] ; return d [ 0 ] ( b ) } } ( ) , r , Bb , q , fb , yb , wa , Na , Cb , Db , ib , wc , xc , Ob , Fb , Gb , Hb , Ib , Jb , Kb , n , B , ba , U , gb , hb , T , Mb , vc , Lb , Fd = h ? "left" : "bottom" ,
Hd = h ? cb ? "top" : "bottom" : cb ? "right" : "left" , Jd = h ? eb ? "bottom" : "top" : eb ? "left" : "right" , Gd = h ? "left" : "bottom" , J = { main : function ( ) { return "translate(" + t + "," + m + ")" } , context : function ( ) { return "translate(" + qc + "," + vb + ")" } , legend : function ( ) { return "translate(" + pc + "," + oc + ")" } , y2 : function ( ) { return "translate(" + ( h ? 0 : r ) + "," + ( h ? 10 : 0 ) + ")" } , x : function ( ) { return "translate(0," + q + ")" } , subx : function ( ) { return "translate(0," + ( h ? 0 : fb ) + ")" } , arc : function ( ) { return "translate(" + r / 2 + "," + q / 2 + ")" } } , uc = 40 , tc = 20 ; Ob = e . layout . pie ( ) . value ( function ( a ) { return a . values . reduce ( function ( a ,
c ) { return a + c . value } , 0 ) } ) ; var Ue = function ( ) { var a = e . svg . line ( ) . x ( h ? function ( a ) { return u ( a . id ) ( a . value ) } : Ca ) . y ( h ? Ca : function ( a ) { return u ( a . id ) ( a . value ) } ) ; return function ( b ) { var c = Xb ( b . values ) , d ; if ( pb ( b ) ) return cd ( b ) ? a . interpolate ( "cardinal" ) : a . interpolate ( "linear" ) , zd [ b . id ] ? Ee ( c , n , u ( b . id ) , zd [ b . id ] ) : a ( c ) ; d = n ( c [ 0 ] . x ) ; b = u ( b . id ) ( c [ 0 ] . value ) ; return h ? "M " + b + " " + d : "M " + d + " " + b } } ( ) , Ve = function ( ) { var a ; a = h ? e . svg . area ( ) . x0 ( function ( a ) { return u ( a . id ) ( 0 ) } ) . x1 ( function ( a ) { return u ( a . id ) ( a . value ) } ) . y ( Ca ) : e . svg . area ( ) . x ( Ca ) . y0 ( function ( a ) { return u ( a . id ) ( 0 ) } ) . y1 ( function ( a ) { return u ( a . id ) ( a . value ) } ) ;
return function ( b ) { var c = Xb ( b . values ) , d ; if ( $ ( [ b ] , "area" ) || $ ( [ b ] , "area-spline" ) ) return cd ( b ) ? a . interpolate ( "cardinal" ) : a . interpolate ( "linear" ) , a ( c ) ; d = n ( c [ 0 ] . x ) ; b = u ( b . id ) ( c [ 0 ] . value ) ; return h ? "M " + b + " " + d : "M " + d + " " + b } } ( ) , We = function ( ) { var a = e . svg . line ( ) . x ( h ? function ( a ) { return L ( a . id ) ( a . value ) } : Sc ) . y ( h ? Sc : function ( a ) { return L ( a . id ) ( a . value ) } ) ; return function ( b ) { var c = Xb ( b . values ) ; return pb ( b ) ? a ( c ) : "M " + U ( c [ 0 ] . x ) + " " + L ( b . id ) ( c [ 0 ] . value ) } } ( ) , G , C = function ( ) { } ; G = e . svg . brush ( ) . on ( "brush" , function ( ) { x ( { withTransition : ! 1 ,
withY : ! 1 , withSubchart : ! 1 , withUpdateXDomain : ! 0 } ) } ) ; G . update = function ( ) { F && F . select ( ".x.brush" ) . call ( this ) ; return this } ; G . scale = function ( a ) { return h ? this . y ( a ) : this . x ( a ) } ; fa && ( C = e . behavior . zoom ( ) . on ( "zoomstart" , function ( ) { C . altDomain = e . event . sourceEvent . altKey ? n . orgDomain ( ) : null } ) . on ( "zoom" , fa ? Xe : null ) , C . scale = function ( a ) { return h ? this . y ( a ) : this . x ( a ) } , C . orgScaleExtent = function ( ) { var a = yd ? yd : [ 1 , 10 ] ; return [ a [ 0 ] , Math . max ( za ( ) / a [ 1 ] , a [ 1 ] ) ] } , C . updateScaleExtent = function ( ) { var a = ya ( n . orgDomain ( ) ) / ya ( aa ) , b =
this . orgScaleExtent ( ) ; this . scaleExtent ( [ b [ 0 ] * a , b [ 1 ] * a ] ) ; return this } ) ; var p , rb , l , F , Ha , V , qb , aa , xd , Tb = { } ; g . focus = function ( a ) { var b = p . selectAll ( ka ( a ) ) , c = b . filter ( lc ) , b = b . filter ( mc ) ; g . revert ( ) ; g . defocus ( ) ; c . classed ( "focused" , ! 0 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; b . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; E ( g . data . targets ) && Ac ( a , ! 0 ) ; jc ( a ) } ; g . defocus = function ( a ) { var b = p . selectAll ( ka ( a ) ) , c = b . filter ( lc ) , b = b . filter ( mc ) ; g . revert ( ) ; c . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" ,
0.3 ) ; b . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) ; E ( g . data . targets ) && Qb ( a ) ; Ye ( a ) } ; g . revert = function ( a ) { var b = p . selectAll ( ka ( a ) ) , c = b . filter ( lc ) , b = b . filter ( mc ) ; c . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; b . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; E ( g . data . targets ) && Qb ( a ) ; kc ( ) } ; g . show = function ( a ) { p . selectAll ( ka ( a ) ) . transition ( ) . style ( "opacity" , 1 ) } ; g . hide = function ( a ) { p . selectAll ( ka ( a ) ) . transition ( ) . style ( "opacity" , 0 ) } ; g . unzoom = function ( ) { G . clear ( ) . update ( ) ; x ( { withUpdateXDomain : ! 0 } ) } ;
g . load = function ( a ) { "function" !== typeof a . done && ( a . done = function ( ) { } ) ; a . xs && fe ( a . xs ) ; "categories" in a && ja && ( Oa = a . categories , T . categories ( Oa ) ) ; if ( "cacheIds" in a && be ( a . cacheIds ) ) $a ( ce ( a . cacheIds ) , a . done ) ; else if ( "data" in a ) $a ( Sa ( a . data ) , a . done ) ; else if ( "url" in a ) e . csv ( a . url , function ( b , c ) { $a ( Sa ( c ) , a . done ) } ) ; else if ( "rows" in a ) $a ( Sa ( Gc ( a . rows ) ) , a . done ) ; else if ( "columns" in a ) $a ( Sa ( Hc ( a . columns ) ) , a . done ) ; else throw Error ( "url or rows or columns is required." ) ; } ; g . unload = function ( a ) { g . data . targets = g . data . targets . filter ( function ( b ) { return b . id !==
a } ) ; p . selectAll ( ka ( a ) ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) ; Ia && ( p . selectAll ( ".legend-item" + ub ( a ) ) . remove ( ) , tb ( g . data . targets ) ) ; 0 < g . data . targets . length && x ( { withUpdateOrgXDomain : ! 0 , withUpdateXDomain : ! 0 } ) } ; g . selected = function ( a ) { a = ub ( a ) ; return e . merge ( l . selectAll ( ".-shapes" + a ) . selectAll ( ".-shape" ) . filter ( function ( ) { return e . select ( this ) . classed ( na ) } ) . map ( function ( a ) { return a . map ( function ( a ) { return a . _ _data _ _ } ) } ) ) } ; g . select = function ( a , b , c ) { la && l . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( d ,
g ) { var h = "circle" === this . nodeName ? hd : Be , l = "circle" === this . nodeName ? Wb : jd ; 0 <= b . indexOf ( g ) ? ma ( d ) && ( va || w ( a ) || 0 <= a . indexOf ( d . id ) ) && h ( e . select ( this ) . classed ( na , ! 0 ) , d , g ) : z ( c ) && c && l ( e . select ( this ) . classed ( na , ! 1 ) , d , g ) } ) } ; g . unselect = function ( a , b ) { la && l . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( c , d ) { var g = "circle" === this . nodeName ? Wb : jd ; ( w ( b ) || 0 <= b . indexOf ( d ) ) && ma ( c ) && ( va || w ( a ) || 0 <= a . indexOf ( c . id ) ) && g ( e . select ( this ) . classed ( na , ! 1 ) , c , d ) } ) } ; g . toLine = function ( a ) { da ( a , "line" ) ; x ( ) } ; g . toSpline = function ( a ) { da ( a ,
"spline" ) ; x ( ) } ; g . toBar = function ( a ) { da ( a , "bar" ) ; x ( ) } ; g . toScatter = function ( a ) { da ( a , "scatter" ) ; x ( ) } ; g . toArea = function ( a ) { da ( a , "area" ) ; x ( ) } ; g . toAreaSpline = function ( a ) { da ( a , "area-spline" ) ; x ( ) } ; g . toPie = function ( a ) { da ( a , "pie" ) ; oa ( ) ; R ( ) ; x ( { withTransform : ! 0 } ) } ; g . toDonut = function ( a ) { da ( a , "donut" ) ; oa ( ) ; R ( ) ; x ( { withTransform : ! 0 } ) } ; g . groups = function ( a ) { if ( w ( a ) ) return v ; v = a ; x ( ) ; return v } ; g . regions = function ( a ) { if ( w ( a ) ) return N ; N = a ; x ( ) ; return N } ; g . regions . add = function ( a ) { if ( w ( a ) ) return N ; N = N . concat ( a ) ; x ( ) ; return N } ;
g . regions . remove = function ( a , b ) { var c = [ ] . concat ( a ) ; b = z ( b ) ? b : { } ; c . forEach ( function ( a ) { var c = A ( b . duration ) ? b . duration : 0 ; p . selectAll ( "." + a ) . transition ( ) . duration ( c ) . style ( "fill-opacity" , 0 ) . remove ( ) ; N = N . filter ( function ( b ) { return 0 > b . classes . indexOf ( a ) } ) } ) ; return N } ; g . data . get = function ( a ) { a = g . data . getAsTarget ( a ) ; return z ( a ) ? a . values . map ( function ( a ) { return a . value } ) : void 0 } ; g . data . getAsTarget = function ( a ) { var b = lb ( function ( b ) { return b . id === a } ) ; return 0 < b . length ? b [ 0 ] : void 0 } ; g . resize = function ( a ) { Ma = a ? a . width :
null ; Eb = a ? a . height : null ; sd ( ) } ; g . destroy = function ( ) { g . data . targets = void 0 ; g . data . x = { } ; qb . html ( "" ) ; K . onresize = null } ; if ( "url" in O . data ) e . csv ( O . data . url , function ( a , b ) { ac ( b ) } ) ; else if ( "rows" in O . data ) ac ( Gc ( O . data . rows ) ) ; else if ( "columns" in O . data ) ac ( Hc ( O . data . columns ) ) ; else throw Error ( "url or rows or columns is required." ) ; return g } } ) ( window ) ;