2016-03-14 18:09:27 -04:00
! function ( t ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = t ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , t ) ; else { var e ; "undefined" != typeof window ? e = window : "undefined" != typeof global ? e = global : "undefined" != typeof self && ( e = self ) , e . mermaidAPI = t ( ) } } ( function ( ) { var define , module , exports ; return function t ( e , n , r ) { function i ( u , o ) { if ( ! n [ u ] ) { if ( ! e [ u ] ) { var s = "function" == typeof require && require ; if ( ! o && s ) return s ( u , ! 0 ) ; if ( a ) return a ( u , ! 0 ) ; var c = new Error ( "Cannot find module '" + u + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var l = n [ u ] = { exports : { } } ; e [ u ] [ 0 ] . call ( l . exports , function ( t ) { var n = e [ u ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , l , l . exports , t , e , n , r ) } return n [ u ] . exports } for ( var a = "function" == typeof require && require , u = 0 ; u < r . length ; u ++ ) i ( r [ u ] ) ; return i } ( { 1 : [ function ( ) { } , { } ] , 2 : [ function ( t , e ) { ! function ( ) { function t ( t ) { return t && ( t . ownerDocument || t . document || t ) . documentElement } function n ( t ) { return t && ( t . ownerDocument && t . ownerDocument . defaultView || t . document && t || t . defaultView ) } function r ( t , e ) { return e > t ? - 1 : t > e ? 1 : t >= e ? 0 : 0 / 0 } function i ( t ) { return null === t ? 0 / 0 : + t } function a ( t ) { return ! isNaN ( t ) } function u ( t ) { return { left : function ( e , n , r , i ) { for ( arguments . length < 3 && ( r = 0 ) , arguments . length < 4 && ( i = e . length ) ; i > r ; ) { var a = r + i >>> 1 ; t ( e [ a ] , n ) < 0 ? r = a + 1 : i = a } return r } , right : function ( e , n , r , i ) { for ( arguments . length < 3 && ( r = 0 ) , arguments . length < 4 && ( i = e . length ) ; i > r ; ) { var a = r + i >>> 1 ; t ( e [ a ] , n ) > 0 ? i = a : r = a + 1 } return r } } } function o ( t ) { return t . length } function s ( t ) { for ( var e = 1 ; t * e % 1 ; ) e *= 10 ; return e } function c ( t , e ) { for ( var n in e ) Object . defineProperty ( t . prototype , n , { value : e [ n ] , enumerable : ! 1 } ) } function l ( ) { this . _ = Object . create ( null ) } function h ( t ) { return ( t += "" ) === gu || t [ 0 ] === yu ? yu + t : t } function f ( t ) { return ( t += "" ) [ 0 ] === yu ? t . slice ( 1 ) : t } function d ( t ) { return h ( t ) in this . _ } function p ( t ) { return ( t = h ( t ) ) in this . _ && delete this . _ [ t ] } function g ( ) { var t = [ ] ; for ( var e in this . _ ) t . push ( f ( e ) ) ; return t } function y ( ) { var t = 0 ; for ( var e in this . _ ) ++ t ; return t } function m ( ) { for ( var t in this . _ ) return ! 1 ; return ! 0 } function v ( ) { this . _ = Object . create ( null ) } function _ ( t ) { return t } function b ( t , e , n ) { return function ( ) { var r = n . apply ( e , arguments ) ; return r === e ? t : r } } function x ( t , e ) { if ( e in t ) return e ; e = e . charAt ( 0 ) . toUpperCase ( ) + e . slice ( 1 ) ; for ( var n = 0 , r = mu . length ; r > n ; ++ n ) { var i = mu [ n ] + e ; if ( i in t ) return i } } function w ( ) { } function A ( ) { } function k ( t ) { function e ( ) { for ( var e , r = n , i = - 1 , a = r . length ; ++ i < a ; ) ( e = r [ i ] . on ) && e . apply ( this , arguments ) ; return t } var n = [ ] , r = new l ; return e . on = function ( e , i ) { var a , u = r . get ( e ) ; return arguments . length < 2 ? u && u . on : ( u && ( u . on = null , n = n . slice ( 0 , a = n . indexOf ( u ) ) . concat ( n . slice ( a + 1 ) ) , r . remove ( e ) ) , i && n . push ( r . set ( e , { on : i } ) ) , t ) } , e } function E ( ) { nu . event . preventDefault ( ) } function M ( ) { for ( var t , e = nu . event ; t = e . sourceEvent ; ) e = t ; return e } function D ( t ) { for ( var e = new A , n = 0 , r = arguments . length ; ++ n < r ; ) e [ arguments [ n ] ] = k ( e ) ; return e . of = function ( n , r ) { return function ( i ) { try { var a = i . sourceEvent = nu . event ; i . target = t , nu . event = i , e [ i . type ] . apply ( n , r ) } finally { nu . event = a } } } , e } function S ( t ) { return _u ( t , Au ) , t } function C ( t ) { return "function" == typeof t ? t : function ( ) { return bu ( t , this ) } } function T ( t ) { return "function" == typeof t ? t : function ( ) { return xu ( t , this ) } } function F ( t , e ) { function n ( ) { this . removeAttribute ( t ) } function r ( ) { this . removeAttributeNS ( t . space , t . local ) } function i ( ) { this . setAttribute ( t , e ) } function a ( ) { this . setAttributeNS ( t . space , t . local , e ) } function u ( ) { var n = e . apply ( this , arguments ) ; null == n ? this . removeAttribute ( t ) : this . setAttribute ( t , n ) } function o ( ) { var n = e . apply ( this , arguments ) ; null == n ? this . removeAttributeNS ( t . space , t . local ) : this . setAttributeNS ( t . space , t . local , n ) } return t = nu . ns . qualify ( t ) , null == e ? t . local ? r : n : "function" == typeof e ? t . local ? o : u : t . local ? a : i } function B ( t ) { return t . trim ( ) . replace ( /\s+/g , " " ) } function L ( t ) { return new RegExp ( "(?:^|\\s+)" + nu . requote ( t ) + "(?:\\s+|$)" , "g" ) } function I ( t ) { return ( t + "" ) . trim ( ) . split ( /^|\s+/ ) } function N ( t , e ) { function n ( ) { for ( var n = - 1 ; ++ n < i ; ) t [ n ] ( this , e ) } function r ( ) { for ( var n = - 1 , r = e . apply ( this , arguments ) ; ++ n < i ; ) t [ n ] ( this , r ) } t = I ( t ) . map ( O ) ; var i = t . length ; return "function" == typeof e ? r : n } function O ( t ) { var e = L ( t ) ; return function ( n , r ) { if ( i = n . classList ) return r ? i . add ( t ) : i . remove ( t ) ; var i = n . ge
t . closePath ( ) } var u = 4.5 , o = { point : e , lineStart : function ( ) { o . point = n } , lineEnd : i , polygonStart : function ( ) { o . lineEnd = a } , polygonEnd : function ( ) { o . lineEnd = i , o . point = e } , pointRadius : function ( t ) { return u = t , o } , result : w } ; return o } function en ( t ) { function e ( t ) { return ( o ? r : n ) ( t ) } function n ( e ) { return an ( e , function ( n , r ) { n = t ( n , r ) , e . point ( n [ 0 ] , n [ 1 ] ) } ) } function r ( e ) { function n ( n , r ) { n = t ( n , r ) , e . point ( n [ 0 ] , n [ 1 ] ) } function r ( ) { _ = 0 / 0 , k . point = a , e . lineStart ( ) } function a ( n , r ) { var a = ge ( [ n , r ] ) , u = t ( n , r ) ; i ( _ , b , v , x , w , A , _ = u [ 0 ] , b = u [ 1 ] , v = n , x = a [ 0 ] , w = a [ 1 ] , A = a [ 2 ] , o , e ) , e . point ( _ , b ) } function u ( ) { k . point = n , e . lineEnd ( ) } function s ( ) { r ( ) , k . point = c , k . lineEnd = l } function c ( t , e ) { a ( h = t , f = e ) , d = _ , p = b , g = x , y = w , m = A , k . point = a } function l ( ) { i ( _ , b , v , x , w , A , d , p , h , g , y , m , o , e ) , k . lineEnd = u , u ( ) } var h , f , d , p , g , y , m , v , _ , b , x , w , A , k = { point : n , lineStart : r , lineEnd : u , polygonStart : function ( ) { e . polygonStart ( ) , k . lineStart = s } , polygonEnd : function ( ) { e . polygonEnd ( ) , k . lineStart = r } } ; return k } function i ( e , n , r , o , s , c , l , h , f , d , p , g , y , m ) { var v = l - e , _ = h - n , b = v * v + _ * _ ; if ( b > 4 * a && y -- ) { var x = o + d , w = s + p , A = c + g , k = Math . sqrt ( x * x + w * w + A * A ) , E = Math . asin ( A /= k ) , M = pu ( pu ( A ) - 1 ) < Tu || pu ( r - f ) < Tu ? ( r + f ) / 2 : Math . atan2 ( w , x ) , D = t ( M , E ) , S = D [ 0 ] , C = D [ 1 ] , T = S - e , F = C - n , B = _ * T - v * F ; ( B * B / b > a || pu ( ( v * T + _ * F ) / b - . 5 ) > . 3 || u > o * d + s * p + c * g ) && ( i ( e , n , r , o , s , c , S , C , M , x /= k , w /= k , A , y , m ) , m . point ( S , C ) , i ( S , C , M , x , w , A , l , h , f , d , p , g , y , m ) ) } } var a = . 5 , u = Math . cos ( 30 * Ou ) , o = 16 ; return e . precision = function ( t ) { return arguments . length ? ( o = ( a = t * t ) > 0 && 16 , e ) : Math . sqrt ( a ) } , e } function nn ( t ) { var e = en ( function ( e , n ) { return t ( [ e * Pu , n * Pu ] ) } ) ; return function ( t ) { return sn ( e ( t ) ) } } function rn ( t ) { this . stream = t } function an ( t , e ) { return { point : e , sphere : function ( ) { t . sphere ( ) } , lineStart : function ( ) { t . lineStart ( ) } , lineEnd : function ( ) { t . lineEnd ( ) } , polygonStart : function ( ) { t . polygonStart ( ) } , polygonEnd : function ( ) { t . polygonEnd ( ) } } } function un ( t ) { return on ( function ( ) { return t } ) ( ) } function on ( t ) { function e ( t ) { return t = o ( t [ 0 ] * Ou , t [ 1 ] * Ou ) , [ t [ 0 ] * f + s , c - t [ 1 ] * f ] } function n ( t ) { return t = o . invert ( ( t [ 0 ] - s ) / f , ( c - t [ 1 ] ) / f ) , t && [ t [ 0 ] * Pu , t [ 1 ] * Pu ] } function r ( ) { o = Se ( u = hn ( m , v , b ) , a ) ; var t = a ( g , y ) ; return s = d - t [ 0 ] * f , c = p + t [ 1 ] * f , i ( ) } function i ( ) { return l && ( l . valid = ! 1 , l = null ) , e } var a , u , o , s , c , l , h = en ( function ( t , e ) { return t = a ( t , e ) , [ t [ 0 ] * f + s , c - t [ 1 ] * f ] } ) , f = 150 , d = 480 , p = 250 , g = 0 , y = 0 , m = 0 , v = 0 , b = 0 , x = Io , w = _ , A = null , k = null ; return e . stream = function ( t ) { return l && ( l . valid = ! 1 ) , l = sn ( x ( u , h ( w ( t ) ) ) ) , l . valid = ! 0 , l } , e . clipAngle = function ( t ) { return arguments . length ? ( x = null == t ? ( A = t , Io ) : $e ( ( A = + t ) * Ou ) , i ( ) ) : A } , e . clipExtent = function ( t ) { return arguments . length ? ( k = t , w = t ? ze ( t [ 0 ] [ 0 ] , t [ 0 ] [ 1 ] , t [ 1 ] [ 0 ] , t [ 1 ] [ 1 ] ) : _ , i ( ) ) : k } , e . scale = function ( t ) { return arguments . length ? ( f = + t , r ( ) ) : f } , e . translate = function ( t ) { return arguments . length ? ( d = + t [ 0 ] , p = + t [ 1 ] , r ( ) ) : [ d , p ] } , e . center = function ( t ) { return arguments . length ? ( g = t [ 0 ] % 360 * Ou , y = t [ 1 ] % 360 * Ou , r ( ) ) : [ g * Pu , y * Pu ] } , e . rotate = function ( t ) { return arguments . length ? ( m = t [ 0 ] % 360 * Ou , v = t [ 1 ] % 360 * Ou , b = t . length > 2 ? t [ 2 ] % 360 * Ou : 0 , r ( ) ) : [ m * Pu , v * Pu , b * Pu ] } , nu . rebind ( e , h , "precision" ) , function ( ) { return a = t . apply ( this , arguments ) , e . invert = a . invert && n , r ( ) } } function sn ( t ) { return an ( t , function ( e , n ) { t . point ( e * Ou , n * Ou ) } ) } function cn ( t , e ) { return [ t , e ] } function ln ( t , e ) { return [ t > Bu ? t - Lu : - Bu > t ? t + Lu : t , e ] } function hn ( t , e , n ) { return t ? e || n ? Se ( dn ( t ) , pn ( e , n ) ) : dn ( t ) : e || n ? pn ( e , n ) : ln } function fn ( t ) { return function ( e , n ) { return e += t , [ e > Bu ? e - Lu : - Bu > e ? e + Lu : e , n ] } } function dn ( t ) { var e = fn ( t ) ; return e . invert = fn ( - t ) , e } function pn ( t , e ) { function n ( t , e ) { var n = Math . cos ( e ) , o = Math . cos ( t ) * n , s = Math . sin ( t ) * n , c = Math . sin ( e ) , l = c * r + o * i ; return [ Math . atan2 ( s * a - l * u , o * r - c * i ) , nt ( l * a + s * u ) ] } var r = Math . cos ( t ) , i = Math . sin ( t ) , a = Math . cos ( e ) , u = Math . sin ( e ) ; return n . invert = function ( t , e ) { var n = Math . cos ( e ) , o = Math . cos ( t ) * n , s = Math . sin ( t ) * n , c = Math . sin ( e ) , l = c * a - s * u ; return [ Math . atan2 ( s * a + c * u , o * r + l * i ) , nt ( l * r - o * i ) ] } , n } function gn ( t , e ) { var n = Math . cos ( t ) , r = Math . sin ( t ) ; return function ( i , a , u , o ) { var s = u * e ; null != i ? ( i = yn ( n , i ) , a = yn ( n , a ) , ( u > 0 ? a > i : i > a ) && ( i += u * Lu ) ) : ( i = t + u * Lu , a = t - . 5 * s ) ; for ( var c , l = i ; u > 0 ? l > a : a > l ; l -= s ) o . point ( ( c = xe ( [ n , - r * Math . cos ( l ) , - r * Math . sin ( l ) ] ) ) [ 0 ] , c [ 1 ] ) } } function yn ( t , e ) { var n = ge ( e ) ; n [ 0 ] -= t , be ( n ) ; var r = et ( - n [ 1 ] ) ; return ( ( - n [ 2 ] < 0 ? - r : r ) + 2 * Math . PI - Tu ) % ( 2 * Math . PI ) } function mn ( t , e , n ) { var r = nu . range ( t , e - Tu , n ) . concat ( e ) ; return function ( t ) { return r . map
a . push ( [ i || 0 , u [ o ] * i || 0 ] ) ; return a } function Ia ( t ) { return t . length < 3 ? ga ( t ) : t [ 0 ] + Aa ( t , La ( t ) ) } function Na ( t ) { for ( var e , n , r , i = - 1 , a = t . length ; ++ i < a ; ) e = t [ i ] , n = e [ 0 ] , r = e [ 1 ] - Nu , e [ 0 ] = n * Math . cos ( r ) , e [ 1 ] = n * Math . sin ( r ) ; return t } function Oa ( t ) { function e ( e ) { function s ( ) { g . push ( "M" , o ( t ( m ) , h ) , l , c ( t ( y . reverse ( ) ) , h ) , "Z" ) } for ( var f , d , p , g = [ ] , y = [ ] , m = [ ] , v = - 1 , _ = e . length , b = Dt ( n ) , x = Dt ( i ) , w = n === r ? function ( ) { return d } : Dt ( r ) , A = i === a ? function ( ) { return p } : Dt ( a ) ; ++ v < _ ; ) u . call ( this , f = e [ v ] , v ) ? ( y . push ( [ d = + b . call ( this , f , v ) , p = + x . call ( this , f , v ) ] ) , m . push ( [ + w . call ( this , f , v ) , + A . call ( this , f , v ) ] ) ) : y . length && ( s ( ) , y = [ ] , m = [ ] ) ; return y . length && s ( ) , g . length ? g . join ( "" ) : null } var n = Cn , r = Cn , i = 0 , a = Tn , u = Ce , o = ga , s = o . key , c = o , l = "L" , h = . 7 ; return e . x = function ( t ) { return arguments . length ? ( n = r = t , e ) : r } , e . x0 = function ( t ) { return arguments . length ? ( n = t , e ) : n } , e . x1 = function ( t ) { return arguments . length ? ( r = t , e ) : r } , e . y = function ( t ) { return arguments . length ? ( i = a = t , e ) : a } , e . y0 = function ( t ) { return arguments . length ? ( i = t , e ) : i } , e . y1 = function ( t ) { return arguments . length ? ( a = t , e ) : a } , e . defined = function ( t ) { return arguments . length ? ( u = t , e ) : u } , e . interpolate = function ( t ) { return arguments . length ? ( s = "function" == typeof t ? o = t : ( o = Ss . get ( t ) || ga ) . key , c = o . reverse || o , l = o . closed ? "M" : "L" , e ) : s } , e . tension = function ( t ) { return arguments . length ? ( h = t , e ) : h } , e } function Pa ( t ) { return t . radius } function Ra ( t ) { return [ t . x , t . y ] } function ja ( t ) { return function ( ) { var e = t . apply ( this , arguments ) , n = e [ 0 ] , r = e [ 1 ] - Nu ; return [ n * Math . cos ( r ) , n * Math . sin ( r ) ] } } function Ya ( ) { return 64 } function $a ( ) { return "circle" } function Ua ( t ) { var e = Math . sqrt ( t / Bu ) ; return "M0," + e + "A" + e + "," + e + " 0 1,1 0," + - e + "A" + e + "," + e + " 0 1,1 0," + e + "Z" } function za ( t ) { return function ( ) { var e , n ; ( e = this [ t ] ) && ( n = e [ e . active ] ) && ( -- e . count ? delete e [ e . active ] : delete this [ t ] , e . active += . 5 , n . event && n . event . interrupt . call ( this , this . _ _data _ _ , n . index ) ) } } function Wa ( t , e , n ) { return _u ( t , Rs ) , t . namespace = e , t . id = n , t } function qa ( t , e , n , r ) { var i = t . id , a = t . namespace ; return W ( t , "function" == typeof n ? function ( t , u , o ) { t [ a ] [ i ] . tween . set ( e , r ( n . call ( t , t . _ _data _ _ , u , o ) ) ) } : ( n = r ( n ) , function ( t ) { t [ a ] [ i ] . tween . set ( e , n ) } ) ) } function Va ( t ) { return null == t && ( t = "" ) , function ( ) { this . textContent = t } } function Ha ( t ) { return null == t ? "__transition__" : "__transition_" + t + "__" } function Ga ( t , e , n , r , i ) { var a = t [ n ] || ( t [ n ] = { active : 0 , count : 0 } ) , u = a [ r ] ; if ( ! u ) { var o = i . time ; u = a [ r ] = { tween : new l , time : o , delay : i . delay , duration : i . duration , ease : i . ease , index : e } , i = null , ++ a . count , nu . timer ( function ( i ) { function s ( n ) { if ( a . active > r ) return l ( ) ; var i = a [ a . active ] ; i && ( -- a . count , delete a [ a . active ] , i . event && i . event . interrupt . call ( t , t . _ _data _ _ , i . index ) ) , a . active = r , u . event && u . event . start . call ( t , t . _ _data _ _ , e ) , u . tween . forEach ( function ( n , r ) { ( r = r . call ( t , t . _ _data _ _ , e ) ) && g . push ( r ) } ) , f = u . ease , h = u . duration , nu . timer ( function ( ) { return p . c = c ( n || 1 ) ? Ce : c , 1 } , 0 , o ) } function c ( n ) { if ( a . active !== r ) return 1 ; for ( var i = n / h , o = f ( i ) , s = g . length ; s > 0 ; ) g [ -- s ] . call ( t , o ) ; return i >= 1 ? ( u . event && u . event . end . call ( t , t . _ _data _ _ , e ) , l ( ) ) : void 0 } function l ( ) { return -- a . count ? delete a [ r ] : delete t [ n ] , 1 } var h , f , d = u . delay , p = ro , g = [ ] ; return p . t = d + o , i >= d ? s ( i - d ) : void ( p . c = s ) } , 0 , o ) } } function Xa ( t , e , n ) { t . attr ( "transform" , function ( t ) { var r = e ( t ) ; return "translate(" + ( isFinite ( r ) ? r : n ( t ) ) + ",0)" } ) } function Za ( t , e , n ) { t . attr ( "transform" , function ( t ) { var r = e ( t ) ; return "translate(0," + ( isFinite ( r ) ? r : n ( t ) ) + ")" } ) } function Ka ( t ) { return t . toISOString ( ) } function Qa ( t , e , n ) { function r ( e ) { return t ( e ) } function i ( t , n ) { var r = t [ 1 ] - t [ 0 ] , i = r / n , a = nu . bisect ( Hs , i ) ; return a == Hs . length ? [ e . year , Hi ( t . map ( function ( t ) { return t / 31536e6 } ) , n ) [ 2 ] ] : a ? e [ i / Hs [ a - 1 ] < Hs [ a ] / i ? a - 1 : a ] : [ Zs , Hi ( t , n ) [ 2 ] ] } return r . invert = function ( e ) { return Ja ( t . invert ( e ) ) } , r . domain = function ( e ) { return arguments . length ? ( t . domain ( e ) , r ) : t . domain ( ) . map ( Ja ) } , r . nice = function ( t , e ) { function n ( n ) { return ! isNaN ( n ) && ! t . range ( n , Ja ( + n + 1 ) , e ) . length } var a = r . domain ( ) , u = Ri ( a ) , o = null == t ? i ( u , 10 ) : "number" == typeof t && i ( u , t ) ; return o && ( t = o [ 0 ] , e = o [ 1 ] ) , r . domain ( $i ( a , e > 1 ? { floor : function ( e ) { for ( ; n ( e = t . floor ( e ) ) ; ) e = Ja ( e - 1 ) ; return e } , ceil : function ( e ) { for ( ; n ( e = t . ceil ( e ) ) ; ) e = Ja ( + e + 1 ) ; return e } } : t ) ) } , r . ticks = function ( t , e ) { var n = Ri ( r . domain ( ) ) , a = null == t ? i ( n , 10 ) : "number" == typeof t ? i ( n , t ) : ! t . range && [ { range : t } , e ] ; return a && ( t = a [ 0 ] , e = a [ 1 ] ) , t
2015-10-19 22:08:17 +02:00
2016-03-14 18:09:27 -04:00
} } ) , so . week = so . sunday , so . weeks = so . sunday . range , so . weeks . utc = so . sunday . utc . range , so . weekOfYear = so . sundayOfYear ; var ho = { "-" : "" , _ : " " , 0 : "0" } , fo = /^\s*\d+/ , po = /^%/ ; nu . locale = function ( t ) { return { numberFormat : Pt ( t ) , timeFormat : Ut ( t ) } } ; var go = nu . locale ( { decimal : "." , thousands : "," , grouping : [ 3 ] , currency : [ "$" , "" ] , dateTime : "%a %b %e %X %Y" , date : "%m/%d/%Y" , time : "%H:%M:%S" , periods : [ "AM" , "PM" ] , days : [ "Sunday" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturday" ] , shortDays : [ "Sun" , "Mon" , "Tue" , "Wed" , "Thu" , "Fri" , "Sat" ] , months : [ "January" , "February" , "March" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December" ] , shortMonths : [ "Jan" , "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sep" , "Oct" , "Nov" , "Dec" ] } ) ; nu . format = go . numberFormat , nu . geo = { } , ce . prototype = { s : 0 , t : 0 , add : function ( t ) { le ( t , this . t , yo ) , le ( yo . s , this . s , this ) , this . s ? this . t += yo . t : this . s = yo . t } , reset : function ( ) { this . s = this . t = 0 } , valueOf : function ( ) { return this . s } } ; var yo = new ce ; nu . geo . stream = function ( t , e ) { t && mo . hasOwnProperty ( t . type ) ? mo [ t . type ] ( t , e ) : he ( t , e ) } ; var mo = { Feature : function ( t , e ) { he ( t . geometry , e ) } , FeatureCollection : function ( t , e ) { for ( var n = t . features , r = - 1 , i = n . length ; ++ r < i ; ) he ( n [ r ] . geometry , e ) } } , vo = { Sphere : function ( t , e ) { e . sphere ( ) } , Point : function ( t , e ) { t = t . coordinates , e . point ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) } , MultiPoint : function ( t , e ) { for ( var n = t . coordinates , r = - 1 , i = n . length ; ++ r < i ; ) t = n [ r ] , e . point ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) } , LineString : function ( t , e ) { fe ( t . coordinates , e , 0 ) } , MultiLineString : function ( t , e ) { for ( var n = t . coordinates , r = - 1 , i = n . length ; ++ r < i ; ) fe ( n [ r ] , e , 0 ) } , Polygon : function ( t , e ) { de ( t . coordinates , e ) } , MultiPolygon : function ( t , e ) { for ( var n = t . coordinates , r = - 1 , i = n . length ; ++ r < i ; ) de ( n [ r ] , e ) } , GeometryCollection : function ( t , e ) { for ( var n = t . geometries , r = - 1 , i = n . length ; ++ r < i ; ) he ( n [ r ] , e ) } } ; nu . geo . area = function ( t ) { return _o = 0 , nu . geo . stream ( t , xo ) , _o } ; var _o , bo = new ce , xo = { sphere : function ( ) { _o += 4 * Bu } , point : w , lineStart : w , lineEnd : w , polygonStart : function ( ) { bo . reset ( ) , xo . lineStart = pe } , polygonEnd : function ( ) { var t = 2 * bo ; _o += 0 > t ? 4 * Bu + t : t , xo . lineStart = xo . lineEnd = xo . point = w } } ; nu . geo . bounds = function ( ) { function t ( t , e ) { _ . push ( b = [ l = t , f = t ] ) , h > e && ( h = e ) , e > d && ( d = e ) } function e ( e , n ) { var r = ge ( [ e * Ou , n * Ou ] ) ; if ( m ) { var i = me ( m , r ) , a = [ i [ 1 ] , - i [ 0 ] , 0 ] , u = me ( a , i ) ; be ( u ) , u = xe ( u ) ; var s = e - p , c = s > 0 ? 1 : - 1 , g = u [ 0 ] * Pu * c , y = pu ( s ) > 180 ; if ( y ^ ( g > c * p && c * e > g ) ) { var v = u [ 1 ] * Pu ; v > d && ( d = v ) } else if ( g = ( g + 360 ) % 360 - 180 , y ^ ( g > c * p && c * e > g ) ) { var v = - u [ 1 ] * Pu ; h > v && ( h = v ) } else h > n && ( h = n ) , n > d && ( d = n ) ; y ? p > e ? o ( l , e ) > o ( l , f ) && ( f = e ) : o ( e , f ) > o ( l , f ) && ( l = e ) : f >= l ? ( l > e && ( l = e ) , e > f && ( f = e ) ) : e > p ? o ( l , e ) > o ( l , f ) && ( f = e ) : o ( e , f ) > o ( l , f ) && ( l = e ) } else t ( e , n ) ; m = r , p = e } function n ( ) { x . point = e } function r ( ) { b [ 0 ] = l , b [ 1 ] = f , x . point = t , m = null } function i ( t , n ) { if ( m ) { var r = t - p ; v += pu ( r ) > 180 ? r + ( r > 0 ? 360 : - 360 ) : r } else g = t , y = n ; xo . point ( t , n ) , e ( t , n ) } function a ( ) { xo . lineStart ( ) } function u ( ) { i ( g , y ) , xo . lineEnd ( ) , pu ( v ) > Tu && ( l = - ( f = 180 ) ) , b [ 0 ] = l , b [ 1 ] = f , m = null } function o ( t , e ) { return ( e -= t ) < 0 ? e + 360 : e } function s ( t , e ) { return t [ 0 ] - e [ 0 ] } function c ( t , e ) { return e [ 0 ] <= e [ 1 ] ? e [ 0 ] <= t && t <= e [ 1 ] : t < e [ 0 ] || e [ 1 ] < t } var l , h , f , d , p , g , y , m , v , _ , b , x = { point : t , lineStart : n , lineEnd : r , polygonStart : function ( ) { x . point = i , x . lineStart = a , x . lineEnd = u , v = 0 , xo . polygonStart ( ) } , polygonEnd : function ( ) { xo . polygonEnd ( ) , x . point = t , x . lineStart = n , x . lineEnd = r , 0 > bo ? ( l = - ( f = 180 ) , h = - ( d = 90 ) ) : v > Tu ? d = 90 : - Tu > v && ( h = - 90 ) , b [ 0 ] = l , b [ 1 ] = f } } ; return function ( t ) { d = f = - ( l = h = 1 / 0 ) , _ = [ ] , nu . geo . stream ( t , x ) ; var e = _ . length ; if ( e ) { _ . sort ( s ) ; for ( var n , r = 1 , i = _ [ 0 ] , a = [ i ] ; e > r ; ++ r ) n = _ [ r ] , c ( n [ 0 ] , i ) || c ( n [ 1 ] , i ) ? ( o ( i [ 0 ] , n [ 1 ] ) > o ( i [ 0 ] , i [ 1 ] ) && ( i [ 1 ] = n [ 1 ] ) , o ( n [ 0 ] , i [ 1 ] ) > o ( i [ 0 ] , i [ 1 ] ) && ( i [ 0 ] = n [ 0 ] ) ) : a . push ( i = n ) ; for ( var u , n , p = - ( 1 / 0 ) , e = a . length - 1 , r = 0 , i = a [ e ] ; e >= r ; i = n , ++ r ) n = a [ r ] , ( u = o ( i [ 1 ] , n [ 0 ] ) ) > p && ( p = u , l = n [ 0 ] , f = i [ 1 ] ) } return _ = b = null , l === 1 / 0 || h === 1 / 0 ? [ [ 0 / 0 , 0 / 0 ] , [ 0 / 0 , 0 / 0 ] ] : [ [ l , h ] , [ f , d ] ] } } ( ) , nu . geo . centroid = function ( t ) { wo = Ao = ko = Eo = Mo = Do = So = Co = To = Fo = Bo = 0 , nu . geo . stream ( t , Lo ) ; var e = To , n = Fo , r = Bo , i = e * e + n * n + r * r ; return Fu > i && ( e = Do , n = So , r = Co , Tu > Ao && ( e = ko , n = Eo , r = Mo ) , i = e * e + n * n + r * r , Fu > i ) ? [ 0 / 0 , 0 / 0 ] : [ Math . atan2 ( n , e ) * Pu , nt ( r / Math . sqrt ( i ) ) * Pu ] } ; var wo , Ao , ko , Eo , Mo , Do , So , Co , To , Fo , Bo , Lo = { sphere : w , point : Ae , lineStart : Ee , lineEnd : Me , polygonStart : function ( ) { Lo . lineStart = De } , polygonEnd : function ( ) { Lo . lineStart = Ee } } , Io = Le ( Ce , Pe , je , [ - Bu , - Bu / 2 ] ) , No = 1e9 ; nu . geo . clipE
var a , u = h ( e ) , o = r . slice ( ) , s = [ ] ; for ( t ( o , u . dx * u . dy / e . value ) , s . area = 0 ; a = o . pop ( ) ; ) s . push ( a ) , s . area += a . area , null != a . z && ( i ( s , a . z ? u . dx : u . dy , u , ! o . length ) , s . length = s . area = 0 ) ; r . forEach ( n ) } } function r ( t , e ) { for ( var n , r = t . area , i = 0 , a = 1 / 0 , u = - 1 , o = t . length ; ++ u < o ; ) ( n = t [ u ] . area ) && ( a > n && ( a = n ) , n > i && ( i = n ) ) ; return r *= r , e *= e , r ? Math . max ( e * i * p / r , r / ( e * a * p ) ) : 1 / 0 } function i ( t , e , n , r ) { var i , a = - 1 , u = t . length , o = n . x , c = n . y , l = e ? s ( t . area / e ) : 0 ; if ( e == n . dx ) { for ( ( r || l > n . dy ) && ( l = n . dy ) ; ++ a < u ; ) i = t [ a ] , i . x = o , i . y = c , i . dy = l , o += i . dx = Math . min ( n . x + n . dx - o , l ? s ( i . area / l ) : 0 ) ; i . z = ! 0 , i . dx += n . x + n . dx - o , n . y += l , n . dy -= l } else { for ( ( r || l > n . dx ) && ( l = n . dx ) ; ++ a < u ; ) i = t [ a ] , i . x = o , i . y = c , i . dx = l , c += i . dy = Math . min ( n . y + n . dy - c , l ? s ( i . area / l ) : 0 ) ; i . z = ! 1 , i . dy += n . y + n . dy - c , n . x += l , n . dx -= l } } function a ( r ) { var i = u || o ( r ) , a = i [ 0 ] ; return a . x = 0 , a . y = 0 , a . dx = c [ 0 ] , a . dy = c [ 1 ] , u && o . revalue ( a ) , t ( [ a ] , a . dx * a . dy / a . value ) , ( u ? n : e ) ( a ) , f && ( u = i ) , i } var u , o = nu . layout . hierarchy ( ) , s = Math . round , c = [ 1 , 1 ] , l = null , h = Oi , f = ! 1 , d = "squarify" , p = . 5 * ( 1 + Math . sqrt ( 5 ) ) ; return a . size = function ( t ) { return arguments . length ? ( c = t , a ) : c } , a . padding = function ( t ) { function e ( e ) { var n = t . call ( a , e , e . depth ) ; return null == n ? Oi ( e ) : Pi ( e , "number" == typeof n ? [ n , n , n , n ] : n ) } function n ( e ) { return Pi ( e , t ) } if ( ! arguments . length ) return l ; var r ; return h = null == ( l = t ) ? Oi : "function" == ( r = typeof t ) ? e : "number" === r ? ( t = [ t , t , t , t ] , n ) : n , a } , a . round = function ( t ) { return arguments . length ? ( s = t ? Math . round : Number , a ) : s != Number } , a . sticky = function ( t ) { return arguments . length ? ( f = t , u = null , a ) : f } , a . ratio = function ( t ) { return arguments . length ? ( p = t , a ) : p } , a . mode = function ( t ) { return arguments . length ? ( d = t + "" , a ) : d } , Jr ( a , o ) } , nu . random = { normal : function ( t , e ) { var n = arguments . length ; return 2 > n && ( e = 1 ) , 1 > n && ( t = 0 ) , function ( ) { var n , r , i ; do n = 2 * Math . random ( ) - 1 , r = 2 * Math . random ( ) - 1 , i = n * n + r * r ; while ( ! i || i > 1 ) ; return t + e * n * Math . sqrt ( - 2 * Math . log ( i ) / i ) } } , logNormal : function ( ) { var t = nu . random . normal . apply ( nu , arguments ) ; return function ( ) { return Math . exp ( t ( ) ) } } , bates : function ( t ) { var e = nu . random . irwinHall ( t ) ; return function ( ) { return e ( ) / t } } , irwinHall : function ( t ) { return function ( ) { for ( var e = 0 , n = 0 ; t > n ; n ++ ) e += Math . random ( ) ; return e } } } , nu . scale = { } ; var _s = { floor : _ , ceil : _ } ; nu . scale . linear = function ( ) { return Wi ( [ 0 , 1 ] , [ 0 , 1 ] , _r , ! 1 ) } ; var bs = { s : 1 , g : 1 , p : 1 , r : 1 , e : 1 } ; nu . scale . log = function ( ) { return Qi ( nu . scale . linear ( ) . domain ( [ 0 , 1 ] ) , 10 , ! 0 , [ 1 , 10 ] ) } ; var xs = nu . format ( ".0e" ) , ws = { floor : function ( t ) { return - Math . ceil ( - t ) } , ceil : function ( t ) { return - Math . floor ( - t ) } } ; nu . scale . pow = function ( ) { return Ji ( nu . scale . linear ( ) , 1 , [ 0 , 1 ] ) } , nu . scale . sqrt = function ( ) { return nu . scale . pow ( ) . exponent ( . 5 ) } , nu . scale . ordinal = function ( ) { return ea ( [ ] , { t : "range" , a : [ [ ] ] } ) } , nu . scale . category10 = function ( ) { return nu . scale . ordinal ( ) . range ( As ) } , nu . scale . category20 = function ( ) { return nu . scale . ordinal ( ) . range ( ks ) } , nu . scale . category20b = function ( ) { return nu . scale . ordinal ( ) . range ( Es ) } , nu . scale . category20c = function ( ) { return nu . scale . ordinal ( ) . range ( Ms ) } ; var As = [ 2062260 , 16744206 , 2924588 , 14034728 , 9725885 , 9197131 , 14907330 , 8355711 , 12369186 , 1556175 ] . map ( bt ) , ks = [ 2062260 , 11454440 , 16744206 , 16759672 , 2924588 , 10018698 , 14034728 , 16750742 , 9725885 , 12955861 , 9197131 , 12885140 , 14907330 , 16234194 , 8355711 , 13092807 , 12369186 , 14408589 , 1556175 , 10410725 ] . map ( bt ) , Es = [ 3750777 , 5395619 , 7040719 , 10264286 , 6519097 , 9216594 , 11915115 , 13556636 , 9202993 , 12426809 , 15186514 , 15190932 , 8666169 , 11356490 , 14049643 , 15177372 , 8077683 , 10834324 , 13528509 , 14589654 ] . map ( bt ) , Ms = [ 3244733 , 7057110 , 10406625 , 13032431 , 15095053 , 16616764 , 16625259 , 16634018 , 3253076 , 7652470 , 10607003 , 13101504 , 7695281 , 10394312 , 12369372 , 14342891 , 6513507 , 9868950 , 12434877 , 14277081 ] . map ( bt ) ; nu . scale . quantile = function ( ) { return na ( [ ] , [ ] ) } , nu . scale . quantize = function ( ) { return ra ( 0 , 1 , [ 0 , 1 ] ) } , nu . scale . threshold = function ( ) { return ia ( [ . 5 ] , [ 0 , 1 ] ) } , nu . scale . identity = function ( ) { return aa ( [ 0 , 1 ] ) } , nu . svg = { } , nu . svg . arc = function ( ) { function t ( ) { var t = Math . max ( 0 , + n . apply ( this , arguments ) ) , c = Math . max ( 0 , + r . apply ( this , arguments ) ) , l = u . apply ( this , arguments ) - Nu , h = o . apply ( this , arguments ) - Nu , f = Math . abs ( h - l ) , d = l > h ? 0 : 1 ; if ( t > c && ( p = c , c = t , t = p ) , f >= Iu ) return e ( c , d ) + ( t ? e ( t , 1 - d ) : "" ) + "Z" ; var p , g , y , m , v , _ , b , x , w , A , k , E , M = 0 , D = 0 , S = [ ] ; if ( ( m = ( + s . apply ( this , arguments ) || 0 ) / 2 ) && ( y = a === Ds ? Math . sqrt ( t * t + c * c ) : + a . apply ( this , arguments ) , d || ( D *= - 1 ) , c && ( D =
function n ( t , e ) { var n , r , i = t . x , a = t . y , u = e . x - i , o = e . y - a , s = t . width / 2 , c = t . height / 2 ; return Math . abs ( o ) * s > Math . abs ( u ) * c ? ( 0 > o && ( c = - c ) , n = 0 === o ? 0 : c * u / o , r = c ) : ( 0 > u && ( s = - s ) , n = s , r = 0 === u ? 0 : s * o / u ) , { x : i + n , y : a + r } } e . exports = n } , { } ] , 19 : [ function ( t , e ) { function n ( t , e ) { var n = t . append ( "foreignObject" ) . attr ( "width" , "100000" ) , i = n . append ( "xhtml:div" ) , a = e . label ; switch ( typeof a ) { case "function" : i . insert ( a ) ; break ; case "object" : i . insert ( function ( ) { return a } ) ; break ; default : i . html ( a ) } r . applyStyle ( i , e . labelStyle ) , i . style ( "display" , "inline-block" ) , i . style ( "white-space" , "nowrap" ) ; var u , o ; return i . each ( function ( ) { u = this . clientWidth , o = this . clientHeight } ) , n . attr ( "width" , u ) . attr ( "height" , o ) , n } var r = t ( "../util" ) ; e . exports = n } , { "../util" : 29 } ] , 20 : [ function ( t , e ) { function n ( t , e , n ) { var u = e . label , o = t . append ( "g" ) ; "svg" === e . labelType ? a ( o , e ) : "string" != typeof u || "html" === e . labelType ? i ( o , e ) : r ( o , e ) ; var s , c = o . node ( ) . getBBox ( ) ; switch ( n ) { case "top" : s = - e . height / 2 ; break ; case "bottom" : s = e . height / 2 - c . height ; break ; default : s = - c . height / 2 } return o . attr ( "transform" , "translate(" + - c . width / 2 + "," + s + ")" ) , o } var r = t ( "./add-text-label" ) , i = t ( "./add-html-label" ) , a = t ( "./add-svg-label" ) ; e . exports = n } , { "./add-html-label" : 19 , "./add-svg-label" : 21 , "./add-text-label" : 22 } ] , 21 : [ function ( t , e ) { function n ( t , e ) { var n = t ; return n . node ( ) . appendChild ( e . label ) , r . applyStyle ( n , e . labelStyle ) , n } var r = t ( "../util" ) ; e . exports = n } , { "../util" : 29 } ] , 22 : [ function ( t , e ) { function n ( t , e ) { for ( var n = t . append ( "text" ) , a = r ( e . label ) . split ( "\n" ) , u = 0 ; u < a . length ; u ++ ) n . append ( "tspan" ) . attr ( "xml:space" , "preserve" ) . attr ( "dy" , "1em" ) . attr ( "x" , "1" ) . text ( a [ u ] ) ; return i . applyStyle ( n , e . labelStyle ) , n } function r ( t ) { for ( var e , n = "" , r = ! 1 , i = 0 ; i < t . length ; ++ i ) if ( e = t [ i ] , r ) { switch ( e ) { case "n" : n += "\n" ; break ; default : n += e } r = ! 1 } else "\\" === e ? r = ! 0 : n += e ; return n } var i = t ( "../util" ) ; e . exports = n } , { "../util" : 29 } ] , 23 : [ function ( t , e ) { var n ; if ( t ) try { n = t ( "lodash" ) } catch ( r ) { } n || ( n = window . _ ) , e . exports = n } , { lodash : 81 } ] , 24 : [ function ( t , e ) { "use strict" ; function n ( t , e ) { function n ( t ) { var n = e . node ( t ) ; return "translate(" + n . x + "," + n . y + ")" } var a = t . filter ( function ( ) { return ! i . select ( this ) . classed ( "update" ) } ) ; a . attr ( "transform" , n ) , r . applyTransition ( t , e ) . style ( "opacity" , 1 ) . attr ( "transform" , n ) , r . applyTransition ( a . selectAll ( "rect" ) , e ) . attr ( "width" , function ( t ) { return e . node ( t ) . width } ) . attr ( "height" , function ( t ) { return e . node ( t ) . height } ) . attr ( "x" , function ( t ) { var n = e . node ( t ) ; return - n . width / 2 } ) . attr ( "y" , function ( t ) { var n = e . node ( t ) ; return - n . height / 2 } ) } var r = t ( "./util" ) , i = t ( "./d3" ) ; e . exports = n } , { "./d3" : 9 , "./util" : 29 } ] , 25 : [ function ( t , e ) { "use strict" ; function n ( t , e ) { function n ( t ) { var n = e . edge ( t ) ; return a . has ( n , "x" ) ? "translate(" + n . x + "," + n . y + ")" : "" } var u = t . filter ( function ( ) { return ! i . select ( this ) . classed ( "update" ) } ) ; u . attr ( "transform" , n ) , r . applyTransition ( t , e ) . style ( "opacity" , 1 ) . attr ( "transform" , n ) } var r = t ( "./util" ) , i = t ( "./d3" ) , a = t ( "./lodash" ) ; e . exports = n } , { "./d3" : 9 , "./lodash" : 23 , "./util" : 29 } ] , 26 : [ function ( t , e ) { "use strict" ; function n ( t , e ) { function n ( t ) { var n = e . node ( t ) ; return "translate(" + n . x + "," + n . y + ")" } var a = t . filter ( function ( ) { return ! i . select ( this ) . classed ( "update" ) } ) ; a . attr ( "transform" , n ) , r . applyTransition ( t , e ) . style ( "opacity" , 1 ) . attr ( "transform" , n ) } var r = t ( "./util" ) , i = t ( "./d3" ) ; e . exports = n } , { "./d3" : 9 , "./util" : 29 } ] , 27 : [ function ( t , e ) { function n ( ) { var e = t ( "./create-nodes" ) , n = t ( "./create-clusters" ) , u = t ( "./create-edge-labels" ) , s = t ( "./create-edge-paths" ) , c = t ( "./position-nodes" ) , l = t ( "./position-edge-labels" ) , h = t ( "./position-clusters" ) , f = t ( "./shapes" ) , d = t ( "./arrows" ) , p = function ( t , p ) { r ( p ) ; var g = a ( t , "output" ) , y = a ( g , "clusters" ) , m = a ( g , "edgePaths" ) , v = u ( a ( g , "edgeLabels" ) , p ) , _ = e ( a ( g , "nodes" ) , p , f ) ; o ( p ) , c ( _ , p ) , l ( v , p ) , s ( m , p , d ) ; var b = n ( y , p ) ; h ( b , p ) , i ( p ) } ; return p . createNodes = function ( t ) { return arguments . length ? ( e = t , p ) : e } , p . createClusters = function ( t ) { return arguments . length ? ( n = t , p ) : n } , p . createEdgeLabels = function ( t ) { return arguments . length ? ( u = t , p ) : u } , p . createEdgePaths = function ( t ) { return arguments . length ? ( s = t , p ) : s } , p . shapes = function ( t ) { return arguments . length ? ( f = t , p ) : f } , p . arrows = function ( t ) { return arguments . length ? ( d = t , p ) : d } , p } function r ( t ) { t . nodes ( ) . forEach ( function ( e ) { var n = t . node ( e ) ; u . has ( n , "label" ) || t . children ( e ) . length || ( n . la
function n ( t ) { var e = new o ( { directed : ! 1 } ) , n = t . nodes ( ) [ 0 ] , u = t . nodeCount ( ) ; e . setNode ( n , { } ) ; for ( var c , l ; r ( e , t ) < u ; ) c = i ( e , t ) , l = e . hasNode ( c . v ) ? s ( t , c ) : - s ( t , c ) , a ( e , t , l ) ; return e } function r ( t , e ) { function n ( r ) { u . each ( e . nodeEdges ( r ) , function ( i ) { var a = i . v , u = r === a ? i . w : a ; t . hasNode ( u ) || s ( e , i ) || ( t . setNode ( u , { } ) , t . setEdge ( r , u , { } ) , n ( u ) ) } ) } return u . each ( t . nodes ( ) , n ) , t . nodeCount ( ) } function i ( t , e ) { return u . min ( e . edges ( ) , function ( n ) { return t . hasNode ( n . v ) !== t . hasNode ( n . w ) ? s ( e , n ) : void 0 } ) } function a ( t , e , n ) { u . each ( t . nodes ( ) , function ( t ) { e . node ( t ) . rank += n } ) } var u = t ( "../lodash" ) , o = t ( "../graphlib" ) . Graph , s = t ( "./util" ) . slack ; e . exports = n } , { "../graphlib" : 37 , "../lodash" : 40 , "./util" : 58 } ] , 56 : [ function ( t , e ) { "use strict" ; function n ( t ) { switch ( t . graph ( ) . ranker ) { case "network-simplex" : i ( t ) ; break ; case "tight-tree" : r ( t ) ; break ; case "longest-path" : c ( t ) ; break ; default : i ( t ) } } function r ( t ) { u ( t ) , o ( t ) } function i ( t ) { s ( t ) } var a = t ( "./util" ) , u = a . longestPath , o = t ( "./feasible-tree" ) , s = t ( "./network-simplex" ) ; e . exports = n ; var c = u } , { "./feasible-tree" : 55 , "./network-simplex" : 57 , "./util" : 58 } ] , 57 : [ function ( t , e ) { "use strict" ; function n ( t ) { t = b ( t ) , m ( t ) ; var e = g ( t ) ; u ( e ) , r ( e , t ) ; for ( var n , i ; n = s ( e ) ; ) i = c ( e , t , n ) , l ( e , t , n , i ) } function r ( t , e ) { var n = _ ( t , t . nodes ( ) ) ; n = n . slice ( 0 , n . length - 1 ) , p . each ( n , function ( n ) { i ( t , e , n ) } ) } function i ( t , e , n ) { var r = t . node ( n ) , i = r . parent ; t . edge ( n , i ) . cutvalue = a ( t , e , n ) } function a ( t , e , n ) { var r = t . node ( n ) , i = r . parent , a = ! 0 , u = e . edge ( n , i ) , o = 0 ; return u || ( a = ! 1 , u = e . edge ( i , n ) ) , o = u . weight , p . each ( e . nodeEdges ( n ) , function ( r ) { var u = r . v === n , s = u ? r . w : r . v ; if ( s !== i ) { var c = u === a , l = e . edge ( r ) . weight ; if ( o += c ? l : - l , f ( t , n , s ) ) { var h = t . edge ( n , s ) . cutvalue ; o += c ? - h : h } } } ) , o } function u ( t , e ) { arguments . length < 2 && ( e = t . nodes ( ) [ 0 ] ) , o ( t , { } , 1 , e ) } function o ( t , e , n , r , i ) { var a = n , u = t . node ( r ) ; return e [ r ] = ! 0 , p . each ( t . neighbors ( r ) , function ( i ) { p . has ( e , i ) || ( n = o ( t , e , n , i , r ) ) } ) , u . low = a , u . lim = n ++ , i ? u . parent = i : delete u . parent , n } function s ( t ) { return p . find ( t . edges ( ) , function ( e ) { return t . edge ( e ) . cutvalue < 0 } ) } function c ( t , e , n ) { var r = n . v , i = n . w ; e . hasEdge ( r , i ) || ( r = n . w , i = n . v ) ; var a = t . node ( r ) , u = t . node ( i ) , o = a , s = ! 1 ; a . lim > u . lim && ( o = u , s = ! 0 ) ; var c = p . filter ( e . edges ( ) , function ( e ) { return s === d ( t , t . node ( e . v ) , o ) && s !== d ( t , t . node ( e . w ) , o ) } ) ; return p . min ( c , function ( t ) { return y ( e , t ) } ) } function l ( t , e , n , i ) { var a = n . v , o = n . w ; t . removeEdge ( a , o ) , t . setEdge ( i . v , i . w , { } ) , u ( t ) , r ( t , e ) , h ( t , e ) } function h ( t , e ) { var n = p . find ( t . nodes ( ) , function ( t ) { return ! e . node ( t ) . parent } ) , r = v ( t , n ) ; r = r . slice ( 1 ) , p . each ( r , function ( n ) { var r = t . node ( n ) . parent , i = e . edge ( n , r ) , a = ! 1 ; i || ( i = e . edge ( r , n ) , a = ! 0 ) , e . node ( n ) . rank = e . node ( r ) . rank + ( a ? i . minlen : - i . minlen ) } ) } function f ( t , e , n ) { return t . hasEdge ( e , n ) } function d ( t , e , n ) { return n . low <= e . lim && e . lim <= n . lim } var p = t ( "../lodash" ) , g = t ( "./feasible-tree" ) , y = t ( "./util" ) . slack , m = t ( "./util" ) . longestPath , v = t ( "../graphlib" ) . alg . preorder , _ = t ( "../graphlib" ) . alg . postorder , b = t ( "../util" ) . simplify ; e . exports = n , n . initLowLimValues = u , n . initCutValues = r , n . calcCutValue = a , n . leaveEdge = s , n . enterEdge = c , n . exchangeEdges = l } , { "../graphlib" : 37 , "../lodash" : 40 , "../util" : 59 , "./feasible-tree" : 55 , "./util" : 58 } ] , 58 : [ function ( t , e ) { "use strict" ; function n ( t ) { function e ( r ) { var a = t . node ( r ) ; if ( i . has ( n , r ) ) return a . rank ; n [ r ] = ! 0 ; var u = i . min ( i . map ( t . outEdges ( r ) , function ( n ) { return e ( n . w ) - t . edge ( n ) . minlen } ) ) ; return u === Number . POSITIVE _INFINITY && ( u = 0 ) , a . rank = u } var n = { } ; i . each ( t . sources ( ) , e ) } function r ( t , e ) { return t . node ( e . w ) . rank - t . node ( e . v ) . rank - t . edge ( e ) . minlen } var i = t ( "../lodash" ) ; e . exports = { longestPath : n , slack : r } } , { "../lodash" : 40 } ] , 59 : [ function ( t , e ) { "use strict" ; function n ( t , e , n , r ) { var i ; do i = y . uniqueId ( r ) ; while ( t . hasNode ( i ) ) ; return n . dummy = e , t . setNode ( i , n ) , i } function r ( t ) { var e = ( new m ) . setGraph ( t . graph ( ) ) ; return y . each ( t . nodes ( ) , function ( n ) { e . setNode ( n , t . node ( n ) ) } ) , y . each ( t . edges ( ) , function ( n ) { var r = e . edge ( n . v , n . w ) || { weight : 0 , minlen : 1 } , i = t . edge ( n ) ; e . setEdge ( n . v , n . w , { weight : r . weight + i . weight , minlen : Math . max ( r . minlen , i . minlen ) } ) } ) , e } function i ( t ) { var e = new m ( { multigraph : t . isMultigraph ( ) } ) . setGraph ( t . graph ( ) ) ; return y . each ( t . nodes ( ) , function ( n ) { t . children ( n ) . length || e . setNode ( n , t . node ( n ) ) } ) , y . each ( t . edges ( ) , function ( n ) { e . setEdge ( n , t . edge ( n ) ) } ) , e } function a ( t ) { var e = y . map ( t . nodes ( ) , function ( e ) { var n = { } ; retur
var s = n [ u ] ; t ( a , s , r ( s , u , n ) , n ) } else Nu ( n , function ( e , n , i ) { t ( a , e , r ( e , n , i ) , i ) } ) ; return a } } function hn ( t ) { return mi ( function ( e , n ) { var r = - 1 , i = null == e ? 0 : n . length , a = i > 2 ? n [ i - 2 ] : E , u = i > 2 ? n [ 2 ] : E , o = i > 1 ? n [ i - 1 ] : E ; for ( "function" == typeof a ? ( a = un ( a , o , 5 ) , i -= 2 ) : ( a = "function" == typeof o ? o : E , i -= a ? 1 : 0 ) , u && Jn ( n [ 0 ] , n [ 1 ] , u ) && ( a = 3 > i ? E : a , i = 1 ) ; ++ r < i ; ) { var s = n [ r ] ; s && t ( e , s , a ) } return e } ) } function fn ( t , e ) { return function ( n , r ) { var i = n ? $u ( n ) : 0 ; if ( ! nr ( i ) ) return t ( n , r ) ; for ( var a = e ? i : - 1 , u = hr ( n ) ; ( e ? a -- : ++ a < i ) && r ( u [ a ] , a , u ) !== ! 1 ; ) ; return n } } function dn ( t ) { return function ( e , n , r ) { for ( var i = hr ( e ) , a = r ( e ) , u = a . length , o = t ? u : - 1 ; t ? o -- : ++ o < u ; ) { var s = a [ o ] ; if ( n ( i [ s ] , s , i ) === ! 1 ) break } return e } } function pn ( t , e ) { function n ( ) { var i = this && this !== ne && this instanceof n ? r : t ; return i . apply ( e , arguments ) } var r = mn ( t ) ; return n } function gn ( t ) { return yu && lu ? new Zt ( t ) : null } function yn ( t ) { return function ( e ) { for ( var n = - 1 , r = ka ( la ( e ) ) , i = r . length , a = "" ; ++ n < i ; ) a = t ( a , r [ n ] , n ) ; return a } } function mn ( t ) { return function ( ) { var e = arguments ; switch ( e . length ) { case 0 : return new t ; case 1 : return new t ( e [ 0 ] ) ; case 2 : return new t ( e [ 0 ] , e [ 1 ] ) ; case 3 : return new t ( e [ 0 ] , e [ 1 ] , e [ 2 ] ) ; case 4 : return new t ( e [ 0 ] , e [ 1 ] , e [ 2 ] , e [ 3 ] ) ; case 5 : return new t ( e [ 0 ] , e [ 1 ] , e [ 2 ] , e [ 3 ] , e [ 4 ] ) ; case 6 : return new t ( e [ 0 ] , e [ 1 ] , e [ 2 ] , e [ 3 ] , e [ 4 ] , e [ 5 ] ) ; case 7 : return new t ( e [ 0 ] , e [ 1 ] , e [ 2 ] , e [ 3 ] , e [ 4 ] , e [ 5 ] , e [ 6 ] ) } var n = Iu ( t . prototype ) , r = t . apply ( n , e ) ; return Ii ( r ) ? r : n } } function vn ( t ) { function e ( n , r , i ) { i && Jn ( n , r , i ) && ( r = E ) ; var a = Pn ( n , t , E , E , E , E , E , r ) ; return a . placeholder = e . placeholder , a } return e } function _n ( t , e ) { return mi ( function ( n ) { var r = n [ 0 ] ; return null == r ? r : ( n . push ( e ) , t . apply ( E , n ) ) } ) } function bn ( t , e ) { return function ( n , r , i ) { if ( i && Jn ( n , r , i ) && ( r = E ) , r = $n ( r , i , 3 ) , 1 == r . length ) { n = Co ( n ) ? n : lr ( n ) ; var a = ue ( n , r , t , e ) ; if ( ! n . length || a !== e ) return a } return Ee ( n , r , t , e ) } } function xn ( t , e ) { return function ( n , r , a ) { if ( r = $n ( r , a , 3 ) , Co ( n ) ) { var u = i ( n , r , e ) ; return u > - 1 ? n [ u ] : E } return Se ( n , r , t ) } } function wn ( t ) { return function ( e , n , r ) { return e && e . length ? ( n = $n ( n , r , 3 ) , i ( e , n , t ) ) : - 1 } } function An ( t ) { return function ( e , n , r ) { return n = $n ( n , r , 3 ) , Se ( e , n , t , ! 0 ) } } function kn ( t ) { return function ( ) { for ( var e , n = arguments . length , r = t ? n : - 1 , i = 0 , a = Ya ( n ) ; t ? r -- : ++ r < n ; ) { var u = a [ i ++ ] = arguments [ r ] ; if ( "function" != typeof u ) throw new Xa ( z ) ; ! e && v . prototype . thru && "wrapper" == Un ( u ) && ( e = new v ( [ ] , ! 0 ) ) } for ( r = e ? - 1 : n ; ++ r < n ; ) { u = a [ r ] ; var o = Un ( u ) , s = "wrapper" == o ? Yu ( u ) : E ; e = s && er ( s [ 0 ] ) && s [ 1 ] == ( I | T | B | N ) && ! s [ 4 ] . length && 1 == s [ 9 ] ? e [ Un ( s [ 0 ] ) ] . apply ( e , s [ 3 ] ) : 1 == u . length && er ( u ) ? e [ o ] ( ) : e . thru ( u ) } return function ( ) { var t = arguments , r = t [ 0 ] ; if ( e && 1 == t . length && Co ( r ) && r . length >= Y ) return e . plant ( r ) . value ( ) ; for ( var i = 0 , u = n ? a [ i ] . apply ( this , t ) : r ; ++ i < n ; ) u = a [ i ] . call ( this , u ) ; return u } } } function En ( t , e ) { return function ( n , r , i ) { return "function" == typeof r && i === E && Co ( n ) ? t ( n , r ) : e ( n , un ( r , i , 3 ) ) } } function Mn ( t ) { return function ( e , n , r ) { return ( "function" != typeof n || r !== E ) && ( n = un ( n , r , 3 ) ) , t ( e , n , ta ) } } function Dn ( t ) { return function ( e , n , r ) { return ( "function" != typeof n || r !== E ) && ( n = un ( n , r , 3 ) ) , t ( e , n ) } } function Sn ( t ) { return function ( e , n , r ) { var i = { } ; return n = $n ( n , r , 3 ) , Fe ( e , function ( e , r , a ) { var u = n ( e , r , a ) ; r = t ? u : r , e = t ? e : u , i [ r ] = e } ) , i } } function Cn ( t ) { return function ( e , n , r ) { return e = o ( e ) , ( t ? e : "" ) + Ln ( e , n , r ) + ( t ? "" : e ) } } function Tn ( t ) { var e = mi ( function ( n , r ) { var i = _ ( r , e . placeholder ) ; return Pn ( n , t , E , r , i ) } ) ; return e } function Fn ( t , e ) { return function ( n , r , i , a ) { var u = arguments . length < 3 ; return "function" == typeof r && a === E && Co ( n ) ? t ( n , r , i , u ) : He ( n , $n ( r , a , 4 ) , i , u , e ) } } function Bn ( t , e , n , r , i , a , u , o , s , c ) { function l ( ) { for ( var v = arguments . length , b = v , x = Ya ( v ) ; b -- ; ) x [ b ] = arguments [ b ] ; if ( r && ( x = sn ( x , r , i ) ) , a && ( x = cn ( x , a , u ) ) , p || y ) { var w = l . placeholder , A = _ ( x , w ) ; if ( v -= A . length , c > v ) { var k = o ? te ( o ) : E , M = xu ( c - v , 0 ) , C = p ? A : E , T = p ? E : A , F = p ? x : E , I = p ? E : x ; e |= p ? B : L , e &= ~ ( p ? L : B ) , g || ( e &= ~ ( D | S ) ) ; var N = [ t , e , n , F , C , I , T , k , s , M ] , O = Bn . apply ( E , N ) ; return er ( t ) && Uu ( O , N ) , O . placeholder = w , O } } var P = f ? n : this , R = d ? P [ t ] : t ; return o && ( x = sr ( x , o ) ) , h && s < x . length && ( x . length = s ) , this && this !== ne && this instanceof l && ( R = m || mn ( t ) ) , R . apply ( P , x ) } var h = e & I , f = e & D , d = e & S , p = e & T , g = e & C , y = e & F , m = d ? E : mn ( t ) ; return l } function Ln ( t , e , n ) { var r = t . length ; if ( e = + e , r >= e || ! _u ( e ) ) return "" ; var i = e - r ; return n = null == n ? " " : n + "" , ya ( n , gu ( i / n . length ) ) . slice ( 0 , i ) } function In ( t , e , n , r ) { function i ( ) { for ( var e = - 1 , o
e . head = xr , e . include = Jr , e . inject = ho , Ta ( e , function ( ) { var t = { } ; return Fe ( e , function ( n , r ) { e . prototype [ r ] || ( t [ r ] = n ) } ) , t } ( ) , ! 1 ) , e . sample = ri , e . prototype . sample = function ( t ) { return this . _ _chain _ _ || null != t ? this . thru ( function ( e ) { return ri ( e , t ) } ) : ri ( this . value ( ) ) } , e . VERSION = M , ee ( [ "bind" , "bindKey" , "curry" , "curryRight" , "partial" , "partialRight" ] , function ( t ) { e [ t ] . placeholder = e } ) , ee ( [ "drop" , "take" ] , function ( t , e ) { K . prototype [ t ] = function ( n ) { var r = this . _ _filtered _ _ ; if ( r && ! e ) return new K ( this ) ; n = null == n ? 1 : xu ( mu ( n ) || 0 , 0 ) ; var i = this . clone ( ) ; return r ? i . _ _takeCount _ _ = wu ( i . _ _takeCount _ _ , n ) : i . _ _views _ _ . push ( { size : n , type : t + ( i . _ _dir _ _ < 0 ? "Right" : "" ) } ) , i } , K . prototype [ t + "Right" ] = function ( e ) { return this . reverse ( ) [ t ] ( e ) . reverse ( ) } } ) , ee ( [ "filter" , "map" , "takeWhile" ] , function ( t , e ) { var n = e + 1 , r = n != U ; K . prototype [ t ] = function ( t , e ) { var i = this . clone ( ) ; return i . _ _iteratees _ _ . push ( { iteratee : $n ( t , e , 1 ) , type : n } ) , i . _ _filtered _ _ = i . _ _filtered _ _ || r , i } } ) , ee ( [ "first" , "last" ] , function ( t , e ) { var n = "take" + ( e ? "Right" : "" ) ; K . prototype [ t ] = function ( ) { return this [ n ] ( 1 ) . value ( ) [ 0 ] } } ) , ee ( [ "initial" , "rest" ] , function ( t , e ) { var n = "drop" + ( e ? "" : "Right" ) ; K . prototype [ t ] = function ( ) { return this . _ _filtered _ _ ? new K ( this ) : this [ n ] ( 1 ) } } ) , ee ( [ "pluck" , "where" ] , function ( t , e ) { var n = e ? "filter" : "map" , r = e ? je : La ; K . prototype [ t ] = function ( t ) { return this [ n ] ( r ( t ) ) } } ) , K . prototype . compact = function ( ) { return this . filter ( Da ) } , K . prototype . reject = function ( t , e ) { return t = $n ( t , e , 1 ) , this . filter ( function ( e ) { return ! t ( e ) } ) } , K . prototype . slice = function ( t , e ) { t = null == t ? 0 : + t || 0 ; var n = this ; return n . _ _filtered _ _ && ( t > 0 || 0 > e ) ? new K ( n ) : ( 0 > t ? n = n . takeRight ( - t ) : t && ( n = n . drop ( t ) ) , e !== E && ( e = + e || 0 , n = 0 > e ? n . dropRight ( - e ) : n . take ( e - t ) ) , n ) } , K . prototype . takeRightWhile = function ( t , e ) { return this . reverse ( ) . takeWhile ( t , e ) . reverse ( ) } , K . prototype . toArray = function ( ) { return this . take ( Du ) } , Fe ( K . prototype , function ( t , n ) { var r = /^(?:filter|map|reject)|While$/ . test ( n ) , i = /^(?:first|last)$/ . test ( n ) , a = e [ i ? "take" + ( "last" == n ? "Right" : "" ) : n ] ; a && ( e . prototype [ n ] = function ( ) { var e = i ? [ 1 ] : arguments , n = this . _ _chain _ _ , u = this . _ _wrapped _ _ , o = ! ! this . _ _actions _ _ . length , s = u instanceof K , c = e [ 0 ] , l = s || Co ( u ) ; l && r && "function" == typeof c && 1 != c . length && ( s = l = ! 1 ) ; var h = function ( t ) { return i && n ? a ( t , 1 ) [ 0 ] : a . apply ( E , ce ( [ t ] , e ) ) } , f = { func : zr , args : [ h ] , thisArg : E } , d = s && ! o ; if ( i && ! n ) return d ? ( u = u . clone ( ) , u . _ _actions _ _ . push ( f ) , t . call ( u ) ) : a . call ( E , this . value ( ) ) [ 0 ] ; if ( ! i && l ) { u = d ? u : new K ( this ) ; var p = t . apply ( u , e ) ; return p . _ _actions _ _ . push ( f ) , new v ( p , n ) } return this . thru ( h ) } ) } ) , ee ( [ "join" , "pop" , "push" , "replace" , "shift" , "sort" , "splice" , "split" , "unshift" ] , function ( t ) { var n = ( /^(?:replace|split)$/ . test ( t ) ? Qa : Za ) [ t ] , r = /^(?:push|sort|unshift)$/ . test ( t ) ? "tap" : "thru" , i = /^(?:join|pop|replace|shift)$/ . test ( t ) ; e . prototype [ t ] = function ( ) { var t = arguments ; return i && ! this . _ _chain _ _ ? n . apply ( this . value ( ) , t ) : this [ r ] ( function ( e ) { return n . apply ( e , t ) } ) } } ) , Fe ( K . prototype , function ( t , n ) { var r = e [ n ] ; if ( r ) { var i = r . name , a = Lu [ i ] || ( Lu [ i ] = [ ] ) ; a . push ( { name : n , func : r } ) } } ) , Lu [ Bn ( E , S ) . name ] = [ { name : "wrapper" , func : E } ] , K . prototype . clone = et , K . prototype . reverse = rt , K . prototype . value = Wt , e . prototype . chain = Wr , e . prototype . commit = qr , e . prototype . concat = to , e . prototype . plant = Vr , e . prototype . reverse = Hr , e . prototype . toString = Gr , e . prototype . run = e . prototype . toJSON = e . prototype . valueOf = e . prototype . value = Xr , e . prototype . collect = e . prototype . map , e . prototype . head = e . prototype . first , e . prototype . select = e . prototype . filter , e . prototype . tail = e . prototype . rest , e } var E , M = "3.10.1" , D = 1 , S = 2 , C = 4 , T = 8 , F = 16 , B = 32 , L = 64 , I = 128 , N = 256 , O = 30 , P = "..." , R = 150 , j = 16 , Y = 200 , $ = 1 , U = 2 , z = "Expected a function" , W = "__lodash_placeholder__" , q = "[object Arguments]" , V = "[object Array]" , H = "[object Boolean]" , G = "[object Date]" , X = "[object Error]" , Z = "[object Function]" , K = "[object Map]" , Q = "[object Number]" , J = "[object Object]" , tt = "[object RegExp]" , et = "[object Set]" , nt = "[object String]" , rt = "[object WeakMap]" , it = "[object ArrayBuffer]" , at = "[object Float32Array]" , ut = "[object Float64Array]" , ot = "[object Int8Array]" , st = "[object Int16Array]" , ct = "[object Int32Array]" , lt = "[object Uint8Array]" , ht = "[object Uint8ClampedArray]" , ft = "[object Uint16Array]" , dt = "[object Uint32Array]" , pt = /\b__p \+= '';/g , gt = /\b(__p \+=) '' \+/g , yt = / ( _ _ e \ ( . * ? \ ) | \ b _
if ( "number" == typeof t && ( e = t , t = void 0 ) , t = t || "" , null != e ) return An ( t , e , n , i ) ; var a , u = [ ] ; for ( a = 0 ; r > a ; a ++ ) u [ a ] = An ( t , a , n , i ) ; return u } function En ( t , e ) { return kn ( t , e , "months" , 12 , "month" ) } function Mn ( t , e ) { return kn ( t , e , "monthsShort" , 12 , "month" ) } function Dn ( t , e ) { return kn ( t , e , "weekdays" , 7 , "day" ) } function Sn ( t , e ) { return kn ( t , e , "weekdaysShort" , 7 , "day" ) } function Cn ( t , e ) { return kn ( t , e , "weekdaysMin" , 7 , "day" ) } function Tn ( ) { var t = this . _data ; return this . _milliseconds = xi ( this . _milliseconds ) , this . _days = xi ( this . _days ) , this . _months = xi ( this . _months ) , t . milliseconds = xi ( t . milliseconds ) , t . seconds = xi ( t . seconds ) , t . minutes = xi ( t . minutes ) , t . hours = xi ( t . hours ) , t . months = xi ( t . months ) , t . years = xi ( t . years ) , this } function Fn ( t , e , n , r ) { var i = Jt ( e , n ) ; return t . _milliseconds += r * i . _milliseconds , t . _days += r * i . _days , t . _months += r * i . _months , t . _bubble ( ) } function Bn ( t , e ) { return Fn ( this , t , e , 1 ) } function Ln ( t , e ) { return Fn ( this , t , e , - 1 ) } function In ( t ) { return 0 > t ? Math . floor ( t ) : Math . ceil ( t ) } function Nn ( ) { var t , e , n , r , i , a = this . _milliseconds , u = this . _days , o = this . _months , s = this . _data ; return a >= 0 && u >= 0 && o >= 0 || 0 >= a && 0 >= u && 0 >= o || ( a += 864e5 * In ( Pn ( o ) + u ) , u = 0 , o = 0 ) , s . milliseconds = a % 1e3 , t = v ( a / 1e3 ) , s . seconds = t % 60 , e = v ( t / 60 ) , s . minutes = e % 60 , n = v ( e / 60 ) , s . hours = n % 24 , u += v ( n / 24 ) , i = v ( On ( u ) ) , o += i , u -= In ( Pn ( i ) ) , r = v ( o / 12 ) , o %= 12 , s . days = u , s . months = o , s . years = r , this } function On ( t ) { return 4800 * t / 146097 } function Pn ( t ) { return 146097 * t / 4800 } function Rn ( t ) { var e , n , r = this . _milliseconds ; if ( t = C ( t ) , "month" === t || "year" === t ) return e = this . _days + r / 864e5 , n = this . _months + On ( e ) , "month" === t ? n : n / 12 ; switch ( e = this . _days + Math . round ( Pn ( this . _months ) ) , t ) { case "week" : return e / 7 + r / 6048e5 ; case "day" : return e + r / 864e5 ; case "hour" : return 24 * e + r / 36e5 ; case "minute" : return 1440 * e + r / 6e4 ; case "second" : return 86400 * e + r / 1e3 ; case "millisecond" : return Math . floor ( 864e5 * e ) + r ; default : throw new Error ( "Unknown unit " + t ) } } function jn ( ) { return this . _milliseconds + 864e5 * this . _days + this . _months % 12 * 2592e6 + 31536e6 * _ ( this . _months / 12 ) } function Yn ( t ) { return function ( ) { return this . as ( t ) } } function $n ( t ) { return t = C ( t ) , this [ t + "s" ] ( ) } function Un ( t ) { return function ( ) { return this . _data [ t ] } } function zn ( ) { return v ( this . days ( ) / 7 ) } function Wn ( t , e , n , r , i ) { return i . relativeTime ( e || 1 , ! ! n , t , r ) } function qn ( t , e , n ) { var r = Jt ( t ) . abs ( ) , i = Pi ( r . as ( "s" ) ) , a = Pi ( r . as ( "m" ) ) , u = Pi ( r . as ( "h" ) ) , o = Pi ( r . as ( "d" ) ) , s = Pi ( r . as ( "M" ) ) , c = Pi ( r . as ( "y" ) ) , l = i < Ri . s && [ "s" , i ] || 1 >= a && [ "m" ] || a < Ri . m && [ "mm" , a ] || 1 >= u && [ "h" ] || u < Ri . h && [ "hh" , u ] || 1 >= o && [ "d" ] || o < Ri . d && [ "dd" , o ] || 1 >= s && [ "M" ] || s < Ri . M && [ "MM" , s ] || 1 >= c && [ "y" ] || [ "yy" , c ] ; return l [ 2 ] = e , l [ 3 ] = + t > 0 , l [ 4 ] = n , Wn . apply ( null , l ) } function Vn ( t , e ) { return void 0 === Ri [ t ] ? ! 1 : void 0 === e ? Ri [ t ] : ( Ri [ t ] = e , ! 0 ) } function Hn ( t ) { var e = this . localeData ( ) , n = qn ( this , ! t , e ) ; return t && ( n = e . pastFuture ( + this , n ) ) , e . postformat ( n ) } function Gn ( ) { var t , e , n , r = ji ( this . _milliseconds ) / 1e3 , i = ji ( this . _days ) , a = ji ( this . _months ) ; t = v ( r / 60 ) , e = v ( t / 60 ) , r %= 60 , t %= 60 , n = v ( a / 12 ) , a %= 12 ; var u = n , o = a , s = i , c = e , l = t , h = r , f = this . asSeconds ( ) ; return f ? ( 0 > f ? "-" : "" ) + "P" + ( u ? u + "Y" : "" ) + ( o ? o + "M" : "" ) + ( s ? s + "D" : "" ) + ( c || l || h ? "T" : "" ) + ( c ? c + "H" : "" ) + ( l ? l + "M" : "" ) + ( h ? h + "S" : "" ) : "P0D" } var Xn , Zn , Kn = n . momentProperties = [ ] , Qn = ! 1 , Jn = { } , tr = { } , er = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g , nr = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g , rr = { } , ir = { } , ar = /\d/ , ur = /\d\d/ , or = /\d{3}/ , sr = /\d{4}/ , cr = /[+-]?\d{6}/ , lr = /\d\d?/ , hr = /\d\d\d\d?/ , fr = /\d\d\d\d\d\d?/ , dr = /\d{1,3}/ , pr = /\d{1,4}/ , gr = /[+-]?\d{1,6}/ , yr = /\d+/ , mr = /[+-]?\d+/ , vr = /Z|[+-]\d\d:?\d\d/gi , _r = /Z|[+-]\d\d(?::?\d\d)?/gi , br = /[+-]?\d+(\.\d{1,3})?/ , xr = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i , wr = { } , Ar = { } , kr = 0 , Er = 1 , Mr = 2 , Dr = 3 , Sr = 4 , Cr = 5 , Tr = 6 , Fr = 7 , Br = 8 ; P ( "M" , [ "MM" , 2 ] , "Mo" , function ( ) { return this . month ( ) + 1 } ) , P ( "MMM" , 0 , 0 , function ( t ) { return this . localeData ( ) . monthsShort ( this , t ) } ) , P ( "MMMM" , 0 , 0 , function ( t ) { return this . localeData ( ) . months ( this , t ) } ) , S ( "month" , "M" ) , U ( "M" , lr ) , U ( "MM" , lr , ur ) , U ( "MMM" , function ( t , e ) { return e . monthsShortRegex ( t ) } ) , U ( "MMMM" , function ( t , e ) { return e . monthsRegex ( t ) } ) , V ( [ "M" , "MM" ] , function ( t , e ) { e [ Er ] = _ ( t ) - 1 } ) , V (
a . select ( "#" + t ) . attr ( "transform" , "translate(" + ( u . node ( t ) . x - u . node ( t ) . width / 2 ) + "," + ( u . node ( t ) . y - u . node ( t ) . height / 2 ) + " )" ) ) } ) , u . edges ( ) . forEach ( function ( t ) { s . debug ( "Edge " + t . v + " -> " + t . w + ": " + JSON . stringify ( u . edge ( t ) ) ) , p ( i , u . edge ( t ) , u . edge ( t ) . relation ) } ) , i . attr ( "height" , "100%" ) , i . attr ( "width" , "100%" ) } } , { "../../d3" : 86 , "../../logger" : 105 , "./classDb" : 87 , "./parser/classDiagram" : 89 , dagre : 31 } ] , 89 : [ function ( t , e , n ) { ( function ( r ) { "use strict" ; var i = function ( ) { function t ( ) { this . yy = { } } var e = function ( t , e , n , r ) { for ( n = n || { } , r = t . length ; r -- ; n [ t [ r ] ] = e ) ; return n } , n = [ 1 , 11 ] , r = [ 1 , 12 ] , i = [ 1 , 13 ] , a = [ 1 , 15 ] , u = [ 1 , 16 ] , o = [ 1 , 17 ] , s = [ 6 , 8 ] , c = [ 1 , 26 ] , l = [ 1 , 27 ] , h = [ 1 , 28 ] , f = [ 1 , 29 ] , d = [ 1 , 30 ] , p = [ 1 , 31 ] , g = [ 6 , 8 , 13 , 17 , 23 , 26 , 27 , 28 , 29 , 30 , 31 ] , y = [ 6 , 8 , 13 , 17 , 23 , 26 , 27 , 28 , 29 , 30 , 31 , 45 , 46 , 47 ] , m = [ 23 , 45 , 46 , 47 ] , v = [ 23 , 30 , 31 , 45 , 46 , 47 ] , _ = [ 23 , 26 , 27 , 28 , 29 , 45 , 46 , 47 ] , b = [ 6 , 8 , 13 ] , x = [ 1 , 46 ] , w = { trace : function ( ) { } , yy : { } , symbols _ : { error : 2 , mermaidDoc : 3 , graphConfig : 4 , CLASS _DIAGRAM : 5 , NEWLINE : 6 , statements : 7 , EOF : 8 , statement : 9 , className : 10 , alphaNumToken : 11 , relationStatement : 12 , LABEL : 13 , classStatement : 14 , methodStatement : 15 , CLASS : 16 , STRUCT _START : 17 , members : 18 , STRUCT _STOP : 19 , MEMBER : 20 , SEPARATOR : 21 , relation : 22 , STR : 23 , relationType : 24 , lineType : 25 , AGGREGATION : 26 , EXTENSION : 27 , COMPOSITION : 28 , DEPENDENCY : 29 , LINE : 30 , DOTTED _LINE : 31 , commentToken : 32 , textToken : 33 , graphCodeTokens : 34 , textNoTagsToken : 35 , TAGSTART : 36 , TAGEND : 37 , "==" : 38 , "--" : 39 , PCT : 40 , DEFAULT : 41 , SPACE : 42 , MINUS : 43 , keywords : 44 , UNICODE _TEXT : 45 , NUM : 46 , ALPHA : 47 , $accept : 0 , $end : 1 } , terminals _ : { 2 : "error" , 5 : "CLASS_DIAGRAM" , 6 : "NEWLINE" , 8 : "EOF" , 13 : "LABEL" , 16 : "CLASS" , 17 : "STRUCT_START" , 19 : "STRUCT_STOP" , 20 : "MEMBER" , 21 : "SEPARATOR" , 23 : "STR" , 26 : "AGGREGATION" , 27 : "EXTENSION" , 28 : "COMPOSITION" , 29 : "DEPENDENCY" , 30 : "LINE" , 31 : "DOTTED_LINE" , 34 : "graphCodeTokens" , 36 : "TAGSTART" , 37 : "TAGEND" , 38 : "==" , 39 : "--" , 40 : "PCT" , 41 : "DEFAULT" , 42 : "SPACE" , 43 : "MINUS" , 44 : "keywords" , 45 : "UNICODE_TEXT" , 46 : "NUM" , 47 : "ALPHA" } , productions _ : [ 0 , [ 3 , 1 ] , [ 4 , 4 ] , [ 7 , 1 ] , [ 7 , 3 ] , [ 10 , 2 ] , [ 10 , 1 ] , [ 9 , 1 ] , [ 9 , 2 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 14 , 2 ] , [ 14 , 5 ] , [ 18 , 1 ] , [ 18 , 2 ] , [ 15 , 1 ] , [ 15 , 2 ] , [ 15 , 1 ] , [ 15 , 1 ] , [ 12 , 3 ] , [ 12 , 4 ] , [ 12 , 4 ] , [ 12 , 5 ] , [ 22 , 3 ] , [ 22 , 2 ] , [ 22 , 2 ] , [ 22 , 1 ] , [ 24 , 1 ] , [ 24 , 1 ] , [ 24 , 1 ] , [ 24 , 1 ] , [ 25 , 1 ] , [ 25 , 1 ] , [ 32 , 1 ] , [ 32 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 35 , 1 ] , [ 35 , 1 ] , [ 35 , 1 ] , [ 35 , 1 ] , [ 11 , 1 ] , [ 11 , 1 ] , [ 11 , 1 ] ] , performAction : function ( t , e , n , r , i , a ) { var u = a . length - 1 ; switch ( i ) { case 5 : this . $ = a [ u - 1 ] + a [ u ] ; break ; case 6 : this . $ = a [ u ] ; break ; case 7 : r . addRelation ( a [ u ] ) ; break ; case 8 : a [ u - 1 ] . title = r . cleanupLabel ( a [ u ] ) , r . addRelation ( a [ u - 1 ] ) ; break ; case 12 : r . addMembers ( a [ u - 3 ] , a [ u - 1 ] ) ; break ; case 13 : this . $ = [ a [ u ] ] ; break ; case 14 : a [ u ] . push ( a [ u - 1 ] ) , this . $ = a [ u ] ; break ; case 15 : break ; case 16 : r . addMembers ( a [ u - 1 ] , r . cleanupLabel ( a [ u ] ) ) ; break ; case 17 : console . warn ( "Member" , a [ u ] ) ; break ; case 18 : break ; case 19 : this . $ = { id1 : a [ u - 2 ] , id2 : a [ u ] , relation : a [ u - 1 ] , relationTitle1 : "none" , relationTitle2 : "none" } ; break ; case 20 : this . $ = { id1 : a [ u - 3 ] , id2 : a [ u ] , relation : a [ u - 1 ] , relationTitle1 : a [ u - 2 ] , relationTitle2 : "none" } ; break ; case 21 : this . $ = { id1 : a [ u - 3 ] , id2 : a [ u ] , relation : a [ u - 2 ] , relationTitle1 : "none" , relationTitle2 : a [ u - 1 ] } ; break ; case 22 : this . $ = { id1 : a [ u - 4 ] , id2 : a [ u ] , relation : a [ u - 2 ] , relationTitle1 : a [ u - 3 ] , relationTitle2 : a [ u - 1 ] } ; break ; case 23 : this . $ = { type1 : a [ u - 2 ] , type2 : a [ u ] , lineType : a [ u - 1 ] } ; break ; case 24 : this . $ = { type1 : "none" , type2 : a [ u ] , lineType : a [ u - 1 ] } ; break ; case 25 : this . $ = { type1 : a [ u - 1 ] , type2 : "none" , lineType : a [ u ] } ; break ; case 26 : this . $ = { type1 : "none" , type2 : "none" , lineType : a [ u ] } ; break ; case 27 : this . $ = r . relationType . AGGREGATION ; break ; case 28 : this . $ = r . relationType . EXTENSION ; break ; case 29 : this . $ = r . relationType . COMPOSITION ; break ; case 30 : this . $ = r . relationType . DEPENDENCY ; break ; case 31 : this . $ = r . lineType . LINE ; break ; case 32 : this . $ = r . lineType . DOTTED _LINE } } , table : [ { 3 : 1 , 4 : 2 , 5 : [ 1 , 3 ] } , { 1 : [ 3 ] } , { 1 : [ 2 , 1 ] } , { 6 : [ 1 , 4 ] } , { 7 : 5 , 9 : 6 , 10 : 10 , 11 : 14 , 12 : 7 , 14 : 8 , 15 : 9 , 16 : n , 20 : r , 21 : i , 45 : a , 46 : u , 47 : o } , { 8 : [ 1 , 18 ] } , { 6 : [ 1 , 19 ] , 8 : [ 2 , 3 ] } , e ( s , [ 2 , 7 ] , { 13 : [ 1 , 20 ] } ) , e ( s , [ 2 , 9 ] ) , e ( s , [ 2 , 10 ] ) , e ( s , [ 2 , 15 ] , { 22 : 21 , 24 : 24 , 25 : 25 , 13 : [ 1 , 23 ] , 23 : [ 1 , 22 ] , 26 : c , 27 : l , 28 : h , 29 : f , 30 : d , 31 : p } ) , { 10 : 32 , 11 : 14 , 45 : a , 46 : u , 47 : o } , e ( s , [ 2 , 17 ] ) , e ( s , [ 2 , 18 ] ) , e ( g , [ 2 , 6 ] , { 11 : 14 , 10 : 33 , 45 : a , 46 : u , 47 : o } ) , e ( y , [ 2 , 46 ] ) , e ( y , [ 2 , 47 ] ) , e ( y , [ 2 , 48 ] ) , { 1 : [ 2 , 2 ] } , { 7 : 34 , 9 : 6 , 10 : 10 , 11 : 14 , 12 : 7 , 14 : 8 , 15 : 9 , 16 : n , 20 : r , 21 : i , 45 : a , 46 : u , 47 : o } , e ( s , [ 2 , 8
x : a / 2 , y : 0 } , { x : a , y : - a / 2 } , { x : a / 2 , y : - a } , { x : 0 , y : - a / 2 } ] , s = t . insert ( "polygon" , ":first-child" ) . attr ( "points" , u . map ( function ( t ) { return t . x + "," + t . y } ) . join ( " " ) ) . attr ( "rx" , 5 ) . attr ( "ry" , 5 ) . attr ( "transform" , "translate(" + - a / 2 + "," + 2 * a / 4 + ")" ) ; return n . intersect = function ( t ) { return o . intersect . polygon ( n , u , t ) } , s } , x . shapes ( ) . rect _left _inv _arrow = function ( t , e , n ) { var r = e . width , i = e . height , a = [ { x : - i / 2 , y : 0 } , { x : r , y : 0 } , { x : r , y : - i } , { x : - i / 2 , y : - i } , { x : 0 , y : - i / 2 } ] , u = t . insert ( "polygon" , ":first-child" ) . attr ( "points" , a . map ( function ( t ) { return t . x + "," + t . y } ) . join ( " " ) ) . attr ( "transform" , "translate(" + - r / 2 + "," + 2 * i / 4 + ")" ) ; return n . intersect = function ( t ) { return o . intersect . polygon ( n , a , t ) } , u } , x . shapes ( ) . rect _right _inv _arrow = function ( t , e , n ) { var r = e . width , i = e . height , a = [ { x : 0 , y : 0 } , { x : r + i / 2 , y : 0 } , { x : r , y : - i / 2 } , { x : r + i / 2 , y : - i } , { x : 0 , y : - i } ] , u = t . insert ( "polygon" , ":first-child" ) . attr ( "points" , a . map ( function ( t ) { return t . x + "," + t . y } ) . join ( " " ) ) . attr ( "transform" , "translate(" + - r / 2 + "," + 2 * i / 4 + ")" ) ; return n . intersect = function ( t ) { return o . intersect . polygon ( n , a , t ) } , u } , x . arrows ( ) . none = function ( t , e , n , r ) { var i = t . append ( "marker" ) . attr ( "id" , e ) . attr ( "viewBox" , "0 0 10 10" ) . attr ( "refX" , 9 ) . attr ( "refY" , 5 ) . attr ( "markerUnits" , "strokeWidth" ) . attr ( "markerWidth" , 8 ) . attr ( "markerHeight" , 6 ) . attr ( "orient" , "auto" ) , a = i . append ( "path" ) . attr ( "d" , "M 0 0 L 0 0 L 0 0 z" ) ; o . util . applyStyle ( a , n [ r + "Style" ] ) } ; var w = u . select ( "#" + e ) , A = u . select ( "#" + e + " g" ) ; for ( x ( A , g ) , A . selectAll ( "g.node" ) . attr ( "title" , function ( ) { return r . getTooltip ( this . id ) } ) , l . useMaxWidth ? ( w . attr ( "height" , "100%" ) , w . attr ( "width" , l . width ) , w . attr ( "viewBox" , "0 0 " + ( g . graph ( ) . width + 20 ) + " " + ( g . graph ( ) . height + 20 ) ) , w . attr ( "style" , "max-width:" + ( g . graph ( ) . width + 20 ) + "px;" ) ) : ( w . attr ( "height" , g . graph ( ) . height ) , "undefined" == typeof l . width ? w . attr ( "width" , g . graph ( ) . width ) : w . attr ( "width" , l . width ) , w . attr ( "viewBox" , "0 0 " + ( g . graph ( ) . width + 20 ) + " " + ( g . graph ( ) . height + 20 ) ) ) , r . indexNodes ( "subGraph" + m ) , m = 0 ; m < y . length ; m ++ ) if ( p = y [ m ] , "undefined" !== p . title ) { var k = document . querySelectorAll ( "#" + e + " #" + p . id + " rect" ) , E = document . querySelectorAll ( "#" + e + " #" + p . id ) , M = k [ 0 ] . x . baseVal . value , D = k [ 0 ] . y . baseVal . value , S = k [ 0 ] . width . baseVal . value , C = u . select ( E [ 0 ] ) , T = C . append ( "text" ) ; T . attr ( "x" , M + S / 2 ) , T . attr ( "y" , D + 14 ) , T . attr ( "fill" , "black" ) , T . attr ( "stroke" , "none" ) , T . attr ( "id" , e + "Text" ) , T . style ( "text-anchor" , "middle" ) , T . text ( "undefined" == typeof p . title ? "Undef" : p . title ) } if ( ! l . htmlLabels ) { var m , F = document . querySelectorAll ( "#" + e + " .edgeLabel .label" ) ; for ( m = 0 ; m < F . length ; m ++ ) { var B = F [ m ] , L = B . getBBox ( ) , I = document . createElementNS ( "http://www.w3.org/2000/svg" , "rect" ) ; I . setAttribute ( "rx" , 0 ) , I . setAttribute ( "ry" , 0 ) , I . setAttribute ( "width" , L . width ) , I . setAttribute ( "height" , L . height ) , I . setAttribute ( "style" , "fill:#e8e8e8;" ) , B . insertBefore ( I , B . firstChild ) } } } } , { "../../d3" : 86 , "../../logger" : 105 , "./dagre-d3" : 93 , "./graphDb" : 95 , "./parser/dot" : 96 , "./parser/flow" : 97 } ] , 95 : [ function ( require , module , exports ) { ( function ( global ) { "use strict" ; var Logger = require ( "../../logger" ) , log = new Logger . Log , d3 = require ( "../../d3" ) , vertices = { } , edges = [ ] , classes = [ ] , subGraphs = [ ] , tooltips = { } , subCount = 0 , direction , funs = [ ] ; exports . addVertex = function ( t , e , n , r ) { var i ; "undefined" != typeof t && 0 !== t . trim ( ) . length && ( "undefined" == typeof vertices [ t ] && ( vertices [ t ] = { id : t , styles : [ ] , classes : [ ] } ) , "undefined" != typeof e && ( i = e . trim ( ) , '"' === i [ 0 ] && '"' === i [ i . length - 1 ] && ( i = i . substring ( 1 , i . length - 1 ) ) , vertices [ t ] . text = i ) , "undefined" != typeof n && ( vertices [ t ] . type = n ) , "undefined" != typeof n && ( vertices [ t ] . type = n ) , "undefined" != typeof r && null !== r && r . forEach ( function ( e ) { vertices [ t ] . styles . push ( e ) } ) ) } , exports . addLink = function ( t , e , n , r ) { log . debug ( "Got edge" , t , e ) ; var i = { start : t , end : e , type : void 0 , text : "" } ; r = n . text , "undefined" != typeof r && ( i . text = r . trim ( ) , '"' === i . text [ 0 ] && '"' === i . text [ i . text . length - 1 ] && ( i . text = i . text . substring ( 1 , i . text . length - 1 ) ) ) , "undefined" != typeof n && ( i . type = n . type , i . stroke = n . stroke ) , edges . push ( i ) } , exports . updateLink = function ( t , e ) { "default" === t ? edges . defaultStyle = e : edges [ t ] . style = e } , exports . addClass = function ( t , e ) { "undefined" == typeof classes [ t ] && ( classes [ t ] = { id : t , styles : [ ] } ) , "undefined" != typeof e && null !== e && e . forEach ( function ( e ) { classes [ t ] . styles . push ( e ) } ) } , exports . setDirection
performAction : function ( t , e , n , r , i , a ) { var u = a . length - 1 ; switch ( i ) { case 2 : this . $ = [ ] ; break ; case 3 : a [ u ] !== [ ] && a [ u - 1 ] . push ( a [ u ] ) , this . $ = a [ u - 1 ] ; break ; case 4 : case 57 : case 59 : case 60 : case 92 : case 94 : case 95 : case 108 : this . $ = a [ u ] ; break ; case 11 : r . setDirection ( a [ u - 1 ] ) , this . $ = a [ u - 1 ] ; break ; case 12 : r . setDirection ( "LR" ) , this . $ = a [ u - 1 ] ; break ; case 13 : r . setDirection ( "RL" ) , this . $ = a [ u - 1 ] ; break ; case 14 : r . setDirection ( "BT" ) , this . $ = a [ u - 1 ] ; break ; case 15 : r . setDirection ( "TB" ) , this . $ = a [ u - 1 ] ; break ; case 30 : this . $ = a [ u - 1 ] ; break ; case 31 : case 32 : case 33 : case 34 : case 35 : this . $ = [ ] ; break ; case 36 : this . $ = r . addSubGraph ( a [ u - 1 ] , a [ u - 3 ] ) ; break ; case 37 : this . $ = r . addSubGraph ( a [ u - 1 ] , void 0 ) ; break ; case 41 : r . addLink ( a [ u - 2 ] , a [ u ] , a [ u - 1 ] ) , this . $ = [ a [ u - 2 ] , a [ u ] ] ; break ; case 42 : this . $ = [ a [ u ] ] ; break ; case 43 : this . $ = a [ u - 3 ] , r . addVertex ( a [ u - 3 ] , a [ u - 1 ] , "square" ) ; break ; case 44 : this . $ = a [ u - 4 ] , r . addVertex ( a [ u - 4 ] , a [ u - 2 ] , "square" ) ; break ; case 45 : this . $ = a [ u - 5 ] , r . addVertex ( a [ u - 5 ] , a [ u - 2 ] , "circle" ) ; break ; case 46 : this . $ = a [ u - 6 ] , r . addVertex ( a [ u - 6 ] , a [ u - 3 ] , "circle" ) ; break ; case 47 : this . $ = a [ u - 3 ] , r . addVertex ( a [ u - 3 ] , a [ u - 1 ] , "ellipse" ) ; break ; case 48 : this . $ = a [ u - 4 ] , r . addVertex ( a [ u - 4 ] , a [ u - 2 ] , "ellipse" ) ; break ; case 49 : this . $ = a [ u - 3 ] , r . addVertex ( a [ u - 3 ] , a [ u - 1 ] , "round" ) ; break ; case 50 : this . $ = a [ u - 4 ] , r . addVertex ( a [ u - 4 ] , a [ u - 2 ] , "round" ) ; break ; case 51 : this . $ = a [ u - 3 ] , r . addVertex ( a [ u - 3 ] , a [ u - 1 ] , "diamond" ) ; break ; case 52 : this . $ = a [ u - 4 ] , r . addVertex ( a [ u - 4 ] , a [ u - 2 ] , "diamond" ) ; break ; case 53 : this . $ = a [ u - 3 ] , r . addVertex ( a [ u - 3 ] , a [ u - 1 ] , "odd" ) ; break ; case 54 : this . $ = a [ u - 4 ] , r . addVertex ( a [ u - 4 ] , a [ u - 2 ] , "odd" ) ; break ; case 55 : this . $ = a [ u ] , r . addVertex ( a [ u ] ) ; break ; case 56 : this . $ = a [ u - 1 ] , r . addVertex ( a [ u - 1 ] ) ; break ; case 58 : case 93 : case 96 : case 109 : this . $ = a [ u - 1 ] + "" + a [ u ] ; break ; case 61 : this . $ = "v" ; break ; case 62 : this . $ = "-" ; break ; case 63 : a [ u - 1 ] . text = a [ u ] , this . $ = a [ u - 1 ] ; break ; case 64 : case 65 : a [ u - 2 ] . text = a [ u - 1 ] , this . $ = a [ u - 2 ] ; break ; case 66 : this . $ = a [ u ] ; break ; case 67 : this . $ = { type : "arrow" , stroke : "normal" , text : a [ u - 1 ] } ; break ; case 68 : this . $ = { type : "arrow_circle" , stroke : "normal" , text : a [ u - 1 ] } ; break ; case 69 : this . $ = { type : "arrow_cross" , stroke : "normal" , text : a [ u - 1 ] } ; break ; case 70 : this . $ = { type : "arrow_open" , stroke : "normal" , text : a [ u - 1 ] } ; break ; case 71 : this . $ = { type : "arrow" , stroke : "dotted" , text : a [ u - 1 ] } ; break ; case 72 : this . $ = { type : "arrow_circle" , stroke : "dotted" , text : a [ u - 1 ] } ; break ; case 73 : this . $ = { type : "arrow_cross" , stroke : "dotted" , text : a [ u - 1 ] } ; break ; case 74 : this . $ = { type : "arrow_open" , stroke : "dotted" , text : a [ u - 1 ] } ; break ; case 75 : this . $ = { type : "arrow" , stroke : "thick" , text : a [ u - 1 ] } ; break ; case 76 : this . $ = { type : "arrow_circle" , stroke : "thick" , text : a [ u - 1 ] } ; break ; case 77 : this . $ = { type : "arrow_cross" , stroke : "thick" , text : a [ u - 1 ] } ; break ; case 78 : this . $ = { type : "arrow_open" , stroke : "thick" , text : a [ u - 1 ] } ; break ; case 79 : this . $ = { type : "arrow" , stroke : "normal" } ; break ; case 80 : this . $ = { type : "arrow_circle" , stroke : "normal" } ; break ; case 81 : this . $ = { type : "arrow_cross" , stroke : "normal" } ; break ; case 82 : this . $ = { type : "arrow_open" , stroke : "normal" } ; break ; case 83 : this . $ = { type : "arrow" , stroke : "dotted" } ; break ; case 84 : this . $ = { type : "arrow_circle" , stroke : "dotted" } ; break ; case 85 : this . $ = { type : "arrow_cross" , stroke : "dotted" } ; break ; case 86 : this . $ = { type : "arrow_open" , stroke : "dotted" } ; break ; case 87 : this . $ = { type : "arrow" , stroke : "thick" } ; break ; case 88 : this . $ = { type : "arrow_circle" , stroke : "thick" } ; break ; case 89 : this . $ = { type : "arrow_cross" , stroke : "thick" } ; break ; case 90 : this . $ = { type : "arrow_open" , stroke : "thick" } ; break ; case 91 : this . $ = a [ u - 1 ] ; break ; case 110 : case 111 : this . $ = a [ u - 4 ] , r . addClass ( a [ u - 2 ] , a [ u ] ) ; break ; case 112 : this . $ = a [ u - 4 ] , r . setClass ( a [ u - 2 ] , a [ u ] ) ; break ; case 113 : this . $ = a [ u - 4 ] , r . setClickEvent ( a [ u - 2 ] , a [ u ] , void 0 , void 0 ) ; break ; case 114 : this . $ = a [ u - 6 ] , r . setClickEvent ( a [ u - 4 ] , a [ u - 2 ] , void 0 , a [ u ] ) ; break ; case 115 : this . $ = a [ u - 4 ] , r . setClickEvent ( a [ u - 2 ] , void 0 , a [ u ] , void 0 ) ; break ; case 116 : this . $ = a [ u - 6 ] , r . setClickEvent ( a [ u - 4 ] , void 0 , a [ u - 2 ] , a [ u ] ) ; break ; case 117 : this . $ = a [ u - 4 ] , r . addVertex ( a [ u - 2 ] , void 0 , void 0 , a [ u ] ) ; break ; case 118 : case 119 : case 120 : this . $ = a [ u - 4 ] , r . updateLink ( a [ u - 2 ] , a [ u ] ) ; break ; case 122 : this . $ = [ a [ u ] ] ; break ; case 123 : a [ u - 2 ] . push ( a [ u ] ) , this . $ = a [ u - 2 ] ; break ; case 125 : this . $ = a [ u - 1 ] + a [ u ] } } , table : [ { 3 : 1 , 4 : 2 , 9 : n , 10 : r , 12 : i } , { 1 : [ 3 ] } , e ( a , u , { 5 : 6 } ) , { 4 : 7 , 9 : n , 10 : r , 12 : i } , { 4 : 8 , 9 : n , 10 :
n . parseError = function ( t , n ) { e . mermaidAPI . parseError ( t , n ) } } ) . call ( this , "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { "../../logger" : 105 , moment : 82 } ] , 99 : [ function ( t , e ) { "use strict" ; var n = t ( "./parser/gantt" ) . parser ; n . yy = t ( "./ganttDb" ) ; var r , i = t ( "../../d3" ) , a = t ( "moment" ) , u = { titleTopMargin : 25 , barHeight : 20 , barGap : 4 , topPadding : 50 , sidePadding : 75 , gridLineStartPadding : 35 , fontSize : 11 , fontFamily : '"Open-Sans", "sans-serif"' } ; e . exports . setConf = function ( t ) { var e = Object . keys ( t ) ; e . forEach ( function ( e ) { u [ e ] = t [ e ] } ) } ; var o ; e . exports . draw = function ( t , e ) { function s ( t , e , n ) { var r = u . barHeight , a = r + u . barGap , o = u . topPadding , s = u . sidePadding , d = i . scale . linear ( ) . domain ( [ 0 , A . length ] ) . range ( [ "#00B9FA" , "#F95002" ] ) . interpolate ( i . interpolateHcl ) ; l ( s , o , e , n ) , c ( t , a , o , s , r , d , e , n ) , h ( a , o , s , r , d ) , f ( s , o , e , n ) } function c ( t , e , n , r , i , a , o ) { _ . append ( "g" ) . selectAll ( "rect" ) . data ( t ) . enter ( ) . append ( "rect" ) . attr ( "x" , 0 ) . attr ( "y" , function ( t , r ) { return r * e + n - 2 } ) . attr ( "width" , function ( ) { return o - r / 2 } ) . attr ( "height" , e ) . attr ( "class" , function ( t ) { for ( var e = 0 ; e < A . length ; e ++ ) if ( t . type === A [ e ] ) return "section section" + e % u . numberSectionStyles ; return "section section0" } ) ; var s = _ . append ( "g" ) . selectAll ( "rect" ) . data ( t ) . enter ( ) ; s . append ( "rect" ) . attr ( "rx" , 3 ) . attr ( "ry" , 3 ) . attr ( "x" , function ( t ) { return w ( t . startTime ) + r } ) . attr ( "y" , function ( t , r ) { return r * e + n } ) . attr ( "width" , function ( t ) { return w ( t . endTime ) - w ( t . startTime ) } ) . attr ( "height" , i ) . attr ( "class" , function ( t ) { for ( var e = "task " , n = 0 , r = 0 ; r < A . length ; r ++ ) t . type === A [ r ] && ( n = r % u . numberSectionStyles ) ; return t . active ? t . crit ? e + " activeCrit" + n : e + " active" + n : t . done ? t . crit ? e + " doneCrit" + n : e + " done" + n : t . crit ? e + " crit" + n : e + " task" + n } ) , s . append ( "text" ) . text ( function ( t ) { return t . task } ) . attr ( "font-size" , u . fontSize ) . attr ( "x" , function ( t ) { var e = w ( t . startTime ) , n = w ( t . endTime ) , i = this . getBBox ( ) . width ; return i > n - e ? n + i + 1.5 * u . sidePadding > o ? e + r - 5 : n + r + 5 : ( n - e ) / 2 + e + r } ) . attr ( "y" , function ( t , r ) { return r * e + u . barHeight / 2 + ( u . fontSize / 2 - 2 ) + n } ) . attr ( "text-height" , i ) . attr ( "class" , function ( t ) { for ( var e = w ( t . startTime ) , n = w ( t . endTime ) , r = this . getBBox ( ) . width , i = 0 , a = 0 ; a < A . length ; a ++ ) t . type === A [ a ] && ( i = a % u . numberSectionStyles ) ; var s = "" ; return t . active && ( s = t . crit ? "activeCritText" + i : "activeText" + i ) , t . done ? s = t . crit ? s + " doneCritText" + i : s + " doneText" + i : t . crit && ( s = s + " critText" + i ) , r > n - e ? n + r + 1.5 * u . sidePadding > o ? "taskTextOutsideLeft taskTextOutside" + i + " " + s : "taskTextOutsideRight taskTextOutside" + i + " " + s : "taskText taskText" + i + " " + s } ) } function l ( t , e , n , a ) { var o , s = [ [ ".%L" , function ( t ) { return t . getMilliseconds ( ) } ] , [ ":%S" , function ( t ) { return t . getSeconds ( ) } ] , [ "h1 %I:%M" , function ( t ) { return t . getMinutes ( ) } ] ] , c = [ [ "%Y" , function ( ) { return ! 0 } ] ] , l = [ [ "%I:%M" , function ( t ) { return t . getHours ( ) } ] , [ "%a %d" , function ( t ) { return t . getDay ( ) && 1 != t . getDate ( ) } ] , [ "%b %d" , function ( t ) { return 1 != t . getDate ( ) } ] , [ "%B" , function ( t ) { return t . getMonth ( ) } ] ] ; "undefined" != typeof u . axisFormatter && ( l = [ ] , u . axisFormatter . forEach ( function ( t ) { var e = [ ] ; e [ 0 ] = t [ 0 ] , e [ 1 ] = t [ 1 ] , l . push ( e ) } ) ) , o = s . concat ( l ) . concat ( c ) ; var h = i . svg . axis ( ) . scale ( w ) . orient ( "bottom" ) . tickSize ( - a + e + u . gridLineStartPadding , 0 , 0 ) . tickFormat ( i . time . format . multi ( o ) ) ; r > 7 && 230 > r && ( h = h . ticks ( i . time . monday . range ) ) , _ . append ( "g" ) . attr ( "class" , "grid" ) . attr ( "transform" , "translate(" + t + ", " + ( a - 50 ) + ")" ) . call ( h ) . selectAll ( "text" ) . style ( "text-anchor" , "middle" ) . attr ( "fill" , "#000" ) . attr ( "stroke" , "none" ) . attr ( "font-size" , 10 ) . attr ( "dy" , "1em" ) } function h ( t , e ) { for ( var n = [ ] , r = 0 , i = 0 ; i < A . length ; i ++ ) n [ i ] = [ A [ i ] , g ( A [ i ] , E ) ] ; _ . append ( "g" ) . selectAll ( "text" ) . data ( n ) . enter ( ) . append ( "text" ) . text ( function ( t ) { return t [ 0 ] } ) . attr ( "x" , 10 ) . attr ( "y" , function ( i , a ) { if ( ! ( a > 0 ) ) return i [ 1 ] * t / 2 + e ; for ( var u = 0 ; a > u ; u ++ ) return r += n [ a - 1 ] [ 1 ] , i [ 1 ] * t / 2 + r * t + e } ) . attr ( "class" , function ( t ) { for ( var e = 0 ; e < A . length ; e ++ ) if ( t [ 0 ] === A [ e ] ) return "sectionTitle sectionTitle" + e % u . numberSectionStyles ; return "sectionTitle" } ) } function f ( t , e , n , r ) { var i = _ . append ( "g" ) . attr ( "class" , "today" ) , a = new Date ; i . append ( "line" ) . attr ( "x1" , w ( a ) + t ) . attr ( "x2" , w ( a ) + t ) . attr ( "y1" , u . titleTopMargin ) . attr ( "y2" , r - u . titleTopMargin ) . attr ( "class" , "today" ) } function d ( t ) { for ( var e = { } , n = [ ] , r = 0 , i = t . length ; i > r ; ++ r ) e . hasOwnProperty ( t [ r ] ) || ( e [ t [ r ] ] = ! 0 , n
2015-10-19 22:08:17 +02:00
2016-03-14 18:09:27 -04:00
} , { "../../logger" : 105 } ] , 103 : [ function ( t , e , n ) { "use strict" ; var r = t ( "./parser/sequenceDiagram" ) . parser ; r . yy = t ( "./sequenceDb" ) ; var i = t ( "./svgDraw" ) , a = t ( "../../d3" ) , u = t ( "../../logger" ) , o = new u . Log , s = { diagramMarginX : 50 , diagramMarginY : 30 , actorMargin : 50 , width : 150 , height : 65 , boxMargin : 10 , boxTextMargin : 5 , noteMargin : 10 , messageMargin : 35 , mirrorActors : ! 1 , bottomMarginAdj : 1 , activationWidth : 10 } ; n . bounds = { data : { startx : void 0 , stopx : void 0 , starty : void 0 , stopy : void 0 } , verticalPos : 0 , sequenceItems : [ ] , activations : [ ] , init : function ( ) { this . sequenceItems = [ ] , this . activations = [ ] , this . data = { startx : void 0 , stopx : void 0 , starty : void 0 , stopy : void 0 } , this . verticalPos = 0 } , updateVal : function ( t , e , n , r ) { t [ e ] = "undefined" == typeof t [ e ] ? n : r ( n , t [ e ] ) } , updateBounds : function ( t , e , r , i ) { function a ( a ) { return function ( c ) { o ++ ; var l = u . sequenceItems . length - o + 1 ; u . updateVal ( c , "starty" , e - l * s . boxMargin , Math . min ) , u . updateVal ( c , "stopy" , i + l * s . boxMargin , Math . max ) , u . updateVal ( n . bounds . data , "startx" , t - l * s . boxMargin , Math . min ) , u . updateVal ( n . bounds . data , "stopx" , r + l * s . boxMargin , Math . max ) , "activation" != a && ( u . updateVal ( c , "startx" , t - l * s . boxMargin , Math . min ) , u . updateVal ( c , "stopx" , r + l * s . boxMargin , Math . max ) , u . updateVal ( n . bounds . data , "starty" , e - l * s . boxMargin , Math . min ) , u . updateVal ( n . bounds . data , "stopy" , i + l * s . boxMargin , Math . max ) ) } } var u = this , o = 0 ; this . sequenceItems . forEach ( a ( ) ) , this . activations . forEach ( a ( "activation" ) ) } , insert : function ( t , e , r , i ) { var a , u , o , s ; a = Math . min ( t , r ) , o = Math . max ( t , r ) , u = Math . min ( e , i ) , s = Math . max ( e , i ) , this . updateVal ( n . bounds . data , "startx" , a , Math . min ) , this . updateVal ( n . bounds . data , "starty" , u , Math . min ) , this . updateVal ( n . bounds . data , "stopx" , o , Math . max ) , this . updateVal ( n . bounds . data , "stopy" , s , Math . max ) , this . updateBounds ( a , u , o , s ) } , newActivation : function ( t , e ) { var n = r . yy . getActors ( ) [ t . from . actor ] , a = h ( t . from . actor ) . length , u = n . x + s . width / 2 + ( a - 1 ) * s . activationWidth / 2 ; this . activations . push ( { startx : u , starty : this . verticalPos + 2 , stopx : u + s . activationWidth , stopy : void 0 , actor : t . from . actor , anchored : i . anchorElement ( e ) } ) } , endActivation : function ( t ) { var e = this . activations . map ( function ( t ) { return t . actor } ) . lastIndexOf ( t . from . actor ) , n = this . activations . splice ( e , 1 ) [ 0 ] ; return n } , newLoop : function ( t ) { this . sequenceItems . push ( { startx : void 0 , starty : this . verticalPos , stopx : void 0 , stopy : void 0 , title : t } ) } , endLoop : function ( ) { var t = this . sequenceItems . pop ( ) ; return t } , addElseToLoop : function ( t ) { var e = this . sequenceItems . pop ( ) ; e . elsey = n . bounds . getVerticalPos ( ) , e . elseText = t , this . sequenceItems . push ( e ) } , bumpVerticalPos : function ( t ) { this . verticalPos = this . verticalPos + t , this . data . stopy = this . verticalPos } , getVerticalPos : function ( ) { return this . verticalPos } , getBounds : function ( ) { return this . data } } ; var c = function ( t , e , r , a , u ) { var o = i . getNoteRect ( ) ; o . x = e , o . y = r , o . width = u || s . width , o [ "class" ] = "note" ; var c = t . append ( "g" ) , l = i . drawRect ( c , o ) , h = i . getTextObj ( ) ; h . x = e - 4 , h . y = r - 13 , h . textMargin = s . noteMargin , h . dy = "1em" , h . text = a . message , h [ "class" ] = "noteText" ; var f = i . drawText ( c , h , o . width - s . noteMargin ) , d = f [ 0 ] [ 0 ] . getBBox ( ) . height ; ! u && d > s . width ? ( f . remove ( ) , c = t . append ( "g" ) , f = i . drawText ( c , h , 2 * o . width - s . noteMargin ) , d = f [ 0 ] [ 0 ] . getBBox ( ) . height , l . attr ( "width" , 2 * o . width ) , n . bounds . insert ( e , r , e + 2 * o . width , r + 2 * s . noteMargin + d ) ) : n . bounds . insert ( e , r , e + o . width , r + 2 * s . noteMargin + d ) , l . attr ( "height" , d + 2 * s . noteMargin ) , n . bounds . bumpVerticalPos ( d + 2 * s . noteMargin ) } , l = function ( t , e , i , a , u ) { var o , c = t . append ( "g" ) , l = e + ( i - e ) / 2 , h = c . append ( "text" ) . attr ( "x" , l ) . attr ( "y" , a - 7 ) . style ( "text-anchor" , "middle" ) . attr ( "class" , "messageText" ) . text ( u . message ) ; o = "undefined" != typeof h [ 0 ] [ 0 ] . getBBox ? h [ 0 ] [ 0 ] . getBBox ( ) . width : h [ 0 ] [ 0 ] . getBoundingClientRect ( ) ; var f ; if ( e === i ) { f = c . append ( "path" ) . attr ( "d" , "M " + e + "," + a + " C " + ( e + 60 ) + "," + ( a - 10 ) + " " + ( e + 60 ) + "," + ( a + 30 ) + " " + e + "," + ( a + 20 ) ) , n . bounds . bumpVerticalPos ( 30 ) ; var d = Math . max ( o / 2 , 100 ) ; n . bounds . insert ( e - d , n . bounds . getVerticalPos ( ) - 10 , i + d , n . bounds . getVerticalPos ( ) ) } else f = c . append ( "line" ) , f . attr ( "x1" , e ) , f . attr ( "y1" , a ) , f . attr ( "x2" , i ) , f . attr ( "y2" , a ) , n . bounds . insert ( e , n . bounds . getVerticalPos ( ) - 10 , i , n . bounds . getVerticalPos ( ) ) ; u . type === r . yy . LINETYPE . DOTTED || u . type === r . yy . LINETYPE . DOTTED _CROSS || u . type === r . yy . LINETYPE . DOTTED _OPEN ? ( f . style ( "stroke-dasharray" , "3, 3" ) , f . attr ( "class" , " messag