2019-05-17 22:41:46 +02:00
# Copyright Louis Dionne 2017
# Copyright Bruno Dutra 2016
#
# Distributed under the Boost Software License, Version 1.0.
# See https://github.com/ldionne/metabench/blob/master/LICENSE.md.
#
# This file is part of Metabench, a simple framework for compile-time
# benchmarks. For documentation, questions and other resources please
# visit the home of the project at https://github.com/ldionne/metabench.
2024-07-14 18:02:53 +02:00
cmake_minimum_required ( VERSION 3.15 )
2019-05-17 22:41:46 +02:00
find_package ( Ruby 2.1 QUIET )
if ( NOT RUBY_EXECUTABLE )
message ( WARNING "Ruby >= 2.1 was not found; the metabench.cmake module can't be used." )
return ( )
endif ( )
# The directory where all files related to Metabench support are written, to
# avoid polluting the build tree.
set ( METABENCH_DIR "${CMAKE_CURRENT_BINARY_DIR}/_metabench" )
# metabench_add_dataset(target path_to_template range
# [NAME name]
# [ENV env]
# [COLOR color]
# [MEDIAN_OF n]
# [OUTPUT path/to/file])
#
# Registers a dataset with Metabench. When needed, the dataset will be
# generated by rendering the ERB template at `path_to_template` for each
# value of n in the `range`. Then, the resulting C++ file will be compiled
# and benchmarking data will be recorded. The `target` target represents
# the executable being built for each value of `n`; any property set on
# that target will take effect when collecting the dataset.
#
# Note that building the `target` target itself is not supported. To
# trigger the generation of the dataset, one must either add the dataset
# to a chart using `metabench_add_chart`, or create a custom CMake target
# that depends on the JSON file itself. When that target is built, the
# dataset will be generated if and only if it is outdated.
#
# Additionally, a CTest target with the same name is also created. When run,
# this CTest target will run the benchmark for only the first and last
# elements in `range`, and won't gather any benchmarking data. This is very
# useful to make sure that benchmarks stay sane as part of continuous
# integration scripts, for example.
#
# What is measured?
# -----------------
# When generating a dataset, Metabench records information related to
# several different aspects of the executable. All the different aspects
# are always stored in the dataset, and the aspect being displayed on a
# chart can be controlled with the `ASPECT` option of `metabench_add_chart`.
# Currently, Metabench measures the following aspects:
# - Compilation time in seconds. This is the time required to generate
# the object file from the `.cpp` file. This includes preprocessing,
# but does not include linking time. Compilation time is treated in
# a slightly special way; the program is first built with the
# `METABENCH` macro undefined, and then with the macro defined.
# The compilation time is then taken to be the difference of the
# measurement with the macro defined and without the macro defined.
# - Link time in seconds. This is the time required to generate the
# executable from the object file. This does not include the
# compilation time.
# - Executable size in KB. This is the size of the executable created
# from the `.cpp` file.
# - Peak memory usage of the compiler in KB. This is the approximate peak
# size of the RSS (Resident Set Size) used by the compiler (not the
# linker) when compiling the `.cpp` file.
#
# Parameters
# ----------
# target:
# The name of the target associated to this dataset.
#
# path_to_template:
# The path of the ERB template to use for this dataset. This may be
# either an absolute path or a path relative to the current source
# directory.
#
# range:
# A sequence of integers representing the values of `n` for which the
# template will be rendered and measurements will be taken. The sequence
# must be provided as a Ruby Iterable (such as `(1...100).step(5)`).
#
# [NAME name]:
# A name used to identify the dataset. For example, this is used as the
# name of the curve associated to the dataset inside a chart. Defaults
# to `target`.
#
# [ENV env]:
# An arbitrary Ruby Hash that will be made available to the ERB template
# in the `env` variable. For example, if you pass `ENV "{foo: 1, bar: 2}"`,
# `env[:foo]` will be equal to `1` and `env[:bar]` will be equal to `2`
# inside the ERB template. This argument can be used to parameterize the
# dataset in more complex ways.
#
# [COLOR color]:
# A string specifying the color used to display the dataset on the chart
# in any valid CSS format.
#
# [SCALE factor]:
# A constant multiplicative factor that may be used to scale results.
# Defaults to `1.0`.
#
# [MEDIAN_OF n]:
# The number of times to build and run the ERB template when gathering
# timing information. The timings are taken `n` times, and the median of
# these `n` values is retained. This can help reduce variability at the
# cost of longer benchmarking times. By default, the timings are taken
# only once. `n` must be a positive (non-zero) integer.
#
# [OUTPUT path/to/file]:
# The path of the resulting JSON file containing the benchmark data. If
# a relative path is used, the path will be considered as being relative
# to the current CMake binary directory. This defaults to `target.json`,
# so that the output file will be `target.json` in the current CMake
# binary directory.
function ( metabench_add_dataset target path_to_template range )
set ( options )
set ( one_value_args NAME ENV COLOR SCALE MEDIAN_OF OUTPUT )
set ( multi_value_args )
cmake_parse_arguments ( ARGS "${options}" "${one_value_args}" "${multi_value_args}" ${ ARGN } )
2022-04-02 18:58:23 +02:00
if ( NOT IS_ABSOLUTE "${path_to_template}" )
2019-05-17 22:41:46 +02:00
set ( path_to_template "${CMAKE_CURRENT_SOURCE_DIR}/${path_to_template}" )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT EXISTS ${ path_to_template } )
2019-05-17 22:41:46 +02:00
message ( FATAL_ERROR "The file specified to metabench_add_dataset (${path_to_template}) does not exist." )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_NAME )
2019-05-17 22:41:46 +02:00
set ( ARGS_NAME ${ target } )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_ENV )
2019-05-17 22:41:46 +02:00
set ( ARGS_ENV "{}" )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_COLOR )
2019-05-17 22:41:46 +02:00
set ( ARGS_COLOR "" )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_SCALE )
2019-05-17 22:41:46 +02:00
set ( ARGS_SCALE 1.0 )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_MEDIAN_OF )
2019-05-17 22:41:46 +02:00
set ( ARGS_MEDIAN_OF 1 )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_OUTPUT )
2019-05-17 22:41:46 +02:00
set ( ARGS_OUTPUT "${target}.json" )
endif ( )
if ( NOT IS_ABSOLUTE "${ARGS_OUTPUT}" )
set ( ARGS_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${ARGS_OUTPUT}" )
endif ( )
# Add a dummy executable that will be used to collect the dataset.
# We'll build this executable multiple times for different values
# of `n`, and collect compilation statistics each time. Compiling
# through CMake allows us to be portable without additional work.
#
# Also, metabench_add_chart needs to be able to find the JSON file
# containing the benchmark data from the name of the executable target,
# so we store it in a custom property.
file ( WRITE "${METABENCH_DIR}/${target}.cpp" "" )
add_executable ( ${ target } EXCLUDE_FROM_ALL "${METABENCH_DIR}/${target}.cpp" )
2022-04-02 18:58:23 +02:00
set_target_properties (
$ { t a r g e t }
P R O P E R T I E S
R U L E _ L A U N C H _ C O M P I L E " $ { R U B Y _ E X E C U T A B L E } - - \ " $ { C O M P I L E _ R B _ P A T H } \ " "
R U L E _ L A U N C H _ L I N K " $ { R U B Y _ E X E C U T A B L E } - - \ " $ { L I N K _ R B _ P A T H } \ " "
R U N T I M E _ O U T P U T _ D I R E C T O R Y " $ { M E T A B E N C H _ D I R } "
R U N T I M E _ O U T P U T _ D I R E C T O R Y _ R E L E A S E " $ { M E T A B E N C H _ D I R } "
R U N T I M E _ O U T P U T _ D I R E C T O R Y _ D E B U G " $ { M E T A B E N C H _ D I R } "
R U N T I M E _ O U T P U T _ D I R E C T O R Y _ R E L W I T H D E B I N F O " $ { M E T A B E N C H _ D I R } "
R U N T I M E _ O U T P U T _ D I R E C T O R Y _ M I N S I Z E R E L " $ { M E T A B E N C H _ D I R } "
M E T A B E N C H _ D A T A S E T _ P A T H " $ { A R G S _ O U T P U T } "
2019-05-17 22:41:46 +02:00
)
get_filename_component ( template_dir "${path_to_template}" DIRECTORY )
target_include_directories ( ${ target } PUBLIC "${template_dir}" )
# Add a command to generate the JSON file that will contain the measurements
# we collect for this dataset when we build the executable above.
2022-04-02 18:58:23 +02:00
add_custom_command (
O U T P U T " $ { A R G S _ O U T P U T } "
C O M M A N D " $ { R U B Y _ E X E C U T A B L E } " - r j s o n - r f i l e u t i l s - r " $ { M E T A B E N C H _ R B _ P A T H } " - e " r a n g e = ( $ { r a n g e } ) . t o _ a " - e
" e n v = ( $ { A R G S _ E N V } ) " - e " d a t a = { } " - e " d a t a [ ' k e y ' ] = ' $ { A R G S _ N A M E } ' " - e
" d a t a [ ' s c a l e ' ] = ( $ { A R G S _ S C A L E } ) " - e " d a t a [ ' c o l o r ' ] = ' $ { A R G S _ C O L O R } ' " - e
" d a t a [ ' v a l u e s ' ] = measure ( ' ${ target } ', ' ${ path_to_template } ', range, env, ${ ARGS_MEDIAN_OF } ) " - e
" F i l e U t i l s . mkdir_p ( File.dirname(' ${ ARGS_OUTPUT } ' ) ) " - e " I O . write ( ' ${ ARGS_OUTPUT } ', JSON.generate(data ) ) "
2019-05-17 22:41:46 +02:00
D E P E N D S " $ { p a t h _ t o _ t e m p l a t e } "
W O R K I N G _ D I R E C T O R Y " $ { C M A K E _ S O U R C E _ D I R } "
V E R B A T I M U S E S _ T E R M I N A L
)
# We also setup a CTest target to test the generation of the dataset.
# We do not actually collect any data here.
2022-04-02 18:58:23 +02:00
add_test (
N A M E $ { t a r g e t }
C O M M A N D " $ { R U B Y _ E X E C U T A B L E } " - r " $ { M E T A B E N C H _ R B _ P A T H } " - e " r a n g e = ( $ { r a n g e } ) . t o _ a " - e
" r a n g e = [ r a n g e [ 0 ] , r a n g e [ - 1 ] ] i f r a n g e . l e n g t h > = 2 " - e " e n v = ( $ { A R G S _ E N V } ) " - e
" d a t a = measure ( ' ${ target } ', ' ${ path_to_template } ', range, env, 1 ) "
2019-05-17 22:41:46 +02:00
W O R K I N G _ D I R E C T O R Y " $ { C M A K E _ S O U R C E _ D I R } "
)
endfunction ( )
# metabench_add_chart(target [ALL]
# [ASPECT COMPILATION_TIME|LINK_TIME|EXECUTABLE_SIZE|PEAK_MEMORY]
# [TITLE title]
# [SUBTITLE subtitle]
# [XLABEL label] [YLABEL label]
# DATASETS dataset1 [dataset2 [dataset3 [...]]]
# [OUTPUT path/to/file])
#
# Creates a target which generates a chart displaying compile-time benchmarks.
# After issuing this command, running the target named `target` will cause
# each `dataset` to be generated and a HTML chart to be generated from those
# datasets. Several aspects of the compilation can be displayed, such as
# compilation time and executable size. The aspect being plotted on the
# generated chart can be controled via the `ASPECT` argument.
#
# Parameters
# ----------
# target:
# The name of the target associated to this chart.
#
# [ALL]:
# If `ALL` is provided, the target will be added to the default target.
# This is the same behaviour as `add_custom_target` used with the `ALL`
# keyword.
#
# [ASPECT COMPILATION_TIME|LINK_TIME|EXECUTABLE_SIZE|PEAK_MEMORY]:
# The aspect of the datasets to display on the chart. When this argument
# is provided, the chart will adopt reasonable default values for the
# axis labels and other similar settings. However, any setting set
# explicitly using arguments like `TITLE` or `XLABEL` will have priority
# over anything defaulted by the choice of an `ASPECT`. When no aspect
# is provided, it defaults to `COMPILATION_TIME`.
#
# [TITLE title]:
# A title to use for the generated chart. If this is not provided, the
# chart has no title.
#
# [SUBTITLE subtitle]:
# A subtitle to use for the generated chart. The subtitle will appear
# just below the title, in a smaller font. If this is not provided, the
# chart has no subtitle.
#
# [XLABEL label]:
# The label to use for the X axis.
#
# [YLABEL label]:
# The label to use for the Y axis.
#
# DATASETS dataset1 [dataset2 [dataset3 [...]]]:
# A list of datasets from which the benchmark is generated.
#
# [OUTPUT path/to/file]:
# The path of the resulting HTML file containing the chart. If a
# relative path is used, the path will be considered as being relative
# to the current CMake binary directory. This defaults to `target.html`,
# so that the output file will be `target.html` in the current CMake
# binary directory.
function ( metabench_add_chart target )
set ( options ALL )
set ( one_value_args OUTPUT ASPECT TITLE SUBTITLE XLABEL YLABEL )
set ( multi_value_args DATASETS )
cmake_parse_arguments ( ARGS "${options}" "${one_value_args}" "${multi_value_args}" ${ ARGN } )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_ASPECT )
2019-05-17 22:41:46 +02:00
set ( ARGS_ASPECT "COMPILATION_TIME" )
endif ( )
if ( NOT ARGS_DATASETS )
message ( FATAL_ERROR "metabench_add_chart requires at least one dataset." )
endif ( )
2022-04-02 18:58:23 +02:00
if ( NOT ARGS_OUTPUT )
2019-05-17 22:41:46 +02:00
set ( ARGS_OUTPUT "${target}.html" )
endif ( )
if ( NOT IS_ABSOLUTE "${ARGS_OUTPUT}" )
set ( ARGS_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${ARGS_OUTPUT}" )
endif ( )
set ( data )
foreach ( dataset ${ ARGS_DATASETS } )
get_target_property ( json_file ${ dataset } METABENCH_DATASET_PATH )
list ( APPEND data "${json_file}" )
endforeach ( )
add_custom_command (
O U T P U T " $ { A R G S _ O U T P U T } "
2022-04-02 18:58:23 +02:00
C O M M A N D " $ { R U B Y _ E X E C U T A B L E } " - r e r b - r j s o n - r f i l e u t i l s - e " o p t i o n s = { } " - e
" o p t i o n s [ ' T I T L E ' ] = ' $ { A R G S _ T I T L E } ' " - e " o p t i o n s [ ' S U B T I T L E ' ] = ' $ { A R G S _ S U B T I T L E } ' " - e
" o p t i o n s [ ' X L A B E L ' ] = ' $ { A R G S _ X L A B E L } ' " - e " o p t i o n s [ ' Y L A B E L ' ] = ' $ { A R G S _ Y L A B E L } ' " - e
" a s p e c t = ' $ { A R G S _ A S P E C T } ' " - e " d a t a = ' $ { d a t a } ' . split ( ';' ) . m a p { | d a t u m | J S O N . parse ( IO.read(datum ) ) } "
- e " h t m l = E R B . new ( File.read(' ${ CHART_HTML_ERB_PATH } ' ) ) . result ( binding ) " - e
" F i l e U t i l s . mkdir_p ( File.dirname(' ${ ARGS_OUTPUT } ' ) ) " - e " I O . write ( ' ${ ARGS_OUTPUT } ', html ) "
2019-05-17 22:41:46 +02:00
D E P E N D S $ { d a t a } " $ { A R G S _ C H A R T } "
V E R B A T I M
)
2022-04-02 18:58:23 +02:00
if ( ${ ARGS_ALL } )
2019-05-17 22:41:46 +02:00
add_custom_target ( ${ target } ALL DEPENDS "${ARGS_OUTPUT}" )
else ( )
add_custom_target ( ${ target } DEPENDS "${ARGS_OUTPUT}" )
endif ( )
endfunction ( )
################################################################################
# Below this line are scripts and other files that are required by one part or
# another of Metabench. They are hardcoded here so that users only have to
# copy the `metabench.cmake` module to their project, without having to worry
# about dependencies and other implementation details.
################################################################################
################################################################################
# metabench.rb
#
# This script is used to drive CMake when gathering the measurements for a
# single dataset. If takes a `.cpp.erb` file, renders it with different values
# of `n` and then builds the associated executable for each value of `n`.
################################################################################
set ( METABENCH_RB_PATH "${METABENCH_DIR}/metabench.rb" )
file ( WRITE "${METABENCH_RB_PATH}"
2022-04-02 18:58:23 +02:00
" r e q u i r e ' b e n c h m a r k ' \ n "
" r e q u i r e ' e r b ' \ n "
" r e q u i r e ' f i l e u t i l s ' \ n "
" r e q u i r e ' o p e n 3 ' \ n "
" r e q u i r e ' p a t h n a m e ' \ n "
" r e q u i r e ' t i m e ' \ n "
" \ n "
" \ n "
" d e f report_error ( command_line, stdout, stderr, code ) \ n "
" r a i s e [ % { \ \ n c o m m a n d l i n e : #{command_line}}, \n"
" % { s t d o u t \ \ n #{'-'*80}\\n#{stdout}}, \n"
" % { s t d e r r \ \ n #{'-'*80}\\n#{stderr}}, \n"
" % { c o d e \ \ n #{'-'*80}\\n#{code}}].join(%{\\n\\n}) \n"
" e n d \ n "
" \ n "
" # Build the specified CMake target and return the measurements that were taken. \n"
" # The exact format of a measurement returned by this function is explained \n"
" # in the JavaScript code that loads it, in the chart template file below. \n"
" d e f build ( target ) \ n "
" c o m m a n d = [ ' $ { C M A K E _ C O M M A N D } ' , ' - - b u i l d ' , ' $ { C M A K E _ B I N A R Y _ D I R } ' , ' - - t a r g e t ' , t a r g e t ] \ n "
" e x e _ f i l e = % { $ { M E T A B E N C H _ D I R } / #{target}${CMAKE_EXECUTABLE_SUFFIX}} \n"
" c p p _ f i l e = % { $ { M E T A B E N C H _ D I R } / #{target}.cpp} \n"
" \ n "
" # We change the timestamp of the source file and remove the executable \n"
" # to make sure CMake considers the target as outdated; otherwise, we \n"
" # might skip the compilation and/or link steps. This is because CMake's \n"
" # timestamps are not precise enough. \n"
" F i l e U t i l s . touch ( cpp_file, mtime: Time.now+1 ) \ n "
" F i l e . delete ( exe_file ) i f F i l e . e x i s t ? ( e x e _ f i l e ) \ n "
" \ n "
" s t d o u t , s t d e r r , s t a t u s = O p e n 3 . capture3 ( *command ) \ n "
" c o m p i l e _ c l i = s t d o u t . match ( /\\[compilation command: ( .+ ) \\]/i) \n"
" c o m p i l e _ c l i = c o m p i l e _ c l i ? c o m p i l e _ c l i . c a p t u r e s [ 0 ] : ' ( u n a v a i l a b l e ) ' \ n "
" l i n k _ c l i = s t d o u t . match ( /\\[link command: ( .+ ) \\]/i) \n"
" l i n k _ c l i = l i n k _ c l i ? l i n k _ c l i . c a p t u r e s [ 0 ] : ' ( u n a v a i l a b l e ) ' \ n "
" \ n "
" i f n o t s t a t u s . s u c c e s s ? \ n "
" c l i = % { c o m p i l e : #{compile_cli}\\nlink: #{link_cli}} \n"
" report_error ( cli, stdout, stderr, IO.read(cpp_file ) ) \ n "
" e n d \ n "
" \ n "
" r e s u l t = { } \ n "
" \ n "
" # Compilation and link times in seconds. They are output to stdout because \n"
" # we use the `compile.rb` and `link.rb` scripts below to launch the compiler \n"
" # and linker with CMake. \n"
" r e s u l t [ ' C O M P I L A T I O N _ T I M E ' ] = s t d o u t . match ( /\\[COMPILATION_TIME: ( .+ ) \\]/i).captures[0].to_f \n"
" r e s u l t [ ' L I N K _ T I M E ' ] = s t d o u t . match ( /\\[LINK_TIME: ( .+ ) \\]/i).captures[0].to_f \n"
" \ n "
" # Peak memory usage \n"
" r e s u l t [ ' P E A K _ M E M O R Y ' ] = s t d o u t . match ( /\\[PEAK_MEMORY: ( .+ ) \\]/i).captures[0].to_f \n"
" \ n "
" # Size of the generated executable in KB \n"
" r e s u l t [ ' E X E C U T A B L E _ S I Z E ' ] = F i l e . size ( exe_file ) . t o _ f / 1 0 0 0 \ n "
" \ n "
" r e t u r n r e s u l t \ n "
" e n d \ n "
" \ n "
" # Render the ERB template and return the generated code. \n"
" d e f render ( erb_template, n, env ) \ n "
" b e g i n \ n "
" E R B . new ( File.read(erb_template ) ) . result ( binding ) \ n "
" r e s c u e E x c e p t i o n = > e \ n "
" $ s t d e r r . puts ( %{\\nError while generating a C++ file from the ERB template #{erb_template}:\\n}) \n"
" r a i s e e \ n "
" e n d \ n "
" e n d \ n "
" \ n "
" # Formats the progress bar that we print while we run the benchmark \n"
" d e f progress_bar ( range, index, start_time, filename ) \ n "
" n = r a n g e [ i n d e x ] \ n "
" p e r c e n t a g e = ( i n d e x + 1 ) * 1 0 0 / r a n g e . s i z e \ n "
" r e l a t i v e = f i l e n a m e . relative_path_from ( Pathname.getwd ) \ n "
" e l a p s e d = T i m e . n o w - s t a r t _ t i m e \ n "
" r e t u r n % { = = > #{percentage}% (#{elapsed.round(2)}s) #{relative} (n = #{n})} \n"
" e n d \ n "
" \ n "
" # Returns an array of measurements representing the compilation of an ERB \n"
" # template for the values of `n` in the specified `range`. \n"
" d e f measure ( target, erb_template, range, env, repetitions ) \ n "
" e r b _ t e m p l a t e = P a t h n a m e . new ( erb_template ) \ n "
" c p p _ f i l e = % { $ { M E T A B E N C H _ D I R } / #{target}.cpp} \n"
" d a t a = [ ] \ n "
" r a n g e = r a n g e . t o _ a \ n "
" s t a r t = T i m e . n o w \ n "
" $ s t d e r r . write ( progress_bar(range, 0, start, erb_template ) ) # Setup the initial progress bar \n"
" r a n g e . e a c h _ w i t h _ i n d e x d o | n , i n d e x | \ n "
" c o m p i l e = - > ( c o d e ) { \ n "
" I O . write ( cpp_file, code ) \ n "
" r e t u r n r e p e t i t i o n s . t i m e s . m a p { build ( target ) } \ n "
" } \ n "
" c o d e = render ( erb_template, n, env ) \ n "
" c o m p i l e [ c o d e ] i f i n d e x = = 0 # Fill the cache on the first iteration \n"
" b a s e = c o m p i l e [ c o d e ] \ n "
" t o t a l = c o m p i l e [ % { #define METABENCH\\n} + code] \n"
" d a t a < < { ' n ' = > n , ' b a s e ' = > b a s e , ' t o t a l ' = > t o t a l } \ n "
" $ s t d e r r . write ( %{\\r} + progress_bar(range, index, start, erb_template ) ) # Update the progress bar \n"
" e n d \ n "
" r e t u r n d a t a \ n "
" e n s u r e \ n "
" $ s t d e r r . p u t s # Otherwise the output of the next CMake command appears on the same line \n"
" I O . write ( cpp_file, '' ) \ n "
" e n d \ n "
2019-05-17 22:41:46 +02:00
)
################################################################################
# end metabench.rb
################################################################################
################################################################################
# memusg.rb
#
# This script runs the command line given to it as an argument and monitors
# the peak memory usage in KB. It then prints that to standard output.
################################################################################
set ( MEMUSG_RB_PATH "${METABENCH_DIR}/memusg.rb" )
file ( WRITE "${MEMUSG_RB_PATH}"
2022-04-02 18:58:23 +02:00
" m o d u l e O S \ n "
" d e f O S . w i n d o w s ? \ n "
" ( / c y g w i n | m s w i n | m i n g w | b c c w i n | w i n c e | e m x / = ~ R U B Y _ P L A T F O R M ) ! = n i l \ n "
" e n d \ n "
" d e f O S . m a c ? \ n "
" ( / d a r w i n / = ~ R U B Y _ P L A T F O R M ) ! = n i l \ n "
" e n d \ n "
" d e f O S . u n i x ? \ n "
" ! O S . w i n d o w s ? \ n "
" e n d \ n "
" d e f O S . l i n u x ? \ n "
" O S . u n i x ? a n d n o t O S . m a c ? \ n "
" e n d \ n "
" e n d \ n "
" \ n "
" i f O S . m a c ? \ n "
" d e f memusg ( pgid ) \ n "
" ` / b i n / p s - o r s s = - g #{pgid}`.to_i \n"
" e n d \ n "
" e l s i f O S . l i n u x ? \ n "
" d e f memusg ( pgid ) \ n "
" ` / b i n / p s - o r s s = - #{pgid}`.to_i \n"
" e n d \ n "
" e l s e \ n "
" t h r o w % { U n s u p p o r t e d p l a t f o r m #{RUBY_PLATFORM}} \n"
" e n d \ n "
" \ n "
" p i d = P r o c e s s . spawn ( *ARGV ) \ n "
" P r o c e s s . detach ( pid ) # Make sure the child process does not become a zombie \n"
" p e a k = 0 \ n "
" # Loop until getpgid throws ESRCH, which means the process is not alive anymore \n"
" b e g i n \ n "
" w h i l e t r u e \ n "
" p g i d = P r o c e s s . getpgid ( pid ) \ n "
" p e a k = [ p e a k , memusg ( pgid ) ] . m a x \ n "
" s l e e p 0 . 0 1 \ n "
" e n d \ n "
" r e s c u e E r r n o : : E S R C H \ n "
" e n d \ n "
" \ n "
" p u t s % { [ P E A K _ M E M O R Y : #{peak}]} \n"
2019-05-17 22:41:46 +02:00
)
################################################################################
# end memusg.rb
################################################################################
################################################################################
# compile.rb
#
# This script is used to launch the compiler whilst measuring compilation time
# and other aspects.
################################################################################
set ( COMPILE_RB_PATH "${METABENCH_DIR}/compile.rb" )
file ( WRITE "${COMPILE_RB_PATH}"
2022-04-02 18:58:23 +02:00
" r e q u i r e ' b e n c h m a r k ' \ n "
" r e q u i r e ' o p e n 3 ' \ n "
" s t d o u t = s t d e r r = s t a t u s = n i l \ n "
" c o m m a n d _ l i n e = [ ' $ { R U B Y _ E X E C U T A B L E } ' , ' - - ' , ' $ { M E M U S G _ R B _ P A T H } ' ] + A R G V \ n "
" t i m e = B e n c h m a r k . m e a s u r e { \ n "
" s t d o u t , s t d e r r , s t a t u s = O p e n 3 . capture3 ( *command_line ) \ n "
" } . t o t a l \ n "
" $ s t d o u t . puts ( stdout ) \ n "
" $ s t d o u t . puts ( %{[compilation command: #{command_line.join(' ')}]}) \n"
" $ s t d o u t . puts ( %{[COMPILATION_TIME: #{time}]}) \n"
" $ s t d e r r . puts ( stderr ) \ n "
" exit ( status.success? ) \ n "
2019-05-17 22:41:46 +02:00
)
################################################################################
# end compile.rb
################################################################################
################################################################################
# link.rb
#
# This script is used to launch the link and measure the link time.
################################################################################
set ( LINK_RB_PATH "${METABENCH_DIR}/link.rb" )
file ( WRITE "${LINK_RB_PATH}"
2022-04-02 18:58:23 +02:00
" r e q u i r e ' b e n c h m a r k ' \ n "
" r e q u i r e ' o p e n 3 ' \ n "
" s t d o u t = s t d e r r = s t a t u s = n i l \ n "
" t i m e = B e n c h m a r k . m e a s u r e { s t d o u t , s t d e r r , s t a t u s = O p e n 3 . capture3 ( *ARGV ) } . t o t a l \ n "
" $ s t d o u t . puts ( stdout ) \ n "
" $ s t d o u t . puts ( %{[link command: #{ARGV.join(' ')}]}) \n"
" $ s t d o u t . puts ( %{[LINK_TIME: #{time}]}) \n"
" $ s t d e r r . puts ( stderr ) \ n "
" exit ( status.success? ) \ n "
2019-05-17 22:41:46 +02:00
)
################################################################################
# end link.rb
################################################################################
################################################################################
# chart.html.erb
#
# The following is a ERB template for the HTML files used to visualize the
# benchmarks. The template is completed by filling it with the contents
# of the corresponding JSON file and the required JS libraries.
################################################################################
set ( CHART_HTML_ERB_PATH "${METABENCH_DIR}/chart.html.erb" )
file ( WRITE "${CHART_HTML_ERB_PATH}"
2022-04-02 18:58:23 +02:00
" < ! D O C T Y P E h t m l > \ n "
" < h t m l > \ n "
" < h e a d > \ n "
" < m e t a c h a r s e t = ' u t f - 8 ' > \ n "
" < s t y l e > < % = I O . read ( ' ${ METABENCH_DIR } /nvd3.css' ) % > < / s t y l e > \ n "
" < s t y l e > \ n "
" * { \ n "
" b o x - s i z i n g : b o r d e r - b o x ; \ n "
" } \ n "
" h t m l , b o d y { \ n "
" p o s i t i o n : r e l a t i v e ; \ n "
" h e i g h t : 1 0 0 % ; \ n "
" w i d t h : 1 0 0 % ; \ n "
" b o r d e r : 0 ; \ n "
" m a r g i n : 0 ; \ n "
" p a d d i n g : 0 ; \ n "
" f o n t - s i z e : 0 ; \ n "
" } \ n "
" s v g g { \ n "
" c l i p - p a t h : n o n e ; \ n "
" } \ n "
" s v g t e x t { \ n "
" f i l l : #333; \n"
" } \ n "
" . n v - a x i s l a b e l { \ n "
" f o n t - s i z e : 1 6 p x ! i m p o r t a n t ; \ n "
" } \ n "
" . c o n t r o l { \ n "
" c u r s o r : p o i n t e r ; \ n "
" v i s i b i l i t y : h i d d e n ; \ n "
" p o i n t e r - e v e n t s : v i s i b l e ; \ n "
" } \ n "
" @ media ( min-width: 768px ) { \ n "
" . c o n t r o l { \ n "
" v i s i b i l i t y : v i s i b l e ; \ n "
" } \ n "
" } \ n "
" < / s t y l e > \ n "
" < s c r i p t > < % = I O . read ( ' ${ METABENCH_DIR } /d3.js' ) % > < / s c r i p t > \ n "
" < s c r i p t > < % = I O . read ( ' ${ METABENCH_DIR } /nvd3.js' ) % > < / s c r i p t > \ n "
" < / h e a d > \ n "
" < b o d y > \ n "
" < s v g i d = ' c h a r t ' > < / s v g > \ n "
" < s c r i p t t y p e = ' t e x t / j a v a s c r i p t ' > \ n "
" / / S i m p l e h e l p e r t o c o m p u t e t h e m e d i a n o f a s e q u e n c e o f v a l u e s \ n "
" v a r m e d i a n = function ( values ) { \ n "
" v a l u e s . sort ( function(a, b ) { r e t u r n a - b ; } ) ; \ n "
" v a r h a l f = M a t h . floor ( values.length / 2 ) ; \ n "
" if ( values.length % 2 ) \ n "
" r e t u r n v a l u e s [ h a l f ] ; \ n "
" e l s e \ n "
" return ( values[half - 1] + values[half] ) / 2 . 0 ; \ n "
" } ; \ n "
" \ n "
" v a r c u s t o m S e t t i n g s = < % = o p t i o n s . t o _ j s o n % > ; \ n "
" v a r a s p e c t = ' < % = a s p e c t % > ' ; \ n "
" / / ' d a t a ' i s a n a r r a y o f datasets ( i.e. curves ) , e a c h o f w h i c h i s a n o b j e c t o f t h e f o r m \ n "
" / / { \ n "
" / / k e y : < n a m e o f t h e c u r v e > , \ n "
" / / c o l o r : < C O L O R a r g u m e n t f o r t h a t dataset ( optional, may be the empty string ) > , \ n "
" / / s c a l e : < S C A L E a r g u m e n t f o r t h a t d a t a s e t > , \ n "
" / / v a l u e s : [ { \ n "
" / / n : < v a l u e o f n f o r t h a t r u n > , \ n "
" / / b a s e : [ { / / a n a r r a y o f s a m p l e s f o r t h e s a m e ' n ' \ n "
" / / C O M P I L A T I O N _ T I M E : < c o m p i l a t i o n t i m e i n s e c o n d s > , \ n "
" / / L I N K _ T I M E : < l i n k t i m e i n s e c o n d s > , \ n "
" / / E X E C U T A B L E _ S I Z E : < e x e c u t a b l e s i z e i n K B > , \ n "
" / / P E A K _ M E M O R Y : < p e a k m e m o r y u s a g e i n K B > \ n "
" / / } ] , \ n "
" / / t o t a l : < s a m e a s ' b a s e ' , b u t w i t h M E T A B E N C H d e f i n e d > \ n "
" / / } ] \ n "
" / / } \ n "
" v a r d a t a = < % = d a t a . t o _ j s o n % > ; \ n "
" \ n "
" / / m a s s a g e t h e m e a s u r e m e n t s f o r i n g e s t i o n b y n v d 3 \ n "
" d a t a . forEach ( function(dataset ) { \ n "
" d a t a s e t . v a l u e s = d a t a s e t . v a l u e s . map ( function(value ) { \ n "
" n e w _ v a l u e = { ' n ' : v a l u e [ ' n ' ] , ' b a s e ' : { } , ' t o t a l ' : { } } ; \ n "
" [ ' C O M P I L A T I O N _ T I M E ' , ' L I N K _ T I M E ' , ' E X E C U T A B L E _ S I Z E ' , ' P E A K _ M E M O R Y ' ] . forEach ( function(aspect ) { \ n "
" n e w _ v a l u e [ ' b a s e ' ] [ a s p e c t ] = v a l u e . b a s e . map ( function(v ) { r e t u r n d a t a s e t . s c a l e * v [ a s p e c t ] ; } ) ; \ n "
" n e w _ v a l u e [ ' t o t a l ' ] [ a s p e c t ] = v a l u e . t o t a l . map ( function(v ) { r e t u r n d a t a s e t . s c a l e * v [ a s p e c t ] ; } ) ; \ n "
" } ) ; \ n "
" r e t u r n n e w _ v a l u e ; \ n "
" } ) ; \ n "
" } ) ; \ n "
" \ n "
" / / s e t u p p e r - a s p e c t c u s t o m s e t t i n g s \ n "
" v a r a s p e c t D e f a u l t s = { \ n "
" ' C O M P I L A T I O N _ T I M E ' : { \ n "
" a x i s L a b e l : ' C o m p i l a t i o n t i m e ' , \ n "
" t i c k F o r m a t : function ( val ) { r e t u r n d 3 . format ( '.2f' ) ( v a l ) + ' s ' ; } \ n "
" } , \ n "
" ' E X E C U T A B L E _ S I Z E ' : { \ n "
" a x i s L a b e l : ' E x e c u t a b l e s i z e ' , \ n "
" t i c k F o r m a t : function ( val ) { r e t u r n d 3 . format ( '.0f' ) ( v a l ) + ' k b ' ; } \ n "
" } , \ n "
" ' L I N K _ T I M E ' : { \ n "
" a x i s L a b e l : ' L i n k t i m e ' , \ n "
" t i c k F o r m a t : function ( val ) { r e t u r n d 3 . format ( '.2f' ) ( v a l ) + ' s ' ; } \ n "
" } , \ n "
" ' P E A K _ M E M O R Y ' : { \ n "
" a x i s L a b e l : ' P e a k m e m o r y u s a g e ' , \ n "
" t i c k F o r m a t : function ( val ) { r e t u r n d 3 . format ( '.0f' ) ( v a l ) + ' k b ' ; } \ n "
" } \ n "
" } ; \ n "
" \ n "
" / / s e t u p t h e c h a r t a n d i t s o p t i o n s \ n "
" v a r c h a r t = n v . m o d e l s . lineChart ( ) \ n "
" . color ( d3.scale.category10( ) . range ( ) ) \ n "
" . margin ( {left: 75, bottom: 50} ) \ n "
" . forceX ( [0] ) . forceY ( [0] ) ; \ n "
" \ n "
" c h a r t . x ( function(datum ) { r e t u r n d a t u m . n ; } ) \ n "
" . x A x i s . options ( { \n"
" a x i s L a b e l : c u s t o m S e t t i n g s . X L A B E L | | ' N u m b e r o f e l e m e n t s ' , \ n "
" t i c k F o r m a t : d 3 . format ( '.0f' ) \ n "
" } ) ; \ n "
" \ n "
" v a r s u b t r a c t _ b a s e l i n e = function ( datum ) { \ n "
" r e t u r n M a t h . max ( 0, median(datum.total[aspect] ) - median ( datum.base[aspect] ) ) ; \ n "
" } ; \ n "
" c h a r t . y ( subtract_baseline ) \ n "
" . y A x i s . options ( { \n"
" a x i s L a b e l : c u s t o m S e t t i n g s . Y L A B E L | | a s p e c t D e f a u l t s [ a s p e c t ] . a x i s L a b e l , \ n "
" t i c k F o r m a t : a s p e c t D e f a u l t s [ a s p e c t ] . t i c k F o r m a t \ n "
" } ) ; \ n "
" \ n "
" c h a r t . interpolate ( 'cardinal' ) . useInteractiveGuideline ( true ) ; \ n "
" d 3 . select ( ' #chart').datum(data).call(chart); \n"
" v a r p l o t = d 3 . select ( ' #chart > g'); \n"
" \ n "
" / / s e t u p t h e t i t l e \ n "
" p l o t . append ( 'text' ) \ n "
" . style ( 'font-size', '24px' ) \ n "
" . attr ( 'text-anchor', 'middle' ) . attr ( 'x', '50%' ) . attr ( 'y', '20px' ) \ n "
" . text ( customSettings.TITLE || '' ) ; \ n "
" \ n "
" / / s e t u p t h e s u b t i t l e \ n "
" p l o t . append ( 'text' ) \ n "
" . style ( 'font-size', '16px' ) \ n "
" . attr ( 'text-anchor', 'middle' ) . attr ( 'x', '50%' ) . attr ( 'y', '40px' ) \ n "
" . text ( customSettings.SUBTITLE || '' ) ; \ n "
" \ n "
" / / s e t u p i n t e r p o l a t i o n c o n t r o l \ n "
" v a r c o n t r o l s = p l o t . select ( '.nv-x.nv-axis' ) . append ( 'g' ) . attr ( 'transform', 'translate(24,30 ) ' ) ; \ n "
" v a r i n t e r p o l a t e = c o n t r o l s . append ( 'g' ) . attr ( 'class', 'control interpolate' ) . datum ( [chart.interpolate( ) ] ) ; \ n "
" i n t e r p o l a t e . append ( 'circle' ) \ n "
" . style ( 'fill', ' #333').style('stroke', '#333').style('stroke-width', '2').style('fill-opacity', 1) \n"
" . attr ( 'cx', 0 ) . attr ( 'cy', 0 ) . attr ( 'r', 5 ) ; \ n "
" i n t e r p o l a t e . append ( 'text' ) . attr ( 'text-anchor', 'start' ) . attr ( 'dx', '8' ) . attr ( 'dy', '.32em' ) . text ( 'interpolate' ) ; \ n "
" i n t e r p o l a t e . on ( 'click', function( ) { \ n "
" if ( chart.interpolate( ) = = = i n t e r p o l a t e . datum ( ) [ 0 ] ) { \ n "
" i n t e r p o l a t e . select ( 'circle' ) . style ( 'fill-opacity', 0 ) ; \ n "
" c h a r t . interpolate ( 'linear' ) ; \ n "
" } e l s e { \ n "
" d 3 . select ( this ) . select ( 'circle' ) . style ( 'fill-opacity', 1 ) ; \ n "
" c h a r t . interpolate ( interpolate.datum( ) [ 0 ] ) ; \ n "
" } \ n "
" c h a r t . update ( ) ; \ n "
" } ) ; \ n "
" \ n "
" / / s e t u p b a s e l i n e c o n t r o l \ n "
" v a r b a s e l i n e = c o n t r o l s . append ( 'g' ) . attr ( 'class', 'control baseline' ) . datum ( true /* whether button is checked */ ) ; \ n "
" b a s e l i n e . attr ( 'transform', 'translate(80,0 ) ' ) . append ( 'circle' ) \ n "
" . style ( 'fill', ' #333').style('stroke', '#333').style('stroke-width', '2').style('fill-opacity', 1) \n"
" . attr ( 'cx', 0 ) . attr ( 'cy', 0 ) . attr ( 'r', 5 ) ; \ n "
" b a s e l i n e . append ( 'text' ) . attr ( 'text-anchor', 'start' ) . attr ( 'dx', '8' ) . attr ( 'dy', '.32em' ) . text ( 'subtract baseline' ) ; \ n "
" b a s e l i n e . on ( 'click', function( ) { \ n "
" / / W e s u b t r a c t t h e b a s e l i n e f r o m t h e t o t a l i f t h e b u t t o n w a s j u s t c h e c k e d , o t h e r w i s e w e u s e t h e t o t a l u n c h a n g e d . \ n "
" if ( !baseline.datum( ) ) { \ n "
" d 3 . select ( this ) . select ( 'circle' ) . style ( 'fill-opacity', 1 ) ; \ n "
" c h a r t . y ( subtract_baseline ) ; \ n "
" } e l s e { \ n "
" b a s e l i n e . select ( 'circle' ) . style ( 'fill-opacity', 0 ) ; \ n "
" c h a r t . y ( function(datum ) { r e t u r n median ( datum.total[aspect] ) ; } ) ; \ n "
" } \ n "
" b a s e l i n e . datum ( !baseline.datum( ) ) ; / / t o g g l e t h e r a d i o b u t t o n \ n "
" c h a r t . update ( ) ; \ n "
" } ) ; \ n "
" \ n "
" / / e n s u r e t h e c h a r t i s r e s p o n s i v e \ n "
" n v . u t i l s . windowResize ( chart.update ) ; \ n "
" < / s c r i p t > \ n "
" < / b o d y > \ n "
" < / h t m l > \ n "
2019-05-17 22:41:46 +02:00
)
################################################################################
# end chart.html.erb
################################################################################
################################################################################
# nvd3.css
#
# The following is a copy of the nvd3 1.8.5 css file.
# https://github.com/novus/nvd3
################################################################################
2022-04-02 18:58:23 +02:00
file ( WRITE "${METABENCH_DIR}/nvd3.css"
" \
2019-05-17 22:41:46 +02:00
. n v d 3 . n v - a x i s l i n e , . n v d 3 . n v - a x i s p a t h { f i l l : n o n e ; s h a p e - r e n d e r i n g : c r i s p E d g e s } . n v - b r u s h . e x t e n t , . n v d 3 . b a c k g r o u n d p a t h , . n v d 3 . n v - a x i s l i n e , . n v d 3 . n v - a x i s p a t h { s h a p e - r e n d e r i n g : c r i s p E d g e s } . n v - d i s t x , . n v - d i s t y , . n v - n o n i n t e r a c t i v e , . n v d 3 . n v - a x i s , . n v d 3 . n v - p i e . n v - l a b e l , . n v d 3 . n v - s p a r k l i n e p l u s g . n v - h o v e r V a l u e { p o i n t e r - e v e n t s : n o n e } . n v d 3 . n v - a x i s { o p a c i t y : 1 } . n v d 3 . n v - a x i s . n v - d i s a b l e d , . n v d 3 . n v - c o n t r o l s W r a p . n v - l e g e n d . n v - c h e c k - b o x . n v - c h e c k { o p a c i t y : 0 } . n v d 3 . n v - a x i s p a t h { s t r o k e : #000;stroke-opacity:.75}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{stroke:#e5e5e5}.nvd3 .nv-axis .zero line, .nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:transparent}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-discretebar .nv-groups rect,.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick,.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover,.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:transparent}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover,.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet \
. n v - m e a s u r e : h o v e r { f i l l - o p a c i t y : 1 } . n v d 3 . n v - b u l l e t . n v - m a r k e r { s t r o k e : #000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-markerLine{stroke:#000;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nv-force-node{stroke:#fff;stroke-width:1.5px}.nv-force-link{stroke:#999;stroke-opacity:.6}.nv-force-node text{stroke-width:0}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.nvd3 .nv-groups .nv-point.hover,.nvd3.nv-scatter .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%;\
h e i g h t : 1 0 0 % } . n v t o o l t i p . w i t h - 3 d - s h a d o w , . w i t h - 3 d - s h a d o w . n v t o o l t i p { b o x - s h a d o w : 0 5 p x 1 0 p x rgba ( 0,0,0,.2 ) ; b o r d e r - r a d i u s : 5 p x } . n v d 3 t e x t { f o n t : 4 0 0 1 2 p x A r i a l , s a n s - s e r i f } . n v d 3 . t i t l e { f o n t : 7 0 0 1 4 p x A r i a l , s a n s - s e r i f } . n v d 3 . n v - b a c k g r o u n d { f i l l : #fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}\@media print{.nvd3 text{stroke-width:0;fill-opacity:1}}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#EEE;stroke-opacity:.4}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;stroke:#fff;stroke-width:1px;stroke-opacity:1;fill-opacity:.7}.nvd3.nv-pie .hover path{fill-opacity:1}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-interactiveGuideLine,.nvtooltip{pointer-events:none}.nvd3 .nv-hoverArea{fill-opacity:0;\
s t r o k e - o p a c i t y : 0 } . n v d 3 . n v - s p a r k l i n e p l u s . n v - x V a l u e , . n v d 3 . n v - s p a r k l i n e p l u s . n v - y V a l u e { s t r o k e - w i d t h : 0 ; f o n t - s i z e : . 9 e m ; f o n t - w e i g h t : 4 0 0 } . n v d 3 . n v - s p a r k l i n e p l u s . n v - y V a l u e { s t r o k e : #f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvtooltip h3,.nvtooltip table td.key{font-weight:400}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;color:rgba(0,0,0,1);padding:1px;z-index:10000;display:block;font-family:Arial,sans-serif;font-size:13px;text-align:left;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip h3,.nvtooltip p{margin:0;text-align:center}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;transition-delay:200ms}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{padding:4px 14px;line-height:18px;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.nvtooltip p{padding:5px 14px}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key.total{font-weight:700}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table td.percent{color:#a9a9a9}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{vertical-align:middle;width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;\
d i s p l a y : n o n e } . n v d 3 l i n e . n v - g u i d e l i n e { s t r o k e : #ccc}\
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
################################################################################
# end nvd3.css
################################################################################
################################################################################
# nvd3.js
#
# The following is a copy of the nvd3 1.8.5 js file. Note that we write it
# to the file in multiple steps, because CMake exhausts its stack memory when
# parsing too long strings.
# https://github.com/novus/nvd3
################################################################################
2022-04-02 18:58:23 +02:00
file ( WRITE "${METABENCH_DIR}/nvd3.js"
" \
2019-05-17 22:41:46 +02:00
/ * n v d 3 v e r s i o n 1 . 8 . 5 ( https://github.com/novus/nvd3 ) 2 0 1 6 - 1 2 - 0 1 * / \
! function ( ) { v a r a = { } ; a . d e v = ! 1 , a . t o o l t i p = a . t o o l t i p | | { } , a . u t i l s = a . u t i l s | | { } , a . m o d e l s = a . m o d e l s | | { } , a . c h a r t s = { } , a . l o g s = { } , a . d o m = { } , \ " u n d e f i n e d \ " ! = t y p e o f m o d u l e & & \ " u n d e f i n e d \ " ! = t y p e o f e x p o r t s & & \ " u n d e f i n e d \ " = = t y p e o f d 3 & & ( d 3 = require ( \"d3\")),a.dispatch=d3.dispatch(\"render_start\",\"render_end\"),Function.prototype.bind||(Function.prototype.bind=function(a){if(\"function\"!=typeof this ) t h r o w n e w TypeError ( \"Function.prototype.bind - what is trying to be bound is not callable\ ");var b=Array.prototype.slice.call(arguments,1),c=this,d=function(){},e=function(){return c.apply(this instanceof d&&a?this:a,b.concat(Array.prototype.slice.call(arguments)))};return d.prototype=this.prototype,e.prototype=new d,e}),a.dev&&(a.dispatch.on(\" render_start\ ",function(b){a.logs.startTime=+new Date}),a.dispatch.on(\" render_end\ ",function(b){a.logs.endTime=+new Date,a.logs.totalTime=a.logs.endTime-a.logs.startTime,a.log(\" total\ ",a.logs.totalTime)})),a.log=function(){if(a.dev&&window.console&&console.log&&console.log.apply)console.log.apply(console,arguments);else if(a.dev&&window.console&&\" function\ "==typeof console.log&&Function.prototype.bind){var b=Function.prototype.bind.call(console.log,console);b.apply(console,arguments)}return arguments[arguments.length-1]},a.deprecated=function(a,b){console&&console.warn&&console.warn(\" nvd3 warning: `\ "+a+\" ` has been deprecated. \",b||\"\")},a.render=function(b){b=b||1,a.render.active=!0,a.dispatch.render_start();var c=function( ) { for ( var d,e,f=0;b>f&&(e=a.render.queue[f] ) ; f + + ) d = e . generate ( ) , t y p e o f e . c a l l b a c k = = t y p e o f F u n c t i o n & & e . callback ( d ) ; a . r e n d e r . q u e u e . splice ( 0,f ) , a . r e n d e r . q u e u e . l e n g t h ? setTimeout ( c ) : ( a . d i s p a t c h . render_end ( ) , a . r e n d e r . a c t i v e = ! 1 ) } ; setTimeout ( c ) } , a . r e n d e r . a c t i v e = ! 1 , a . r e n d e r . q u e u e = [ ] , a . a d d G r a p h = function ( b ) { t y p e o f a r g u m e n t s [ 0 ] = = t y p e o f F u n c t i o n & & ( b = { g e n e r a t e : a r g u m e n t s [ 0 ] , c a l l b a c k : a r g u m e n t s [ 1 ] } ) , a . r e n d e r . q u e u e . push ( b ) , a . r e n d e r . a c t i v e | | a . render ( ) } , \ " u n d e f i n e d \ " ! = t y p e o f m o d u l e & & \ " u n d e f i n e d \ " ! = t y p e o f e x p o r t s & & ( m o d u l e . e x p o r t s = a ) , \ " u n d e f i n e d \ " ! = t y p e o f w i n d o w & & ( w i n d o w . n v = a ) , a . d o m . w r i t e = function ( a ) { r e t u r n v o i d 0 ! = = w i n d o w . f a s t d o m ? f a s t d o m . mutate ( a ) : a ( ) } , \
a . d o m . r e a d = function ( a ) { r e t u r n v o i d 0 ! = = w i n d o w . f a s t d o m ? f a s t d o m . measure ( a ) : a ( ) } , a . i n t e r a c t i v e G u i d e l i n e = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( l ) { l . each ( function(l ) { f u n c t i o n m ( ) { v a r a = d 3 . mouse ( this ) , d = a [ 0 ] , e = a [ 1 ] , h = ! 0 , i = ! 1 ; if ( k&&(d=d3.event.offsetX,e=d3.event.offsetY,\ "svg\" !==d3.event.target.tagName&&(h=!1 ) , d 3 . e v e n t . t a r g e t . c l a s s N a m e . b a s e V a l . match ( \"nv-legend\")&&(i=!0)),h&&(d-=c.left,e-=c.top),\"mouseout\"===d3.event.type||0>d||0>e||d>o||e>p||d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement||i ) { if ( k&&d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement&&(void 0===d3.event.relatedTarget.className||d3.event.relatedTarget.className.match(j.nvPointerEventsClass ) ) ) r e t u r n ; r e t u r n g . elementMouseout ( {mouseX:d,mouseY:e} ) , b . renderGuideLine ( null ) , v o i d j . hidden ( !0 ) } j . hidden ( !1 ) ; v a r l = \ " f u n c t i o n \ " = = t y p e o f f . r a n g e B a n d s , m = v o i d 0 ; if ( l ) { v a r n = d 3 . bisect ( f.range( ) , d ) - 1 ; if ( !(f.range( ) [ n ] + f . rangeBand ( ) > = d ) ) r e t u r n g . elementMouseout ( {mouseX:d,mouseY:e} ) , b . renderGuideLine ( null ) , v o i d j . hidden ( !0 ) ; m = f . domain ( ) [ d 3 . bisect ( f.range( ) , d ) - 1 ] } e l s e m = f . invert ( d ) ; g . elementMousemove ( {mouseX:d,mouseY:e,pointXValue:m} ) , \ " d b l c l i c k \ " = = = d 3 . e v e n t . t y p e & & g . elementDblclick ( {mouseX:d,mouseY:e,pointXValue:m} ) , \ " c l i c k \ " = = = d 3 . e v e n t . t y p e & & g . elementClick ( {mouseX:d,mouseY:e,pointXValue:m} ) , \ " m o u s e d o w n \ " = = = d 3 . e v e n t . t y p e & & g . elementMouseDown ( {mouseX:d,mouseY:e,pointXValue:m} ) , \ " m o u s e u p \ " = = = d 3 . e v e n t . t y p e & & g . elementMouseUp ( {mouseX:d,mouseY:e,pointXValue:m} ) } v a r n = d 3 . select ( this ) , o = d | | 9 6 0 , p = e | | 4 0 0 , q = n . selectAll ( \"g.nv-wrap.nv-interactiveLineLayer\").data([l]),r=q.enter().append(\"g\").attr(\"class\",\" nv-wrap nv-interactiveLineLayer\ ");r.append(\" g\ ").attr(\" class\ ",\" nv-interactiveGuideLine\ "),i&&(i.on(\" touchmove\ ",m).on(\" mousemove\ ",m,!0).on(\" mouseout\ ",m,!0).on(\" mousedown\ ",m,!0).on(\" mouseup\ ",m,!0).on(\" dblclick\ ",m).on(\" click\ ",m),b.guideLine=null,b.renderGuideLine=function(c){h&&(b.guideLine&&b.guideLine.attr(\" x1\ ")===c||a.dom.write(function(){var b=q.select(\" .nv-interactiveGuideLine\ ").selectAll(\" line\ ").data(null!=c?[a.utils.NaNtoZero(c)]:[],String);b.enter().append(\" line\ ").attr(\" class\ " ,\
\ " n v - g u i d e l i n e \ " ) . attr ( \"x1\",function(a){return a} ) . attr ( \"x2\",function(a){return a} ) . attr ( \"y1\",p).attr(\"y2\",0),b.exit().remove()}))})})}var c={left:0,top:0},d=null,e=null,f=d3.scale.linear( ) , g = d 3 . dispatch ( \"elementMousemove\",\"elementMouseout\",\"elementClick\",\"elementDblclick\",\"elementMouseDown\",\"elementMouseUp\"),h=!0,i=null,j=a.models.tooltip(),k=window.ActiveXObject;return j.duration(0 ) . hideDelay ( 0 ) . hidden ( !1 ) , b . d i s p a t c h = g , b . t o o l t i p = j , b . m a r g i n = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c . t o p = \ " u n d e f i n e d \ " ! = t y p e o f a . t o p ? a . t o p : c . t o p , c . l e f t = \ " u n d e f i n e d \ " ! = t y p e o f a . l e f t ? a . l e f t : c . l e f t , b ) : c } , b . w i d t h = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( d = a , b ) : d } , b . h e i g h t = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = a , b ) : e } , b . x S c a l e = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( f = a , b ) : f } , b . s h o w G u i d e L i n e = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( h = a , b ) : h } , b . s v g C o n t a i n e r = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = a , b ) : i } , b } , a . i n t e r a c t i v e B i s e c t = function ( a,b,c ) { \ " u s e s t r i c t \ " ; if ( !(a instanceof Array ) ) r e t u r n n u l l ; v a r d ; d = \ " f u n c t i o n \ " ! = t y p e o f c ? function ( a ) { r e t u r n a . x } : c ; v a r e = function ( a,b ) { r e t u r n d ( a ) - b } , f = d 3 . bisector ( e ) . l e f t , g = d 3 . max ( [0,f(a,b ) - 1 ] ) , h = d ( a[g] ) ; if ( \"undefined\"==typeof h&&(h=g ) , h = = = b ) r e t u r n g ; v a r i = d 3 . min ( [g+1,a.length-1] ) , j = d ( a[i] ) ; r e t u r n \ " u n d e f i n e d \ " = = t y p e o f j & & ( j = i ) , M a t h . abs ( j-b ) > = M a t h . abs ( h-b ) ? g : i } , a . n e a r e s t V a l u e I n d e x = function ( a,b,c ) { \ " u s e s t r i c t \ " ; v a r d = 1 / 0 , e = n u l l ; r e t u r n a . forEach ( function(a,f ) { v a r g = M a t h . abs ( b-a ) ; n u l l ! = a & & d > = g & & c > g & & ( d = g , e = f ) } ) , e } , a . m o d e l s . t o o l t i p = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( ) { if ( !l||!l.node( ) ) { v a r a = [ 1 ] ; l = d 3 . select ( document.body ) . select ( \"#\"+d).data(a),l.enter().append(\"div\").attr(\"class\",\"nvtooltip \"+(i?i:\"xy-tooltip\")).attr(\"id\",d).style(\"top\",0).style(\"left\",0).style(\"opacity\",0).style(\"position\",\"fixed\").selectAll(\"div, table, td, tr\ ").classed(q,!0).classed(q,!0),l.exit().remove()}}function c(){return n&&w(e)?(a.dom.write(function(){b();var a=u(e);a&&(l.node().innerHTML=a),y()}),c):void 0}var d=\" nvtooltip-\ "+Math.floor(1e5*Math.random()),e=null,f=\" w\ ",g=25,h=0,i=null,j=!0,k=200,l=null,m={left:null,top:null},n=!0,o=100,p=!0,q=\" nv-pointer-events-none\ " ,\
r = function ( a,b ) { r e t u r n a } , s = function ( a ) { r e t u r n a } , t = function ( a,b ) { r e t u r n a } , u = function ( a ) { if ( null===a ) r e t u r n \ " \ " ; v a r b = d 3 . select ( document.createElement(\ "table\" ) ) ; if ( p ) { v a r c = b . selectAll ( \"thead\").data([a]).enter().append(\"thead\");c.append(\"tr\").append(\"td\").attr(\"colspan\",3).append(\"strong\").classed(\"x-value\",!0).html(s(a.value))}var d=b.selectAll(\ "tbody\" ) . data ( [a] ) . enter ( ) . append ( \"tbody\"),e=d.selectAll(\"tr\").data(function(a){return a.series} ) . enter ( ) . append ( \"tr\").classed(\"highlight\",function(a){return a.highlight} ) ; e . append ( \"td\").classed(\"legend-color-guide\",!0).append(\"div\").style(\"background-color\",function(a){return a.color} ) , e . append ( \"td\").classed(\"key\",!0).classed(\"total\",function(a){return!!a.total}).html(function(a,b){return t(a.key,b ) } ) , e . append ( \"td\").classed(\"value\",!0).html(function(a,b){return r(a.value,b ) } ) , e . filter ( function(a,b ) { r e t u r n v o i d 0 ! = = a . p e r c e n t } ) . append ( \"td\").classed(\"percent\",!0).html(function(a,b){return\"(\"+d3.format(\"%\")(a.percent)+\")\"}),e.selectAll(\"td\").each(function(a){if(a.highlight){var b=d3.scale.linear( ) . domain ( [0,1] ) . range ( [\ "#fff\" ,a.color] ) , c = . 6 ; d 3 . select ( this ) . style ( \"border-bottom-color\",b(c)).style(\"border-top-color\",b(c))}});var f=b.node( ) . o u t e r H T M L ; r e t u r n v o i d 0 ! = = a . f o o t e r & & ( f + = \ " < d i v c l a s s = ' f o o t e r ' > \ " + a . f o o t e r + \ " < / d i v > \ " ) , f } , v = function ( ) { v a r a = { l e f t : n u l l ! = = d 3 . e v e n t ? d 3 . e v e n t . c l i e n t X : 0 , t o p : n u l l ! = = d 3 . e v e n t ? d 3 . e v e n t . c l i e n t Y : 0 } ; if ( \"none\"!=getComputedStyle(document.body).transform){var b=document.body.getBoundingClientRect( ) ; a . l e f t - = b . l e f t , a . t o p - = b . t o p } r e t u r n a } , w = function ( b ) { if ( b&&b.series ) { if ( a.utils.isArray(b.series ) ) r e t u r n ! 0 ; if ( a.utils.isObject(b.series ) ) r e t u r n b . s e r i e s = [ b . s e r i e s ] , ! 0 } r e t u r n ! 1 } , x = function ( a ) { v a r b , c , d , e = l . node ( ) . o f f s e t H e i g h t , h = l . node ( ) . o f f s e t W i d t h , i = d o c u m e n t . d o c u m e n t E l e m e n t . c l i e n t W i d t h , j = d o c u m e n t . d o c u m e n t E l e m e n t . c l i e n t H e i g h t ; switch ( f ) { c a s e \ " e \ " : b = - h - g , c = - ( e / 2 ) , a . l e f t + b < 0 & & ( b = g ) , ( d = a . t o p + c ) < 0 & & ( c - = d ) , ( d = a . t o p + c + e ) > j & & ( c - = d - j ) ; b r e a k ; c a s e \ " w \ " : b = g , c = - ( e / 2 ) , a . l e f t + b + h > i & & ( b = - h - g ) , ( d = a . t o p + c ) < 0 & & ( c - = d ) , ( d = a . t o p + c + e ) > j & & ( c - = d - j ) ; b r e a k ; c a s e \ " n \ " : b = - ( h / 2 ) - 5 , c = g , a . t o p + c + e > j & & ( c = - e - g ) , \
( d = a . l e f t + b ) < 0 & & ( b - = d ) , ( d = a . l e f t + b + h ) > i & & ( b - = d - i ) ; b r e a k ; c a s e \ " s \ " : b = - ( h / 2 ) , c = - e - g , a . t o p + c < 0 & & ( c = g ) , ( d = a . l e f t + b ) < 0 & & ( b - = d ) , ( d = a . l e f t + b + h ) > i & & ( b - = d - i ) ; b r e a k ; c a s e \ " c e n t e r \ " : b = - ( h / 2 ) , c = - ( e / 2 ) ; b r e a k ; d e f a u l t : b = 0 , c = 0 } r e t u r n { l e f t : b , t o p : c } } , y = function ( ) { a . d o m . read ( function( ) { v a r a = v ( ) , b = x ( a ) , c = a . l e f t + b . l e f t , d = a . t o p + b . t o p ; if ( j ) l . interrupt ( ) . transition ( ) . delay ( k ) . duration ( 0 ) . style ( \"opacity\",0);else{var e=\ "translate(\" +m.left+\ "px, \" +m.top+\ "px)\" ,f=\ "translate(\" +Math.round(c ) + \ " p x , \ " + M a t h . round ( d ) + \ " p x ) \ " , g = d 3 . interpolateString ( e,f ) , h = l . style ( \"opacity\")<.1;l.interrupt().transition().duration(h?0:o).styleTween(\"transform\",function(a){return g},\ "important\" ) . styleTween ( \"-webkit-transform\",function(a){return g} ) . style ( \"-ms-transform\",f).style(\"opacity\",1)}m.left=c,m.top=d})};return c.nvPointerEventsClass=q,c.options=a.utils.optionsFunc.bind(c ) , c . _ o p t i o n s = O b j e c t . create ( {},{duration:{get:function( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , g r a v i t y : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , d i s t a n c e : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , s n a p D i s t a n c e : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , c l a s s e s : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , e n a b l e d : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , h i d e D e l a y : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , c o n t e n t G e n e r a t o r : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , v a l u e F o r m a t t e r : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , h e a d e r F o r m a t t e r : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , k e y F o r m a t t e r : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , h e a d e r E n a b l e d : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , p o s i t i o n : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , c h a r t C o n t a i n e r : { g e t : function ( ) { r e t u r n d o c u m e n t . b o d y } , s e t : function ( b ) { a . deprecated ( \"chartContainer\",\"feature removed after 1.8.3\ ")}},fixedTop:{get:function(){return null},set:function(b){a.deprecated(\" fixedTop\ ",\" feature removed after 1.8.1\ ")}},offset:{get:function(){return{left:0,top:0}},set:function(b){a.deprecated(\" offset\ ",\" use chart.tooltip.distance( ) i n s t e a d \ " ) } } , h i d d e n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j ! = a & & ( j = ! ! a , \
c ( ) ) } } , d a t a : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { a . p o i n t & & ( a . v a l u e = a . p o i n t . x , a . s e r i e s = a . s e r i e s | | { } , a . s e r i e s . v a l u e = a . p o i n t . y , a . s e r i e s . c o l o r = a . p o i n t . c o l o r | | a . s e r i e s . c o l o r ) , e = a } } , n o d e : { g e t : function ( ) { r e t u r n l . node ( ) } , s e t : function ( a ) { } } , i d : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { } } } ) , a . u t i l s . initOptions ( c ) , c } , a . u t i l s . w i n d o w S i z e = function ( ) { v a r a = { w i d t h : 6 4 0 , h e i g h t : 4 8 0 } ; r e t u r n w i n d o w . i n n e r W i d t h & & w i n d o w . i n n e r H e i g h t ? ( a . w i d t h = w i n d o w . i n n e r W i d t h , a . h e i g h t = w i n d o w . i n n e r H e i g h t , a ) : \ " C S S 1 C o m p a t \ " = = d o c u m e n t . c o m p a t M o d e & & d o c u m e n t . d o c u m e n t E l e m e n t & & d o c u m e n t . d o c u m e n t E l e m e n t . o f f s e t W i d t h ? ( a . w i d t h = d o c u m e n t . d o c u m e n t E l e m e n t . o f f s e t W i d t h , a . h e i g h t = d o c u m e n t . d o c u m e n t E l e m e n t . o f f s e t H e i g h t , a ) : d o c u m e n t . b o d y & & d o c u m e n t . b o d y . o f f s e t W i d t h ? ( a . w i d t h = d o c u m e n t . b o d y . o f f s e t W i d t h , a . h e i g h t = d o c u m e n t . b o d y . o f f s e t H e i g h t , a ) : a } , a . u t i l s . i s A r r a y = A r r a y . i s A r r a y , a . u t i l s . i s O b j e c t = function ( a ) { r e t u r n n u l l ! = = a & & \ " o b j e c t \ " = = t y p e o f a } , a . u t i l s . i s F u n c t i o n = function ( a ) { r e t u r n \ " f u n c t i o n \ " = = t y p e o f a } , a . u t i l s . i s D a t e = function ( a ) { r e t u r n \ " [ o b j e c t D a t e ] \ " = = = t o S t r i n g . call ( a ) } , a . u t i l s . i s N u m b e r = function ( a ) { r e t u r n ! isNaN ( a ) & & \ " n u m b e r \ " = = t y p e o f a } , a . u t i l s . w i n d o w R e s i z e = function ( b ) { r e t u r n w i n d o w . a d d E v e n t L i s t e n e r ? w i n d o w . addEventListener ( \"resize\",b):a.log(\"ERROR: Failed to bind to window.resize with: \",b),{callback:b,clear:function(){window.removeEventListener(\"resize\",b)}}},a.utils.getColor=function(b){if(void 0===b ) r e t u r n a . u t i l s . defaultColor ( ) ; if ( a.utils.isArray(b ) ) { v a r c = d 3 . s c a l e . ordinal ( ) . range ( b ) ; r e t u r n function ( a,b ) { v a r d = v o i d 0 = = = b ? a : b ; r e t u r n a . c o l o r | | c ( d ) } } r e t u r n b } , a . u t i l s . d e f a u l t C o l o r = function ( ) { r e t u r n a . u t i l s . getColor ( d3.scale.category20( ) . range ( ) ) } , a . u t i l s . c u s t o m T h e m e = function ( b,c,d ) { c = c | | function ( a ) { r e t u r n a . k e y } , d = d | | d 3 . s c a l e . category20 ( ) . range ( ) ; v a r e = d . l e n g t h ; r e t u r n function ( f,g ) { v a r h = c ( f ) ; r e t u r n a . u t i l s . isFunction ( b[h] ) ? b [ h ] ( ) : v o i d 0 ! = = b [ h ] ? b [ h ] : ( e | | ( e = d . l e n g t h ) , e - = 1 , d [ e ] ) } } , a . u t i l s . p j a x = function ( b,c ) { v a r d = function ( d ) { d 3 . html ( d,function(d ) { v a r e = d 3 . select ( c ) . node ( ) ; e . p a r e n t N o d e . replaceChild ( d3.select(d ) . select ( c ) . node ( ) , e ) , a . u t i l s . pjax ( b,c ) } ) } ; d 3 . selectAll ( b ) . on ( \"click\",function(){history.pushState(this.href,\
t h i s . t e x t C o n t e n t , t h i s . h r e f ) , d ( this.href ) , d 3 . e v e n t . preventDefault ( ) } ) , d 3 . select ( window ) . on ( \"popstate\",function(){d3.event.state&&d(d3.event.state)})},a.utils.calcApproxTextWidth=function(b){if(a.utils.isFunction(b.style)&&a.utils.isFunction(b.text)){var c=parseInt(b.style(\ "font-size\" ) . replace ( \"px\",\"\"),10),d=b.text().length;return a.utils.NaNtoZero(d*c*.5 ) } r e t u r n 0 } , a . u t i l s . N a N t o Z e r o = function ( b ) { r e t u r n ! a . u t i l s . isNumber ( b ) | | isNaN ( b ) | | n u l l = = = b | | b = = = 1 / 0 | | b = = = - ( 1 / 0 ) ? 0 : b } , d 3 . s e l e c t i o n . p r o t o t y p e . w a t c h T r a n s i t i o n = function ( a ) { v a r b = [ t h i s ] . concat ( [].slice.call(arguments,1 ) ) ; r e t u r n a . t r a n s i t i o n . apply ( a,b ) } , a . u t i l s . r e n d e r W a t c h = function ( b,c ) { if ( !(this instanceof a.utils.renderWatch ) ) r e t u r n n e w a . u t i l s . renderWatch ( b,c ) ; v a r d = v o i d 0 ! = = c ? c : 2 5 0 , e = [ ] , f = t h i s ; t h i s . m o d e l s = function ( a ) { r e t u r n a = [ ] . s l i c e . call ( arguments,0 ) , a . forEach ( function(a ) { a . _ _ r e n d e r e d = ! 1 , function ( a ) { a . d i s p a t c h . on ( \"renderEnd\",function(b){a.__rendered=!0,f.renderEnd(\"model\")})}(a),e.indexOf(a)<0&&e.push(a)}),this},this.reset=function(a){void 0!==a&&(d=a ) , e = [ ] } , t h i s . t r a n s i t i o n = function ( a,b,c ) { if ( b=arguments.length>1?[].slice.call(arguments,1 ) : [ ] , c = b . l e n g t h > 1 ? b . pop ( ) : v o i d 0 ! = = d ? d : 2 5 0 , a . _ _ r e n d e r e d = ! 1 , e . indexOf ( a ) < 0 & & e . push ( a ) , 0 = = = c ) r e t u r n a . _ _ r e n d e r e d = ! 0 , a . d e l a y = function ( ) { r e t u r n t h i s } , a . d u r a t i o n = function ( ) { r e t u r n t h i s } , a ; 0 = = = a . l e n g t h ? a . _ _ r e n d e r e d = ! 0 : a . every ( function(a ) { r e t u r n ! a . l e n g t h } ) ? a . _ _ r e n d e r e d = ! 0 : a . _ _ r e n d e r e d = ! 1 ; v a r g = 0 ; r e t u r n a . transition ( ) . duration ( c ) . each ( function( ) { + + g } ) . each ( \"end\",function(c,d){0===--g&&(a.__rendered=!0,f.renderEnd.apply(this,b))})},this.renderEnd=function(){e.every(function(a){return a.__rendered} ) & & ( e . forEach ( function(a ) { a . _ _ r e n d e r e d = ! 1 } ) , b . r e n d e r E n d . apply ( this,arguments ) ) } } , a . u t i l s . d e e p E x t e n d = function ( b ) { v a r c = a r g u m e n t s . l e n g t h > 1 ? [ ] . s l i c e . call ( arguments,1 ) : [ ] ; c . forEach ( function(c ) { for ( var d in c ) { v a r e = a . u t i l s . isArray ( b[d] ) , f = a . u t i l s . isObject ( b[d] ) , g = a . u t i l s . isObject ( c[d] ) ; f & & ! e & & g ? a . u t i l s . deepExtend ( b[d],c[d] ) : b [ d ] = c [ d ] } } ) } , a . u t i l s . s t a t e = function ( ) { if ( !(this instanceof a.utils.state ) ) r e t u r n n e w a . u t i l s . s t a t e ; v a r b = { } , c = function ( ) { } , d = function ( ) { r e t u r n { } } , \
e = n u l l , f = n u l l ; t h i s . d i s p a t c h = d 3 . dispatch ( \"change\",\"set\"),this.dispatch.on(\"set\",function(a){c(a,!0)}),this.getter=function(a){return d=a,this},this.setter=function(a,b ) { r e t u r n b | | ( b = function ( ) { } ) , c = function ( c,d ) { a ( c ) , d & & b ( ) } , t h i s } , t h i s . i n i t = function ( b ) { e = e | | { } , a . u t i l s . deepExtend ( e,b ) } ; v a r g = function ( ) { v a r a = d ( ) ; if ( JSON.stringify(a ) = = = J S O N . stringify ( b ) ) r e t u r n ! 1 ; for ( var c in a ) v o i d 0 = = = b [ c ] & & ( b [ c ] = { } ) , b [ c ] = a [ c ] , f = ! 0 ; r e t u r n ! 0 } ; t h i s . u p d a t e = function ( ) { e & & ( c ( e,!1 ) , e = n u l l ) , g . call ( this ) & & t h i s . d i s p a t c h . change ( b ) } } , a . u t i l s . o p t i o n s F u n c = function ( b ) { r e t u r n b & & d 3 . map ( b ) . forEach ( function(b,c ) { a . u t i l s . isFunction ( this[b] ) & & t h i s [ b ] ( c ) } . bind ( this ) ) , t h i s } , a . u t i l s . c a l c T i c k s X = function ( b,c ) { v a r d = 1 , e = 0 ; for ( e;e<c.length;e+=1 ) { v a r f = c [ e ] & & c [ e ] . v a l u e s ? c [ e ] . v a l u e s . l e n g t h : 0 ; d = f > d ? f : d } r e t u r n a . log ( \"Requested number of ticks: \",b),a.log(\"Calculated max values to be: \",d),b=b>d?b=d-1:b,b=1>b?1:b,b=Math.floor(b),a.log(\"Calculating tick count as: \",b),b},a.utils.calcTicksY=function(b,c){return a.utils.calcTicksX(b,c ) } , a . u t i l s . i n i t O p t i o n = function ( a,b ) { a . _ c a l l s & & a . _ c a l l s [ b ] ? a [ b ] = a . _ c a l l s [ b ] : ( a [ b ] = function ( c ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a . _ o v e r r i d e s [ b ] = ! 0 , a . _ o p t i o n s [ b ] = c , a ) : a . _ o p t i o n s [ b ] } , a [ \ " _ \ " + b ] = function ( c ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a . _ o v e r r i d e s [ b ] | | ( a . _ o p t i o n s [ b ] = c ) , a ) : a . _ o p t i o n s [ b ] } ) } , a . u t i l s . i n i t O p t i o n s = function ( b ) { b . _ o v e r r i d e s = b . _ o v e r r i d e s | | { } ; v a r c = O b j e c t . getOwnPropertyNames ( b._options||{} ) , d = O b j e c t . getOwnPropertyNames ( b._calls||{} ) ; c = c . concat ( d ) ; for ( var e in c ) a . u t i l s . initOption ( b,c[e] ) } , a . u t i l s . i n h e r i t O p t i o n s D 3 = function ( a,b,c ) { a . _ d 3 o p t i o n s = c . concat ( a._d3options||[] ) , c . unshift ( b ) , c . unshift ( a ) , d 3 . r e b i n d . apply ( this,c ) } , a . u t i l s . a r r a y U n i q u e = function ( a ) { r e t u r n a . sort ( ) . filter ( function(b,c ) { r e t u r n ! c | | b ! = a [ c - 1 ] } ) } , a . u t i l s . s y m b o l M a p = d 3 . map ( ) , a . u t i l s . s y m b o l = function ( ) { f u n c t i o n b ( b,e ) { v a r f = c . call ( this,b,e ) , g = d . call ( this,b,e ) ; r e t u r n - 1 ! = = d 3 . s v g . s y m b o l T y p e s . indexOf ( f ) ? d 3 . s v g . symbol ( ) . type ( f ) . size ( g ) ( ) : a . u t i l s . s y m b o l M a p . get ( f ) ( g ) } v a r c , d = 6 4 ; r e t u r n b . t y p e = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c = d 3 . functor ( a ) , b ) : c } , b . s i z e = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( d = d 3 . functor ( a ) , \
b ) : d } , b } , a . u t i l s . i n h e r i t O p t i o n s = function ( b,c ) { v a r d = O b j e c t . getOwnPropertyNames ( c._options||{} ) , e = O b j e c t . getOwnPropertyNames ( c._calls||{} ) , f = c . _ i n h e r i t e d | | [ ] , g = c . _ d 3 o p t i o n s | | [ ] , h = d . concat ( e ) . concat ( f ) . concat ( g ) ; h . unshift ( c ) , h . unshift ( b ) , d 3 . r e b i n d . apply ( this,h ) , b . _ i n h e r i t e d = a . u t i l s . arrayUnique ( d.concat(e ) . concat ( f ) . concat ( d ) . concat ( b._inherited||[] ) ) , b . _ d 3 o p t i o n s = a . u t i l s . arrayUnique ( g.concat(b._d3options||[] ) ) } , a . u t i l s . i n i t S V G = function ( a ) { a . classed ( {\ "nvd3-svg\" :!0} ) } , a . u t i l s . s a n i t i z e H e i g h t = function ( a,b ) { r e t u r n a | | parseInt ( b.style(\ "height\" ) , 1 0 ) | | 4 0 0 } , a . u t i l s . s a n i t i z e W i d t h = function ( a,b ) { r e t u r n a | | parseInt ( b.style(\ "width\" ) , 1 0 ) | | 9 6 0 } , a . u t i l s . a v a i l a b l e H e i g h t = function ( b,c,d ) { r e t u r n M a t h . max ( 0,a.utils.sanitizeHeight(b,c ) - d . t o p - d . b o t t o m ) } , a . u t i l s . a v a i l a b l e W i d t h = function ( b,c,d ) { r e t u r n M a t h . max ( 0,a.utils.sanitizeWidth(b,c ) - d . l e f t - d . r i g h t ) } , a . u t i l s . n o D a t a = function ( b,c ) { v a r d = b . options ( ) , e = d . margin ( ) , f = d . noData ( ) , g = n u l l = = f ? [ \ " N o D a t a A v a i l a b l e . \ " ] : [ f ] , h = a . u t i l s . availableHeight ( null,c,e ) , i = a . u t i l s . availableWidth ( null,c,e ) , j = e . l e f t + i / 2 , k = e . t o p + h / 2 ; c . selectAll ( \"g\").remove();var l=c.selectAll(\ ".nv-noData\" ) . data ( g ) ; l . enter ( ) . append ( \"text\").attr(\"class\",\"nvd3 nv-noData\ ").attr(\" dy\ ",\" -.7em\ ").style(\" text-anchor\ ",\" middle\ "),l.attr(\" x\ ",j).attr(\" y\ ",k).text(function(a){return a})},a.utils.wrapTicks=function(a,b){a.each(function(){for(var a,c=d3.select(this),d=c.text().split(/\\s+/).reverse(),e=[],f=0,g=1.1,h=c.attr(\" y\ "),i=parseFloat(c.attr(\" dy\ ")),j=c.text(null).append(\" tspan\ ").attr(\" x\ ",0).attr(\" y\ ",h).attr(\" dy\ ",i+\" em\ ");a=d.pop();)e.push(a),j.text(e.join(\" \")),j.node().getComputedTextLength()>b&&(e.pop(),j.text(e.join(\" \")),e=[a],j=c.append(\"tspan\").attr(\"x\",0).attr(\"y\",h).attr(\"dy\",++f*g+i+\"em\").text(a))})},a.utils.arrayEquals=function(b,c){if(b===c)return!0;if(!b||!c)return!1;if(b.length!=c.length)return!1;for(var d=0,e=b.length;e>d;d++ ) if ( b[d]instanceof Array&&c[d]instanceof Array ) { if ( !a.arrayEquals(b[d],c[d] ) ) r e t u r n ! 1 } e l s e if ( b[d]!=c[d] ) r e t u r n ! 1 ; r e t u r n ! 0 } , a . m o d e l s . a x i s = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( g ) { r e t u r n t . reset ( ) , g . each ( function(b ) { v a r \
g = d 3 . select ( this ) ; a . u t i l s . initSVG ( g ) ; v a r q = g . selectAll ( \"g.nv-wrap.nv-axis\").data([b]),r=q.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-axis\ "),u=(r.append(\" g\ "),q.select(\" g\ "));null!==n?c.ticks(n):(\" top\ "==c.orient()||\" bottom\ "==c.orient())&&c.ticks(Math.abs(d.range()[1]-d.range()[0])/100),u.watchTransition(t,\" axis\ ").call(c),s=s||c.scale();var v=c.tickFormat();null==v&&(v=s.tickFormat());var w=u.selectAll(\" text.nv-axislabel\ ").data([h||null]);w.exit().remove(),void 0!==p&&u.selectAll(\" g\ ").select(\" text\ ").style(\" font-size\ ",p);var x,y,z;switch(c.orient()){case\" top\ ":w.enter().append(\" text\ ").attr(\" class\ ",\" nv-axislabel\ "),z=0,1===d.range().length?z=m?2*d.range()[0]+d.rangeBand():0:2===d.range().length?z=m?d.range()[0]+d.range()[1]+d.rangeBand():d.range()[1]:d.range().length>2&&(z=d.range()[d.range().length-1]+(d.range()[1]-d.range()[0])),w.attr(\" text-anchor\ ",\" middle\ ").attr(\" y\ ",0).attr(\" x\ ",z/2),i&&(y=q.selectAll(\" g.nv-axisMaxMin\ ").data(d.domain()),y.enter().append(\" g\ ").attr(\" class\ ",function(a,b){return[\" nv-axisMaxMin\ ",\" nv-axisMaxMin-x\ ",0==b?\" nv-axisMin-x\ ":\" nv-axisMax-x\ "].join(\" \")}).append(\"text\"),y.exit().remove(),y.attr(\"transform\",function(b,c){return\"translate(\"+a.utils.NaNtoZero(d(b))+\",0)\"}).select(\"text\").attr(\"dy\",\"-0.5em\").attr(\"y\",-c.tickPadding()).attr(\"text-anchor\",\"middle\").text(function(a,b){var c=v(a ) ; return ( \"\"+c).match(\"NaN\")?\"\":c}),y.watchTransition(t,\"min-max top\ ").attr(\" transform\ ",function(b,c){return\" translate(\ "+a.utils.NaNtoZero(d.range()[c])+\" ,0 ) \ " } ) ) ; b r e a k ; c a s e \ " b o t t o m \ " : x = o + 3 6 ; v a r A = 3 0 , B = 0 , C = u . selectAll ( \"g\").select(\"text\"),D=\"\";if(j%360){C.attr(\"transform\",\"\"),C.each(function(a,b){var c=this.getBoundingClientRect( ) , d = c . w i d t h ; B = c . h e i g h t , d > A & & ( A = d ) } ) , D = \ " rotate ( \"+j+\" 0,\ "+(B/2+c.tickPadding())+\" ) \ " ; v a r E = M a t h . abs ( Math.sin(j*Math.PI/180 ) ) ; x = ( E ? E * A : A ) + 3 0 , C . attr ( \"transform\",D).style(\"text-anchor\",j%360>0?\"start\":\"end\")}else l?C.attr(\ "transform\" ,function(a,b ) { r e t u r n \ " translate ( 0,\ "+(b%2==0?\" 0\ ":\" 12\ ")+\" ) \ " } ) : C . attr ( \"transform\",\"translate(0,0)\");w.enter().append(\"text\").attr(\"class\",\"nv-axislabel\"),z=0,1===d.range().length?z=m?2*d.range()[0]+d.rangeBand():0:2===d.range().length?z=m?d.range()[0]+d.range()[1]+d.rangeBand():d.range()[1]:d.range().length>2&&(z=d.range()[d.range().length-1]+(d.range()[1]-d.range()[0])),\
w . attr ( \"text-anchor\",\"middle\").attr(\"y\",x).attr(\"x\",z/2),i&&(y=q.selectAll(\"g.nv-axisMaxMin\").data([d.domain()[0],d.domain()[d.domain().length-1]]),y.enter().append(\"g\").attr(\"class\",function(a,b){return[\"nv-axisMaxMin\",\"nv-axisMaxMin-x\",0==b?\"nv-axisMin-x\":\"nv-axisMax-x\"].join(\" \")}).append(\"text\"),y.exit().remove(),y.attr(\"transform\",function(b,c){return\"translate(\"+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+\",0)\"}).select(\"text\").attr(\"dy\",\".71em\").attr(\"y\",c.tickPadding()).attr(\"transform\",D).style(\"text-anchor\",j?j%360>0?\"start\":\"end\":\"middle\").text(function(a,b){var c=v(a ) ; return ( \"\"+c).match(\"NaN\")?\"\":c}),y.watchTransition(t,\"min-max bottom\ ").attr(\" transform\ ",function(b,c){return\" translate(\ "+a.utils.NaNtoZero(d(b)+(m?d.rangeBand()/2:0))+\" ,0 ) \ " } ) ) ; b r e a k ; c a s e \ " r i g h t \ " : w . enter ( ) . append ( \"text\").attr(\"class\",\"nv-axislabel\"),w.style(\"text-anchor\",k?\"middle\":\"begin\").attr(\"transform\",k?\"rotate(90)\":\"\").attr(\"y\",k?-Math.max(e.right,f)+12-(o||0):-10).attr(\"x\",k?d3.max(d.range())/2:c.tickPadding()),i&&(y=q.selectAll(\"g.nv-axisMaxMin\").data(d.domain()),y.enter().append(\"g\").attr(\"class\",function(a,b){return[\"nv-axisMaxMin\",\"nv-axisMaxMin-y\",0==b?\"nv-axisMin-y\":\"nv-axisMax-y\"].join(\" \")}).append(\"text\").style(\"opacity\",0),y.exit().remove(),y.attr(\"transform\",function(b,c){return\"translate(0,\"+a.utils.NaNtoZero(d(b))+\")\"}).select(\"text\").attr(\"dy\",\".32em\").attr(\"y\",0).attr(\"x\",c.tickPadding()).style(\"text-anchor\",\"start\").text(function(a,b){var c=v(a ) ; return ( \"\"+c).match(\"NaN\")?\"\":c}),y.watchTransition(t,\"min-max right\ ").attr(\" transform\ ",function(b,c){return\" translate(0,\ "+a.utils.NaNtoZero(d.range()[c])+\" ) \ " } ) . select ( \"text\").style(\"opacity\",1));break;case\"left\":w.enter().append(\"text\").attr(\"class\",\"nv-axislabel\"),w.style(\"text-anchor\",k?\"middle\":\"end\").attr(\"transform\",k?\"rotate(-90)\":\"\").attr(\"y\",k?-Math.max(e.left,f)+25-(o||0):-10).attr(\"x\",k?-d3.max(d.range())/2:-c.tickPadding()),i&&(y=q.selectAll(\"g.nv-axisMaxMin\").data(d.domain()),y.enter().append(\"g\").attr(\"class\",function(a,b){return[\"nv-axisMaxMin\",\"nv-axisMaxMin-y\",\
0 = = b ? \ " n v - a x i s M i n - y \ " : \ " n v - a x i s M a x - y \ " ] . join ( \" \")}).append(\"text\").style(\"opacity\",0),y.exit().remove(),y.attr(\"transform\",function(b,c){return\"translate(0,\"+a.utils.NaNtoZero(s(b))+\")\"}).select(\"text\").attr(\"dy\",\".32em\").attr(\"y\",0).attr(\"x\",-c.tickPadding()).attr(\"text-anchor\",\"end\").text(function(a,b){var c=v(a ) ; return ( \"\"+c).match(\"NaN\")?\"\":c}),y.watchTransition(t,\"min-max right\ ").attr(\" transform\ ",function(b,c){return\" translate(0,\ "+a.utils.NaNtoZero(d.range()[c])+\" ) \ " } ) . select ( \"text\").style(\"opacity\",1))}if(w.text(function(a){return a} ) , ! i | | \ " l e f t \ " ! = = c . orient ( ) & & \ " r i g h t \ " ! = = c . orient ( ) | | ( u . selectAll ( \"g\").each(function(a,b){d3.select(this).select(\"text\").attr(\"opacity\",1),(d(a)<d.range()[1]+10||d(a)>d.range()[0]-10)&&((a>1e-10||-1e-10>a)&&d3.select(this).attr(\"opacity\",0),d3.select(this).select(\"text\").attr(\"opacity\",0))}),d.domain()[0]==d.domain()[1]&&0==d.domain()[0]&&q.selectAll(\"g.nv-axisMaxMin\").style(\"opacity\",function(a,b){return b?0:1} ) ) , i & & ( \ " t o p \ " = = = c . orient ( ) | | \ " b o t t o m \ " = = = c . orient ( ) ) ) { v a r F = [ ] ; q . selectAll ( \"g.nv-axisMaxMin\").each(function(a,b){try{b?F.push(d(a)-this.getBoundingClientRect().width-4):F.push(d(a)+this.getBoundingClientRect().width+4)}catch(c){b?F.push(d(a)-4):F.push(d(a)+4)}}),u.selectAll(\"g\").each(function(a,b){(d(a)<F[0]||d(a)>F[1])&&(a>1e-10||-1e-10>a?d3.select(this).remove():d3.select(this).select(\"text\").remove())})}u.selectAll(\".tick\").filter(function(a){return!parseFloat(Math.round(1e5*a)/1e6)&&void 0!==a} ) . classed ( \"zero\",!0),s=d.copy()}),t.renderEnd(\"axis immediate\ "),b}var c=d3.svg.axis(),d=d3.scale.linear(),e={top:0,right:0,bottom:0,left:0},f=75,g=60,h=null,i=!0,j=0,k=!0,l=!1,m=!1,n=null,o=0,p=void 0,q=250,r=d3.dispatch(\" renderEnd\ ");c.scale(d).orient(\" bottom\ " ) . tickFormat ( function(a ) { r e t u r n a } ) ; v a r s , t = a . u t i l s . renderWatch ( r,q ) ; r e t u r n b . a x i s = c , b . d i s p a t c h = r , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{axisLabelDistance:{get:function( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , s t a g g e r L a b e l s : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , r o t a t e L a b e l s : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , \
r o t a t e Y L a b e l : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , s h o w M a x M i n : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , a x i s L a b e l : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , h e i g h t : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , t i c k s : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , w i d t h : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , f o n t S i z e : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , m a r g i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e . t o p = v o i d 0 ! = = a . t o p ? a . t o p : e . t o p , e . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : e . r i g h t , e . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : e . b o t t o m , e . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : e . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a , t . reset ( q ) } } , s c a l e : { g e t : function ( ) { r e t u r n d } , s e t : function ( e ) { d = e , c . scale ( d ) , m = \ " f u n c t i o n \ " = = t y p e o f d . r a n g e B a n d s , a . u t i l s . inheritOptionsD3 ( b,d,[\ "domain\" ,\ "range\" ,\ "rangeBand\" ,\ "rangeBands\" ] ) } } } ) , a . u t i l s . initOptions ( b ) , a . u t i l s . inheritOptionsD3 ( b,c,[\ "orient\" ,\ "tickValues\" ,\ "tickSubdivide\" ,\ "tickSize\" ,\ "tickPadding\" ,\ "tickFormat\" ] ) , a . u t i l s . inheritOptionsD3 ( b,d,[\ "domain\" ,\ "range\" ,\ "rangeBand\" ,\ "rangeBands\" ] ) , b } , a . m o d e l s . b o x P l o t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( l ) { r e t u r n E . reset ( ) , l . each ( function(b ) { v a r l = j - i . l e f t - i . r i g h t , F = k - i . t o p - i . b o t t o m ; A = d 3 . select ( this ) , a . u t i l s . initSVG ( A ) , m . domain ( c||b.map(function(a,b ) { r e t u r n o ( a,b ) } ) ) . rangeBands ( d||[0,l],.1 ) ; v a r G = [ ] ; if ( !e ) { v a r H , I , J = [ ] ; b . forEach ( function(a,b ) { v a r c = p ( a ) , d = r ( a ) , e = s ( a ) , f = t ( a ) , g = v ( a ) ; g & & g . forEach ( function(a,b ) { J . push ( w(a,b,void 0 ) ) } ) , e & & J . push ( e ) , c & & J . push ( c ) , d & & J . push ( d ) , f & & J . push ( f ) } ) , H = d 3 . min ( J ) , I = d 3 . max ( J ) , G = [ H , I ] } n . domain ( e||G ) , n . range ( f||[F,0] ) , g = g | | m , h = h | | n . copy ( ) . range ( [n(0 ) , n ( 0 ) ] ) ; v a r K = A . selectAll ( \"g.nv-wrap\").data([b]);K.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap\ ");K.attr(\" transform\ ",\" translate(\ "+i.left+\" ,\ "+i.top+\" ) \ " ) ; v a r L = K . selectAll ( \".nv-boxplot\").data(function(a){return a} ) , M = L . enter ( ) . append ( \"g\").style(\"stroke-opacity\",1e-6).style(\"fill-opacity\",1e-6);L.attr(\"class\",\"nv-boxplot\").attr(\"transform\",function(a,b,c){return\"translate(\"+(m(o(a,b))+.05*m.rangeBand())+\", 0 ) \ " } ) . classed ( \"hover\",function(a){return a.hover} ) , \
L . watchTransition ( E,\ "nv-boxplot: boxplots\" ) . style ( \"stroke-opacity\",1).style(\"fill-opacity\",.75).delay(function(a,c){return c*C/b.length} ) . attr ( \"transform\",function(a,b){return\"translate(\"+(m(o(a,b))+.05*m.rangeBand())+\", 0 ) \ " } ) , L . exit ( ) . remove ( ) , M . each ( function(a,b ) { v a r c = d 3 . select ( this ) ; [ s , t ] . forEach ( function(d ) { if ( void 0!==d(a ) & & n u l l ! = = d ( a ) ) { v a r e = d = = = s ? \ " l o w \ " : \ " h i g h \ " ; c . append ( \"line\").style(\"stroke\",u(a)||z(a,b)).attr(\"class\",\"nv-boxplot-whisker nv-boxplot-\ "+e),c.append(\" line\ ").style(\" stroke\ ",u(a)||z(a,b)).attr(\" class\ ",\" nv-boxplot-tick nv-boxplot-\ "+e)}})});var N=function(){return null===D?.9*m.rangeBand():Math.min(75,.9*m.rangeBand())},O=function(){return.45*m.rangeBand()-N()/2},P=function(){return.45*m.rangeBand()+N()/2};[s,t].forEach(function(a){var b=a===s?\" low\ ":\" high\ ",c=a===s?p:r;L.select(\" line.nv-boxplot-whisker.nv-boxplot-\ "+b).watchTransition(E,\" nv-boxplot: boxplots\ ").attr(\" x1\ ",.45*m.rangeBand()).attr(\" y1\ ",function(b,c){return n(a(b))}).attr(\" x2\ ",.45*m.rangeBand()).attr(\" y2\ ",function(a,b){return n(c(a))}),L.select(\" line.nv-boxplot-tick.nv-boxplot-\ "+b).watchTransition(E,\" nv-boxplot: boxplots\ ").attr(\" x1\ ",O).attr(\" y1\ ",function(b,c){return n(a(b))}).attr(\" x2\ ",P).attr(\" y2\ ",function(b,c){return n(a(b))})}),[s,t].forEach(function(a){var b=a===s?\" low\ ":\" high\ ";M.selectAll(\" .nv-boxplot-\ "+b).on(\" mouseover\ ",function(b,c,d){d3.select(this).classed(\" hover\ ",!0),B.elementMouseover({series:{key:a(b),color:u(b)||z(b,d)},e:d3.event})}).on(\" mouseout\ ",function(b,c,d){d3.select(this).classed(\" hover\ ",!1),B.elementMouseout({series:{key:a(b),color:u(b)||z(b,d)},e:d3.event})}).on(\" mousemove\ ",function(a,b){B.elementMousemove({e:d3.event})})}),M.append(\" rect\ ").attr(\" class\ ",\" nv-boxplot-box\ ").on(\" mouseover\ ",function(a,b){d3.select(this).classed(\" hover\ ",!0),B.elementMouseover({key:o(a),value:o(a),series:[{key:\" Q3\ ",value:r(a),color:u(a)||z(a,b)},{key:\" Q2\ ",value:q(a),color:u(a)||z(a,b)},{key:\" Q1\ ",value:p(a),color:u(a)||z(a,b)}],data:a,index:b,e:d3.event})}).on(\" mouseout\ ",function(a,b){d3.select(this).classed(\" hover\ " ,!1 ) , B . elementMouseout ( {key:o(a ) , \
v a l u e : o ( a ) , s e r i e s : [ { k e y : \ " Q 3 \ " , v a l u e : r ( a ) , c o l o r : u ( a ) | | z ( a,b ) } , { k e y : \ " Q 2 \ " , v a l u e : q ( a ) , c o l o r : u ( a ) | | z ( a,b ) } , { k e y : \ " Q 1 \ " , v a l u e : p ( a ) , c o l o r : u ( a ) | | z ( a,b ) } ] , d a t a : a , i n d e x : b , e : d 3 . e v e n t } ) } ) . on ( \"mousemove\",function(a,b){B.elementMousemove({e:d3.event})}),L.select(\"rect.nv-boxplot-box\").watchTransition(E,\"nv-boxplot: boxes\ ").attr(\" y\ ",function(a,b){return n(r(a))}).attr(\" width\ ",N).attr(\" x\ ",O).attr(\" height\ ",function(a,b){return Math.abs(n(r(a))-n(p(a)))||1}).style(\" fill\ ",function(a,b){return u(a)||z(a,b)}).style(\" stroke\ ",function(a,b){return u(a)||z(a,b)}),M.append(\" line\ ").attr(\" class\ ",\" nv-boxplot-median\ "),L.select(\" line.nv-boxplot-median\ ").watchTransition(E,\" nv-boxplot: boxplots line\ ").attr(\" x1\ ",O).attr(\" y1\ ",function(a,b){return n(q(a))}).attr(\" x2\ ",P).attr(\" y2\ ",function(a,b){return n(q(a))});var Q=L.selectAll(\" .nv-boxplot-outlier\ ").data(function(a){return v(a)||[]});Q.enter().append(\" circle\ ").style(\" fill\ ",function(a,b,c){return y(a,b,c)||z(a,c)}).style(\" stroke\ ",function(a,b,c){return y(a,b,c)||z(a,c)}).style(\" z-index\ ",9e3).on(\" mouseover\ ",function(a,b,c){d3.select(this).classed(\" hover\ ",!0),B.elementMouseover({series:{key:x(a,b,c),color:y(a,b,c)||z(a,c)},e:d3.event})}).on(\" mouseout\ ",function(a,b,c){d3.select(this).classed(\" hover\ ",!1),B.elementMouseout({series:{key:x(a,b,c),color:y(a,b,c)||z(a,c)},e:d3.event})}).on(\" mousemove\ ",function(a,b){B.elementMousemove({e:d3.event})}),Q.attr(\" class\ ",\" nv-boxplot-outlier\ "),Q.watchTransition(E,\" nv-boxplot: nv-boxplot-outlier\ ").attr(\" cx\ ",.45*m.rangeBand()).attr(\" cy\ ",function(a,b,c){return n(w(a,b,c))}).attr(\" r\ ",\" 3\ "),Q.exit().remove(),g=m.copy(),h=n.copy()}),E.renderEnd(\" nv-boxplot immediate\ " ) , b } v a r c , d , e , f , g , h , i = { t o p : 0 , r i g h t : 0 , b o t t o m : 0 , l e f t : 0 } , j = 9 6 0 , k = 5 0 0 , l = M a t h . floor ( 1e4*Math.random( ) ) , m = d 3 . s c a l e . ordinal ( ) , n = d 3 . s c a l e . linear ( ) , o = function ( a ) { r e t u r n a . l a b e l } , p = function ( a ) { r e t u r n a . v a l u e s . Q 1 } , q = function ( a ) { r e t u r n a . v a l u e s . Q 2 } , r = function ( a ) { r e t u r n a . v a l u e s . Q 3 } , s = function ( a ) { r e t u r n a . v a l u e s . w h i s k e r _ l o w } , t = function ( a ) { r e t u r n a . v a l u e s . w h i s k e r _ h i g h } , u = function ( a ) { r e t u r n a . c o l o r } , v = function ( a ) { r e t u r n a . v a l u e s . o u t l i e r s } , \
w = function ( a,b,c ) { r e t u r n a } , x = function ( a,b,c ) { r e t u r n a } , y = function ( a,b,c ) { r e t u r n v o i d 0 } , z = a . u t i l s . defaultColor ( ) , A = n u l l , B = d 3 . dispatch ( \"elementMouseover\",\"elementMouseout\",\"elementMousemove\",\"renderEnd\"),C=250,D=null,E=a.utils.renderWatch(B,C);return b.dispatch=B,b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , h e i g h t : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , m a x B o x W i d t h : { g e t : function ( ) { r e t u r n D } , s e t : function ( a ) { D = a } } , x : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , q 1 : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , q 2 : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , q 3 : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , w l : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , w h : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , i t e m C o l o r : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , o u t l i e r s : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { \
v = a } } , o u t l i e r V a l u e : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , o u t l i e r L a b e l : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , o u t l i e r C o l o r : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = a } } , x S c a l e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , y S c a l e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , x R a n g e : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , y R a n g e : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , i d : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , y : { g e t : function ( ) { r e t u r n c o n s o l e . warn ( \"BoxPlot 'y' chart option is deprecated. Please use model overrides instead.\ "),{}},set:function(a){console.warn(\" BoxPlot 'y' chart option is deprecated. Please use model overrides instead.\ ")}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},color:{get:function(){return z},set:function(b){z=a.utils.getColor(b)}},duration:{get:function(){return C},set:function(a){C=a,E.reset(C)}}}),a.utils.initOptions(b),b},a.models.boxPlotChart=function(){\" use strict\ ";function b(k){return t.reset(),t.models(e),l&&t.models(f),m&&t.models(g),k.each(function(k){var p=d3.select(this);a.utils.initSVG(p);var t=(i||parseInt(p.style(\" width\ "))||960)-h.left-h.right,u=(j||parseInt(p.style(\" height\ "))||400)-h.top-h.bottom;if(b.update=function(){r.beforeUpdate(),p.transition().duration(s).call(b)},b.container=this,!k||!k.length){var v=p.selectAll(\" .nv-noData\ ").data([q]);return v.enter().append(\" text\ ").attr(\" class\ ",\" nvd3 nv-noData\ ").attr(\" dy\ ",\" -.7em\ ").style(\" text-anchor\ ",\" middle\ "),v.attr(\" x\ ",h.left+t/2).attr(\" y\ ",h.top+u/2).text(function(a){return a}),b}p.selectAll(\" .nv-noData\ ").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var w=p.selectAll(\" g.nv-wrap.nv-boxPlotWithAxes\ ").data([k]),x=w.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-boxPlotWithAxes\ ").append(\" g\ "),y=x.append(\" defs\ "),z=w.select(\" g\ " ) ; \
x . append ( \"g\").attr(\"class\",\"nv-x nv-axis\ "),x.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ ").append(\" g\ ").attr(\" class\ ",\" nv-zeroLine\ ").append(\" line\ "),x.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),z.attr(\" transform\ ",\" translate(\ "+h.left+\" ,\ "+h.top+\" ) \ " ) , n & & z . select ( \".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+t+\",0)\"),e.width(t).height(u);var A=z.select(\ ".nv-barsWrap\" ) . datum ( k.filter(function(a ) { r e t u r n ! a . d i s a b l e d } ) ) ; if ( A.transition( ) . call ( e ) , y . append ( \"clipPath\").attr(\"id\",\"nv-x-label-clip-\"+e.id()).append(\"rect\"),z.select(\"#nv-x-label-clip-\"+e.id()+\" rect\ ").attr(\" width\ ",c.rangeBand()*(o?2:1)).attr(\" height\ ",16).attr(\" x\ ",-c.rangeBand()/(o?1:2)),l){f.scale(c).ticks(a.utils.calcTicksX(t/100,k)).tickSize(-u,0),z.select(\" .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+d.range()[0]+\" ) \ " ) , z . select ( \".nv-x.nv-axis\").call(f);var B=z.select(\ ".nv-x.nv-axis\" ) . selectAll ( \"g\");o&&B.selectAll(\"text\").attr(\"transform\",function(a,b,c){return\"translate(0,\"+(c%2===0?\"5\":\"17\")+\")\"})}m&&(g.scale(d).ticks(Math.floor(u/36)).tickSize(-t,0),z.select(\".nv-y.nv-axis\").call(g)),z.select(\".nv-zeroLine line\ ").attr(\" x1\ ",0).attr(\" x2\ ",t).attr(\" y1\ ",d(0)).attr(\" y2\ ",d(0))}),t.renderEnd(\" nv-boxplot chart immediate\ "),b}var c,d,e=a.models.boxPlot(),f=a.models.axis(),g=a.models.axis(),h={top:15,right:10,bottom:50,left:60},i=null,j=null,k=a.utils.getColor(),l=!0,m=!0,n=!1,o=!1,p=a.models.tooltip(),q=\" No Data Available.\ ",r=d3.dispatch(\" beforeUpdate\ ",\" renderEnd\ "),s=250;f.orient(\" bottom\ ").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(n?\" right\ ":\" left\ ").tickFormat(d3.format(\" ,.1f\ ")),p.duration(0);var t=a.utils.renderWatch(r,s);return e.dispatch.on(\" elementMouseover.tooltip\ ",function(a){p.data(a).hidden(!1)}),e.dispatch.on(\" elementMouseout.tooltip\ ",function(a){p.data(a).hidden(!0)}),e.dispatch.on(\" elementMousemove.tooltip\ " ,function(a ) { p ( ) } ) , b . d i s p a t c h = r , b . b o x p l o t = e , b . x A x i s = f , b . y A x i s = g , b . t o o l t i p = p , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , h e i g h t : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , \
s t a g g e r L a b e l s : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , t o o l t i p C o n t e n t : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , n o D a t a : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , m a r g i n : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h . t o p = v o i d 0 ! = = a . t o p ? a . t o p : h . t o p , h . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : h . r i g h t , h . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : h . b o t t o m , h . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : h . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a , t . reset ( s ) , e . duration ( s ) , f . duration ( s ) , g . duration ( s ) } } , c o l o r : { g e t : function ( ) { r e t u r n k } , s e t : function ( b ) { k = a . u t i l s . getColor ( b ) , e . color ( k ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a , g . orient ( a?\ "right\" :\ "left\" ) } } } ) , a . u t i l s . inheritOptions ( b,e ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . b u l l e t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( a,b ) { v a r c = a . slice ( ) ; a . sort ( function(a,d ) { v a r e = c . indexOf ( a ) , f = c . indexOf ( d ) ; r e t u r n d 3 . descending ( b[e],b[f] ) } ) } f u n c t i o n c ( e ) { r e t u r n e . each ( function(c,e ) { v a r s = p - d . l e f t - d . r i g h t , y = q - d . t o p - d . b o t t o m ; r = d 3 . select ( this ) , a . u t i l s . initSVG ( r ) ; v a r z = g . call ( this,c,e ) . slice ( ) , A = h . call ( this,c,e ) . slice ( ) , B = i . call ( this,c,e ) . slice ( ) , C = j . call ( this,c,e ) . slice ( ) , D = k . call ( this,c,e ) . slice ( ) , E = l . call ( this,c,e ) . slice ( ) , F = m . call ( this,c,e ) . slice ( ) , G = n . call ( this,c,e ) . slice ( ) ; b ( D,z ) , b ( E,A ) , b ( F,B ) , b ( G,C ) , z . sort ( d3.descending ) , A . sort ( d3.descending ) , B . sort ( d3.descending ) , C . sort ( d3.descending ) ; v a r H = d 3 . s c a l e . linear ( ) . domain ( d3.extent(d3.merge([o,z] ) ) ) . range ( f?[s,0]:[0,s] ) ; t h i s . _ _ c h a r t _ _ | | d 3 . s c a l e . linear ( ) . domain ( [0,1/0] ) . range ( H.range( ) ) ; t h i s . _ _ c h a r t _ _ = H ; for ( var I=(d3.min(z ) , d 3 . max ( z ) , z [ 1 ] , r . selectAll ( \"g.nv-wrap.nv-bullet\").data([c])),J=I.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-bullet\ "),K=J.append(\" g\ "),L=I.select(\" g\ "),e=0,M=z.length;M>e;e++){var N=\" nv-range nv-range\ "+e;2>=e&&(N=N+\" nv-range\ "+w[e]),K.append(\" rect\ ").attr(\" class\ ",N)}K.append(\" rect\ ").attr(\" class\ ",\" nv-measure\ "),I.attr(\" transform\ ",\" translate(\ "+d.left+\" ,\ "+d.top+\" ) \ " ) ; for ( var O=function(a ) { r e t u r n M a t h . abs ( H(a ) - H ( 0 ) ) } , \
P = function ( a ) { r e t u r n H ( 0>a?a:0 ) } , e = 0 , M = z . l e n g t h ; M > e ; e + + ) { v a r Q = z [ e ] ; L . select ( \"rect.nv-range\"+e).datum(Q).attr(\"height\",y).transition().duration(x).attr(\"width\",O(Q)).attr(\"x\",P(Q))}L.select(\"rect.nv-measure\").style(\"fill\",t).attr(\"height\",y/3).attr(\"y\",y/3).on(\"mouseover\",function(){u.elementMouseover({value:C[0],label:G[0]||\"Current\",color:d3.select(this).style(\"fill\")})}).on(\"mousemove\",function(){u.elementMousemove({value:C[0],label:G[0]||\"Current\",color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(){u.elementMouseout({value:C[0],label:G[0]||\"Current\",color:d3.select(this).style(\"fill\")})}).transition().duration(x).attr(\"width\",0>C?H(0)-H(C[0]):H(C[0])-H(0)).attr(\"x\",P(C));var R=y/6,S=A.map(function(a,b ) { r e t u r n { v a l u e : a , l a b e l : E [ b ] } } ) ; K . selectAll ( \"path.nv-markerTriangle\").data(S).enter().append(\"path\").attr(\"class\",\"nv-markerTriangle\").attr(\"d\",\"M0,\"+R+\"L\"+R+\",\"+-R+\" \"+-R+\",\"+-R+\"Z\").on(\"mouseover\",function(a){u.elementMouseover({value:a.value,label:a.label||\"Previous\",color:d3.select(this).style(\"fill\"),pos:[H(a.value),y/2]})}).on(\"mousemove\",function(a){u.elementMousemove({value:a.value,label:a.label||\"Previous\",color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){u.elementMouseout({value:a.value,label:a.label||\"Previous\",color:d3.select(this).style(\"fill\")})}),L.selectAll(\"path.nv-markerTriangle\").data(S).transition().duration(x).attr(\"transform\",function(a){return\"translate(\"+H(a.value)+\",\"+y/2+\")\"});var T=B.map(function(a,b ) { r e t u r n { v a l u e : a , l a b e l : F [ b ] } } ) ; K . selectAll ( \"line.nv-markerLine\").data(T).enter().append(\"line\").attr(\"cursor\",\"\").attr(\"class\",\"nv-markerLine\").attr(\"x1\",function(a){return H(a.value ) } ) . attr ( \"y1\",\"2\").attr(\"x2\",function(a){return H(a.value ) } ) . attr ( \"y2\",y-2).on(\"mouseover\",function(a){u.elementMouseover({value:a.value,label:a.label||\"Previous\",color:d3.select(this).style(\"fill\"),pos:[H(a.value),y/2]})}).on(\"mousemove\",function(a){u.elementMousemove({value:a.value,label:a.label||\"Previous\",color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){u.elementMouseout({value:a.value,\
l a b e l : a . l a b e l | | \ " P r e v i o u s \ " , c o l o r : d 3 . select ( this ) . style ( \"fill\")})}),L.selectAll(\"line.nv-markerLine\").data(T).transition().duration(x).attr(\"x1\",function(a){return H(a.value ) } ) . attr ( \"x2\",function(a){return H(a.value ) } ) , I . selectAll ( \".nv-range\").on(\"mouseover\",function(a,b){var c=D[b]||v[b];u.elementMouseover({value:a,label:c,color:d3.select(this ) . style ( \"fill\")})}).on(\"mousemove\",function(){u.elementMousemove({value:C[0],label:G[0]||\"Previous\",color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){var c=D[b]||v[b];u.elementMouseout({value:a,label:c,color:d3.select(this ) . style ( \"fill\")})})}),c}var d={top:0,right:0,bottom:0,left:0},e=\ "left\" ,f=!1,g=function(a ) { r e t u r n a . r a n g e s } , h = function ( a ) { r e t u r n a . m a r k e r s ? a . m a r k e r s : [ ] } , i = function ( a ) { r e t u r n a . m a r k e r L i n e s ? a . m a r k e r L i n e s : [ 0 ] } , j = function ( a ) { r e t u r n a . m e a s u r e s } , k = function ( a ) { r e t u r n a . r a n g e L a b e l s ? a . r a n g e L a b e l s : [ ] } , l = function ( a ) { r e t u r n a . m a r k e r L a b e l s ? a . m a r k e r L a b e l s : [ ] } , m = function ( a ) { r e t u r n a . m a r k e r L i n e L a b e l s ? a . m a r k e r L i n e L a b e l s : [ ] } , n = function ( a ) { r e t u r n a . m e a s u r e L a b e l s ? a . m e a s u r e L a b e l s : [ ] } , o = [ 0 ] , p = 3 8 0 , q = 3 0 , r = n u l l , s = n u l l , t = a . u t i l s . getColor ( [\ "#1f77b4\" ] ) , u = d 3 . dispatch ( \"elementMouseover\",\"elementMouseout\",\"elementMousemove\"),v=[\"Maximum\",\"Mean\",\"Minimum\"],w=[\"Max\",\"Avg\",\"Min\"],x=1e3;return c.dispatch=u,c.options=a.utils.optionsFunc.bind(c ) , c . _ o p t i o n s = O b j e c t . create ( {},{ranges:{get:function( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , m a r k e r s : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , m e a s u r e s : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , f o r c e X : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , w i d t h : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , h e i g h t : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , t i c k F o r m a t : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , d u r a t i o n : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , m a r g i n : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d . t o p = v o i d 0 ! = = a . t o p ? a . t o p : d . t o p , d . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : d . r i g h t , d . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : d . b o t t o m , d . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : d . l e f t } } , o r i e n t : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a , f = \ " r i g h t \ " = = e | | \ " b o t t o m \ " = = e } } , \
c o l o r : { g e t : function ( ) { r e t u r n t } , s e t : function ( b ) { t = a . u t i l s . getColor ( b ) } } } ) , a . u t i l s . initOptions ( c ) , c } , a . m o d e l s . b u l l e t C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( d ) { r e t u r n d . each ( function(e,o ) { v a r p = d 3 . select ( this ) ; a . u t i l s . initSVG ( p ) ; v a r q = a . u t i l s . availableWidth ( k,p,g ) , r = l - g . t o p - g . b o t t o m ; if ( b.update=function( ) { b ( d ) } , b . c o n t a i n e r = t h i s , ! e | | ! h . call ( this,e,o ) ) r e t u r n a . u t i l s . noData ( b,p ) , b ; p . selectAll ( \".nv-noData\").remove();var s=h.call(this,e,o ) . slice ( ) . sort ( d3.descending ) , t = i . call ( this,e,o ) . slice ( ) . sort ( d3.descending ) , u = j . call ( this,e,o ) . slice ( ) . sort ( d3.descending ) , v = p . selectAll ( \"g.nv-wrap.nv-bulletChart\").data([e]),w=v.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-bulletChart\ "),x=w.append(\" g\ "),y=v.select(\" g\ ");x.append(\" g\ ").attr(\" class\ ",\" nv-bulletWrap\ "),x.append(\" g\ ").attr(\" class\ ",\" nv-titles\ "),v.attr(\" transform\ ",\" translate(\ "+g.left+\" ,\ "+g.top+\" ) \ " ) ; v a r z = d 3 . s c a l e . linear ( ) . domain ( [0,Math.max(s[0],t[0]||0,u[0] ) ] ) . range ( f?[q,0]:[0,q] ) , A = t h i s . _ _ c h a r t _ _ | | d 3 . s c a l e . linear ( ) . domain ( [0,1/0] ) . range ( z.range( ) ) ; t h i s . _ _ c h a r t _ _ = z ; v a r B = x . select ( \".nv-titles\").append(\"g\").attr(\"text-anchor\",\"end\").attr(\"transform\",\"translate(-6,\"+(l-g.top-g.bottom)/2+\")\");B.append(\"text\").attr(\"class\",\"nv-title\").text(function(a){return a.title} ) , B . append ( \"text\").attr(\"class\",\"nv-subtitle\").attr(\"dy\",\"1em\").text(function(a){return a.subtitle} ) , c . width ( q ) . height ( r ) ; v a r C = y . select ( \".nv-bulletWrap\");d3.transition(C).call(c);var D=m||z.tickFormat(q/100 ) , E = y . selectAll ( \"g.nv-tick\").data(z.ticks(n?n:q/50),function(a){return this.textContent||D(a ) } ) , F = E . enter ( ) . append ( \"g\").attr(\"class\",\"nv-tick\").attr(\"transform\",function(a){return\"translate(\"+A(a)+\",0)\"}).style(\"opacity\",1e-6);F.append(\"line\").attr(\"y1\",r).attr(\"y2\",7*r/6),F.append(\"text\").attr(\"text-anchor\",\"middle\").attr(\"dy\",\"1em\").attr(\"y\",7*r/6).text(D);var G=d3.transition(E ) . transition ( ) . duration ( c.duration( ) ) . attr ( \"transform\",function(a){return\"translate(\"+z(a)+\",0)\"}).style(\"opacity\",1);G.select(\"line\").attr(\"y1\",r).attr(\"y2\",7*r/6),G.select(\"text\").attr(\"y\",7*r/6),d3.transition(E.exit()).transition().duration(c.duration()).attr(\"transform\",\
function ( a ) { r e t u r n \ " translate ( \"+z(a)+\",0)\"}).style(\"opacity\",1e-6).remove()}),d3.timer.flush(),b}var c=a.models.bullet( ) , d = a . m o d e l s . tooltip ( ) , e = \ " l e f t \ " , f = ! 1 , g = { t o p : 5 , r i g h t : 4 0 , b o t t o m : 2 0 , l e f t : 1 2 0 } , h = function ( a ) { r e t u r n a . r a n g e s } , i = function ( a ) { r e t u r n a . m a r k e r s ? a . m a r k e r s : [ ] } , j = function ( a ) { r e t u r n a . m e a s u r e s } , k = n u l l , l = 5 5 , m = n u l l , n = n u l l , o = n u l l , p = d 3 . dispatch ( ) ; r e t u r n d . duration ( 0 ) . headerEnabled ( !1 ) , c . d i s p a t c h . on ( \"elementMouseover.tooltip\",function(a){a.series={key:a.label,value:a.value,color:a.color},d.data(a).hidden(!1)}),c.dispatch.on(\"elementMouseout.tooltip\",function(a){d.hidden(!0)}),c.dispatch.on(\"elementMousemove.tooltip\",function(a){d()}),b.bullet=c,b.dispatch=p,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{ranges:{get:function(){return h},set:function(a ) { h = a } } , m a r k e r s : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , m e a s u r e s : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , w i d t h : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , h e i g h t : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , t i c k F o r m a t : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , t i c k s : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , n o D a t a : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , m a r g i n : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g . t o p = v o i d 0 ! = = a . t o p ? a . t o p : g . t o p , g . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : g . r i g h t , g . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : g . b o t t o m , g . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : g . l e f t } } , o r i e n t : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a , f = \ " r i g h t \ " = = e | | \ " b o t t o m \ " = = e } } } ) , a . u t i l s . inheritOptions ( b,c ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . c a n d l e s t i c k B a r = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( x ) { r e t u r n x . each ( function(b ) { c = d 3 . select ( this ) ; v a r x = a . u t i l s . availableWidth ( i,c,h ) , y = a . u t i l s . availableHeight ( j,c,h ) ; a . u t i l s . initSVG ( c ) ; v a r A = x / b [ 0 ] . v a l u e s . l e n g t h * . 4 5 ; l . domain ( d||d3.extent(b[0].values.map(n ) . concat ( t ) ) ) , v ? l . range ( f||[.5*x/b[0].values.length,x*(b[0].values.length-.5 ) / b [ 0 ] . v a l u e s . l e n g t h ] ) : l . range ( f||[5+A/2,x-A/2-5] ) , m . domain ( e||[d3.min(b[0].values.map(s ) . concat ( u ) ) , d 3 . max ( b[0].values.map(r ) . concat ( u ) ) ] ) . range ( g||[y,0] ) , l . domain ( ) [ 0 ] = = = l . domain ( ) [ 1 ] & & ( l . domain ( ) [ 0 ] ? l . domain ( [l.domain( ) [ 0 ] - . 0 1 * l . domain ( ) [ 0 ] , \
l . domain ( ) [ 1 ] + . 0 1 * l . domain ( ) [ 1 ] ] ) : l . domain ( [-1,1] ) ) , m . domain ( ) [ 0 ] = = = m . domain ( ) [ 1 ] & & ( m . domain ( ) [ 0 ] ? m . domain ( [m.domain( ) [ 0 ] + . 0 1 * m . domain ( ) [ 0 ] , m . domain ( ) [ 1 ] - . 0 1 * m . domain ( ) [ 1 ] ] ) : m . domain ( [-1,1] ) ) ; v a r B = d 3 . select ( this ) . selectAll ( \"g.nv-wrap.nv-candlestickBar\").data([b[0].values]),C=B.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-candlestickBar\ "),D=C.append(\" defs\ "),E=C.append(\" g\ "),F=B.select(\" g\ ");E.append(\" g\ ").attr(\" class\ ",\" nv-ticks\ "),B.attr(\" transform\ ",\" translate(\ "+h.left+\" ,\ "+h.top+\" ) \ " ) , c . on ( \"click\",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:k})}),D.append(\"clipPath\").attr(\"id\",\"nv-chart-clip-path-\"+k).append(\"rect\"),B.select(\"#nv-chart-clip-path-\"+k+\" rect\ ").attr(\" width\ ",x).attr(\" height\ ",y),F.attr(\" clip-path\ ",w?\" url( #nv-chart-clip-path-\"+k+\")\":\"\");var G=B.select(\".nv-ticks\").selectAll(\".nv-tick\").data(function(a){return a});G.exit().remove();var H=G.enter().append(\"g\");G.attr(\"class\",function(a,b,c){return(p(a,b)>q(a,b)?\"nv-tick negative\":\"nv-tick positive\")+\" nv-tick-\"+c+\"-\"+b});H.append(\"line\").attr(\"class\",\"nv-candlestick-lines\").attr(\"transform\",function(a,b){return\"translate(\"+l(n(a,b))+\",0)\"}).attr(\"x1\",0).attr(\"y1\",function(a,b){return m(r(a,b))}).attr(\"x2\",0).attr(\"y2\",function(a,b){return m(s(a,b))}),H.append(\"rect\").attr(\"class\",\"nv-candlestick-rects nv-bars\").attr(\"transform\",function(a,b){return\"translate(\"+(l(n(a,b))-A/2)+\",\"+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+\")\"}).attr(\"x\",0).attr(\"y\",0).attr(\"width\",A).attr(\"height\",function(a,b){var c=p(a,b),d=q(a,b);return c>d?m(d)-m(c):m(c)-m(d)});G.select(\".nv-candlestick-lines\").transition().attr(\"transform\",function(a,b){return\"translate(\"+l(n(a,b))+\",0)\"}).attr(\"x1\",0).attr(\"y1\",function(a,b){return m(r(a,b))}).attr(\"x2\",0).attr(\"y2\",function(a,b){return m(s(a,b))}),G.select(\".nv-candlestick-rects\").transition().attr(\"transform\",function(a,b){return\"translate(\"+(l(n(a,b))-A/2)+\",\"+(m(o(a,b))-(p(a,b)>q(a,b)?m(q(a,b))-m(p(a,b)):0))+\")\"}).attr(\"x\",0).attr(\"y\",0).attr(\"width\",A).attr(\"height\",function(a,b){var c=p(a,b),d=q(a,b);return \
c > d ? m ( d ) - m ( c ) : m ( c ) - m ( d ) } ) } ) , b } v a r c , d , e , f , g , h = { t o p : 0 , r i g h t : 0 , b o t t o m : 0 , l e f t : 0 } , i = n u l l , j = n u l l , k = M a t h . floor ( 1e4*Math.random( ) ) , l = d 3 . s c a l e . linear ( ) , m = d 3 . s c a l e . linear ( ) , n = function ( a ) { r e t u r n a . x } , o = function ( a ) { r e t u r n a . y } , p = function ( a ) { r e t u r n a . o p e n } , q = function ( a ) { r e t u r n a . c l o s e } , r = function ( a ) { r e t u r n a . h i g h } , s = function ( a ) { r e t u r n a . l o w } , t = [ ] , u = [ ] , v = ! 1 , w = ! 0 , x = a . u t i l s . defaultColor ( ) , y = ! 1 , z = d 3 . dispatch ( \"stateChange\",\"changeState\",\"renderEnd\",\"chartClick\",\"elementClick\",\"elementDblClick\",\"elementMouseover\",\"elementMouseout\",\"elementMousemove\");return b.highlightPoint=function(a,d ) { b . clearHighlights ( ) , c . select ( \".nv-candlestickBar .nv-tick-0-\ "+a).classed(\" hover\ ",d)},b.clearHighlights=function(){c.select(\" .nv-candlestickBar .nv-tick.hover\ ").classed(\" hover\ " ,!1 ) } , b . d i s p a t c h = z , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , h e i g h t : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , x S c a l e : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , y S c a l e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , x R a n g e : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , y R a n g e : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , f o r c e X : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , f o r c e Y : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , p a d D a t a : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , c l i p E d g e : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , i d : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , i n t e r a c t i v e : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = a } } , x : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , y : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , o p e n : { g e t : function ( ) { r e t u r n p ( ) } , s e t : function ( a ) { p = a } } , c l o s e : { g e t : function ( ) { r e t u r n q ( ) } , s e t : function ( a ) { q = a } } , h i g h : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , l o w : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , m a r g i n : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h . t o p = v o i d 0 ! = a . t o p ? a . t o p : h . t o p , h . r i g h t = v o i d 0 ! = a . r i g h t ? a . r i g h t : h . r i g h t , \
h . b o t t o m = v o i d 0 ! = a . b o t t o m ? a . b o t t o m : h . b o t t o m , h . l e f t = v o i d 0 ! = a . l e f t ? a . l e f t : h . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n x } , s e t : function ( b ) { x = a . u t i l s . getColor ( b ) } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . c u m u l a t i v e L i n e C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( l ) { r e t u r n I . reset ( ) , I . models ( f ) , s & & I . models ( g ) , t & & I . models ( h ) , l . each ( function(l ) { f u n c t i o n B ( a,c ) { d 3 . select ( b.container ) . style ( \"cursor\",\"ew-resize\")}function F(a,b ) { H . x = d 3 . e v e n t . x , H . i = M a t h . round ( G.invert(H.x ) ) , L ( ) } f u n c t i o n I ( a,c ) { d 3 . select ( b.container ) . style ( \"cursor\",\"auto\"),z.index=H.i,D.stateChange(z)}function L( ) { b a . data ( [H] ) ; v a r a = b . duration ( ) ; b . duration ( 0 ) , b . update ( ) , b . duration ( a ) } v a r M = d 3 . select ( this ) ; a . u t i l s . initSVG ( M ) , M . classed ( \"nv-chart-\"+y,!0);var N=a.utils.availableWidth(p,M,m ) , O = a . u t i l s . availableHeight ( q,M,m ) ; if ( b.update=function( ) { 0 = = = E ? M . call ( b ) : M . transition ( ) . duration ( E ) . call ( b ) } , b . c o n t a i n e r = t h i s , z . setter ( K(l ) , b . u p d a t e ) . getter ( J(l ) ) . update ( ) , z . d i s a b l e d = l . map ( function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , ! A ) { v a r P ; A = { } ; for ( P in z ) z [ P ] i n s t a n c e o f A r r a y ? A [ P ] = z [ P ] . slice ( 0 ) : A [ P ] = z [ P ] } v a r Q = d 3 . b e h a v i o r . drag ( ) . on ( \"dragstart\",B).on(\"drag\",F).on(\"dragend\",I);if(!(l&&l.length&&l.filter(function(a){return a.values.length} ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( b,M ) , b ; if ( M.selectAll(\ ".nv-noData\" ) . remove ( ) , d = f . xScale ( ) , e = f . yScale ( ) , x ) f . yDomain ( null ) ; e l s e { v a r R = l . filter ( function(a ) { r e t u r n ! a . d i s a b l e d } ) . map ( function(a,b ) { v a r c = d 3 . extent ( a.values,f.y( ) ) ; r e t u r n c [ 0 ] < - . 9 5 & & ( c [ 0 ] = - . 9 5 ) , [ ( c [ 0 ] - c [ 1 ] ) / ( 1 + c [ 1 ] ) , ( c [ 1 ] - c [ 0 ] ) / ( 1 + c [ 0 ] ) ] } ) , S = [ d 3 . min ( R,function(a ) { r e t u r n a [ 0 ] } ) , d 3 . max ( R,function(a ) { r e t u r n a [ 1 ] } ) ] ; f . yDomain ( S ) } G . domain ( [0,l[0].values.length-1] ) . range ( [0,N] ) . clamp ( !0 ) ; v a r l = c ( H.i,l ) , T = w ? \ " n o n e \ " : \ " a l l \ " , U = M . selectAll ( \"g.nv-wrap.nv-cumulativeLine\").data([l]),V=U.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-cumulativeLine\ ").append(\" g\ "),W=U.select(\" g\ ");if(V.append(\" g\ ").attr(\" class\ ",\" nv-interactive\ "),V.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ ").style(\" pointer-events\ ",\" none\ "),V.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),V.append(\" g\ ").attr(\" class\ ",\" nv-background\ "),V.append(\" g\ ").attr(\" class\ ",\" nv-linesWrap\ ").style(\" pointer-events\ " ,\
T ) , V . append ( \"g\").attr(\"class\",\"nv-avgLinesWrap\").style(\"pointer-events\",\"none\"),V.append(\"g\").attr(\"class\",\"nv-legendWrap\"),V.append(\"g\").attr(\"class\",\"nv-controlsWrap\"),r?(i.width(N),W.select(\".nv-legendWrap\").datum(l).call(i),n||i.height()===m.top||(m.top=i.height(),O=a.utils.availableHeight(q,M,m)),W.select(\".nv-legendWrap\").attr(\"transform\",\"translate(0,\"+-m.top+\")\")):W.select(\".nv-legendWrap\").selectAll(\"*\").remove(),v){var X=[{key:\ "Re-scale y-axis\" ,disabled:!x}];j.width(140 ) . color ( [\ "#444\" ,\ "#444\" ,\ "#444\" ] ) . rightAlign ( !1 ) . margin ( {top:5,right:0,bottom:5,left:20} ) , W . select ( \".nv-controlsWrap\").datum(X).attr(\"transform\",\"translate(0,\"+-m.top+\")\").call(j)}else W.select(\ ".nv-controlsWrap\" ) . selectAll ( \"*\").remove();U.attr(\"transform\",\"translate(\"+m.left+\",\"+m.top+\")\"),u&&W.select(\".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+N+\",0)\");var Y=l.filter(function(a ) { r e t u r n a . t e m p D i s a b l e d } ) ; U . select ( \".tempDisabled\").remove(),Y.length&&U.append(\"text\").attr(\"class\",\"tempDisabled\").attr(\"x\",N/2).attr(\"y\",\"-.71em\").style(\"text-anchor\",\"end\").text(Y.map(function(a){return a.key} ) . join ( \", \")+\" values cannot be calculated for this time period.\ "),w&&(k.width(N).height(O).margin({left:m.left,top:m.top}).svgContainer(M).xScale(d),U.select(\" .nv-interactive\ ").call(k)),V.select(\" .nv-background\ ").append(\" rect\ "),W.select(\" .nv-background rect\ ").attr(\" width\ ",N).attr(\" height\ ",O),f.y(function(a){return a.display.y}).width(N).height(O).color(l.map(function(a,b){return a.color||o(a,b)}).filter(function(a,b){return!l[b].disabled&&!l[b].tempDisabled}));var Z=W.select(\" .nv-linesWrap\ ").datum(l.filter(function(a){return!a.disabled&&!a.tempDisabled}));Z.call(f),l.forEach(function(a,b){a.seriesIndex=b});var $=l.filter(function(a){return!a.disabled&&!!C(a)}),_=W.select(\" .nv-avgLinesWrap\ ").selectAll(\" line\ ").data($,function(a){return a.key}),aa=function(a){var b=e(C(a));return 0>b?0:b>O?O:b};_.enter().append(\" line\ ").style(\" stroke-width\ ",2).style(\" stroke-dasharray\ ",\" 10,10\ ").style(\" stroke\ ",function(a,b){return f.color()(a,a.seriesIndex)}).attr(\" x1\ ",0).attr(\" x2\ " ,\
N ) . attr ( \"y1\",aa).attr(\"y2\",aa),_.style(\"stroke-opacity\",function(a){var b=e(C(a ) ) ; r e t u r n 0 > b | | b > O ? 0 : 1 } ) . attr ( \"x1\",0).attr(\"x2\",N).attr(\"y1\",aa).attr(\"y2\",aa),_.exit().remove();var ba=Z.selectAll(\ ".nv-indexLine\" ) . data ( [H] ) ; b a . enter ( ) . append ( \"rect\").attr(\"class\",\"nv-indexLine\").attr(\"width\",3).attr(\"x\",-2).attr(\"fill\",\"red\").attr(\"fill-opacity\",.5).style(\"pointer-events\",\"all\").call(Q),ba.attr(\"transform\",function(a){return\"translate(\"+G(a.i)+\",0)\"}).attr(\"height\",O),s&&(g.scale(d)._ticks(a.utils.calcTicksX(N/70,l)).tickSize(-O,0),W.select(\".nv-x.nv-axis\").attr(\"transform\",\"translate(0,\"+e.range()[0]+\")\"),W.select(\".nv-x.nv-axis\").call(g)),t&&(h.scale(e)._ticks(a.utils.calcTicksY(O/36,l)).tickSize(-N,0),W.select(\".nv-y.nv-axis\").call(h)),W.select(\".nv-background rect\ ").on(\" click\ ",function(){H.x=d3.mouse(this)[0],H.i=Math.round(G.invert(H.x)),z.index=H.i,D.stateChange(z),L()}),f.dispatch.on(\" elementClick\ ",function(a){H.i=a.pointIndex,H.x=G(H.i),z.index=H.i,D.stateChange(z),L()}),j.dispatch.on(\" legendClick\ ",function(a,c){a.disabled=!a.disabled,x=!a.disabled,z.rescaleY=x,D.stateChange(z),b.update()}),i.dispatch.on(\" stateChange\ ",function(a){for(var c in a)z[c]=a[c];D.stateChange(z),b.update()}),k.dispatch.on(\" elementMousemove\ ",function(c){f.clearHighlights();var d,e,i,j=[];if(l.filter(function(a,b){return a.seriesIndex=b,!a.disabled}).forEach(function(g,h){e=a.interactiveBisect(g.values,c.pointXValue,b.x()),f.highlightPoint(h,e,!0);var k=g.values[e];\" undefined\ "!=typeof k&&(\" undefined\ "==typeof d&&(d=k),\" undefined\ "==typeof i&&(i=b.xScale()(b.x()(k,e))),j.push({key:g.key,value:b.y()(k,e),color:o(g,g.seriesIndex)}))}),j.length>2){var m=b.yScale().invert(c.mouseY),n=Math.abs(b.yScale().domain()[0]-b.yScale().domain()[1]),p=.03*n,q=a.nearestValueIndex(j.map(function(a){return a.value}),m,p);null!==q&&(j[q].highlight=!0)}var r=g.tickFormat()(b.x()(d,e),e);k.tooltip.valueFormatter(function(a,b){return h.tickFormat()(a)}).data({value:r,series:j})(),k.renderGuideLine(i)}),k.dispatch.on(\" elementMouseout\ " ,function(a ) { f . clearHighlights ( ) } ) , \
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
2022-04-02 18:58:23 +02:00
file ( APPEND "${METABENCH_DIR}/nvd3.js"
" \
2019-05-17 22:41:46 +02:00
D . on ( \"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(l.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , z . d i s a b l e d = a . d i s a b l e d ) , \ " u n d e f i n e d \ " ! = t y p e o f a . i n d e x & & ( H . i = a . i n d e x , H . x = G ( H.i ) , z . i n d e x = a . i n d e x , b a . data ( [H] ) ) , \ " u n d e f i n e d \ " ! = t y p e o f a . r e s c a l e Y & & ( x = a . r e s c a l e Y ) , b . update ( ) } ) } ) , I . renderEnd ( \"cumulativeLineChart immediate\ "),b}function c(a,b){return L||(L=f.y()),b.map(function(b,c){if(!b.values)return b;var d=b.values[a];if(null==d)return b;var e=L(d,a);return-.95>e&&!F?(b.tempDisabled=!0,b):(b.tempDisabled=!1,b.values=b.values.map(function(a,b){return a.display={y:(L(a,b)-e)/(1+e)},a}),b)})}var d,e,f=a.models.line(),g=a.models.axis(),h=a.models.axis(),i=a.models.legend(),j=a.models.legend(),k=a.interactiveGuideline(),l=a.models.tooltip(),m={top:30,right:30,bottom:50,left:60},n=null,o=a.utils.defaultColor(),p=null,q=null,r=!0,s=!0,t=!0,u=!1,v=!0,w=!1,x=!0,y=f.id(),z=a.utils.state(),A=null,B=null,C=function(a){return a.average},D=d3.dispatch(\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),E=250,F=!1;z.index=0,z.rescaleY=x,g.orient(\" bottom\ ").tickPadding(7),h.orient(u?\" right\ ":\" left\ "),l.valueFormatter(function(a,b){return h.tickFormat()(a,b)}).headerFormatter(function(a,b){return g.tickFormat()(a,b)}),j.updateState(!1);var G=d3.scale.linear(),H={i:0,x:0},I=a.utils.renderWatch(D,E),J=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),index:H.i,rescaleY:x}}},K=function(a){return function(b){void 0!==b.index&&(H.i=b.index),void 0!==b.rescaleY&&(x=b.rescaleY),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};f.dispatch.on(\" elementMouseover.tooltip\ ",function(a){var c={x:b.x()(a.point),y:b.y()(a.point),color:a.point.color};a.point=c,l.data(a).hidden(!1)}),f.dispatch.on(\" elementMouseout.tooltip\ " ,function(a ) { l . hidden ( !0 ) } ) ; v a r L = n u l l ; r e t u r n b . d i s p a t c h = D , b . l i n e s = f , b . l e g e n d = i , b . c o n t r o l s = j , b . x A x i s = g , b . y A x i s = h , b . i n t e r a c t i v e L a y e r = k , b . s t a t e = z , b . t o o l t i p = l , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , h e i g h t : { g e t : function ( ) { r e t u r n \
q } , s e t : function ( a ) { q = a } } , r e s c a l e Y : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , s h o w C o n t r o l s : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , a v e r a g e : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , n o D a t a : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , n o E r r o r C h e c k : { g e t : function ( ) { r e t u r n F } , s e t : function ( a ) { F = a } } , m a r g i n : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( m . t o p = a . t o p , n = a . t o p ) , m . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : m . r i g h t , m . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : m . b o t t o m , m . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : m . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n o } , s e t : function ( b ) { o = a . u t i l s . getColor ( b ) , i . color ( o ) } } , u s e I n t e r a c t i v e G u i d e l i n e : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a , a = = = ! 0 & & ( b . interactive ( !1 ) , b . useVoronoi ( !1 ) ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a , h . orient ( a?\ "right\" :\ "left\" ) } } , d u r a t i o n : { g e t : function ( ) { r e t u r n E } , s e t : function ( a ) { E = a , f . duration ( E ) , g . duration ( E ) , h . duration ( E ) , I . reset ( E ) } } } ) , a . u t i l s . inheritOptions ( b,f ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . d i s c r e t e B a r = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( m ) { r e t u r n y . reset ( ) , m . each ( function(b ) { v a r m = k - j . l e f t - j . r i g h t , x = l - j . t o p - j . b o t t o m ; c = d 3 . select ( this ) , a . u t i l s . initSVG ( c ) , b . forEach ( function(a,b ) { a . v a l u e s . forEach ( function(a ) { a . s e r i e s = b } ) } ) ; v a r z = d & & e ? [ ] : b . map ( function(a ) { r e t u r n a . v a l u e s . map ( function(a,b ) { r e t u r n { x : p ( a,b ) , y : q ( a,b ) , y 0 : a . y 0 } } ) } ) ; n . domain ( d||d3.merge(z ) . map ( function(a ) { r e t u r n a . x } ) ) . rangeBands ( f||[0,m],.1 ) , o . domain ( e||d3.extent(d3.merge(z ) . map ( function(a ) { r e t u r n a . y } ) . concat ( r ) ) ) , t ? o . range ( g||[x-(o.domain( ) [ 0 ] < 0 ? 1 2 : 0 ) , o . domain ( ) [ 1 ] > 0 ? 1 2 : 0 ] ) : o . range ( g||[x,0] ) , h = h | | n , i = i | | o . copy ( ) . range ( [o(0 ) , o ( 0 ) ] ) ; v a r A = c . selectAll ( \"g.nv-wrap.nv-discretebar\").data([b]),B=A.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-discretebar\ "),C=B.append(\" g\ ");A.select(\" g\ ");C.append(\" g\ ").attr(\" class\ ",\" nv-groups\ "),A.attr(\" transform\ " ,\
\ " translate ( \"+j.left+\",\"+j.top+\")\");var D=A.select(\ ".nv-groups\" ) . selectAll ( \".nv-group\").data(function(a){return a},function(a ) { r e t u r n a . k e y } ) ; D . enter ( ) . append ( \"g\").style(\"stroke-opacity\",1e-6).style(\"fill-opacity\",1e-6),D.exit().watchTransition(y,\"discreteBar: exit groups\ ").style(\" stroke-opacity\ ",1e-6).style(\" fill-opacity\ ",1e-6).remove(),D.attr(\" class\ ",function(a,b){return\" nv-group nv-series-\ "+b}).classed(\" hover\ ",function(a){return a.hover}),D.watchTransition(y,\" discreteBar: groups\ ").style(\" stroke-opacity\ ",1).style(\" fill-opacity\ ",.75);var E=D.selectAll(\" g.nv-bar\ ").data(function(a){return a.values});E.exit().remove();var F=E.enter().append(\" g\ ").attr(\" transform\ ",function(a,b,c){return\" translate(\ "+(n(p(a,b))+.05*n.rangeBand())+\" , \"+o(0)+\")\"}).on(\"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0),v.elementMouseover({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1),v.elementMouseout({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mousemove\",function(a,b){v.elementMousemove({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"click\",function(a,b){var c=this;v.elementClick({data:a,index:b,color:d3.select(this ) . style ( \"fill\"),event:d3.event,element:c}),d3.event.stopPropagation()}).on(\"dblclick\",function(a,b){v.elementDblClick({data:a,index:b,color:d3.select(this).style(\"fill\")}),d3.event.stopPropagation()});F.append(\"rect\").attr(\"height\",0).attr(\"width\",.9*n.rangeBand()/b.length),t?(F.append(\"text\").attr(\"text-anchor\",\"middle\"),E.select(\"text\").text(function(a,b){return u(q(a,b ) ) } ) . watchTransition ( y,\ "discreteBar: bars text\" ) . attr ( \"x\",.9*n.rangeBand()/2).attr(\"y\",function(a,b){return q(a,b ) < 0 ? o ( q(a,b ) ) - o ( 0 ) + 1 2 : - 4 } ) ) : E . selectAll ( \"text\").remove(),E.attr(\"class\",function(a,b){return q(a,b ) < 0 ? \ " n v - b a r n e g a t i v e \ " : \ " n v - b a r p o s i t i v e \ " } ) . style ( \"fill\",function(a,b){return a.color||s(a,b ) } ) . style ( \"stroke\",function(a,b){return a.color||s(a,b ) } ) . select ( \"rect\").attr(\"class\",w).watchTransition(y,\"discreteBar: bars rect\ ").attr(\" width\ " ,.9*n.rangeBand( ) / b . l e n g t h ) , \
E . watchTransition ( y,\ "discreteBar: bars\" ) . attr ( \"transform\",function(a,b){var c=n(p(a,b ) ) + . 0 5 * n . rangeBand ( ) , d = q ( a,b ) < 0 ? o ( 0 ) : o ( 0 ) - o ( q(a,b ) ) < 1 ? o ( 0 ) - 1 : o ( q(a,b ) ) ; r e t u r n \ " translate ( \"+c+\", \"+d+\")\"}).select(\"rect\").attr(\"height\",function(a,b){return Math.max(Math.abs(o(q(a,b ) ) - o ( 0 ) ) , 1 ) } ) , h = n . copy ( ) , i = o . copy ( ) } ) , y . renderEnd ( \"discreteBar immediate\ "),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=d3.scale.ordinal(),o=d3.scale.linear(),p=function(a){return a.x},q=function(a){return a.y},r=[0],s=a.utils.defaultColor(),t=!1,u=d3.format(\" ,.2f\ "),v=d3.dispatch(\" chartClick\ ",\" elementClick\ ",\" elementDblClick\ ",\" elementMouseover\ ",\" elementMouseout\ ",\" elementMousemove\ ",\" renderEnd\ "),w=\" discreteBar\ " ,x=250,y=a.utils.renderWatch(v,x ) ; r e t u r n b . d i s p a t c h = v , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , h e i g h t : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , f o r c e Y : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a ; \
} } , s h o w V a l u e s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , x : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , y : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , x S c a l e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , y S c a l e : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , x R a n g e : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , y R a n g e : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , v a l u e F o r m a t : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , i d : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , r e c t C l a s s : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , m a r g i n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j . t o p = v o i d 0 ! = = a . t o p ? a . t o p : j . t o p , j . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : j . r i g h t , j . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : j . b o t t o m , j . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : j . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n s } , s e t : function ( b ) { s = a . u t i l s . getColor ( b ) } } , d u r a t i o n : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a , y . reset ( x ) } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . d i s c r e t e B a r C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( i ) { r e t u r n y . reset ( ) , y . models ( e ) , p & & y . models ( f ) , q & & y . models ( g ) , i . each ( function(i ) { v a r n = d 3 . select ( this ) ; a . u t i l s . initSVG ( n ) ; v a r v = a . u t i l s . availableWidth ( l,n,j ) , y = a . u t i l s . availableHeight ( m,n,j ) ; if ( b.update=function( ) { w . beforeUpdate ( ) , n . transition ( ) . duration ( x ) . call ( b ) } , b . c o n t a i n e r = t h i s , ! ( i & & i . l e n g t h & & i . filter ( function(a ) { r e t u r n a . v a l u e s . l e n g t h } ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( b,n ) , b ; n . selectAll ( \".nv-noData\").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var z=n.selectAll(\ "g.nv-wrap.nv-discreteBarWithAxes\" ) . data ( [i] ) , A = z . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-discreteBarWithAxes\ ").append(\" g\ "),B=A.append(\" defs\ "),C=z.select(\" g\ ");A.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),A.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ ").append(\" g\ ").attr(\" class\ ",\" nv-zeroLine\ ").append(\" line\ "),A.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),A.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),C.attr(\" transform\ ",\" translate(\ "+j.left+\" ,\ "+j.top+\" ) \ " ) , o ? ( h . width ( v ) , C . select ( \".nv-legendWrap\").datum(i).call(h),\
k | | h . height ( ) = = = j . t o p | | ( j . t o p = h . height ( ) , y = a . u t i l s . availableHeight ( m,n,j ) ) , z . select ( \".nv-legendWrap\").attr(\"transform\",\"translate(0,\"+-j.top+\")\")):C.select(\".nv-legendWrap\").selectAll(\"*\").remove(),r&&C.select(\".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+v+\",0)\"),e.width(v).height(y);var D=C.select(\ ".nv-barsWrap\" ) . datum ( i.filter(function(a ) { r e t u r n ! a . d i s a b l e d } ) ) ; if ( D.transition( ) . call ( e ) , B . append ( \"clipPath\").attr(\"id\",\"nv-x-label-clip-\"+e.id()).append(\"rect\"),C.select(\"#nv-x-label-clip-\"+e.id()+\" rect\ ").attr(\" width\ ",c.rangeBand()*(s?2:1)).attr(\" height\ ",16).attr(\" x\ ",-c.rangeBand()/(s?1:2)),p){f.scale(c)._ticks(a.utils.calcTicksX(v/100,i)).tickSize(-y,0),C.select(\" .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+(d.range()[0]+(e.showValues()&&d.domain()[0]<0?16:0))+\" ) \ " ) , C . select ( \".nv-x.nv-axis\").call(f);var E=C.select(\ ".nv-x.nv-axis\" ) . selectAll ( \"g\");s&&E.selectAll(\"text\").attr(\"transform\",function(a,b,c){return\"translate(0,\"+(c%2==0?\"5\":\"17\")+\")\"}),u&&E.selectAll(\".tick text\ ").attr(\" transform\ ",\" rotate(\ "+u+\" 0,0 ) \ " ) . style ( \"text-anchor\",u>0?\"start\":\"end\"),t&&C.selectAll(\".tick text\ ").call(a.utils.wrapTicks,b.xAxis.rangeBand())}q&&(g.scale(d)._ticks(a.utils.calcTicksY(y/36,i)).tickSize(-v,0),C.select(\" .nv-y.nv-axis\ ").call(g)),C.select(\" .nv-zeroLine line\ ").attr(\" x1\ ",0).attr(\" x2\ ",r?-v:v).attr(\" y1\ ",d(0)).attr(\" y2\ ",d(0))}),y.renderEnd(\" discreteBar chart immediate\ "),b}var c,d,e=a.models.discreteBar(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.tooltip(),j={top:15,right:10,bottom:50,left:60},k=null,l=null,m=null,n=a.utils.getColor(),o=!1,p=!0,q=!0,r=!1,s=!1,t=!1,u=0,v=null,w=d3.dispatch(\" beforeUpdate\ ",\" renderEnd\ "),x=250;f.orient(\" bottom\ ").showMaxMin(!1).tickFormat(function(a){return a}),g.orient(r?\" right\ ":\" left\ ").tickFormat(d3.format(\" ,.1f\ ")),i.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).keyFormatter(function(a,b){return f.tickFormat()(a,b)});var y=a.utils.renderWatch(w,x);return e.dispatch.on(\" elementMouseover.tooltip\ " ,function(a ) { a . s e r i e s = { k e y : b . x ( ) ( a . d a t a ) , v a l u e : b . y ( ) ( a . d a t a ) , \
c o l o r : a . c o l o r } , i . data ( a ) . hidden ( !1 ) } ) , e . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){i.hidden(!0)}),e.dispatch.on(\"elementMousemove.tooltip\",function(a){i()}),b.dispatch=w,b.discretebar=e,b.legend=h,b.xAxis=f,b.yAxis=g,b.tooltip=i,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return l},set:function(a ) { l = a } } , h e i g h t : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , s t a g g e r L a b e l s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , r o t a t e L a b e l s : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , w r a p L a b e l s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = ! ! a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , n o D a t a : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , m a r g i n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( j . t o p = a . t o p , k = a . t o p ) , j . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : j . r i g h t , j . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : j . b o t t o m , j . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : j . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a , y . reset ( x ) , e . duration ( x ) , f . duration ( x ) , g . duration ( x ) } } , c o l o r : { g e t : function ( ) { r e t u r n n } , s e t : function ( b ) { n = a . u t i l s . getColor ( b ) , e . color ( n ) , h . color ( n ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a , g . orient ( a?\ "right\" :\ "left\" ) } } } ) , a . u t i l s . inheritOptions ( b,e ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . d i s t r i b u t i o n = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( k ) { r e t u r n m . reset ( ) , k . each ( function(b ) { v a r k = ( e - ( \ " x \ " = = = g ? d . l e f t + d . r i g h t : d . t o p + d . b o t t o m ) , \ " x \ " = = g ? \ " y \ " : \ " x \ " ) , l = d 3 . select ( this ) ; a . u t i l s . initSVG ( l ) , c = c | | j ; v a r n = l . selectAll ( \"g.nv-distribution\").data([b]),o=n.enter().append(\"g\").attr(\"class\",\"nvd3 nv-distribution\ "),p=(o.append(\" g\ "),n.select(\" g\ "));n.attr(\" transform\ ",\" translate(\ "+d.left+\" ,\ "+d.top+\" ) \ " ) ; v a r q = p . selectAll ( \"g.nv-dist\").data(function(a){return a},function(a ) { r e t u r n a . k e y } ) ; q . enter ( ) . append ( \"g\"),q.attr(\"class\",function(a,b){return\"nv-dist nv-series-\ "+b}).style(\" stroke\ ",function(a,b){return i(a,b)});var r=q.selectAll(\" line.nv-dist\ " +g ) . data ( function(a ) { r e t u r n \
a . v a l u e s } ) ; r . enter ( ) . append ( \"line\").attr(g+\"1\",function(a,b){return c(h(a,b ) ) } ) . attr ( g+\ "2\" ,function(a,b ) { r e t u r n c ( h(a,b ) ) } ) , m . transition ( q.exit( ) . selectAll ( \"line.nv-dist\"+g),\"dist exit\ ").attr(g+\" 1\ ",function(a,b){return j(h(a,b))}).attr(g+\" 2\ ",function(a,b){return j(h(a,b))}).style(\" stroke-opacity\ ",0).remove(),r.attr(\" class\ ",function(a,b){return\" nv-dist\ "+g+\" nv-dist\ "+g+\" -\ "+b}).attr(k+\" 1\ ",0).attr(k+\" 2\ ",f),m.transition(r,\" dist\ ").attr(g+\" 1\ ",function(a,b){return j(h(a,b))}).attr(g+\" 2\ ",function(a,b){return j(h(a,b))}),c=j.copy()}),m.renderEnd(\" distribution immediate\ "),b}var c,d={top:0,right:0,bottom:0,left:0},e=400,f=8,g=\" x\ ",h=function(a){return a[g]},i=a.utils.defaultColor(),j=d3.scale.linear(),k=250,l=d3.dispatch(\" renderEnd\ "),m=a.utils.renderWatch(l,k);return b.options=a.utils.optionsFunc.bind(b),b.dispatch=l,b.margin=function(a){return arguments.length?(d.top=\" undefined\ "!=typeof a.top?a.top:d.top,d.right=\" undefined\ "!=typeof a.right?a.right:d.right,d.bottom=\" undefined\ "!=typeof a.bottom?a.bottom:d.bottom,d.left=\" undefined\ "!=typeof a.left?a.left:d.left,b):d},b.width=function(a){return arguments.length?(e=a,b):e},b.axis=function(a){return arguments.length?(g=a,b):g},b.size=function(a){return arguments.length?(f=a,b):f},b.getData=function(a){return arguments.length?(h=d3.functor(a),b):h},b.scale=function(a){return arguments.length?(j=a,b):j},b.color=function(c){return arguments.length?(i=a.utils.getColor(c),b):i},b.duration=function(a){return arguments.length?(k=a,m.reset(k),b):k},b},a.models.focus=function(b){\" use strict\ ";function c(u){return t.reset(),t.models(b),m&&t.models(f),n&&t.models(g),u.each(function(t){function u(a){var b=+(\" e\ "==a),c=b?1:-1,d=z/3;return\" M\ "+.5*c+\" ,\ "+d+\" A6,6 0 0 \"+b+\" \"+6.5*c+\",\"+(d+6)+\"V\"+(2*d-6)+\"A6,6 0 0 \"+b+\" \"+.5*c+\",\"+2*d+\"ZM\"+2.5*c+\",\"+(d+8)+\"V\"+(2*d-8)+\"M\"+4.5*c+\",\"+(d+8)+\"V\"+(2*d-8)}function v( ) { h . empty ( ) | | h . extent ( p ) , E . data ( [h.empty( ) ? d . domain ( ) : p ] ) . each ( function(a,b ) { v a r c = d ( a[0] ) - d . range ( ) [ 0 ] , e = y - d ( a[1] ) ; d 3 . select ( this ) . select ( \".left\").attr(\"width\",0>c?0:c),d3.select(this).select(\".right\").attr(\"x\",\
d ( a[1] ) ) . attr ( \"width\",0>e?0:e)})}function w(a ) { p = h . empty ( ) ? n u l l : h . extent ( ) ; v a r b = h . empty ( ) ? d . domain ( ) : h . extent ( ) ; r . brush ( {extent:b,brush:h} ) , v ( ) , a & & r . onBrush ( b ) } v a r x = d 3 . select ( this ) ; a . u t i l s . initSVG ( x ) ; v a r y = a . u t i l s . availableWidth ( k,x,i ) , z = l - i . t o p - i . b o t t o m ; c . u p d a t e = function ( ) { 0 = = = q ? x . call ( c ) : x . transition ( ) . duration ( q ) . call ( c ) } , c . c o n t a i n e r = t h i s , d = b . xScale ( ) , e = b . yScale ( ) ; v a r A = x . selectAll ( \"g.nv-focus\").data([t]),B=A.enter().append(\"g\").attr(\"class\",\"nvd3 nv-focus\ ").append(\" g\ "),C=A.select(\" g\ ");A.attr(\" transform\ ",\" translate(\ "+i.left+\" ,\ "+i.top+\" ) \ " ) , B . append ( \"g\").attr(\"class\",\"nv-background\").append(\"rect\"),B.append(\"g\").attr(\"class\",\"nv-x nv-axis\ "),B.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),B.append(\" g\ ").attr(\" class\ ",\" nv-contentWrap\ "),B.append(\" g\ ").attr(\" class\ ",\" nv-brushBackground\ "),B.append(\" g\ ").attr(\" class\ ",\" nv-x nv-brush\ "),o&&C.select(\" .nv-y.nv-axis\ ").attr(\" transform\ ",\" translate(\ "+y+\" ,0 ) \ " ) , C . select ( \".nv-background rect\ ").attr(\" width\ ",y).attr(\" height\ ",z),b.width(y).height(z).color(t.map(function(a,b){return a.color||j(a,b)}).filter(function(a,b){return!t[b].disabled}));var D=C.select(\" .nv-contentWrap\ ").datum(t.filter(function(a){return!a.disabled}));d3.transition(D).call(b),h.x(d).on(\" brush\ ",function(){w(s)}),h.on(\" brushend\ ",function(){s||r.onBrush(h.empty()?d.domain():h.extent())}),p&&h.extent(p);var E=C.select(\" .nv-brushBackground\ ").selectAll(\" g\ ").data([p||h.extent()]),F=E.enter().append(\" g\ ");F.append(\" rect\ ").attr(\" class\ ",\" left\ ").attr(\" x\ ",0).attr(\" y\ ",0).attr(\" height\ ",z),F.append(\" rect\ ").attr(\" class\ ",\" right\ ").attr(\" x\ ",0).attr(\" y\ ",0).attr(\" height\ ",z);var G=C.select(\" .nv-x.nv-brush\ ").call(h);G.selectAll(\" rect\ ").attr(\" height\ ",z),G.selectAll(\" .resize\ ").append(\" path\ ").attr(\" d\ ",u),w(!0),C.select(\" .nv-background rect\ ").attr(\" width\ ",y).attr(\" height\ ",z),m&&(f.scale(d)._ticks(a.utils.calcTicksX(y/100,t)).tickSize(-z,0),C.select(\" .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+e.range()[0]+\" ) \ " ) , d 3 . transition ( C.select(\ ".nv-x.nv-axis\" ) ) . call ( f ) ) , n & & ( g . scale ( e ) . _ticks ( a.utils.calcTicksY(z/36,t ) ) . tickSize ( -y,0 ) , d 3 . transition ( C.select(\ ".nv-y.nv-axis\" ) ) . call ( g ) ) , \
C . select ( \".nv-x.nv-axis\").attr(\"transform\",\"translate(0,\"+e.range()[0]+\")\")}),t.renderEnd(\"focus immediate\ "),c}var d,e,b=b||a.models.line(),f=a.models.axis(),g=a.models.axis(),h=d3.svg.brush(),i={top:10,right:0,bottom:30,left:0},j=a.utils.defaultColor(),k=null,l=70,m=!0,n=!1,o=!1,p=null,q=250,r=d3.dispatch(\" brush\ ",\" onBrush\ ",\" renderEnd\ "),s=!0;b.interactive(!1),b.pointActive(function(a){return!1});var t=a.utils.renderWatch(r,q);return c.dispatch=r,c.content=b,c.brush=h,c.xAxis=f,c.yAxis=g,c.options=a.utils.optionsFunc.bind(c),c._options=Object.create({},{width:{get:function(){return k},set:function(a){k=a}},height:{get:function(){return l},set:function(a){l=a}},showXAxis:{get:function(){return m},set:function(a){m=a}},showYAxis:{get:function(){return n},set:function(a){n=a}},brushExtent:{get:function(){return p},set:function(a){p=a}},syncBrushing:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return i},set:function(a){i.top=void 0!==a.top?a.top:i.top,i.right=void 0!==a.right?a.right:i.right,i.bottom=void 0!==a.bottom?a.bottom:i.bottom,i.left=void 0!==a.left?a.left:i.left}},duration:{get:function(){return q},set:function(a){q=a,t.reset(q),b.duration(q),f.duration(q),g.duration(q)}},color:{get:function(){return j},set:function(c){j=a.utils.getColor(c),b.color(j)}},interpolate:{get:function(){return b.interpolate()},set:function(a){b.interpolate(a)}},xTickFormat:{get:function(){return f.tickFormat()},set:function(a){f.tickFormat(a)}},yTickFormat:{get:function(){return g.tickFormat()},set:function(a){g.tickFormat(a)}},x:{get:function(){return b.x()},set:function(a){b.x(a)}},y:{get:function(){return b.y()},set:function(a){b.y(a)}},rightAlignYAxis:{get:function(){return o},set:function(a){o=a,g.orient(o?\" right\ ":\" left\ ")}}}),a.utils.inheritOptions(c,b),a.utils.initOptions(c),c},a.models.forceDirectedGraph=function(){\" use strict\ ";function b(g){return u.reset(),g.each(function(g){f=d3.select(this),a.utils.initSVG(f);var j=a.utils.availableWidth(d,f,c),u=a.utils.availableHeight(e,f,c);if(f.attr(\" width\ ",j).attr(\" height\ " ,\
u ) , ! ( g & & g . l i n k s & & g . n o d e s ) ) r e t u r n a . u t i l s . noData ( b,f ) , b ; f . selectAll ( \".nv-noData\").remove(),f.selectAll(\"*\").remove();var v=new Set;g.nodes.forEach(function(a ) { v a r b = O b j e c t . keys ( a ) ; b . forEach ( function(a ) { v . add ( a ) } ) } ) ; v a r w = d 3 . l a y o u t . force ( ) . nodes ( g.nodes ) . links ( g.links ) . size ( [j,u] ) . linkStrength ( k ) . friction ( l ) . linkDistance ( m ) . charge ( n ) . gravity ( o ) . theta ( p ) . alpha ( q ) . start ( ) , x = f . selectAll ( \".link\").data(g.links).enter().append(\"line\").attr(\"class\",\"nv-force-link\").style(\"stroke-width\",function(a){return Math.sqrt(a.value ) } ) , y = f . selectAll ( \".node\").data(g.nodes).enter().append(\"g\").attr(\"class\",\"nv-force-node\").call(w.drag);y.append(\"circle\").attr(\"r\",r).style(\"fill\",function(a){return h(a ) } ) . on ( \"mouseover\",function(a){f.select(\".nv-series-\"+a.seriesIndex+\" .nv-distx-\ "+a.pointIndex).attr(\" y1\ ",a.py),f.select(\" .nv-series-\ "+a.seriesIndex+\" .nv-disty-\ "+a.pointIndex).attr(\" x2\ ",a.px);var b=h(a);a.series=[],v.forEach(function(c){a.series.push({color:b,key:c,value:a[c]})}),i.data(a).hidden(!1)}).on(\" mouseout\ ",function(a){i.hidden(!0)}),i.headerFormatter(function(a){return\" Node\ "}),t(x),s(y),w.on(\" tick\ ",function(){x.attr(\" x1\ ",function(a){return a.source.x}).attr(\" y1\ ",function(a){return a.source.y}).attr(\" x2\ ",function(a){return a.target.x}).attr(\" y2\ ",function(a){return a.target.y}),y.attr(\" transform\ ",function(a){return\" translate(\ "+a.x+\" , \"+a.y+\")\"})})}),b}var c={top:2,right:0,bottom:2,left:0},d=400,e=32,f=null,g=d3.dispatch(\ "renderEnd\" ) , h = a . u t i l s . getColor ( [\ "#000\" ] ) , i = a . m o d e l s . tooltip ( ) , j = n u l l , k = . 1 , l = . 9 , m = 3 0 , n = - 1 2 0 , o = . 1 , p = . 8 , q = . 1 , r = 5 , s = function ( a ) { } , t = function ( a ) { } , u = a . u t i l s . renderWatch ( g ) ; r e t u r n b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , h e i g h t : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , l i n k S t r e n g t h : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , f r i c t i o n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , l i n k D i s t : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , c h a r g e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , g r a v i t y : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , \
t h e t a : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , a l p h a : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , r a d i u s : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , x : { g e t : function ( ) { r e t u r n g e t X } , s e t : function ( a ) { g e t X = d 3 . functor ( a ) } } , y : { g e t : function ( ) { r e t u r n g e t Y } , s e t : function ( a ) { g e t Y = d 3 . functor ( a ) } } , m a r g i n : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c . t o p = v o i d 0 ! = = a . t o p ? a . t o p : c . t o p , c . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : c . r i g h t , c . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : c . b o t t o m , c . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : c . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n h } , s e t : function ( b ) { h = a . u t i l s . getColor ( b ) } } , n o D a t a : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , n o d e E x t r a s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , l i n k E x t r a s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } } ) , b . d i s p a t c h = g , b . t o o l t i p = i , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . f u r i o u s L e g e n d = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( r ) { f u n c t i o n s ( a,b ) { r e t u r n \ " f u r i o u s \ " ! = q ? \ " #000\":o?a.disengaged?h(a,b):\"#fff\":o?void 0:a.disabled?h(a,b):\"#fff\"}function t(a,b){return o&&\"furious\"==q?a.disengaged?\"#fff\":h(a,b):a.disabled?\"#fff\":h(a,b)}return r.each(function(b){var r=d-c.left-c.right,u=d3.select(this);a.utils.initSVG(u);var v=u.selectAll(\"g.nv-legend\").data([b]),w=(v.enter().append(\"g\").attr(\"class\",\"nvd3 nv-legend\").append(\"g\"),v.select(\"g\"));v.attr(\"transform\",\"translate(\"+c.left+\",\"+c.top+\")\");var x,y=w.selectAll(\".nv-series\").data(function(a){return\"furious\"!=q?a:a.filter(function(a){return o?!0:!a.disengaged})}),z=y.enter().append(\"g\").attr(\"class\",\"nv-series\");if(\"classic\"==q)z.append(\"circle\").style(\"stroke-width\",2).attr(\"class\",\"nv-legend-symbol\").attr(\"r\",5),x=y.select(\"circle\");else if(\"furious\"==q){z.append(\"rect\").style(\"stroke-width\",2).attr(\"class\",\"nv-legend-symbol\").attr(\"rx\",3).attr(\"ry\",3),x=y.select(\"rect\"),z.append(\"g\").attr(\"class\",\"nv-check-box\").property(\"innerHTML\",'<path d=\"M0.5,5 L22.5,5 L22.5,26.5 L0.5,26.5 L0.5,5 Z\" class=\"nv-box\"></path><path d=\"M5.5,12.8618467 L11.9185089,19.2803556 L31,0.198864511\" class=\"nv-check\"></path>').attr(\"transform\",\"translate(-10,-8)scale(0.5)\");var \
A = y . select ( \".nv-check-box\");A.each(function(a,b){d3.select(this).selectAll(\"path\").attr(\"stroke\",s(a,b))})}z.append(\"text\").attr(\"text-anchor\",\"start\").attr(\"class\",\"nv-legend-text\").attr(\"dy\",\".32em\").attr(\"dx\",\"8\");var B=y.select(\ "text.nv-legend-text\" ) ; y . on ( \"mouseover\",function(a,b){p.legendMouseover(a,b)}).on(\"mouseout\",function(a,b){p.legendMouseout(a,b)}).on(\"click\",function(a,b){p.legendClick(a,b);var c=y.data( ) ; if ( m ) { if ( \"classic\"==q)n?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled} ) & & c . forEach ( function(a ) { a . d i s a b l e d = ! 1 } ) ) ; e l s e if ( \"furious\"==q)if(o)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!o ) { a . d i s a b l e d = ! a . d i s a b l e d , a . u s e r D i s a b l e d = a . d i s a b l e d ; v a r d = c . filter ( function(a ) { r e t u r n ! a . d i s e n g a g e d } ) ; d . every ( function(a ) { r e t u r n a . u s e r D i s a b l e d } ) & & c . forEach ( function(a ) { a . d i s a b l e d = a . u s e r D i s a b l e d = ! 1 } ) } p . stateChange ( {disabled:c.map(function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , d i s e n g a g e d : c . map ( function(a ) { r e t u r n ! ! a . d i s e n g a g e d } ) } ) } } ) . on ( \"dblclick\",function(a,b){if((\"furious\"!=q||!o)&&(p.legendDblclick(a,b),m)){var c=y.data( ) ; c . forEach ( function(a ) { a . d i s a b l e d = ! 0 , \ " f u r i o u s \ " = = q & & ( a . u s e r D i s a b l e d = a . d i s a b l e d ) } ) , a . d i s a b l e d = ! 1 , \ " f u r i o u s \ " = = q & & ( a . u s e r D i s a b l e d = a . d i s a b l e d ) , p . stateChange ( {disabled:c.map(function(a ) { r e t u r n ! ! a . d i s a b l e d } ) } ) } } ) , y . classed ( \"nv-disabled\",function(a){return a.userDisabled} ) , y . exit ( ) . remove ( ) , B . attr ( \"fill\",s).text(function(a){return g(f(a ) ) } ) ; v a r C ; switch ( q ) { c a s e \ " f u r i o u s \ " : C = 2 3 ; b r e a k ; c a s e \ " c l a s s i c \ " : C = 2 0 } if ( j ) { v a r D = [ ] ; y . each ( function(b,c ) { v a r d ; if ( g(f(b ) ) & & g ( f(b ) ) . l e n g t h > i ) { v a r e = g ( f(b ) ) . substring ( 0,i ) ; d = d 3 . select ( this ) . select ( \"text\").text(e+\"...\"),d3.select(this).append(\"svg:title\").text(g(f(b)))}else d=d3.select(this ) . select ( \"text\");var h;try{if(h=d.node( ) . getComputedTextLength ( ) , 0 > = h ) t h r o w Error ( ) } catch ( j ) { h = a . u t i l s . calcApproxTextWidth ( d ) } D . push ( h+k ) } ) ; for ( var E=0,F=0,G=[];r>F&&E<D.length; ) G [ E ] = D [ E ] , F + = D [ E + + ] ; for ( 0===E&&(E=1 ) ; F > r & & E > 1 ; ) { G = [ ] , E - - ; for ( var H=0;H<D.length;\
H + + ) D [ H ] > ( G [ H % E ] | | 0 ) & & ( G [ H % E ] = D [ H ] ) ; F = G . reduce ( function(a,b,c,d ) { r e t u r n a + b } ) } for ( var I=[],J=0,K=0;E>J;J++ ) I [ J ] = K , K + = G [ J ] ; y . attr ( \"transform\",function(a,b){return\"translate(\"+I[b%E]+\",\"+(5+Math.floor(b/E)*C)+\")\"}),l?w.attr(\"transform\",\"translate(\"+(d-c.right-F)+\",\"+c.top+\")\"):w.attr(\"transform\",\"translate(0,\"+c.top+\")\"),e=c.top+c.bottom+Math.ceil(D.length/E)*C}else{var L,M=5,N=5,O=0;y.attr(\ "transform\" ,function(a,b ) { v a r e = d 3 . select ( this ) . select ( \"text\").node().getComputedTextLength()+k;return L=N,d<c.left+c.right+L+e&&(N=L=5,M+=C ) , N + = e , N > O & & ( O = N ) , \ " translate ( \"+L+\",\"+M+\")\"}),w.attr(\"transform\",\"translate(\"+(d-c.right-O)+\",\"+c.top+\")\"),e=c.top+c.bottom+M+15}\"furious\"==q&&x.attr(\"width\",function(a,b){return B[0][b].getComputedTextLength( ) + 2 7 } ) . attr ( \"height\",18).attr(\"y\",-9).attr(\"x\",-15),x.style(\"fill\",t).style(\"stroke\",function(a,b){return a.color||h(a,b ) } ) } ) , b } v a r c = { t o p : 5 , r i g h t : 0 , b o t t o m : 5 , l e f t : 0 } , d = 4 0 0 , e = 2 0 , f = function ( a ) { r e t u r n a . k e y } , g = function ( a ) { r e t u r n a } , h = a . u t i l s . getColor ( ) , i = 2 0 , j = ! 0 , k = 2 8 , l = ! 0 , m = ! 0 , n = ! 1 , o = ! 1 , p = d 3 . dispatch ( \"legendClick\",\"legendDblclick\",\"legendMouseover\",\"legendMouseout\",\"stateChange\"),q=\"classic\";return b.dispatch=p,b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , h e i g h t : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , k e y : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , k e y F o r m a t t e r : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , a l i g n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , r i g h t A l i g n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , m a x K e y L e n g t h : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , p a d d i n g : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , u p d a t e S t a t e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , r a d i o B u t t o n M o d e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , e x p a n d e d : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , v e r s : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , m a r g i n : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c . t o p = v o i d 0 ! = = a . t o p ? a . t o p : c . t o p , c . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : c . r i g h t , c . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : c . b o t t o m , \
c . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : c . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n h } , s e t : function ( b ) { h = a . u t i l s . getColor ( b ) } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . h i s t o r i c a l B a r = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( x ) { r e t u r n x . each ( function(b ) { w . reset ( ) , k = d 3 . select ( this ) ; v a r x = a . u t i l s . availableWidth ( h,k,g ) , y = a . u t i l s . availableHeight ( i,k,g ) ; a . u t i l s . initSVG ( k ) , l . domain ( c||d3.extent(b[0].values.map(n ) . concat ( p ) ) ) , r ? l . range ( e||[.5*x/b[0].values.length,x*(b[0].values.length-.5 ) / b [ 0 ] . v a l u e s . l e n g t h ] ) : l . range ( e||[0,x] ) , m . domain ( d||d3.extent(b[0].values.map(o ) . concat ( q ) ) ) . range ( f||[y,0] ) , l . domain ( ) [ 0 ] = = = l . domain ( ) [ 1 ] & & ( l . domain ( ) [ 0 ] ? l . domain ( [l.domain( ) [ 0 ] - . 0 1 * l . domain ( ) [ 0 ] , l . domain ( ) [ 1 ] + . 0 1 * l . domain ( ) [ 1 ] ] ) : l . domain ( [-1,1] ) ) , m . domain ( ) [ 0 ] = = = m . domain ( ) [ 1 ] & & ( m . domain ( ) [ 0 ] ? m . domain ( [m.domain( ) [ 0 ] + . 0 1 * m . domain ( ) [ 0 ] , m . domain ( ) [ 1 ] - . 0 1 * m . domain ( ) [ 1 ] ] ) : m . domain ( [-1,1] ) ) ; v a r z = k . selectAll ( \"g.nv-wrap.nv-historicalBar-\"+j).data([b[0].values]),A=z.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-historicalBar-\ "+j),B=A.append(\" defs\ "),C=A.append(\" g\ "),D=z.select(\" g\ ");C.append(\" g\ ").attr(\" class\ ",\" nv-bars\ "),z.attr(\" transform\ ",\" translate(\ "+g.left+\" ,\ "+g.top+\" ) \ " ) , k . on ( \"click\",function(a,b){u.chartClick({data:a,index:b,pos:d3.event,id:j})}),B.append(\"clipPath\").attr(\"id\",\"nv-chart-clip-path-\"+j).append(\"rect\"),z.select(\"#nv-chart-clip-path-\"+j+\" rect\ ").attr(\" width\ ",x).attr(\" height\ ",y),D.attr(\" clip-path\ ",s?\" url( #nv-chart-clip-path-\"+j+\")\":\"\");var E=z.select(\".nv-bars\").selectAll(\".nv-bar\").data(function(a){return a},function(a,b){return n(a,b)});E.exit().remove(),E.enter().append(\"rect\").attr(\"x\",0).attr(\"y\",function(b,c){return a.utils.NaNtoZero(m(Math.max(0,o(b,c))))}).attr(\"height\",function(b,c){return a.utils.NaNtoZero(Math.abs(m(o(b,c))-m(0)))}).attr(\"transform\",function(a,c){return\"translate(\"+(l(n(a,c))-x/b[0].values.length*.45)+\",0)\"}).on(\"mouseover\",function(a,b){v&&(d3.select(this).classed(\"hover\",!0),u.elementMouseover({data:a,index:b,color:d3.select(this).style(\"fill\")}))}).on(\"mouseout\",function(a,b){v&&(d3.select(this).classed(\"hover\",!1),u.elementMouseout({data:a,\
i n d e x : b , c o l o r : d 3 . select ( this ) . style ( \"fill\")}))}).on(\"mousemove\",function(a,b){v&&u.elementMousemove({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"click\",function(a,b){if(v){var c=this;u.elementClick({data:a,index:b,color:d3.select(this ) . style ( \"fill\"),event:d3.event,element:c}),d3.event.stopPropagation()}}).on(\"dblclick\",function(a,b){v&&(u.elementDblClick({data:a,index:b,color:d3.select(this).style(\"fill\")}),d3.event.stopPropagation())}),E.attr(\"fill\",function(a,b){return t(a,b ) } ) . attr ( \"class\",function(a,b,c){return(o(a,b)<0?\"nv-bar negative\ ":\" nv-bar positive\ ")+\" nv-bar-\ "+c+\" -\ "+b}).watchTransition(w,\" bars\ ").attr(\" transform\ ",function(a,c){return\" translate(\ "+(l(n(a,c))-x/b[0].values.length*.45)+\" ,0 ) \ " } ) . attr ( \"width\",x/b[0].values.length*.9),E.watchTransition(w,\"bars\").attr(\"y\",function(b,c){var d=o(b,c ) < 0 ? m ( 0 ) : m ( 0 ) - m ( o(b,c ) ) < 1 ? m ( 0 ) - 1 : m ( o(b,c ) ) ; r e t u r n a . u t i l s . NaNtoZero ( d ) } ) . attr ( \"height\",function(b,c){return a.utils.NaNtoZero(Math.max(Math.abs(m(o(b,c ) ) - m ( 0 ) ) , 1 ) ) } ) } ) , w . renderEnd ( \"historicalBar immediate\ "),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=[],q=[0],r=!1,s=!0,t=a.utils.defaultColor(),u=d3.dispatch(\" chartClick\ ",\" elementClick\ ",\" elementDblClick\ ",\" elementMouseover\ ",\" elementMouseout\ ",\" elementMousemove\ ",\" renderEnd\ "),v=!0,w=a.utils.renderWatch(u,0);return b.highlightPoint=function(a,b){k.select(\" .nv-bars .nv-bar-0-\ "+a).classed(\" hover\ ",b)},b.clearHighlights=function(){k.select(\" .nv-bars .nv-bar.hover\ ").classed(\" hover\ " ,!1 ) } , b . d i s p a t c h = u , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , h e i g h t : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , f o r c e X : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , f o r c e Y : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , p a d D a t a : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , x : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , y : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , \
x S c a l e : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , y S c a l e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , x R a n g e : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , y R a n g e : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , c l i p E d g e : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , i d : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , i n t e r a c t i v e : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , m a r g i n : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g . t o p = v o i d 0 ! = = a . t o p ? a . t o p : g . t o p , g . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : g . r i g h t , g . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : g . b o t t o m , g . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : g . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n t } , s e t : function ( b ) { t = a . u t i l s . getColor ( b ) } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . h i s t o r i c a l B a r C h a r t = function ( b ) { \ " u s e s t r i c t \ " ; f u n c t i o n c ( b ) { r e t u r n b . each ( function(k ) { A . reset ( ) , A . models ( f ) , r & & A . models ( g ) , s & & A . models ( h ) ; v a r x = d 3 . select ( this ) ; a . u t i l s . initSVG ( x ) ; v a r B = a . u t i l s . availableWidth ( o,x,l ) , C = a . u t i l s . availableHeight ( p,x,l ) ; if ( c.update=function( ) { x . transition ( ) . duration ( z ) . call ( c ) } , c . c o n t a i n e r = t h i s , v . d i s a b l e d = k . map ( function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , ! w ) { v a r D ; w = { } ; for ( D in v ) v [ D ] i n s t a n c e o f A r r a y ? w [ D ] = v [ D ] . slice ( 0 ) : w [ D ] = v [ D ] } if ( !(k&&k.length&&k.filter(function(a ) { r e t u r n a . v a l u e s . l e n g t h } ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( c,x ) , c ; x . selectAll ( \".nv-noData\").remove(),d=f.xScale(),e=f.yScale();var E=x.selectAll(\ "g.nv-wrap.nv-historicalBarChart\" ) . data ( [k] ) , F = E . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-historicalBarChart\ ").append(\" g\ "),G=E.select(\" g\ ");F.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),F.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),F.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),F.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),F.append(\" g\ ").attr(\" class\ ",\" nv-interactive\ "),q?(i.width(B),G.select(\" .nv-legendWrap\ ").datum(k).call(i),m||i.height()===l.top||(l.top=i.height(),C=a.utils.availableHeight(p,x,l)),E.select(\" .nv-legendWrap\ ").attr(\" transform\ ",\" translate(0,\ "+-l.top+\" ) \ " ) ) : G . select ( \".nv-legendWrap\").selectAll(\"*\").remove(),\
E . attr ( \"transform\",\"translate(\"+l.left+\",\"+l.top+\")\"),t&&G.select(\".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+B+\",0)\"),u&&(j.width(B).height(C).margin({left:l.left,top:l.top}).svgContainer(x).xScale(d),E.select(\".nv-interactive\").call(j)),f.width(B).height(C).color(k.map(function(a,b){return a.color||n(a,b ) } ) . filter ( function(a,b ) { r e t u r n ! k [ b ] . d i s a b l e d } ) ) ; v a r H = G . select ( \".nv-barsWrap\").datum(k.filter(function(a){return!a.disabled}));H.transition().call(f),r&&(g.scale(d)._ticks(a.utils.calcTicksX(B/100,k)).tickSize(-C,0),G.select(\".nv-x.nv-axis\").attr(\"transform\",\"translate(0,\"+e.range()[0]+\")\"),G.select(\".nv-x.nv-axis\").transition().call(g)),s&&(h.scale(e)._ticks(a.utils.calcTicksY(C/36,k)).tickSize(-B,0),G.select(\".nv-y.nv-axis\").transition().call(h)),j.dispatch.on(\"elementMousemove\",function(b){f.clearHighlights();var d,e,i,l=[];k.filter(function(a,b ) { r e t u r n a . s e r i e s I n d e x = b , ! a . d i s a b l e d } ) . forEach ( function(g,h ) { e = a . interactiveBisect ( g.values,b.pointXValue,c.x( ) ) , f . highlightPoint ( e,!0 ) ; v a r j = g . v a l u e s [ e ] ; v o i d 0 ! = = j & & ( v o i d 0 = = = d & & ( d = j ) , v o i d 0 = = = i & & ( i = c . xScale ( ) ( c . x ( ) ( j , e ) ) ) , l . push ( {key:g.key,value:c.y( ) ( j , e ) , c o l o r : n ( g,g.seriesIndex ) , d a t a : g . v a l u e s [ e ] } ) ) } ) ; v a r m = g . tickFormat ( ) ( c . x ( ) ( d , e ) ) ; j . t o o l t i p . valueFormatter ( function(a,b ) { r e t u r n h . tickFormat ( ) ( a ) } ) . data ( {value:m,index:e,series:l} ) ( ) , j . renderGuideLine ( i ) } ) , j . d i s p a t c h . on ( \"elementMouseout\",function(a){y.tooltipHide(),f.clearHighlights()}),i.dispatch.on(\"legendClick\",function(a,d){a.disabled=!a.disabled,k.filter(function(a){return!a.disabled}).length||k.map(function(a){return a.disabled=!1,E.selectAll(\ ".nv-series\" ) . classed ( \"disabled\",!1),a}),v.disabled=k.map(function(a){return!!a.disabled}),y.stateChange(v),b.transition().call(c)}),i.dispatch.on(\"legendDblclick\",function(a){k.forEach(function(a){a.disabled=!0}),a.disabled=!1,v.disabled=k.map(function(a){return!!a.disabled}),y.stateChange(v),c.update()}),y.on(\"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(k.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , v . d i s a b l e d = a . d i s a b l e d ) , c . update ( ) } ) } ) , A . renderEnd ( \"historicalBarChart \
i m m e d i a t e \ " ) , c } v a r d , e , f = b | | a . m o d e l s . historicalBar ( ) , g = a . m o d e l s . axis ( ) , h = a . m o d e l s . axis ( ) , i = a . m o d e l s . legend ( ) , j = a . interactiveGuideline ( ) , k = a . m o d e l s . tooltip ( ) , l = { t o p : 3 0 , r i g h t : 9 0 , b o t t o m : 5 0 , l e f t : 9 0 } , m = n u l l , n = a . u t i l s . defaultColor ( ) , o = n u l l , p = n u l l , q = ! 1 , r = ! 0 , s = ! 0 , t = ! 1 , u = ! 1 , v = { } , w = n u l l , x = n u l l , y = d 3 . dispatch ( \"tooltipHide\",\"stateChange\",\"changeState\",\"renderEnd\"),z=250;g.orient(\"bottom\").tickPadding(7),h.orient(t?\"right\":\"left\"),k.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return h.tickFormat( ) ( a , b ) } ) . headerFormatter ( function(a,b ) { r e t u r n g . tickFormat ( ) ( a , b ) } ) ; v a r A = a . u t i l s . renderWatch ( y,0 ) ; r e t u r n f . d i s p a t c h . on ( \"elementMouseover.tooltip\",function(a){a.series={key:c.x()(a.data),value:c.y()(a.data),color:a.color},k.data(a).hidden(!1)}),f.dispatch.on(\"elementMouseout.tooltip\",function(a){k.hidden(!0)}),f.dispatch.on(\"elementMousemove.tooltip\",function(a){k()}),c.dispatch=y,c.bars=f,c.legend=i,c.xAxis=g,c.yAxis=h,c.interactiveLayer=j,c.tooltip=k,c.options=a.utils.optionsFunc.bind(c),c._options=Object.create({},{width:{get:function(){return o},set:function(a ) { o = a } } , h e i g h t : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , n o D a t a : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , m a r g i n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( l . t o p = a . t o p , m = a . t o p ) , l . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : l . r i g h t , l . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : l . b o t t o m , l . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : l . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n n } , s e t : function ( b ) { n = a . u t i l s . getColor ( b ) , i . color ( n ) , f . color ( n ) } } , d u r a t i o n : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a , A . reset ( z ) , h . duration ( z ) , g . duration ( z ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a , h . orient ( a?\ "right\" :\ "left\" ) } } , u s e I n t e r a c t i v e G u i d e l i n e : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a , a = = = ! 0 & & c . interactive ( !1 ) } } } ) , a . u t i l s . inheritOptions ( c,f ) , a . u t i l s . initOptions ( c ) , \
c } , a . m o d e l s . o h l c B a r C h a r t = function ( ) { v a r b = a . m o d e l s . historicalBarChart ( a.models.ohlcBar( ) ) ; r e t u r n b . useInteractiveGuideline ( !0 ) , b . i n t e r a c t i v e L a y e r . t o o l t i p . contentGenerator ( function(a ) { v a r c = a . s e r i e s [ 0 ] . d a t a , d = c . o p e n < c . c l o s e ? \ " 2 c a 0 2 c \ " : \ " d 6 2 7 2 8 \ " ; r e t u r n ' < h 3 s t y l e = \ " c o l o r : #'+d+'\">'+a.value+\"</h3><table><tr><td>open:</td><td>\"+b.yAxis.tickFormat()(c.open)+\"</td></tr><tr><td>close:</td><td>\"+b.yAxis.tickFormat()(c.close)+\"</td></tr><tr><td>high</td><td>\"+b.yAxis.tickFormat()(c.high)+\"</td></tr><tr><td>low:</td><td>\"+b.yAxis.tickFormat()(c.low)+\"</td></tr></table>\"}),b},a.models.candlestickBarChart=function(){var b=a.models.historicalBarChart(a.models.candlestickBar());return b.useInteractiveGuideline(!0),b.interactiveLayer.tooltip.contentGenerator(function(a){var c=a.series[0].data,d=c.open<c.close?\"2ca02c\":\"d62728\";return'<h3 style=\"color: #'+d+'\">'+a.value+\"</h3><table><tr><td>open:</td><td>\"+b.yAxis.tickFormat()(c.open)+\"</td></tr><tr><td>close:</td><td>\"+b.yAxis.tickFormat()(c.close)+\"</td></tr><tr><td>high</td><td>\"+b.yAxis.tickFormat()(c.high)+\"</td></tr><tr><td>low:</td><td>\"+b.yAxis.tickFormat()(c.low)+\"</td></tr></table>\";\
} ) , b } , a . m o d e l s . l e g e n d = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( r ) { f u n c t i o n s ( a,b ) { r e t u r n \ " f u r i o u s \ " ! = q ? \ " #000\":o?a.disengaged?\"#000\":\"#fff\":o?void 0:(a.color||(a.color=h(a,b)),a.disabled?a.color:\"#fff\")}function t(a,b){return o&&\"furious\"==q&&a.disengaged?\"#eee\":a.color||h(a,b)}function u(a,b){return o&&\"furious\"==q?1:a.disabled?0:1}return r.each(function(b){var h=d-c.left-c.right,r=d3.select(this);a.utils.initSVG(r);var v=r.selectAll(\"g.nv-legend\").data([b]),w=v.enter().append(\"g\").attr(\"class\",\"nvd3 nv-legend\").append(\"g\"),x=v.select(\"g\");l?v.attr(\"transform\",\"translate(\"+-c.right+\",\"+c.top+\")\"):v.attr(\"transform\",\"translate(\"+c.left+\",\"+c.top+\")\");var y,z,A=x.selectAll(\".nv-series\").data(function(a){return\"furious\"!=q?a:a.filter(function(a){return o?!0:!a.disengaged})}),B=A.enter().append(\"g\").attr(\"class\",\"nv-series\");switch(q){case\"furious\":z=23;break;case\"classic\":z=20}if(\"classic\"==q)B.append(\"circle\").style(\"stroke-width\",2).attr(\"class\",\"nv-legend-symbol\").attr(\"r\",5),y=A.select(\".nv-legend-symbol\");else if(\"furious\"==q){B.append(\"rect\").style(\"stroke-width\",2).attr(\"class\",\"nv-legend-symbol\").attr(\"rx\",3).attr(\"ry\",3),y=A.select(\".nv-legend-symbol\"),B.append(\"g\").attr(\"class\",\"nv-check-box\").property(\"innerHTML\",'<path d=\"M0.5,5 L22.5,5 L22.5,26.5 L0.5,26.5 L0.5,5 Z\" class=\"nv-box\"></path><path d=\"M5.5,12.8618467 L11.9185089,19.2803556 L31,0.198864511\" class=\"nv-check\"></path>').attr(\"transform\",\"translate(-10,-8)scale(0.5)\");var C=A.select(\".nv-check-box\");C.each(function(a,b){d3.select(this).selectAll(\"path\").attr(\"stroke\",s(a,b))})}B.append(\"text\").attr(\"text-anchor\",\"start\").attr(\"class\",\"nv-legend-text\").attr(\"dy\",\".32em\").attr(\"dx\",\"8\");var D=A.select(\"text.nv-legend-text\");A.on(\"mouseover\",function(a,b){p.legendMouseover(a,b)}).on(\"mouseout\",function(a,b){p.legendMouseout(a,b)}).on(\"click\",function(a,b){p.legendClick(a,b);var c=A.data();if(m){if(\"classic\"==q)n?(c.forEach(function(a){a.disabled=!0}),a.disabled=!1):(a.disabled=!a.disabled,c.every(function(a){return a.disabled})&&c.forEach(function(a){a.disabled=!1}));\
e l s e if ( \"furious\"==q)if(o)a.disengaged=!a.disengaged,a.userDisabled=void 0==a.userDisabled?!!a.disabled:a.userDisabled,a.disabled=a.disengaged||a.userDisabled;else if(!o ) { a . d i s a b l e d = ! a . d i s a b l e d , a . u s e r D i s a b l e d = a . d i s a b l e d ; v a r d = c . filter ( function(a ) { r e t u r n ! a . d i s e n g a g e d } ) ; d . every ( function(a ) { r e t u r n a . u s e r D i s a b l e d } ) & & c . forEach ( function(a ) { a . d i s a b l e d = a . u s e r D i s a b l e d = ! 1 } ) } p . stateChange ( {disabled:c.map(function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , d i s e n g a g e d : c . map ( function(a ) { r e t u r n ! ! a . d i s e n g a g e d } ) } ) } } ) . on ( \"dblclick\",function(a,b){if((\"furious\"!=q||!o)&&(p.legendDblclick(a,b),m)){var c=A.data( ) ; c . forEach ( function(a ) { a . d i s a b l e d = ! 0 , \ " f u r i o u s \ " = = q & & ( a . u s e r D i s a b l e d = a . d i s a b l e d ) } ) , a . d i s a b l e d = ! 1 , \ " f u r i o u s \ " = = q & & ( a . u s e r D i s a b l e d = a . d i s a b l e d ) , p . stateChange ( {disabled:c.map(function(a ) { r e t u r n ! ! a . d i s a b l e d } ) } ) } } ) , A . classed ( \"nv-disabled\",function(a){return a.userDisabled} ) , A . exit ( ) . remove ( ) , D . attr ( \"fill\",s).text(function(a){return g(f(a ) ) } ) ; v a r E = 0 ; if ( j ) { v a r F = [ ] ; A . each ( function(b,c ) { v a r d ; if ( g(f(b ) ) & & g ( f(b ) ) . l e n g t h > i ) { v a r e = g ( f(b ) ) . substring ( 0,i ) ; d = d 3 . select ( this ) . select ( \"text\").text(e+\"...\"),d3.select(this).append(\"svg:title\").text(g(f(b)))}else d=d3.select(this ) . select ( \"text\");var h;try{if(h=d.node( ) . getComputedTextLength ( ) , 0 > = h ) t h r o w Error ( ) } catch ( j ) { h = a . u t i l s . calcApproxTextWidth ( d ) } F . push ( h+k ) } ) ; v a r G = 0 , H = [ ] ; for ( E=0;h>E&&G<F.length; ) H [ G ] = F [ G ] , E + = F [ G + + ] ; for ( 0===G&&(G=1 ) ; E > h & & G > 1 ; ) { H = [ ] , G - - ; for ( var I=0;I<F.length;I++ ) F [ I ] > ( H [ I % G ] | | 0 ) & & ( H [ I % G ] = F [ I ] ) ; E = H . reduce ( function(a,b,c,d ) { r e t u r n a + b } ) } for ( var J=[],K=0,L=0;G>K;K++ ) J [ K ] = L , L + = H [ K ] ; A . attr ( \"transform\",function(a,b){return\"translate(\"+J[b%G]+\",\"+(5+Math.floor(b/G)*z)+\")\"}),l?x.attr(\"transform\",\"translate(\"+(d-c.right-E)+\",\"+c.top+\")\"):x.attr(\"transform\",\"translate(0,\"+c.top+\")\"),e=c.top+c.bottom+Math.ceil(F.length/G)*z}else{var M,N=5,O=5,P=0;A.attr(\ "transform\" ,function(a,b ) { v a r e = d 3 . select ( this ) . select ( \"text\").node().getComputedTextLength()+k;return M=O,d<c.left+c.right+M+e&&(O=M=5,N+=z ) , O + = e , O > P & & ( P = O ) , M + P > E & & ( E = M + P ) , \ " translate ( \"+M+\",\"+N+\")\"}),x.attr(\"transform\",\"translate(\"+(d-c.right-P)+\",\"+c.top+\")\"),\
e = c . t o p + c . b o t t o m + N + 1 5 } if ( \"furious\"==q){y.attr(\"width\",function(a,b){return D[0][b].getComputedTextLength( ) + 2 7 } ) . attr ( \"height\",18).attr(\"y\",-9).attr(\"x\",-15),w.insert(\"rect\",\":first-child\").attr(\"class\",\"nv-legend-bg\").attr(\"fill\",\"#eee\").attr(\"opacity\",0);var Q=x.select(\ ".nv-legend-bg\" ) ; Q . transition ( ) . duration ( 300 ) . attr ( \"x\",-z).attr(\"width\",E+z-12).attr(\"height\",e+10).attr(\"y\",-c.top-10).attr(\"opacity\",o?1:0)}y.style(\"fill\",t).style(\"fill-opacity\",u).style(\"stroke\",t)}),b}var c={top:5,right:0,bottom:5,left:0},d=400,e=20,f=function(a ) { r e t u r n a . k e y } , g = function ( a ) { r e t u r n a } , h = a . u t i l s . getColor ( ) , i = 2 0 , j = ! 0 , k = 3 2 , l = ! 0 , m = ! 0 , n = ! 1 , o = ! 1 , p = d 3 . dispatch ( \"legendClick\",\"legendDblclick\",\"legendMouseover\",\"legendMouseout\",\"stateChange\"),q=\"classic\";return b.dispatch=p,b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , h e i g h t : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , k e y : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , k e y F o r m a t t e r : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , a l i g n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , m a x K e y L e n g t h : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , r i g h t A l i g n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , p a d d i n g : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , u p d a t e S t a t e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , r a d i o B u t t o n M o d e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , e x p a n d e d : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , v e r s : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , m a r g i n : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c . t o p = v o i d 0 ! = = a . t o p ? a . t o p : c . t o p , c . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : c . r i g h t , c . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : c . b o t t o m , c . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : c . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n h } , s e t : function ( b ) { h = a . u t i l s . getColor ( b ) } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . l i n e = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( r ) { r e t u r n v . reset ( ) , v . models ( e ) , r . each ( function(b ) { i = d 3 . select ( this ) ; v a r r = a . u t i l s . availableWidth ( g,i,f ) , s = a . u t i l s . availableHeight ( h,i,f ) ; a . u t i l s . initSVG ( i ) , c = e . xScale ( ) , d = e . yScale ( ) , \
t = t | | c , u = u | | d ; v a r w = i . selectAll ( \"g.nv-wrap.nv-line\").data([b]),x=w.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-line\ "),y=x.append(\" defs\ "),z=x.append(\" g\ "),A=w.select(\" g\ ");z.append(\" g\ ").attr(\" class\ ",\" nv-groups\ "),z.append(\" g\ ").attr(\" class\ ",\" nv-scatterWrap\ "),w.attr(\" transform\ ",\" translate(\ "+f.left+\" ,\ "+f.top+\" ) \ " ) , e . width ( r ) . height ( s ) ; v a r B = w . select ( \".nv-scatterWrap\");B.call(e),y.append(\"clipPath\").attr(\"id\",\"nv-edge-clip-\"+e.id()).append(\"rect\"),w.select(\"#nv-edge-clip-\"+e.id()+\" rect\ ").attr(\" width\ ",r).attr(\" height\ ",s>0?s:0),A.attr(\" clip-path\ ",p?\" url( #nv-edge-clip-\"+e.id()+\")\":\"\"),B.attr(\"clip-path\",p?\"url(#nv-edge-clip-\"+e.id()+\")\":\"\");var C=w.select(\".nv-groups\").selectAll(\".nv-group\").data(function(a){return a},function(a){return a.key});C.enter().append(\"g\").style(\"stroke-opacity\",1e-6).style(\"stroke-width\",function(a){return a.strokeWidth||j}).style(\"fill-opacity\",1e-6),C.exit().remove(),C.attr(\"class\",function(a,b){return(a.classed||\"\")+\" nv-group nv-series-\"+b}).classed(\"hover\",function(a){return a.hover}).style(\"fill\",function(a,b){return k(a,b)}).style(\"stroke\",function(a,b){return k(a,b)}),C.watchTransition(v,\"line: groups\").style(\"stroke-opacity\",1).style(\"fill-opacity\",function(a){return a.fillOpacity||.5});var D=C.selectAll(\"path.nv-area\").data(function(a){return o(a)?[a]:[]});D.enter().append(\"path\").attr(\"class\",\"nv-area\").attr(\"d\",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c)))}).y0(function(b,c){return a.utils.NaNtoZero(u(m(b,c)))}).y1(function(a,b){return u(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])}),C.exit().selectAll(\"path.nv-area\").remove(),D.watchTransition(v,\"line: areaPaths\").attr(\"d\",function(b){return d3.svg.area().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d)))}).y0(function(b,c){return a.utils.NaNtoZero(d(m(b,c)))}).y1(function(a,b){return d(d.domain()[0]<=0?d.domain()[1]>=0?0:d.domain()[1]:d.domain()[0])}).apply(this,[b.values])});var E=C.selectAll(\"path.nv-line\").data(function(a){return[a.values]});\
E . enter ( ) . append ( \"path\").attr(\"class\",\"nv-line\").attr(\"d\",d3.svg.line().interpolate(q).defined(n).x(function(b,c){return a.utils.NaNtoZero(t(l(b,c ) ) ) } ) . y ( function(b,c ) { r e t u r n a . u t i l s . NaNtoZero ( u(m(b,c ) ) ) } ) ) , E . watchTransition ( v,\ "line: linePaths\" ) . attr ( \"d\",d3.svg.line().interpolate(q).defined(n).x(function(b,d){return a.utils.NaNtoZero(c(l(b,d ) ) ) } ) . y ( function(b,c ) { r e t u r n a . u t i l s . NaNtoZero ( d(m(b,c ) ) ) } ) ) , t = c . copy ( ) , u = d . copy ( ) } ) , v . renderEnd ( \"line immediate\ "),b}var c,d,e=a.models.scatter(),f={top:0,right:0,bottom:0,left:0},g=960,h=500,i=null,j=1.5,k=a.utils.defaultColor(),l=function(a){return a.x},m=function(a){return a.y},n=function(a,b){return!isNaN(m(a,b))&&null!==m(a,b)},o=function(a){return a.area},p=!1,q=\" linear\ ",r=250,s=d3.dispatch(\" elementClick\ ",\" elementMouseover\ ",\" elementMouseout\ ",\" renderEnd\ ");e.pointSize(16).pointDomain([16,256]);var t,u,v=a.utils.renderWatch(s,r);return b.dispatch=s,b.scatter=e,e.dispatch.on(\" elementClick\ ",function(){s.elementClick.apply(this,arguments)}),e.dispatch.on(\" elementMouseover\ ",function(){s.elementMouseover.apply(this,arguments)}),e.dispatch.on(\" elementMouseout\ " ,function( ) { s . e l e m e n t M o u s e o u t . apply ( this,arguments ) } ) , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , h e i g h t : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , d e f i n e d : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , i n t e r p o l a t e : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , c l i p E d g e : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , m a r g i n : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f . t o p = v o i d 0 ! = = a . t o p ? a . t o p : f . t o p , f . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : f . r i g h t , f . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : f . b o t t o m , f . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : f . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a , v . reset ( r ) , e . duration ( r ) } } , i s A r e a : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = d 3 . functor ( a ) } } , x : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a , e . x ( a ) } } , y : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a , e . y ( a ) } } , c o l o r : { g e t : function ( ) { r e t u r n k } , s e t : function ( b ) { k = a . u t i l s . getColor ( b ) , \
e . color ( k ) } } } ) , a . u t i l s . inheritOptions ( b,e ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . l i n e C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( j ) { r e t u r n C . reset ( ) , C . models ( e ) , s & & C . models ( f ) , t & & C . models ( g ) , j . each ( function(j ) { f u n c t i o n z ( ) { s & & M . select ( \".nv-focus .nv-x.nv-axis\ ").transition().duration(B).call(f)}function C(){t&&M.select(\" .nv-focus .nv-y.nv-axis\ ").transition().duration(B).call(g)}function F(a){var b=M.select(\" .nv-focus .nv-linesWrap\ ").datum(j.filter(function(a){return!a.disabled}).map(function(b,c){return{key:b.key,area:b.area,classed:b.classed,values:b.values.filter(function(b,c){return e.x()(b,c)>=a[0]&&e.x()(b,c)<=a[1]}),disableTooltip:b.disableTooltip}}));b.transition().duration(B).call(e),z(),C()}var G=d3.select(this);a.utils.initSVG(G);var H=a.utils.availableWidth(o,G,l),I=a.utils.availableHeight(p,G,l)-(w?k.height():0);if(b.update=function(){0===B?G.call(b):G.transition().duration(B).call(b)},b.container=this,x.setter(E(j),b.update).getter(D(j)).update(),x.disabled=j.map(function(a){return!!a.disabled}),!y){var J;y={};for(J in x)x[J]instanceof Array?y[J]=x[J].slice(0):y[J]=x[J]}if(!(j&&j.length&&j.filter(function(a){return a.values.length}).length))return a.utils.noData(b,G),b;G.selectAll(\" .nv-noData\ ").remove(),k.dispatch.on(\" onBrush\ ",function(a){F(a)}),c=e.xScale(),d=e.yScale();var K=G.selectAll(\" g.nv-wrap.nv-lineChart\ ").data([j]),L=K.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-lineChart\ ").append(\" g\ "),M=K.select(\" g\ ");L.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ ");var N=L.append(\" g\ ").attr(\" class\ ",\" nv-focus\ ");N.append(\" g\ ").attr(\" class\ ",\" nv-background\ ").append(\" rect\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-linesWrap\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-interactive\ ");L.append(\" g\ ").attr(\" class\ ",\" nv-focusWrap\ ");q?(h.width(H),M.select(\" .nv-legendWrap\ ").datum(j).call(h),\" bottom\ "===r?K.select(\" .nv-legendWrap\ ").attr(\" transform\ ",\" translate(0,\ "+I+\" ) \ " ) : \ " t o p \ " = = = r & & ( m | | h . height ( ) = = = l . t o p | | ( l . t o p = h . height ( ) , I = a . u t i l s . availableHeight ( p,G,l ) - ( w ? k . height ( ) : 0 ) ) , \
K . select ( \".nv-legendWrap\").attr(\"transform\",\"translate(0,\"+-l.top+\")\"))):M.select(\".nv-legendWrap\").selectAll(\"*\").remove(),K.attr(\"transform\",\"translate(\"+l.left+\",\"+l.top+\")\"),u&&M.select(\".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+H+\",0)\"),v&&(i.width(H).height(I).margin({left:l.left,top:l.top}).svgContainer(G).xScale(c),K.select(\".nv-interactive\").call(i)),M.select(\".nv-focus .nv-background rect\ ").attr(\" width\ ",H).attr(\" height\ ",I),e.width(H).height(I).color(j.map(function(a,b){return a.color||n(a,b)}).filter(function(a,b){return!j[b].disabled}));var O=M.select(\" .nv-linesWrap\ ").datum(j.filter(function(a){return!a.disabled}));if(s&&f.scale(c)._ticks(a.utils.calcTicksX(H/100,j)).tickSize(-I,0),t&&g.scale(d)._ticks(a.utils.calcTicksY(I/36,j)).tickSize(-H,0),M.select(\" .nv-focus .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+I+\" ) \ " ) , w ) { k . width ( H ) , M . select ( \".nv-focusWrap\").attr(\"transform\",\"translate(0,\"+(I+l.bottom+k.margin().top)+\")\").datum(j.filter(function(a){return!a.disabled})).call(k);var P=k.brush.empty( ) ? k . xDomain ( ) : k . b r u s h . extent ( ) ; n u l l ! = = P & & F ( P ) } e l s e O . call ( e ) , z ( ) , C ( ) ; h . d i s p a t c h . on ( \"stateChange\",function(a){for(var c in a ) x [ c ] = a [ c ] ; A . stateChange ( x ) , b . update ( ) } ) , i . d i s p a t c h . on ( \"elementMousemove\",function(d){e.clearHighlights();var f,h,l,m=[];if(j.filter(function(a,b ) { r e t u r n a . s e r i e s I n d e x = b , ! a . d i s a b l e d & & ! a . d i s a b l e T o o l t i p } ) . forEach ( function(g,i ) { v a r j = w ? k . b r u s h . empty ( ) ? k . xScale ( ) . domain ( ) : k . b r u s h . extent ( ) : c . domain ( ) , o = g . v a l u e s . filter ( function(a,b ) { r e t u r n j [ 0 ] < = j [ 1 ] ? e . x ( ) ( a , b ) > = j [ 0 ] & & e . x ( ) ( a , b ) < = j [ 1 ] : e . x ( ) ( a , b ) > = j [ 1 ] & & e . x ( ) ( a , b ) < = j [ 0 ] } ) ; h = a . interactiveBisect ( o,d.pointXValue,e.x( ) ) ; v a r p = o [ h ] , q = b . y ( ) ( p , h ) ; n u l l ! = = q & & e . highlightPoint ( i,h,!0 ) , v o i d 0 ! = = p & & ( v o i d 0 = = = f & & ( f = p ) , v o i d 0 = = = l & & ( l = b . xScale ( ) ( b . x ( ) ( p , h ) ) ) , m . push ( {key:g.key,value:q,color:n(g,g.seriesIndex ) , d a t a : p } ) ) } ) , m . l e n g t h > 2 ) { v a r o = b . yScale ( ) . invert ( d.mouseY ) , p = M a t h . abs ( b.yScale( ) . domain ( ) [ 0 ] - b . yScale ( ) . domain ( ) [ 1 ] ) , q = . 0 3 * p , r = a . nearestValueIndex ( m.map(function(a ) { r e t u r n a . v a l u e } ) , o , q ) ; n u l l ! = = r & & ( m [ r ] . h i g h l i g h t = ! 0 ) } v a r s = function ( a,b ) { r e t u r n n u l l = = a ? \ " N / A \ " : g . tickFormat ( ) ( a ) } ; \
i . t o o l t i p . valueFormatter ( i.tooltip.valueFormatter( ) | | s ) . data ( {value:b.x( ) ( f , h ) , i n d e x : h , s e r i e s : m } ) ( ) , i . renderGuideLine ( l ) } ) , i . d i s p a t c h . on ( \"elementClick\",function(c){var d,f=[];j.filter(function(a,b ) { r e t u r n a . s e r i e s I n d e x = b , ! a . d i s a b l e d } ) . forEach ( function(e ) { v a r g = a . interactiveBisect ( e.values,c.pointXValue,b.x( ) ) , h = e . v a l u e s [ g ] ; if ( \"undefined\"!=typeof h ) { \ " u n d e f i n e d \ " = = t y p e o f d & & ( d = b . xScale ( ) ( b . x ( ) ( h , g ) ) ) ; v a r i = b . yScale ( ) ( b . y ( ) ( h , g ) ) ; f . push ( {point:h,pointIndex:g,pos:[d,i],seriesIndex:e.seriesIndex,series:e} ) } } ) , e . d i s p a t c h . elementClick ( f ) } ) , i . d i s p a t c h . on ( \"elementMouseout\",function(a){e.clearHighlights()}),A.on(\"changeState\",function(a){\"undefined\"!=typeof a.disabled&&j.length===a.disabled.length&&(j.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , x . d i s a b l e d = a . d i s a b l e d ) , b . update ( ) } ) } ) , C . renderEnd ( \"lineChart immediate\ "),b}var c,d,e=a.models.line(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.interactiveGuideline(),j=a.models.tooltip(),k=a.models.focus(a.models.line()),l={top:30,right:20,bottom:50,left:60},m=null,n=a.utils.defaultColor(),o=null,p=null,q=!0,r=\" top\ ",s=!0,t=!0,u=!1,v=!1,w=!1,x=a.utils.state(),y=null,z=null,A=d3.dispatch(\" tooltipShow\ ",\" tooltipHide\ ",\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),B=250;f.orient(\" bottom\ ").tickPadding(7),g.orient(u?\" right\ ":\" left\ "),e.clipEdge(!0).duration(0),j.valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.tooltip.valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)});var C=a.utils.renderWatch(A,B),D=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},E=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.dispatch.on(\" elementMouseover.tooltip\ ",function(a){a.series.disableTooltip||j.data(a).hidden(!1)}),e.dispatch.on(\" elementMouseout.tooltip\ " ,function(a ) { j . hidden ( !0 ) } ) , b . d i s p a t c h = A , b . l i n e s = e , b . l e g e n d = h , b . f o c u s = k , b . x A x i s = f , b . x 2 A x i s = k . x A x i s , b . y A x i s = g , b . y 2 A x i s = k . y A x i s , \
b . i n t e r a c t i v e L a y e r = i , b . t o o l t i p = j , b . s t a t e = x , b . d i s p a t c h = A , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , h e i g h t : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , l e g e n d P o s i t i o n : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = a } } , n o D a t a : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a } } , f o c u s E n a b l e : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , f o c u s H e i g h t : { g e t : function ( ) { r e t u r n k . height ( ) } , s e t : function ( a ) { k . height ( a ) } } , f o c u s S h o w A x i s X : { g e t : function ( ) { r e t u r n k . showXAxis ( ) } , s e t : function ( a ) { k . showXAxis ( a ) } } , f o c u s S h o w A x i s Y : { g e t : function ( ) { r e t u r n k . showYAxis ( ) } , s e t : function ( a ) { k . showYAxis ( a ) } } , b r u s h E x t e n t : { g e t : function ( ) { r e t u r n k . brushExtent ( ) } , s e t : function ( a ) { k . brushExtent ( a ) } } , f o c u s M a r g i n : { g e t : function ( ) { r e t u r n k . m a r g i n } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( l . t o p = a . t o p , m = a . t o p ) , k . m a r g i n . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : k . m a r g i n . r i g h t , k . m a r g i n . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : k . m a r g i n . b o t t o m , k . m a r g i n . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : k . m a r g i n . l e f t } } , m a r g i n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l . t o p = v o i d 0 ! = = a . t o p ? a . t o p : l . t o p , l . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : l . r i g h t , l . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : l . b o t t o m , l . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : l . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a , C . reset ( B ) , e . duration ( B ) , k . duration ( B ) , f . duration ( B ) , g . duration ( B ) } } , c o l o r : { g e t : function ( ) { r e t u r n n } , s e t : function ( b ) { n = a . u t i l s . getColor ( b ) , h . color ( n ) , e . color ( n ) , k . color ( n ) } } , i n t e r p o l a t e : { g e t : function ( ) { r e t u r n e . interpolate ( ) } , s e t : function ( a ) { e . interpolate ( a ) , k . interpolate ( a ) } } , x T i c k F o r m a t : { g e t : function ( ) { r e t u r n f . tickFormat ( ) } , s e t : function ( a ) { f . tickFormat ( a ) , k . xTickFormat ( a ) } } , y T i c k F o r m a t : { g e t : function ( ) { r e t u r n g . tickFormat ( ) } , s e t : function ( a ) { g . tickFormat ( a ) , k . yTickFormat ( a ) } } , x : { g e t : function ( ) { r e t u r n e . x ( ) } , s e t : function ( a ) { e . x ( a ) , k . x ( a ) } } , \
y : { g e t : function ( ) { r e t u r n e . y ( ) } , s e t : function ( a ) { e . y ( a ) , k . y ( a ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a , g . orient ( u?\ "right\" :\ "left\" ) } } , u s e I n t e r a c t i v e G u i d e l i n e : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a , v & & ( e . interactive ( !1 ) , e . useVoronoi ( !1 ) ) } } } ) , a . u t i l s . inheritOptions ( b,e ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . l i n e W i t h F o c u s C h a r t = function ( ) { r e t u r n a . m o d e l s . lineChart ( ) . margin ( {bottom:30} ) . focusEnable ( !0 ) } , a . m o d e l s . l i n e P l u s B a r C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( v ) { r e t u r n v . each ( function(v ) { f u n c t i o n K ( a ) { v a r b = + ( \ " e \ " = = a ) , c = b ? 1 : - 1 , d = $ / 3 ; r e t u r n \ " M \ " + . 5 * c + \ " , \ " + d + \ " A 6 , 6 0 0 \ " + b + \ " \ " + 6 . 5 * c + \ " , \ " + ( d + 6 ) + \ " V \ " + ( 2 * d - 6 ) + \ " A 6 , 6 0 0 \ " + b + \ " \ " + . 5 * c + \ " , \ " + 2 * d + \ " Z M \ " + 2 . 5 * c + \ " , \ " + ( d + 8 ) + \ " V \ " + ( 2 * d - 8 ) + \ " M \ " + 4 . 5 * c + \ " , \ " + ( d + 8 ) + \ " V \ " + ( 2 * d - 8 ) } f u n c t i o n S ( ) { u . empty ( ) | | u . extent ( J ) , n a . data ( [u.empty( ) ? e . domain ( ) : J ] ) . each ( function(a,b ) { v a r c = e ( a[0] ) - e . range ( ) [ 0 ] , d = e . range ( ) [ 1 ] - e ( a[1] ) ; d 3 . select ( this ) . select ( \".left\").attr(\"width\",0>c?0:c),d3.select(this).select(\".right\").attr(\"x\",e(a[1])).attr(\"width\",0>d?0:d)})}function T( ) { J = u . empty ( ) ? n u l l : u . extent ( ) , c = u . empty ( ) ? e . domain ( ) : u . extent ( ) , L . brush ( {extent:c,brush:u} ) , S ( ) , l . width ( Y ) . height ( Z ) . color ( v.map(function(a,b ) { r e t u r n a . c o l o r | | D ( a,b ) } ) . filter ( function(a,b ) { r e t u r n ! v [ b ] . d i s a b l e d & & v [ b ] . b a r } ) ) , j . width ( Y ) . height ( Z ) . color ( v.map(function(a,b ) { r e t u r n a . c o l o r | | D ( a,b ) } ) . filter ( function(a,b ) { r e t u r n ! v [ b ] . d i s a b l e d & & ! v [ b ] . b a r } ) ) ; v a r b = g a . select ( \".nv-focus .nv-barsWrap\ ").datum(aa.length?aa.map(function(a,b){return{key:a.key,values:a.values.filter(function(a,b){return l.x()(a,b)>=c[0]&&l.x()(a,b)<=c[1]})}}):[{values:[]}]),h=ga.select(\" .nv-focus .nv-linesWrap\ ").datum(W(ba)?[{values:[]}]:ba.filter(function(a){return!a.disabled}).map(function(a,b){return{area:a.area,fillOpacity:a.fillOpacity,strokeWidth:a.strokeWidth,key:a.key,values:a.values.filter(function(a,b){return j.x()(a,b)>=c[0]&&j.x()(a,b)<=c[1]})}}));d=aa.length&&!R?l.xScale():j.xScale(),n.scale(d)._ticks(a.utils.calcTicksX(Y/100,v)).tickSize(-Z,0),n.domain([Math.ceil(c[0]),Math.floor(c[1])]),ga.select(\" .nv-x.nv-axis\ " ) . transition ( ) . duration ( M ) . call ( n ) , b . transition ( ) . duration ( M ) . call ( l ) , \
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
2022-04-02 18:58:23 +02:00
file ( APPEND "${METABENCH_DIR}/nvd3.js"
" \
2019-05-17 22:41:46 +02:00
h . transition ( ) . duration ( M ) . call ( j ) , g a . select ( \".nv-focus .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+f.range()[0]+\" ) \ " ) , p . scale ( f ) . _ticks ( a.utils.calcTicksY(Z/36,v ) ) . tickSize ( -Y,0 ) , q . scale ( g ) . _ticks ( a.utils.calcTicksY(Z/36,v ) ) , R ? q . tickSize ( ba.length?0:-Y,0 ) : q . tickSize ( aa.length?0:-Y,0 ) ; v a r i = a a . l e n g t h ? 1 : 0 , k = b a . l e n g t h & & ! W ( ba ) ? 1 : 0 , m = R ? k : i , o = R ? i : k ; g a . select ( \".nv-focus .nv-y1.nv-axis\ ").style(\" opacity\ ",m),ga.select(\" .nv-focus .nv-y2.nv-axis\ ").style(\" opacity\ ",o).attr(\" transform\ ",\" translate(\ "+d.range()[1]+\" ,0 ) \ " ) , g a . select ( \".nv-focus .nv-y1.nv-axis\ ").transition().duration(M).call(p),ga.select(\" .nv-focus .nv-y2.nv-axis\ ").transition().duration(M).call(q)}var X=d3.select(this);a.utils.initSVG(X);var Y=a.utils.availableWidth(z,X,w),Z=a.utils.availableHeight(A,X,w)-(F?I:0),$=I-y.top-y.bottom;if(b.update=function(){X.transition().duration(M).call(b)},b.container=this,N.setter(V(v),b.update).getter(U(v)).update(),N.disabled=v.map(function(a){return!!a.disabled}),!O){var _;O={};for(_ in N)N[_]instanceof Array?O[_]=N[_].slice(0):O[_]=N[_]}if(!(v&&v.length&&v.filter(function(a){return a.values.length}).length))return a.utils.noData(b,X),b;X.selectAll(\" .nv-noData\ ").remove();var aa=v.filter(function(a){return!a.disabled&&a.bar}),ba=v.filter(function(a){return!a.bar});d=aa.length&&!R?l.xScale():j.xScale(),e=o.scale(),f=R?j.yScale():l.yScale(),g=R?l.yScale():j.yScale(),h=R?k.yScale():m.yScale(),i=R?m.yScale():k.yScale();var ca=v.filter(function(a){return!a.disabled&&(R?!a.bar:a.bar)}).map(function(a){return a.values.map(function(a,b){return{x:B(a,b),y:C(a,b)}})}),da=v.filter(function(a){return!a.disabled&&(R?a.bar:!a.bar)}).map(function(a){return a.values.map(function(a,b){return{x:B(a,b),y:C(a,b)}})});d.range([0,Y]),e.domain(d3.extent(d3.merge(ca.concat(da)),function(a){return a.x})).range([0,Y]);var ea=X.selectAll(\" g.nv-wrap.nv-linePlusBar\ ").data([v]),fa=ea.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-linePlusBar\ ").append(\" g\ "),ga=ea.select(\" g\ ");fa.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ ");var ha=fa.append(\" g\ ").attr(\" class\ ",\" nv-focus\ " ) ; \
h a . append ( \"g\").attr(\"class\",\"nv-x nv-axis\ "),ha.append(\" g\ ").attr(\" class\ ",\" nv-y1 nv-axis\ "),ha.append(\" g\ ").attr(\" class\ ",\" nv-y2 nv-axis\ "),ha.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),ha.append(\" g\ ").attr(\" class\ ",\" nv-linesWrap\ ");var ia=fa.append(\" g\ ").attr(\" class\ ",\" nv-context\ ");if(ia.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),ia.append(\" g\ ").attr(\" class\ ",\" nv-y1 nv-axis\ "),ia.append(\" g\ ").attr(\" class\ ",\" nv-y2 nv-axis\ "),ia.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),ia.append(\" g\ ").attr(\" class\ ",\" nv-linesWrap\ "),ia.append(\" g\ ").attr(\" class\ ",\" nv-brushBackground\ "),ia.append(\" g\ ").attr(\" class\ ",\" nv-x nv-brush\ "),E){var ja=t.align()?Y/2:Y,ka=t.align()?ja:0;t.width(ja),ga.select(\" .nv-legendWrap\ ").datum(v.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,R?a.key=a.originalKey+(a.bar?Q:P):a.key=a.originalKey+(a.bar?P:Q),a})).call(t),x||t.height()===w.top||(w.top=t.height(),Z=a.utils.availableHeight(A,X,w)-I),ga.select(\" .nv-legendWrap\ ").attr(\" transform\ ",\" translate(\ "+ka+\" ,\ "+-w.top+\" ) \ " ) } e l s e g a . select ( \".nv-legendWrap\").selectAll(\"*\").remove();ea.attr(\"transform\",\"translate(\"+w.left+\",\"+w.top+\")\"),ga.select(\".nv-context\").style(\"display\",F?\"initial\":\"none\"),m.width(Y).height($).color(v.map(function(a,b){return a.color||D(a,b ) } ) . filter ( function(a,b ) { r e t u r n ! v [ b ] . d i s a b l e d & & v [ b ] . b a r } ) ) , k . width ( Y ) . height ( $ ) . color ( v.map(function(a,b ) { r e t u r n a . c o l o r | | D ( a,b ) } ) . filter ( function(a,b ) { r e t u r n ! v [ b ] . d i s a b l e d & & ! v [ b ] . b a r } ) ) ; v a r l a = g a . select ( \".nv-context .nv-barsWrap\ ").datum(aa.length?aa:[{values:[]}]),ma=ga.select(\" .nv-context .nv-linesWrap\ ").datum(W(ba)?[{values:[]}]:ba.filter(function(a){return!a.disabled}));ga.select(\" .nv-context\ ").attr(\" transform\ ",\" translate(0,\ "+(Z+w.bottom+y.top)+\" ) \ " ) , l a . transition ( ) . call ( m ) , m a . transition ( ) . call ( k ) , H & & ( o . _ticks ( a.utils.calcTicksX(Y/100,v ) ) . tickSize ( - $ ,0 ) , g a . select ( \".nv-context .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+h.range()[0]+\" ) \ " ) , g a . select ( \".nv-context .nv-x.nv-axis\ ").transition().call(o)),G&&(r.scale(h)._ticks($/36).tickSize(-Y,0),s.scale(i)._ticks($/36).tickSize(aa.length?0:-Y,0),ga.select(\" .nv-context \
. n v - y 3 . n v - a x i s \ " ) . style ( \"opacity\",aa.length?1:0).attr(\"transform\",\"translate(0,\"+e.range()[0]+\")\"),ga.select(\".nv-context .nv-y2.nv-axis\ ").style(\" opacity\ ",ba.length?1:0).attr(\" transform\ ",\" translate(\ "+e.range()[1]+\" ,0 ) \ " ) , g a . select ( \".nv-context .nv-y1.nv-axis\ ").transition().call(r),ga.select(\" .nv-context .nv-y2.nv-axis\ ").transition().call(s)),u.x(e).on(\" brush\ ",T),J&&u.extent(J);var na=ga.select(\" .nv-brushBackground\ ").selectAll(\" g\ ").data([J||u.extent()]),oa=na.enter().append(\" g\ ");oa.append(\" rect\ ").attr(\" class\ ",\" left\ ").attr(\" x\ ",0).attr(\" y\ ",0).attr(\" height\ ",$),oa.append(\" rect\ ").attr(\" class\ ",\" right\ ").attr(\" x\ ",0).attr(\" y\ ",0).attr(\" height\ ",$);var pa=ga.select(\" .nv-x.nv-brush\ ").call(u);pa.selectAll(\" rect\ ").attr(\" height\ ",$),pa.selectAll(\" .resize\ ").append(\" path\ ").attr(\" d\ ",K),t.dispatch.on(\" stateChange\ ",function(a){for(var c in a)N[c]=a[c];L.stateChange(N),b.update()}),L.on(\" changeState\ ",function(a){\" undefined\ "!=typeof a.disabled&&(v.forEach(function(b,c){b.disabled=a.disabled[c]}),N.disabled=a.disabled),b.update()}),T()}),b}var c,d,e,f,g,h,i,j=a.models.line(),k=a.models.line(),l=a.models.historicalBar(),m=a.models.historicalBar(),n=a.models.axis(),o=a.models.axis(),p=a.models.axis(),q=a.models.axis(),r=a.models.axis(),s=a.models.axis(),t=a.models.legend(),u=d3.svg.brush(),v=a.models.tooltip(),w={top:30,right:30,bottom:30,left:60},x=null,y={top:0,right:30,bottom:20,left:60},z=null,A=null,B=function(a){return a.x},C=function(a){return a.y},D=a.utils.defaultColor(),E=!0,F=!0,G=!1,H=!0,I=50,J=null,K=null,L=d3.dispatch(\" brush\ ",\" stateChange\ ",\" changeState\ "),M=0,N=a.utils.state(),O=null,P=\" ( left axis ) \",Q=\" ( right axis ) \",R=!1;j.clipEdge(!0),k.interactive(!1),k.pointActive(function(a){return!1}),n.orient(\"bottom\").tickPadding(5),p.orient(\"left\"),q.orient(\"right\"),o.orient(\"bottom\").tickPadding(5),r.orient(\"left\"),s.orient(\"right\"),v.headerEnabled(!0).headerFormatter(function(a,b){return n.tickFormat( ) ( a , b ) } ) ; v a r S = function ( ) { r e t u r n R ? { m a i n : q , f o c u s : s } : { m a i n : p , f o c u s : r } } , T = function ( ) { r e t u r n R ? { m a i n : p , f o c u s : r } : { m a i n : q , f o c u s : s } } , U = function ( a ) { r e t u r n \
function ( ) { r e t u r n { a c t i v e : a . map ( function(a ) { r e t u r n ! a . d i s a b l e d } ) } } } , V = function ( a ) { r e t u r n function ( b ) { v o i d 0 ! = = b . a c t i v e & & a . forEach ( function(a,c ) { a . d i s a b l e d = ! b . a c t i v e [ c ] } ) } } , W = function ( a ) { r e t u r n a . every ( function(a ) { r e t u r n a . d i s a b l e d } ) } ; r e t u r n j . d i s p a t c h . on ( \"elementMouseover.tooltip\",function(a){v.duration(100).valueFormatter(function(a,b){return T( ) . m a i n . tickFormat ( ) ( a , b ) } ) . data ( a ) . hidden ( !1 ) } ) , j . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){v.hidden(!0)}),l.dispatch.on(\"elementMouseover.tooltip\",function(a){a.value=b.x()(a.data),a.series={value:b.y()(a.data),color:a.color},v.duration(0).valueFormatter(function(a,b){return S( ) . m a i n . tickFormat ( ) ( a , b ) } ) . data ( a ) . hidden ( !1 ) } ) , l . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){v.hidden(!0)}),l.dispatch.on(\"elementMousemove.tooltip\",function(a){v()}),b.dispatch=L,b.legend=t,b.lines=j,b.lines2=k,b.bars=l,b.bars2=m,b.xAxis=n,b.x2Axis=o,b.y1Axis=p,b.y2Axis=q,b.y3Axis=r,b.y4Axis=s,b.tooltip=v,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return z},set:function(a ) { z = a } } , h e i g h t : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n E } , s e t : function ( a ) { E = a } } , b r u s h E x t e n t : { g e t : function ( ) { r e t u r n J } , s e t : function ( a ) { J = a } } , n o D a t a : { g e t : function ( ) { r e t u r n K } , s e t : function ( a ) { K = a } } , f o c u s E n a b l e : { g e t : function ( ) { r e t u r n F } , s e t : function ( a ) { F = a } } , f o c u s H e i g h t : { g e t : function ( ) { r e t u r n I } , s e t : function ( a ) { I = a } } , f o c u s S h o w A x i s X : { g e t : function ( ) { r e t u r n H } , s e t : function ( a ) { H = a } } , f o c u s S h o w A x i s Y : { g e t : function ( ) { r e t u r n G } , s e t : function ( a ) { G = a } } , l e g e n d L e f t A x i s H i n t : { g e t : function ( ) { r e t u r n P } , s e t : function ( a ) { P = a } } , l e g e n d R i g h t A x i s H i n t : { g e t : function ( ) { r e t u r n Q } , s e t : function ( a ) { Q = a } } , m a r g i n : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( w . t o p = a . t o p , x = a . t o p ) , w . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : w . r i g h t , w . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : w . b o t t o m , w . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : w . l e f t } } , f o c u s M a r g i n : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y . t o p = v o i d 0 ! = = a . t o p ? a . t o p : y . t o p , y . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : y . r i g h t , y . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : y . b o t t o m , \
y . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : y . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n M } , s e t : function ( a ) { M = a } } , c o l o r : { g e t : function ( ) { r e t u r n D } , s e t : function ( b ) { D = a . u t i l s . getColor ( b ) , t . color ( D ) } } , x : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a , j . x ( a ) , k . x ( a ) , l . x ( a ) , m . x ( a ) } } , y : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a , j . y ( a ) , k . y ( a ) , l . y ( a ) , m . y ( a ) } } , s w i t c h Y A x i s O r d e r : { g e t : function ( ) { r e t u r n R } , s e t : function ( a ) { if ( R!==a ) { v a r b = p ; p = q , q = b ; v a r c = r ; r = s , s = c } R = a , p . orient ( \"left\"),q.orient(\"right\"),r.orient(\"left\"),s.orient(\"right\")}}}),a.utils.inheritOptions(b,j),a.utils.initOptions(b),b},a.models.multiBar=function(){\"use strict\ " ;function b(F ) { r e t u r n D . reset ( ) , F . each ( function(b ) { v a r F = k - j . l e f t - j . r i g h t , G = l - j . t o p - j . b o t t o m ; p = d 3 . select ( this ) , a . u t i l s . initSVG ( p ) ; v a r H = 0 ; if ( x&&b.length&&(x=[{values:b[0].values.map(function(a ) { r e t u r n { x : a . x , y : 0 , s e r i e s : a . s e r i e s , s i z e : . 0 1 } } ) } ] ) , u ) { v a r I = d 3 . l a y o u t . stack ( ) . offset ( v ) . values ( function(a ) { r e t u r n a . v a l u e s } ) . y ( r ) ( ! b . l e n g t h & & x ? x : b ) ; I . forEach ( function(a,c ) { a . n o n S t a c k a b l e ? ( b [ c ] . n o n S t a c k a b l e S e r i e s = H + + , I [ c ] = b [ c ] ) : c > 0 & & I [ c - 1 ] . n o n S t a c k a b l e & & I [ c ] . v a l u e s . map ( function(a,b ) { a . y 0 - = I [ c - 1 ] . v a l u e s [ b ] . y , a . y 1 = a . y 0 + a . y } ) } ) , b = I } b . forEach ( function(a,b ) { a . v a l u e s . forEach ( function(c ) { c . s e r i e s = b , c . k e y = a . k e y } ) } ) , u & & b . l e n g t h > 0 & & b [ 0 ] . v a l u e s . map ( function(a,c ) { v a r d = 0 , e = 0 ; b . map ( function(a,f ) { if ( !b[f].nonStackable ) { v a r g = a . v a l u e s [ c ] ; g . s i z e = M a t h . abs ( g.y ) , g . y < 0 ? ( g . y 1 = e , e - = g . s i z e ) : ( g . y 1 = g . s i z e + d , d + = g . s i z e ) } } ) } ) ; v a r J = d & & e ? [ ] : b . map ( function(a,b ) { r e t u r n a . v a l u e s . map ( function(a,c ) { r e t u r n { x : q ( a,c ) , y : r ( a,c ) , y 0 : a . y 0 , y 1 : a . y 1 , i d x : b } } ) } ) ; m . domain ( d||d3.merge(J ) . map ( function(a ) { r e t u r n a . x } ) ) . rangeBands ( f||[0,F],A ) , n . domain ( e||d3.extent(d3.merge(J ) . map ( function(a ) { v a r c = a . y ; r e t u r n u & & ! b [ a . i d x ] . n o n S t a c k a b l e & & ( c = a . y > 0 ? a . y 1 : a . y 1 + a . y ) , c } ) . concat ( s ) ) ) . range ( g||[G,0] ) , m . domain ( ) [ 0 ] = = = m . domain ( ) [ 1 ] & & ( m . domain ( ) [ 0 ] ? m . domain ( [m.domain( ) [ 0 ] - . 0 1 * m . domain ( ) [ 0 ] , m . domain ( ) [ 1 ] + . 0 1 * m . domain ( ) [ 1 ] ] ) : m . domain ( [-1,1] ) ) , n . domain ( ) [ 0 ] = = = n . domain ( ) [ 1 ] & & ( n . domain ( ) [ 0 ] ? n . domain ( [n.domain( ) [ 0 ] + . 0 1 * n . domain ( ) [ 0 ] , n . domain ( ) [ 1 ] - . 0 1 * n . domain ( ) [ 1 ] ] ) : n . domain ( [-1,1] ) ) , h = h | | m , i = i | | n ; v a r \
K = p . selectAll ( \"g.nv-wrap.nv-multibar\").data([b]),L=K.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-multibar\ "),M=L.append(\" defs\ "),N=L.append(\" g\ "),O=K.select(\" g\ ");N.append(\" g\ ").attr(\" class\ ",\" nv-groups\ "),K.attr(\" transform\ ",\" translate(\ "+j.left+\" ,\ "+j.top+\" ) \ " ) , M . append ( \"clipPath\").attr(\"id\",\"nv-edge-clip-\"+o).append(\"rect\"),K.select(\"#nv-edge-clip-\"+o+\" rect\ ").attr(\" width\ ",F).attr(\" height\ ",G),O.attr(\" clip-path\ ",t?\" url( #nv-edge-clip-\"+o+\")\":\"\");var P=K.select(\".nv-groups\").selectAll(\".nv-group\").data(function(a){return a},function(a,b){return b});P.enter().append(\"g\").style(\"stroke-opacity\",1e-6).style(\"fill-opacity\",1e-6);var Q=D.transition(P.exit().selectAll(\"rect.nv-bar\"),\"multibarExit\",Math.min(100,z)).attr(\"y\",function(a,c,d){var e=i(0)||0;return u&&b[a.series]&&!b[a.series].nonStackable&&(e=i(a.y0)),e}).attr(\"height\",0).remove();Q.delay&&Q.delay(function(a,b){var c=b*(z/(E+1))-b;return c}),P.attr(\"class\",function(a,b){return\"nv-group nv-series-\"+b}).classed(\"hover\",function(a){return a.hover}).style(\"fill\",function(a,b){return w(a,b)}).style(\"stroke\",function(a,b){\
r e t u r n w ( a,b ) } ) , P . style ( \"stroke-opacity\",1).style(\"fill-opacity\",B);var R=P.selectAll(\ "rect.nv-bar\" ) . data ( function(a ) { r e t u r n x & & ! b . l e n g t h ? x . v a l u e s : a . v a l u e s } ) ; R . exit ( ) . remove ( ) ; R . enter ( ) . append ( \"rect\").attr(\"class\",function(a,b){return r(a,b ) < 0 ? \ " n v - b a r n e g a t i v e \ " : \ " n v - b a r p o s i t i v e \ " } ) . attr ( \"x\",function(a,c,d){return u&&!b[d].nonStackable?0:d*m.rangeBand( ) / b . l e n g t h } ) . attr ( \"y\",function(a,c,d){return i(u&&!b[d].nonStackable?a.y0:0 ) | | 0 } ) . attr ( \"height\",0).attr(\"width\",function(a,c,d){return m.rangeBand( ) / ( u & & ! b [ d ] . n o n S t a c k a b l e ? 1 : b . l e n g t h ) } ) . attr ( \"transform\",function(a,b){return\"translate(\"+m(q(a,b))+\",0)\"});R.style(\"fill\",function(a,b,c){return w(a,c,b ) } ) . style ( \"stroke\",function(a,b,c){return w(a,c,b ) } ) . on ( \"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0),C.elementMouseover({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1),C.elementMouseout({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mousemove\",function(a,b){C.elementMousemove({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"click\",function(a,b){var c=this;C.elementClick({data:a,index:b,color:d3.select(this ) . style ( \"fill\"),event:d3.event,element:c}),d3.event.stopPropagation()}).on(\"dblclick\",function(a,b){C.elementDblClick({data:a,index:b,color:d3.select(this).style(\"fill\")}),d3.event.stopPropagation()}),R.attr(\"class\",function(a,b){return r(a,b ) < 0 ? \ " n v - b a r n e g a t i v e \ " : \ " n v - b a r p o s i t i v e \ " } ) . attr ( \"transform\",function(a,b){return\"translate(\"+m(q(a,b))+\",0)\"}),y&&(c||(c=b.map(function(){return!0})),R.style(\"fill\",function(a,b,d){return d3.rgb(y(a,b ) ) . darker ( c.map(function(a,b ) { r e t u r n b } ) . filter ( function(a,b ) { r e t u r n ! c [ b ] } ) [ d ] ) . toString ( ) } ) . style ( \"stroke\",function(a,b,d){return d3.rgb(y(a,b ) ) . darker ( c.map(function(a,b ) { r e t u r n b } ) . filter ( function(a,b ) { r e t u r n ! c [ b ] } ) [ d ] ) . toString ( ) } ) ) ; v a r S = R . watchTransition ( D,\ "multibar\" ,Math.min(250,z ) ) . delay ( function(a,c ) { r e t u r n c * z / b [ 0 ] . v a l u e s . l e n g t h } ) ; u ? S . attr ( \"y\",function(a,c,d){var e=0;return e=b[d].nonStackable?r(a,c ) < 0 ? n ( 0 ) : n ( 0 ) - n ( r(a,c ) ) < - 1 ? n ( 0 ) - 1 : n ( r(a,\
c ) ) | | 0 : n ( a.y1 ) } ) . attr ( \"height\",function(a,c,d){return b[d].nonStackable?Math.max(Math.abs(n(r(a,c ) ) - n ( 0 ) ) , 0 ) | | 0 : M a t h . max ( Math.abs(n(a.y+a.y0 ) - n ( a.y0 ) ) , 0 ) } ) . attr ( \"x\",function(a,c,d){var e=0;return b[d].nonStackable&&(e=a.series*m.rangeBand( ) / b . l e n g t h , b . l e n g t h ! = = H & & ( e = b [ d ] . n o n S t a c k a b l e S e r i e s * m . rangeBand ( ) / ( 2 * H ) ) ) , e } ) . attr ( \"width\",function(a,c,d){if(b[d].nonStackable){var e=m.rangeBand( ) / H ; r e t u r n b . l e n g t h ! = = H & & ( e = m . rangeBand ( ) / ( 2 * H ) ) , e } r e t u r n m . rangeBand ( ) } ) : S . attr ( \"x\",function(a,c){return a.series*m.rangeBand( ) / b . l e n g t h } ) . attr ( \"width\",m.rangeBand()/b.length).attr(\"y\",function(a,b){return r(a,b ) < 0 ? n ( 0 ) : n ( 0 ) - n ( r(a,b ) ) < 1 ? n ( 0 ) - 1 : n ( r(a,b ) ) | | 0 } ) . attr ( \"height\",function(a,b){return Math.max(Math.abs(n(r(a,b ) ) - n ( 0 ) ) , 1 ) | | 0 } ) , h = m . copy ( ) , i = n . copy ( ) , b [ 0 ] & & b [ 0 ] . v a l u e s & & ( E = b [ 0 ] . v a l u e s . l e n g t h ) } ) , D . renderEnd ( \"multibar immediate\ "),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=d3.scale.ordinal(),n=d3.scale.linear(),o=Math.floor(1e4*Math.random()),p=null,q=function(a){return a.x},r=function(a){return a.y},s=[0],t=!0,u=!1,v=\" zero\ ",w=a.utils.defaultColor(),x=!1,y=null,z=500,A=.1,B=.75,C=d3.dispatch(\" chartClick\ ",\" elementClick\ ",\" elementDblClick\ ",\" elementMouseover\ ",\" elementMouseout\ ",\" elementMousemove\ ",\" renderEnd\ " ) , D = a . u t i l s . renderWatch ( C,z ) , E = 0 ; r e t u r n b . d i s p a t c h = C , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , h e i g h t : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , x : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , y : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , x S c a l e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , y S c a l e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , x R a n g e : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , y R a n g e : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , f o r c e Y : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , s t a c k e d : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , s t a c k O f f s e t : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , \
c l i p E d g e : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , d i s a b l e d : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c = a } } , i d : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , h i d e a b l e : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , g r o u p S p a c i n g : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , f i l l O p a c i t y : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , m a r g i n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j . t o p = v o i d 0 ! = = a . t o p ? a . t o p : j . t o p , j . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : j . r i g h t , j . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : j . b o t t o m , j . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : j . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a , D . reset ( z ) } } , c o l o r : { g e t : function ( ) { r e t u r n w } , s e t : function ( b ) { w = a . u t i l s . getColor ( b ) } } , b a r C o l o r : { g e t : function ( ) { r e t u r n y } , s e t : function ( b ) { y = b ? a . u t i l s . getColor ( b ) : n u l l } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . m u l t i B a r C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( C ) { r e t u r n H . reset ( ) , H . models ( e ) , t & & H . models ( f ) , u & & H . models ( g ) , C . each ( function(C ) { v a r H = d 3 . select ( this ) ; a . u t i l s . initSVG ( H ) ; v a r L = a . u t i l s . availableWidth ( n,H,l ) , M = a . u t i l s . availableHeight ( o,H,l ) ; if ( b.update=function( ) { 0 = = = F ? H . call ( b ) : H . transition ( ) . duration ( F ) . call ( b ) } , b . c o n t a i n e r = t h i s , A . setter ( K(C ) , b . u p d a t e ) . getter ( J(C ) ) . update ( ) , A . d i s a b l e d = C . map ( function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , ! B ) { v a r N ; B = { } ; for ( N in A ) A [ N ] i n s t a n c e o f A r r a y ? B [ N ] = A [ N ] . slice ( 0 ) : B [ N ] = A [ N ] } if ( !(C&&C.length&&C.filter(function(a ) { r e t u r n a . v a l u e s . l e n g t h } ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( b,H ) , b ; H . selectAll ( \".nv-noData\").remove(),c=e.xScale(),d=e.yScale();var O=H.selectAll(\ "g.nv-wrap.nv-multiBarWithLegend\" ) . data ( [C] ) , P = O . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-multiBarWithLegend\ ").append(\" g\ "),Q=O.select(\" g\ ");if(P.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),P.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),P.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),P.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),P.append(\" g\ ").attr(\" class\ ",\" nv-controlsWrap\ "),P.append(\" g\ ").attr(\" class\ ",\" nv-interactive\ "),s?(i.width(L-E()),Q.select(\" .nv-legendWrap\ ").datum(C).call(i),m||i.height()===l.top||(l.top=i.height(),M=a.utils.availableHeight(o,H,l)),Q.select(\" .nv-legendWrap\ ").attr(\" transform\ " ,\
\ " translate ( \"+E()+\",\"+-l.top+\")\")):Q.select(\".nv-legendWrap\").selectAll(\"*\").remove(),q){var R=[{key:r.grouped||\ "Grouped\" ,disabled:e.stacked( ) } , { k e y : r . s t a c k e d | | \ " S t a c k e d \ " , d i s a b l e d : ! e . stacked ( ) } ] ; j . width ( E( ) ) . color ( [\ "#444\" ,\ "#444\" ,\ "#444\" ] ) , Q . select ( \".nv-controlsWrap\").datum(R).attr(\"transform\",\"translate(0,\"+-l.top+\")\").call(j)}else Q.select(\ ".nv-controlsWrap\" ) . selectAll ( \"*\").remove();O.attr(\"transform\",\"translate(\"+l.left+\",\"+l.top+\")\"),v&&Q.select(\".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+L+\",0)\"),e.disabled(C.map(function(a){return a.disabled} ) ) . width ( L ) . height ( M ) . color ( C.map(function(a,b ) { r e t u r n a . c o l o r | | p ( a,b ) } ) . filter ( function(a,b ) { r e t u r n ! C [ b ] . d i s a b l e d } ) ) ; v a r S = Q . select ( \".nv-barsWrap\").datum(C.filter(function(a){return!a.disabled}));if(S.call(e),t){f.scale(c)._ticks(a.utils.calcTicksX(L/100,C)).tickSize(-M,0),Q.select(\".nv-x.nv-axis\").attr(\"transform\",\"translate(0,\"+d.range()[0]+\")\"),Q.select(\".nv-x.nv-axis\").call(f);var T=Q.select(\ ".nv-x.nv-axis > g\" ) . selectAll ( \"g\");if(T.selectAll(\"line, text\ ").style(\" opacity\ ",1),x){var U=function(a,b){return\" translate(\ "+a+\" ,\ "+b+\" ) \ " } , V = 5 , W = 1 7 ; T . selectAll ( \"text\").attr(\"transform\",function(a,b,c){return U(0,c%2==0?V:W ) } ) ; v a r X = d 3 . selectAll ( \".nv-x.nv-axis .nv-wrap g g text\ ")[0].length;Q.selectAll(\" .nv-x.nv-axis .nv-axisMaxMin text\ ").attr(\" transform\ ",function(a,b){return U(0,0===b||X%2!==0?W:V)})}y&&Q.selectAll(\" .tick text\ ").call(a.utils.wrapTicks,b.xAxis.rangeBand()),w&&T.filter(function(a,b){return b%Math.ceil(C[0].values.length/(L/100))!==0}).selectAll(\" text, line\ ").style(\" opacity\ ",0),z&&T.selectAll(\" .tick text\ ").attr(\" transform\ ",\" rotate(\ "+z+\" 0,0 ) \ " ) . style ( \"text-anchor\",z>0?\"start\":\"end\"),Q.select(\".nv-x.nv-axis\").selectAll(\"g.nv-axisMaxMin text\ ").style(\" opacity\ ",1)}u&&(g.scale(d)._ticks(a.utils.calcTicksY(M/36,C)).tickSize(-L,0),Q.select(\" .nv-y.nv-axis\ ").call(g)),G&&(h.width(L).height(M).margin({left:l.left,top:l.top}).svgContainer(H).xScale(c),O.select(\" .nv-interactive\ ").call(h)),i.dispatch.on(\" stateChange\ " ,function(a ) { for ( var c in a ) A [ c ] = a [ c ] ; D . stateChange ( A ) , b . update ( ) } ) , \
j . d i s p a t c h . on ( \"legendClick\",function(a,c){if(a.disabled){switch(R=R.map(function(a){return a.disabled=!0,a} ) , a . d i s a b l e d = ! 1 , a . k e y ) { c a s e \ " G r o u p e d \ " : c a s e r . g r o u p e d : e . stacked ( !1 ) ; b r e a k ; c a s e \ " S t a c k e d \ " : c a s e r . s t a c k e d : e . stacked ( !0 ) } A . s t a c k e d = e . stacked ( ) , D . stateChange ( A ) , b . update ( ) } } ) , D . on ( \"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(C.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , A . d i s a b l e d = a . d i s a b l e d ) , \ " u n d e f i n e d \ " ! = t y p e o f a . s t a c k e d & & ( e . stacked ( a.stacked ) , A . s t a c k e d = a . s t a c k e d , I = a . s t a c k e d ) , b . update ( ) } ) , G ? ( h . d i s p a t c h . on ( \"elementMousemove\",function(a){if(void 0!=a.pointXValue ) { v a r d , e , f , g , i = [ ] ; C . filter ( function(a,b ) { r e t u r n a . s e r i e s I n d e x = b , ! a . d i s a b l e d } ) . forEach ( function(h,j ) { e = c . domain ( ) . indexOf ( a.pointXValue ) ; v a r k = h . v a l u e s [ e ] ; v o i d 0 ! = = k & & ( g = k . x , v o i d 0 = = = d & & ( d = k ) , v o i d 0 = = = f & & ( f = a . m o u s e X ) , i . push ( {key:h.key,value:b.y( ) ( k , e ) , c o l o r : p ( h,h.seriesIndex ) , d a t a : h . v a l u e s [ e ] } ) ) } ) , h . t o o l t i p . data ( {value:g,index:e,series:i} ) ( ) , h . renderGuideLine ( f ) } } ) , h . d i s p a t c h . on ( \"elementMouseout\",function(a){h.tooltip.hidden(!0)})):(e.dispatch.on(\"elementMouseover.tooltip\",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},k.data(a).hidden(!1)}),e.dispatch.on(\"elementMouseout.tooltip\",function(a){k.hidden(!0)}),e.dispatch.on(\"elementMousemove.tooltip\",function(a){k()}))}),H.renderEnd(\"multibarchart immediate\ "),b}var c,d,e=a.models.multiBar(),f=a.models.axis(),g=a.models.axis(),h=a.interactiveGuideline(),i=a.models.legend(),j=a.models.legend(),k=a.models.tooltip(),l={top:30,right:20,bottom:50,left:60},m=null,n=null,o=null,p=a.utils.defaultColor(),q=!0,r={},s=!0,t=!0,u=!0,v=!1,w=!0,x=!1,y=!1,z=0,A=a.utils.state(),B=null,C=null,D=d3.dispatch(\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),E=function(){return q?180:0},F=250,G=!1;A.stacked=!1,e.stacked(!1),f.orient(\" bottom\ ").tickPadding(7).showMaxMin(!1).tickFormat(function(a){return a}),g.orient(v?\" right\ ":\" left\ ").tickFormat(d3.format(\" ,.1f\ " ) ) , k . duration ( 0 ) . valueFormatter ( function(a,b ) { r e t u r n g . tickFormat ( ) ( a , b ) } ) . headerFormatter ( function(a,b ) { r e t u r n f . tickFormat ( ) ( a , \
b ) } ) , h . t o o l t i p . valueFormatter ( function(a,b ) { r e t u r n n u l l = = a ? \ " N / A \ " : g . tickFormat ( ) ( a , b ) } ) . headerFormatter ( function(a,b ) { r e t u r n f . tickFormat ( ) ( a , b ) } ) , h . t o o l t i p . valueFormatter ( function(a,b ) { r e t u r n n u l l = = a ? \ " N / A \ " : g . tickFormat ( ) ( a , b ) } ) . headerFormatter ( function(a,b ) { r e t u r n f . tickFormat ( ) ( a , b ) } ) , h . t o o l t i p . duration ( 0 ) . valueFormatter ( function(a,b ) { r e t u r n g . tickFormat ( ) ( a , b ) } ) . headerFormatter ( function(a,b ) { r e t u r n f . tickFormat ( ) ( a , b ) } ) , j . updateState ( !1 ) ; v a r H = a . u t i l s . renderWatch ( D ) , I = ! 1 , J = function ( a ) { r e t u r n function ( ) { r e t u r n { a c t i v e : a . map ( function(a ) { r e t u r n ! a . d i s a b l e d } ) , s t a c k e d : I } } } , K = function ( a ) { r e t u r n function ( b ) { v o i d 0 ! = = b . s t a c k e d & & ( I = b . s t a c k e d ) , v o i d 0 ! = = b . a c t i v e & & a . forEach ( function(a,c ) { a . d i s a b l e d = ! b . a c t i v e [ c ] } ) } } ; r e t u r n b . d i s p a t c h = D , b . m u l t i b a r = e , b . l e g e n d = i , b . c o n t r o l s = j , b . x A x i s = f , b . y A x i s = g , b . s t a t e = A , b . t o o l t i p = k , b . i n t e r a c t i v e L a y e r = h , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , h e i g h t : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , s h o w C o n t r o l s : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , c o n t r o l L a b e l s : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , n o D a t a : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a } } , r e d u c e X T i c k s : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , r o t a t e L a b e l s : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a } } , s t a g g e r L a b e l s : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , w r a p L a b e l s : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = ! ! a } } , m a r g i n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( l . t o p = a . t o p , m = a . t o p ) , l . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : l . r i g h t , l . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : l . b o t t o m , l . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : l . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n F } , s e t : function ( a ) { F = a , e . duration ( F ) , f . duration ( F ) , g . duration ( F ) , H . reset ( F ) } } , c o l o r : { g e t : function ( ) { r e t u r n p } , s e t : function ( b ) { p = a . u t i l s . getColor ( b ) , \
i . color ( p ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a , g . orient ( v?\ "right\" :\ "left\" ) } } , u s e I n t e r a c t i v e G u i d e l i n e : { g e t : function ( ) { r e t u r n G } , s e t : function ( a ) { G = a } } , b a r C o l o r : { g e t : function ( ) { r e t u r n e . b a r C o l o r } , s e t : function ( a ) { e . barColor ( a ) , i . color ( function(a,b ) { r e t u r n d 3 . rgb ( \"#ccc\").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiBarHorizontal=function(){\"use strict\ ";function b(m){return F.reset(),m.each(function(b){var m=k-j.left-j.right,D=l-j.top-j.bottom;n=d3.select(this),a.utils.initSVG(n),w&&(b=d3.layout.stack().offset(\" zero\ ").values(function(a){return a.values}).y(r)(b)),b.forEach(function(a,b){a.values.forEach(function(c){c.series=b,c.key=a.key})}),w&&b[0].values.map(function(a,c){var d=0,e=0;b.map(function(a){var b=a.values[c];b.size=Math.abs(b.y),b.y<0?(b.y1=e-b.size,e-=b.size):(b.y1=d,d+=b.size)})});var G=d&&e?[]:b.map(function(a){return a.values.map(function(a,b){return{x:q(a,b),y:r(a,b),y0:a.y0,y1:a.y1}})});o.domain(d||d3.merge(G).map(function(a){return a.x})).rangeBands(f||[0,D],A),p.domain(e||d3.extent(d3.merge(G).map(function(a){return w?a.y>0?a.y1+a.y:a.y1:a.y}).concat(t))),x&&!w?p.range(g||[p.domain()[0]<0?z:0,m-(p.domain()[1]>0?z:0)]):p.range(g||[0,m]),h=h||o,i=i||d3.scale.linear().domain(p.domain()).range([p(0),p(0)]);var H=d3.select(this).selectAll(\" g.nv-wrap.nv-multibarHorizontal\ ").data([b]),I=H.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-multibarHorizontal\ "),J=(I.append(\" defs\ "),I.append(\" g\ "));H.select(\" g\ ");J.append(\" g\ ").attr(\" class\ ",\" nv-groups\ "),H.attr(\" transform\ ",\" translate(\ "+j.left+\" ,\ "+j.top+\" ) \ " ) ; v a r K = H . select ( \".nv-groups\").selectAll(\".nv-group\").data(function(a){return a},function(a,b ) { r e t u r n b } ) ; K . enter ( ) . append ( \"g\").style(\"stroke-opacity\",1e-6).style(\"fill-opacity\",1e-6),K.exit().watchTransition(F,\"multibarhorizontal: exit groups\ ").style(\" stroke-opacity\ ",1e-6).style(\" fill-opacity\ ",1e-6).remove(),K.attr(\" class\ ",function(a,b){return\" nv-group nv-series-\ "+b}).classed(\" hover\ ",function(a){return a.hover}).style(\" fill\ " ,function(a,\
b ) { r e t u r n u ( a,b ) } ) . style ( \"stroke\",function(a,b){return u(a,b ) } ) , K . watchTransition ( F,\ "multibarhorizontal: groups\" ) . style ( \"stroke-opacity\",1).style(\"fill-opacity\",B);var L=K.selectAll(\ "g.nv-bar\" ) . data ( function(a ) { r e t u r n a . v a l u e s } ) ; L . exit ( ) . remove ( ) ; v a r M = L . enter ( ) . append ( \"g\").attr(\"transform\",function(a,c,d){return\"translate(\"+i(w?a.y0:0)+\",\"+(w?0:d*o.rangeBand()/b.length+o(q(a,c)))+\")\"});M.append(\"rect\").attr(\"width\",0).attr(\"height\",o.rangeBand()/(w?1:b.length)),L.on(\"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0),E.elementMouseover({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1),E.elementMouseout({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mouseout\",function(a,b){E.elementMouseout({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"mousemove\",function(a,b){E.elementMousemove({data:a,index:b,color:d3.select(this).style(\"fill\")})}).on(\"click\",function(a,b){var c=this;E.elementClick({data:a,index:b,color:d3.select(this ) . style ( \"fill\"),event:d3.event,element:c}),d3.event.stopPropagation()}).on(\"dblclick\",function(a,b){E.elementDblClick({data:a,index:b,color:d3.select(this).style(\"fill\")}),d3.event.stopPropagation()}),s(b[0],0)&&(M.append(\"polyline\"),L.select(\"polyline\").attr(\"fill\",\"none\").attr(\"points\",function(a,c){var d=s(a,c ) , e = . 8 * o . rangeBand ( ) / ( 2 * ( w ? 1 : b . l e n g t h ) ) ; d = d . l e n g t h ? d : [ - M a t h . abs ( d ) , M a t h . abs ( d ) ] , d = d . map ( function(a ) { r e t u r n p ( a ) - p ( 0 ) } ) ; v a r f = [ [ d [ 0 ] , - e ] , [ d [ 0 ] , e ] , [ d [ 0 ] , 0 ] , [ d [ 1 ] , 0 ] , [ d [ 1 ] , - e ] , [ d [ 1 ] , e ] ] ; r e t u r n f . map ( function(a ) { r e t u r n a . join ( \",\")}).join(\" \")}).attr(\"transform\",function(a,c){var d=o.rangeBand( ) / ( 2 * ( w ? 1 : b . l e n g t h ) ) ; r e t u r n \ " translate ( \"+(r(a,c)<0?0:p(r(a,c))-p(0))+\", \"+d+\")\"})),M.append(\"text\"),x&&!w?(L.select(\"text\").attr(\"text-anchor\",function(a,b){return r(a,b ) < 0 ? \ " e n d \ " : \ " s t a r t \ " } ) . attr ( \"y\",o.rangeBand()/(2*b.length)).attr(\"dy\",\".32em\").text(function(a,b){var c=C(r(a,b ) ) , d = s ( a,b ) ; r e t u r n v o i d 0 = = = d ? c : d . l e n g t h ? c + \ " + \ " + C ( Math.abs(d[1] ) ) + \ " - \ " + C ( Math.abs(d[0] ) ) : c + \ " ± \ " + C ( Math.abs(d ) ) } ) , L . watchTransition ( F,\
\ " m u l t i b a r h o r i z o n t a l : b a r s \ " ) . select ( \"text\").attr(\"x\",function(a,b){return r(a,b ) < 0 ? - 4 : p ( r(a,b ) ) - p ( 0 ) + 4 } ) ) : L . selectAll ( \"text\").text(\"\"),y&&!w?(M.append(\"text\").classed(\"nv-bar-label\",!0),L.select(\"text.nv-bar-label\").attr(\"text-anchor\",function(a,b){return r(a,b ) < 0 ? \ " s t a r t \ " : \ " e n d \ " } ) . attr ( \"y\",o.rangeBand()/(2*b.length)).attr(\"dy\",\".32em\").text(function(a,b){return q(a,b ) } ) , L . watchTransition ( F,\ "multibarhorizontal: bars\" ) . select ( \"text.nv-bar-label\").attr(\"x\",function(a,b){return r(a,b ) < 0 ? p ( 0 ) - p ( r(a,b ) ) + 4 : - 4 } ) ) : L . selectAll ( \"text.nv-bar-label\").text(\"\"),L.attr(\"class\",function(a,b){return r(a,b ) < 0 ? \ " n v - b a r n e g a t i v e \ " : \ " n v - b a r p o s i t i v e \ " } ) , v & & ( c | | ( c = b . map ( function( ) { r e t u r n ! 0 } ) ) , L . style ( \"fill\",function(a,b,d){return d3.rgb(v(a,b ) ) . darker ( c.map(function(a,b ) { r e t u r n b } ) . filter ( function(a,b ) { r e t u r n ! c [ b ] } ) [ d ] ) . toString ( ) } ) . style ( \"stroke\",function(a,b,d){return d3.rgb(v(a,b ) ) . darker ( c.map(function(a,b ) { r e t u r n b } ) . filter ( function(a,b ) { r e t u r n ! c [ b ] } ) [ d ] ) . toString ( ) } ) ) , w ? L . watchTransition ( F,\ "multibarhorizontal: bars\" ) . attr ( \"transform\",function(a,b){return\"translate(\"+p(a.y1)+\",\"+o(q(a,b))+\")\"}).select(\"rect\").attr(\"width\",function(a,b){return Math.abs(p(r(a,b ) + a . y 0 ) - p ( a.y0 ) ) | | 0 } ) . attr ( \"height\",o.rangeBand()):L.watchTransition(F,\"multibarhorizontal: bars\ ").attr(\" transform\ ",function(a,c){return\" translate(\ "+p(r(a,c)<0?r(a,c):0)+\" ,\ "+(a.series*o.rangeBand()/b.length+o(q(a,c)))+\" ) \ " } ) . select ( \"rect\").attr(\"height\",o.rangeBand()/b.length).attr(\"width\",function(a,b){return Math.max(Math.abs(p(r(a,b ) ) - p ( 0 ) ) , 1 ) | | 0 } ) , h = o . copy ( ) , i = p . copy ( ) } ) , F . renderEnd ( \"multibarHorizontal immediate\ "),b}var c,d,e,f,g,h,i,j={top:0,right:0,bottom:0,left:0},k=960,l=500,m=Math.floor(1e4*Math.random()),n=null,o=d3.scale.ordinal(),p=d3.scale.linear(),q=function(a){return a.x},r=function(a){return a.y},s=function(a){return a.yErr},t=[0],u=a.utils.defaultColor(),v=null,w=!1,x=!1,y=!1,z=60,A=.1,B=.75,C=d3.format(\" ,.2f\ "),D=250,E=d3.dispatch(\" chartClick\ ",\" elementClick\ ",\" elementDblClick\ ",\" elementMouseover\ ",\" elementMouseout\ ",\" elementMousemove\ ",\" renderEnd\ " ) , F = a . u t i l s . renderWatch ( E,D ) ; \
r e t u r n b . d i s p a t c h = E , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , h e i g h t : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , x : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , y : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , y E r r : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , x S c a l e : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , y S c a l e : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n d } , s e t : function ( a ) { d = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , x R a n g e : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , y R a n g e : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , f o r c e Y : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , s t a c k e d : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , s h o w V a l u e s : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , d i s a b l e d : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c = a } } , i d : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , v a l u e F o r m a t : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a } } , v a l u e P a d d i n g : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a } } , g r o u p S p a c i n g : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , f i l l O p a c i t y : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , m a r g i n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j . t o p = v o i d 0 ! = = a . t o p ? a . t o p : j . t o p , j . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : j . r i g h t , j . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : j . b o t t o m , j . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : j . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n D } , s e t : function ( a ) { D = a , F . reset ( D ) } } , c o l o r : { g e t : function ( ) { r e t u r n u } , s e t : function ( b ) { u = a . u t i l s . getColor ( b ) } } , b a r C o l o r : { g e t : function ( ) { r e t u r n v } , s e t : function ( b ) { v = b ? a . u t i l s . getColor ( b ) : n u l l } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . m u l t i B a r H o r i z o n t a l C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( j ) { r e t u r n D . reset ( ) , D . models ( e ) , s & & D . models ( f ) , t & & D . models ( g ) , j . each ( function(j ) { v a r x = d 3 . select ( this ) ; a . u t i l s . initSVG ( x ) ; v a r D = a . u t i l s . availableWidth ( m,x,k ) , E = a . u t i l s . availableHeight ( n,x,k ) ; if ( b.update=function( ) { x . transition ( ) . duration ( A ) . call ( b ) } , b . c o n t a i n e r = t h i s , u = e . stacked ( ) , v . setter ( C(j ) , b . u p d a t e ) . getter ( B(j ) ) . update ( ) , \
v . d i s a b l e d = j . map ( function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , ! w ) { v a r F ; w = { } ; for ( F in v ) v [ F ] i n s t a n c e o f A r r a y ? w [ F ] = v [ F ] . slice ( 0 ) : w [ F ] = v [ F ] } if ( !(j&&j.length&&j.filter(function(a ) { r e t u r n a . v a l u e s . l e n g t h } ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( b,x ) , b ; x . selectAll ( \".nv-noData\").remove(),c=e.xScale(),d=e.yScale().clamp(!0);var G=x.selectAll(\ "g.nv-wrap.nv-multiBarHorizontalChart\" ) . data ( [j] ) , H = G . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-multiBarHorizontalChart\ ").append(\" g\ "),I=G.select(\" g\ ");if(H.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),H.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ ").append(\" g\ ").attr(\" class\ ",\" nv-zeroLine\ ").append(\" line\ "),H.append(\" g\ ").attr(\" class\ ",\" nv-barsWrap\ "),H.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),H.append(\" g\ ").attr(\" class\ ",\" nv-controlsWrap\ "),r?(h.width(D-z()),I.select(\" .nv-legendWrap\ ").datum(j).call(h),l||h.height()===k.top||(k.top=h.height(),E=a.utils.availableHeight(n,x,k)),I.select(\" .nv-legendWrap\ ").attr(\" transform\ ",\" translate(\ "+z()+\" ,\ "+-k.top+\" ) \ " ) ) : I . select ( \".nv-legendWrap\").selectAll(\"*\").remove(),p){var J=[{key:q.grouped||\ "Grouped\" ,disabled:e.stacked( ) } , { k e y : q . s t a c k e d | | \ " S t a c k e d \ " , d i s a b l e d : ! e . stacked ( ) } ] ; i . width ( z( ) ) . color ( [\ "#444\" ,\ "#444\" ,\ "#444\" ] ) , I . select ( \".nv-controlsWrap\").datum(J).attr(\"transform\",\"translate(0,\"+-k.top+\")\").call(i)}else I.select(\ ".nv-controlsWrap\" ) . selectAll ( \"*\").remove();G.attr(\"transform\",\"translate(\"+k.left+\",\"+k.top+\")\"),e.disabled(j.map(function(a){return a.disabled} ) ) . width ( D ) . height ( E ) . color ( j.map(function(a,b ) { r e t u r n a . c o l o r | | o ( a,b ) } ) . filter ( function(a,b ) { r e t u r n ! j [ b ] . d i s a b l e d } ) ) ; v a r K = I . select ( \".nv-barsWrap\").datum(j.filter(function(a){return!a.disabled}));if(K.transition().call(e),s){f.scale(c)._ticks(a.utils.calcTicksY(E/24,j)).tickSize(-D,0),I.select(\".nv-x.nv-axis\").call(f);var L=I.select(\ ".nv-x.nv-axis\" ) . selectAll ( \"g\");L.selectAll(\"line, text\ ")}t&&(g.scale(d)._ticks(a.utils.calcTicksX(D/100,j)).tickSize(-E,0),I.select(\" .nv-y.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+E+\" ) \ " ) , I . select ( \".nv-y.nv-axis\").call(g)),I.select(\".nv-zeroLine line\ ").attr(\" x1\ ",d(0)).attr(\" x2\ ",d(0)).attr(\" y1\ ",0).attr(\" y2\ " ,\
- E ) , h . d i s p a t c h . on ( \"stateChange\",function(a){for(var c in a ) v [ c ] = a [ c ] ; y . stateChange ( v ) , b . update ( ) } ) , i . d i s p a t c h . on ( \"legendClick\",function(a,c){if(a.disabled){switch(J=J.map(function(a){return a.disabled=!0,a} ) , a . d i s a b l e d = ! 1 , a . k e y ) { c a s e \ " G r o u p e d \ " : c a s e q . g r o u p e d : e . stacked ( !1 ) ; b r e a k ; c a s e \ " S t a c k e d \ " : c a s e q . s t a c k e d : e . stacked ( !0 ) } v . s t a c k e d = e . stacked ( ) , y . stateChange ( v ) , u = e . stacked ( ) , b . update ( ) } } ) , y . on ( \"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(j.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , v . d i s a b l e d = a . d i s a b l e d ) , \ " u n d e f i n e d \ " ! = t y p e o f a . s t a c k e d & & ( e . stacked ( a.stacked ) , v . s t a c k e d = a . s t a c k e d , u = a . s t a c k e d ) , b . update ( ) } ) } ) , D . renderEnd ( \"multibar horizontal chart immediate\ "),b}var c,d,e=a.models.multiBarHorizontal(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend().height(30),i=a.models.legend().height(30),j=a.models.tooltip(),k={top:30,right:20,bottom:50,left:60},l=null,m=null,n=null,o=a.utils.defaultColor(),p=!0,q={},r=!0,s=!0,t=!0,u=!1,v=a.utils.state(),w=null,x=null,y=d3.dispatch(\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),z=function(){return p?180:0},A=250;v.stacked=!1,e.stacked(u),f.orient(\" left\ ").tickPadding(5).showMaxMin(!1).tickFormat(function(a){return a}),g.orient(\" bottom\ ").tickFormat(d3.format(\" ,.1f\ ")),j.duration(0).valueFormatter(function(a,b){return g.tickFormat()(a,b)}).headerFormatter(function(a,b){return f.tickFormat()(a,b)}),i.updateState(!1);var B=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),stacked:u}}},C=function(a){return function(b){void 0!==b.stacked&&(u=b.stacked),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},D=a.utils.renderWatch(y,A);return e.dispatch.on(\" elementMouseover.tooltip\ ",function(a){a.value=b.x()(a.data),a.series={key:a.data.key,value:b.y()(a.data),color:a.color},j.data(a).hidden(!1)}),e.dispatch.on(\" elementMouseout.tooltip\ ",function(a){j.hidden(!0)}),e.dispatch.on(\" elementMousemove.tooltip\ " ,function(a ) { j ( ) } ) , b . d i s p a t c h = y , b . m u l t i b a r = e , b . l e g e n d = h , b . c o n t r o l s = i , b . x A x i s = f , b . y A x i s = g , b . s t a t e = v , b . t o o l t i p = j , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , \
b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , h e i g h t : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , s h o w C o n t r o l s : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , c o n t r o l L a b e l s : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , n o D a t a : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , m a r g i n : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( k . t o p = a . t o p , l = a . t o p ) , k . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : k . r i g h t , k . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : k . b o t t o m , k . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : k . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a , D . reset ( A ) , e . duration ( A ) , f . duration ( A ) , g . duration ( A ) } } , c o l o r : { g e t : function ( ) { r e t u r n o } , s e t : function ( b ) { o = a . u t i l s . getColor ( b ) , h . color ( o ) } } , b a r C o l o r : { g e t : function ( ) { r e t u r n e . b a r C o l o r } , s e t : function ( a ) { e . barColor ( a ) , h . color ( function(a,b ) { r e t u r n d 3 . rgb ( \"#ccc\").darker(1.5*b).toString()})}}}),a.utils.inheritOptions(b,e),a.utils.initOptions(b),b},a.models.multiChart=function(){\"use strict\ " ;function b(k ) { r e t u r n k . each ( function(k ) { f u n c t i o n o ( a ) { v a r b = 2 = = = k [ a . s e r i e s I n d e x ] . y A x i s ? G : F ; a . v a l u e = a . p o i n t . x , a . s e r i e s = { v a l u e : a . p o i n t . y , c o l o r : a . p o i n t . c o l o r , k e y : a . s e r i e s . k e y } , I . duration ( 0 ) . headerFormatter ( function(a,b ) { r e t u r n E . tickFormat ( ) ( a , b ) } ) . valueFormatter ( function(a,c ) { r e t u r n b . tickFormat ( ) ( a , c ) } ) . data ( a ) . hidden ( !1 ) } f u n c t i o n s ( a ) { v a r b = 2 = = = k [ a . s e r i e s I n d e x ] . y A x i s ? G : F ; a . v a l u e = a . p o i n t . x , a . s e r i e s = { v a l u e : a . p o i n t . y , c o l o r : a . p o i n t . c o l o r , k e y : a . s e r i e s . k e y } , I . duration ( 100 ) . headerFormatter ( function(a,b ) { r e t u r n E . tickFormat ( ) ( a , b ) } ) . valueFormatter ( function(a,c ) { r e t u r n b . tickFormat ( ) ( a , c ) } ) . data ( a ) . hidden ( !1 ) } f u n c t i o n J ( a ) { v a r b = 2 = = = k [ a . s e r i e s I n d e x ] . y A x i s ? G : F ; a . p o i n t . x = C . x ( ) ( a . p o i n t ) , a . p o i n t . y = C . y ( ) ( a . p o i n t ) , I . duration ( 0 ) . headerFormatter ( function(a,b ) { r e t u r n E . tickFormat ( ) ( a , b ) } ) . valueFormatter ( function(a,c ) { r e t u r n b . tickFormat ( ) ( a , c ) } ) . data ( a ) . hidden ( !1 ) } f u n c t i o n \
L ( a ) { v a r b = 2 = = = k [ a . d a t a . s e r i e s ] . y A x i s ? G : F ; a . v a l u e = A . x ( ) ( a . d a t a ) , a . s e r i e s = { v a l u e : A . y ( ) ( a . d a t a ) , c o l o r : a . c o l o r , k e y : a . d a t a . k e y } , I . duration ( 0 ) . headerFormatter ( function(a,b ) { r e t u r n E . tickFormat ( ) ( a , b ) } ) . valueFormatter ( function(a,c ) { r e t u r n b . tickFormat ( ) ( a , c ) } ) . data ( a ) . hidden ( !1 ) } f u n c t i o n M ( ) { for ( var a=0,b=K.length;b>a;a++ ) { v a r c = K [ a ] ; t r y { c . clearHighlights ( ) } catch ( d ) { } } } f u n c t i o n N ( a,b,c ) { for ( var d=0,e=K.length;e>d;d++ ) { v a r f = K [ d ] ; t r y { f . highlightPoint ( a,b,c ) } catch ( g ) { } } } v a r O = d 3 . select ( this ) ; a . u t i l s . initSVG ( O ) , b . u p d a t e = function ( ) { O . transition ( ) . call ( b ) } , b . c o n t a i n e r = t h i s ; v a r P = a . u t i l s . availableWidth ( h,O,e ) , Q = a . u t i l s . availableHeight ( i,O,e ) , R = k . filter ( function(a ) { r e t u r n \ " l i n e \ " = = a . t y p e & & 1 = = a . y A x i s } ) , S = k . filter ( function(a ) { r e t u r n \ " l i n e \ " = = a . t y p e & & 2 = = a . y A x i s } ) , T = k . filter ( function(a ) { r e t u r n \ " s c a t t e r \ " = = a . t y p e & & 1 = = a . y A x i s } ) , U = k . filter ( function(a ) { r e t u r n \ " s c a t t e r \ " = = a . t y p e & & 2 = = a . y A x i s } ) , V = k . filter ( function(a ) { r e t u r n \ " b a r \ " = = a . t y p e & & 1 = = a . y A x i s } ) , W = k . filter ( function(a ) { r e t u r n \ " b a r \ " = = a . t y p e & & 2 = = a . y A x i s } ) , X = k . filter ( function(a ) { r e t u r n \ " a r e a \ " = = a . t y p e & & 1 = = a . y A x i s } ) , Y = k . filter ( function(a ) { r e t u r n \ " a r e a \ " = = a . t y p e & & 2 = = a . y A x i s } ) ; if ( !(k&&k.length&&k.filter(function(a ) { r e t u r n a . v a l u e s . l e n g t h } ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( b,O ) , b ; O . selectAll ( \".nv-noData\").remove();var Z=k.filter(function(a ) { r e t u r n ! a . d i s a b l e d & & 1 = = a . y A x i s } ) . map ( function(a ) { r e t u r n a . v a l u e s . map ( function(a,b ) { r e t u r n { x : l ( a ) , y : m ( a ) } } ) } ) , $ = k . filter ( function(a ) { r e t u r n ! a . d i s a b l e d & & 2 = = a . y A x i s } ) . map ( function(a ) { r e t u r n a . v a l u e s . map ( function(a,b ) { r e t u r n { x : l ( a ) , y : m ( a ) } } ) } ) ; t . domain ( d3.extent(d3.merge(Z.concat( $ ) ) , function ( a ) { r e t u r n a . x } ) ) . range ( [0,P] ) ; v a r _ = O . selectAll ( \"g.wrap.multiChart\").data([k]),aa=_.enter().append(\"g\").attr(\"class\",\"wrap nvd3 multiChart\ ").append(\" g\ ");aa.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),aa.append(\" g\ ").attr(\" class\ ",\" nv-y1 nv-axis\ "),aa.append(\" g\ ").attr(\" class\ ",\" nv-y2 nv-axis\ "),aa.append(\" g\ ").attr(\" class\ ",\" stack1Wrap\ "),aa.append(\" g\ ").attr(\" class\ ",\" stack2Wrap\ "),aa.append(\" g\ ").attr(\" class\ ",\" bars1Wrap\ "),aa.append(\" g\ ").attr(\" class\ ",\" bars2Wrap\ "),aa.append(\" g\ ").attr(\" class\ ",\" scatters1Wrap\ " ) , \
a a . append ( \"g\").attr(\"class\",\"scatters2Wrap\"),aa.append(\"g\").attr(\"class\",\"lines1Wrap\"),aa.append(\"g\").attr(\"class\",\"lines2Wrap\"),aa.append(\"g\").attr(\"class\",\"legendWrap\"),aa.append(\"g\").attr(\"class\",\"nv-interactive\");var ba=_.select(\ "g\" ) , c a = k . map ( function(a,b ) { r e t u r n k [ b ] . c o l o r | | g ( a,b ) } ) ; if ( j ) { v a r d a = H . align ( ) ? P / 2 : P , e a = H . align ( ) ? d a : 0 ; H . width ( da ) , H . color ( ca ) , b a . select ( \".legendWrap\").datum(k.map(function(a){return a.originalKey=void 0===a.originalKey?a.key:a.originalKey,a.key=a.originalKey+(1==a.yAxis?\ "\" :r ) , a } ) ) . call ( H ) , f | | H . height ( ) = = = e . t o p | | ( e . t o p = H . height ( ) , Q = a . u t i l s . availableHeight ( i,O,e ) ) , b a . select ( \".legendWrap\").attr(\"transform\",\"translate(\"+ea+\",\"+-e.top+\")\")}else ba.select(\ ".legendWrap\" ) . selectAll ( \"*\").remove();w.width(P).height(Q).interpolate(n).color(ca.filter(function(a,b){return!k[b].disabled&&1==k[b].yAxis&&\"line\"==k[b].type})),x.width(P).height(Q).interpolate(n).color(ca.filter(function(a,b){return!k[b].disabled&&2==k[b].yAxis&&\"line\"==k[b].type})),y.width(P).height(Q).color(ca.filter(function(a,b){return!k[b].disabled&&1==k[b].yAxis&&\"scatter\"==k[b].type})),z.width(P).height(Q).color(ca.filter(function(a,b){return!k[b].disabled&&2==k[b].yAxis&&\"scatter\"==k[b].type})),A.width(P).height(Q).color(ca.filter(function(a,b){return!k[b].disabled&&1==k[b].yAxis&&\"bar\"==k[b].type})),B.width(P).height(Q).color(ca.filter(function(a,b){return!k[b].disabled&&2==k[b].yAxis&&\"bar\"==k[b].type})),C.width(P).height(Q).interpolate(n).color(ca.filter(function(a,b){return!k[b].disabled&&1==k[b].yAxis&&\"area\"==k[b].type})),D.width(P).height(Q).interpolate(n).color(ca.filter(function(a,b){return!k[b].disabled&&2==k[b].yAxis&&\"area\"==k[b].type})),ba.attr(\"transform\",\"translate(\"+e.left+\",\"+e.top+\")\");var fa=ba.select(\ ".lines1Wrap\" ) . datum ( R.filter(function(a ) { r e t u r n ! a . d i s a b l e d } ) ) , g a = b a . select ( \".scatters1Wrap\").datum(T.filter(function(a){return!a.disabled})),ha=ba.select(\".bars1Wrap\").datum(V.filter(function(a){return!a.disabled})),ia=ba.select(\".stack1Wrap\").datum(X.filter(function(a){return!a.disabled})),ja=ba.select(\".lines2Wrap\").datum(S.filter(function(a){return!a.disabled})),\
k a = b a . select ( \".scatters2Wrap\").datum(U.filter(function(a){return!a.disabled})),la=ba.select(\".bars2Wrap\").datum(W.filter(function(a){return!a.disabled})),ma=ba.select(\".stack2Wrap\").datum(Y.filter(function(a){return!a.disabled})),na=X.length?X.map(function(a){return a.values} ) . reduce ( function(a,b ) { r e t u r n a . map ( function(a,c ) { r e t u r n { x : a . x , y : a . y + b [ c ] . y } } ) } ) . concat ( [{x:0,y:0}] ) : [ ] , o a = Y . l e n g t h ? Y . map ( function(a ) { r e t u r n a . v a l u e s } ) . reduce ( function(a,b ) { r e t u r n a . map ( function(a,c ) { r e t u r n { x : a . x , y : a . y + b [ c ] . y } } ) } ) . concat ( [{x:0,y:0}] ) : [ ] ; u . domain ( c||d3.extent(d3.merge(Z ) . concat ( na ) , function ( a ) { r e t u r n a . y } ) ) . range ( [0,Q] ) , v . domain ( d||d3.extent(d3.merge( $ ) . concat ( oa ) , function ( a ) { r e t u r n a . y } ) ) . range ( [0,Q] ) , w . yDomain ( u.domain( ) ) , y . yDomain ( u.domain( ) ) , A . yDomain ( u.domain( ) ) , C . yDomain ( u.domain( ) ) , x . yDomain ( v.domain( ) ) , z . yDomain ( v.domain( ) ) , B . yDomain ( v.domain( ) ) , D . yDomain ( v.domain( ) ) , X . l e n g t h & & d 3 . transition ( ia ) . call ( C ) , Y . l e n g t h & & d 3 . transition ( ma ) . call ( D ) , V . l e n g t h & & d 3 . transition ( ha ) . call ( A ) , W . l e n g t h & & d 3 . transition ( la ) . call ( B ) , R . l e n g t h & & d 3 . transition ( fa ) . call ( w ) , \
S . l e n g t h & & d 3 . transition ( ja ) . call ( x ) , T . l e n g t h & & d 3 . transition ( ga ) . call ( y ) , U . l e n g t h & & d 3 . transition ( ka ) . call ( z ) , E . _ticks ( a.utils.calcTicksX(P/100,k ) ) . tickSize ( -Q,0 ) , b a . select ( \".nv-x.nv-axis\").attr(\"transform\",\"translate(0,\"+Q+\")\"),d3.transition(ba.select(\".nv-x.nv-axis\")).call(E),F._ticks(a.utils.calcTicksY(Q/36,k)).tickSize(-P,0),d3.transition(ba.select(\".nv-y1.nv-axis\")).call(F),G._ticks(a.utils.calcTicksY(Q/36,k)).tickSize(-P,0),d3.transition(ba.select(\".nv-y2.nv-axis\")).call(G),ba.select(\".nv-y1.nv-axis\").classed(\"nv-disabled\",Z.length?!1:!0).attr(\"transform\",\"translate(\"+t.range()[0]+\",0)\"),ba.select(\".nv-y2.nv-axis\").classed(\"nv-disabled\",$.length?!1:!0).attr(\"transform\",\"translate(\"+t.range()[1]+\",0)\"),H.dispatch.on(\"stateChange\",function(a){b.update()}),q&&(p.width(P).height(Q).margin({left:e.left,top:e.top}).svgContainer(O).xScale(t),_.select(\".nv-interactive\").call(p)),q?(p.dispatch.on(\"elementMousemove\",function(c){M();var d,e,f,h=[];k.filter(function(a,b ) { r e t u r n a . s e r i e s I n d e x = b , ! a . d i s a b l e d } ) . forEach ( function(i,j ) { v a r k = t . domain ( ) , l = i . v a l u e s . filter ( function(a,c ) { r e t u r n b . x ( ) ( a , c ) > = k [ 0 ] & & b . x ( ) ( a , c ) < = k [ 1 ] } ) ; e = a . interactiveBisect ( l,c.pointXValue,b.x( ) ) ; v a r m = l [ e ] , n = b . y ( ) ( m , e ) ; n u l l ! = = n & & N ( j,e,!0 ) , v o i d 0 ! = = m & & ( v o i d 0 = = = d & & ( d = m ) , v o i d 0 = = = f & & ( f = t ( b.x( ) ( m , e ) ) ) , h . push ( {key:i.key,value:n,color:g(i,i.seriesIndex ) , d a t a : m , y A x i s : 2 = = i . y A x i s ? G : F } ) ) } ) ; v a r i = function ( a,b ) { v a r c = h [ b ] . y A x i s ; r e t u r n n u l l = = a ? \ " N / A \ " : c . tickFormat ( ) ( a ) } ; p . t o o l t i p . headerFormatter ( function(a,b ) { r e t u r n E . tickFormat ( ) ( a , b ) } ) . valueFormatter ( p.tooltip.valueFormatter( ) | | i ) . data ( {value:b.x( ) ( d , e ) , i n d e x : e , s e r i e s : h } ) ( ) , p . renderGuideLine ( f ) } ) , p . d i s p a t c h . on ( \"elementMouseout\",function(a){M()})):(w.dispatch.on(\"elementMouseover.tooltip\",o),x.dispatch.on(\"elementMouseover.tooltip\",o),w.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),x.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),y.dispatch.on(\"elementMouseover.tooltip\",s),z.dispatch.on(\"elementMouseover.tooltip\",s),y.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),\
z . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){I.hidden(!0)}),C.dispatch.on(\"elementMouseover.tooltip\",J),D.dispatch.on(\"elementMouseover.tooltip\",J),C.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),D.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),A.dispatch.on(\"elementMouseover.tooltip\",L),B.dispatch.on(\"elementMouseover.tooltip\",L),A.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),B.dispatch.on(\"elementMouseout.tooltip\",function(a){I.hidden(!0)}),A.dispatch.on(\"elementMousemove.tooltip\",function(a){I()}),B.dispatch.on(\"elementMousemove.tooltip\",function(a){I()}))}),b}var c,d,e={top:30,right:20,bottom:50,left:60},f=null,g=a.utils.defaultColor( ) , h = n u l l , i = n u l l , j = ! 0 , k = n u l l , l = function ( a ) { r e t u r n a . x } , m = function ( a ) { r e t u r n a . y } , n = \ " l i n e a r \ " , o = ! 0 , p = a . interactiveGuideline ( ) , q = ! 1 , r = \ " ( r i g h t a x i s ) \ " , s = 2 5 0 , t = d 3 . s c a l e . linear ( ) , u = d 3 . s c a l e . linear ( ) , v = d 3 . s c a l e . linear ( ) , w = a . m o d e l s . line ( ) . yScale ( u ) . duration ( s ) , x = a . m o d e l s . line ( ) . yScale ( v ) . duration ( s ) , y = a . m o d e l s . scatter ( ) . yScale ( u ) . duration ( s ) , z = a . m o d e l s . scatter ( ) . yScale ( v ) . duration ( s ) , A = a . m o d e l s . multiBar ( ) . stacked ( !1 ) . yScale ( u ) . duration ( s ) , B = a . m o d e l s . multiBar ( ) . stacked ( !1 ) . yScale ( v ) . duration ( s ) , C = a . m o d e l s . stackedArea ( ) . yScale ( u ) . duration ( s ) , D = a . m o d e l s . stackedArea ( ) . yScale ( v ) . duration ( s ) , E = a . m o d e l s . axis ( ) . scale ( t ) . orient ( \"bottom\").tickPadding(5).duration(s),F=a.models.axis().scale(u).orient(\"left\").duration(s),G=a.models.axis().scale(v).orient(\"right\").duration(s),H=a.models.legend().height(30),I=a.models.tooltip(),J=d3.dispatch(),K=[w,x,y,z,A,B,C,D];return b.dispatch=J,b.legend=H,b.lines1=w,b.lines2=x,b.scatters1=y,b.scatters2=z,b.bars1=A,b.bars2=B,b.stack1=C,b.stack2=D,b.xAxis=E,b.yAxis1=F,b.yAxis2=G,b.tooltip=I,b.interactiveLayer=p,b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , h e i g h t : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , y D o m a i n 1 : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c = a } } , y D o m a i n 2 : { g e t : function ( ) { r e t u r n \
d } , s e t : function ( a ) { d = a } } , n o D a t a : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , i n t e r p o l a t e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , l e g e n d R i g h t A x i s H i n t : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , m a r g i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( e . t o p = a . t o p , f = a . t o p ) , e . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : e . r i g h t , e . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : e . b o t t o m , e . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : e . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n g } , s e t : function ( b ) { g = a . u t i l s . getColor ( b ) } } , x : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a , w . x ( a ) , x . x ( a ) , y . x ( a ) , z . x ( a ) , A . x ( a ) , B . x ( a ) , C . x ( a ) , D . x ( a ) } } , y : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a , w . y ( a ) , x . y ( a ) , y . y ( a ) , z . y ( a ) , C . y ( a ) , D . y ( a ) , A . y ( a ) , B . y ( a ) } } , u s e V o r o n o i : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a , w . useVoronoi ( a ) , x . useVoronoi ( a ) , C . useVoronoi ( a ) , D . useVoronoi ( a ) } } , u s e I n t e r a c t i v e G u i d e l i n e : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a , q & & ( w . interactive ( !1 ) , w . useVoronoi ( !1 ) , x . interactive ( !1 ) , x . useVoronoi ( !1 ) , C . interactive ( !1 ) , C . useVoronoi ( !1 ) , D . interactive ( !1 ) , D . useVoronoi ( !1 ) , y . interactive ( !1 ) , z . interactive ( !1 ) ) } } , d u r a t i o n : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a , [ w , x , C , D , y , z , E , F , G ] . forEach ( function(a ) { a . duration ( s ) } ) } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . o h l c B a r = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( y ) { r e t u r n y . each ( function(b ) { k = d 3 . select ( this ) ; v a r y = a . u t i l s . availableWidth ( h,k,g ) , A = a . u t i l s . availableHeight ( i,k,g ) ; a . u t i l s . initSVG ( k ) ; v a r B = y / b [ 0 ] . v a l u e s . l e n g t h * . 9 ; l . domain ( c||d3.extent(b[0].values.map(n ) . concat ( t ) ) ) , v ? l . range ( e||[.5*y/b[0].values.length,y*(b[0].values.length-.5 ) / b [ 0 ] . v a l u e s . l e n g t h ] ) : l . range ( e||[5+B/2,y-B/2-5] ) , m . domain ( d||[d3.min(b[0].values.map(s ) . concat ( u ) ) , d 3 . max ( b[0].values.map(r ) . concat ( u ) ) ] ) . range ( f||[A,0] ) , l . domain ( ) [ 0 ] = = = l . domain ( ) [ 1 ] & & ( l . domain ( ) [ 0 ] ? l . domain ( [l.domain( ) [ 0 ] - . 0 1 * l . domain ( ) [ 0 ] , l . domain ( ) [ 1 ] + . 0 1 * l . domain ( ) [ 1 ] ] ) : l . domain ( [-1,1] ) ) , m . domain ( ) [ 0 ] = = = m . domain ( ) [ 1 ] & & ( m . domain ( ) [ 0 ] ? m . domain ( [m.domain( ) [ 0 ] + . 0 1 * m . domain ( ) [ 0 ] , m . domain ( ) [ 1 ] - . 0 1 * m . domain ( ) [ 1 ] ] ) : m . domain ( [-1,1] ) ) ; v a r C = d 3 . select ( this ) . selectAll ( \"g.nv-wrap.nv-ohlcBar\").data([b[0].values]),\
D = C . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-ohlcBar\ "),E=D.append(\" defs\ "),F=D.append(\" g\ "),G=C.select(\" g\ ");F.append(\" g\ ").attr(\" class\ ",\" nv-ticks\ "),C.attr(\" transform\ ",\" translate(\ "+g.left+\" ,\ "+g.top+\" ) \ " ) , k . on ( \"click\",function(a,b){z.chartClick({data:a,index:b,pos:d3.event,id:j})}),E.append(\"clipPath\").attr(\"id\",\"nv-chart-clip-path-\"+j).append(\"rect\"),C.select(\"#nv-chart-clip-path-\"+j+\" rect\ ").attr(\" width\ ",y).attr(\" height\ ",A),G.attr(\" clip-path\ ",w?\" url( #nv-chart-clip-path-\"+j+\")\":\"\");var H=C.select(\".nv-ticks\").selectAll(\".nv-tick\").data(function(a){return a});H.exit().remove(),H.enter().append(\"path\").attr(\"class\",function(a,b,c){return(p(a,b)>q(a,b)?\"nv-tick negative\":\"nv-tick positive\")+\" nv-tick-\"+c+\"-\"+b}).attr(\"d\",function(a,b){return\"m0,0l0,\"+(m(p(a,b))-m(r(a,b)))+\"l\"+-B/2+\",0l\"+B/2+\",0l0,\"+(m(s(a,b))-m(p(a,b)))+\"l0,\"+(m(q(a,b))-m(s(a,b)))+\"l\"+B/2+\",0l\"+-B/2+\",0z\"}).attr(\"transform\",function(a,b){return\"translate(\"+l(n(a,b))+\",\"+m(r(a,b))+\")\"}).attr(\"fill\",function(a,b){return x[0]}).attr(\"stroke\",function(a,b){return x[0]}).attr(\"x\",0).attr(\"y\",function(a,b){return m(Math.max(0,o(a,b)))}).attr(\"height\",function(a,b){return Math.abs(m(o(a,b))-m(0))}),H.attr(\"class\",function(a,b,c){return(p(a,b)>q(a,b)?\"nv-tick negative\":\"nv-tick positive\")+\" nv-tick-\"+c+\"-\"+b}),d3.transition(H).attr(\"transform\",function(a,b){return\"translate(\"+l(n(a,b))+\",\"+m(r(a,b))+\")\"}).attr(\"d\",function(a,c){var d=y/b[0].values.length*.9;return\"m0,0l0,\"+(m(p(a,c))-m(r(a,c)))+\"l\"+-d/2+\",0l\"+d/2+\",0l0,\"+(m(s(a,c))-m(p(a,c)))+\"l0,\"+(m(q(a,c))-m(s(a,c)))+\"l\"+d/2+\",0l\"+-d/2+\",0z\"})}),b}var c,d,e,f,g={top:0,right:0,bottom:0,left:0},h=null,i=null,j=Math.floor(1e4*Math.random()),k=null,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=function(a){return a.open},q=function(a){return a.close},r=function(a){return a.high},s=function(a){return a.low},t=[],u=[],v=!1,w=!0,x=a.utils.defaultColor(),y=!1,z=d3.dispatch(\"stateChange\",\"changeState\",\"renderEnd\",\"chartClick\",\"elementClick\",\"elementDblClick\",\"elementMouseover\",\
\ " e l e m e n t M o u s e o u t \ " , \ " e l e m e n t M o u s e m o v e \ " ) ; r e t u r n b . h i g h l i g h t P o i n t = function ( a,c ) { b . clearHighlights ( ) , k . select ( \".nv-ohlcBar .nv-tick-0-\ "+a).classed(\" hover\ ",c)},b.clearHighlights=function(){k.select(\" .nv-ohlcBar .nv-tick.hover\ ").classed(\" hover\ ",!1)},b.dispatch=z,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},forceX:{get:function(){return t},set:function(a){t=a}},forceY:{get:function(){return u},set:function(a){u=a}},padData:{get:function(){return v},set:function(a){v=a}},clipEdge:{get:function(){return w},set:function(a){w=a}},id:{get:function(){return j},set:function(a){j=a}},interactive:{get:function(){return y},set:function(a){y=a}},x:{get:function(){return n},set:function(a){n=a}},y:{get:function(){return o},set:function(a){o=a}},open:{get:function(){return p()},set:function(a){p=a}},close:{get:function(){return q()},set:function(a){q=a}},high:{get:function(){return r},set:function(a){r=a}},low:{get:function(){return s},set:function(a){s=a}},margin:{get:function(){return g},set:function(a){g.top=void 0!=a.top?a.top:g.top,g.right=void 0!=a.right?a.right:g.right,g.bottom=void 0!=a.bottom?a.bottom:g.bottom,g.left=void 0!=a.left?a.left:g.left}},color:{get:function(){return x},set:function(b){x=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.parallelCoordinates=function(){\" use strict\ " ;function b(B ) { r e t u r n A . reset ( ) , B . each ( function(b ) { f u n c t i o n A ( a ) { r e t u r n x ( o.map(function(b ) { if ( isNaN(a.values[b.key] ) | | isNaN ( parseFloat(a.values[b.key] ) ) | | O ) { v a r c = l [ b . k e y ] . domain ( ) , d = l [ b . k e y ] . range ( ) , e = c [ 0 ] - ( c [ 1 ] - c [ 0 ] ) / 9 ; if ( v.indexOf(b.key ) < 0 ) { v a r f = d 3 . s c a l e . linear ( ) . domain ( [e,c[1]] ) . range ( [j-12,\
d [ 1 ] ] ) ; l [ b . k e y ] . b r u s h . y ( f ) , v . push ( b.key ) } if ( isNaN(a.values[b.key] ) | | isNaN ( parseFloat(a.values[b.key] ) ) ) r e t u r n [ k ( b.key ) , l [ b . k e y ] ( e ) ] } r e t u r n v o i d 0 ! = = U & & ( v . l e n g t h > 0 | | O ? ( U . style ( \"display\",\"inline\"),V.style(\"display\",\"inline\")):(U.style(\"display\",\"none\"),V.style(\"display\",\"none\"))),[k(b.key),l[b.key](a.values[b.key])]}))}function B(a ) { s . forEach ( function(b ) { v a r c = l [ b . d i m e n s i o n ] . b r u s h . y ( ) . domain ( ) ; b . h a s O n l y N a N & & ( b . e x t e n t [ 1 ] = ( l [ b . d i m e n s i o n ] . domain ( ) [ 1 ] - c [ 0 ] ) * ( b . e x t e n t [ 1 ] - b . e x t e n t [ 0 ] ) / ( N [ b . d i m e n s i o n ] - b . e x t e n t [ 0 ] ) + c [ 0 ] ) , b . h a s N a N & & ( b . e x t e n t [ 0 ] = c [ 0 ] ) , a & & l [ b . d i m e n s i o n ] . b r u s h . extent ( b.extent ) } ) , e . select ( \".nv-brushBackground\").each(function(a){d3.select(this).call(l[a.key].brush)}).selectAll(\"rect\").attr(\"x\",-8).attr(\"width\",16),F()}function C( ) { q = = = ! 1 & & ( q = ! 0 , B ( !0 ) ) } f u n c t i o n D ( ) { $ = p . filter ( function(a ) { r e t u r n ! l [ a ] . b r u s h . empty ( ) } ) , _ = $ . map ( function(a ) { r e t u r n l [ a ] . b r u s h . extent ( ) } ) , s = [ ] , $ . forEach ( function(a,b ) { s [ b ] = { d i m e n s i o n : a , e x t e n t : _ [ b ] , h a s N a N : ! 1 , h a s O n l y N a N : ! 1 } } ) , t = [ ] , c . style ( \"display\",function(a){var b= $ .every(function(b,c ) { return ( isNaN(a.values[b] ) | | isNaN ( parseFloat(a.values[b] ) ) ) & & _ [ c ] [ 0 ] = = l [ b ] . b r u s h . y ( ) . domain ( ) [ 0 ] ? ! 0 : _ [ c ] [ 0 ] < = a . v a l u e s [ b ] & & a . v a l u e s [ b ] < = _ [ c ] [ 1 ] & & ! isNaN ( parseFloat(a.values[b] ) ) } ) ; r e t u r n b & & t . push ( a ) , b ? n u l l : \ " n o n e \ " } ) , F ( ) , z . brush ( {filters:s,active:t} ) } f u n c t i o n E ( ) { v a r a = $ . l e n g t h > 0 ? ! 0 : ! 1 ; s . forEach ( function(a ) { a . e x t e n t [ 0 ] = = = l [ a . d i m e n s i o n ] . b r u s h . y ( ) . domain ( ) [ 0 ] & & v . indexOf ( a.dimension ) > = 0 & & ( a . h a s N a N = ! 0 ) , a . e x t e n t [ 1 ] < l [ a . d i m e n s i o n ] . domain ( ) [ 0 ] & & ( a . h a s O n l y N a N = ! 0 ) } ) , z . brushEnd ( t,a ) } f u n c t i o n F ( ) { e . select ( \".nv-axis\").each(function(a,b){var c=s.filter(function(b ) { r e t u r n b . d i m e n s i o n = = a . k e y } ) ; P [ a . k e y ] = l [ a . k e y ] . domain ( ) , 0 ! = c . l e n g t h & & q & & ( P [ a . k e y ] = [ ] , c [ 0 ] . e x t e n t [ 1 ] > l [ a . k e y ] . domain ( ) [ 0 ] & & ( P [ a . k e y ] = [ c [ 0 ] . e x t e n t [ 1 ] ] ) , c [ 0 ] . e x t e n t [ 0 ] > = l [ a . k e y ] . domain ( ) [ 0 ] & & P [ a . k e y ] . push ( c[0].extent[0] ) ) , d 3 . select ( this ) . call ( y.scale(l[a.key] ) . tickFormat ( a.format ) . tickValues ( P[a.key] ) ) } ) } f u n c t i o n G ( a ) { u [ a . k e y ] = t h i s . p a r e n t N o d e . _ _ o r i g i n _ _ = k ( a.key ) , d . attr ( \"visibility\",\"hidden\")}function H(a ) { u [ a . k e y ] = M a t h . min ( i,Math.max(0,this.parentNode.__origin__+=d3.event.x ) ) , \
c . attr ( \"d\",A),o.sort(function(a,b){return J(a.key ) - J ( b.key ) } ) , o . forEach ( function(a,b ) { r e t u r n a . c u r r e n t P o s i t i o n = b } ) , k . domain ( o.map(function(a ) { r e t u r n a . k e y } ) ) , e . attr ( \"transform\",function(a){return\"translate(\"+J(a.key)+\")\"})}function I(a,b ) { d e l e t e t h i s . p a r e n t N o d e . _ _ o r i g i n _ _ , d e l e t e u [ a . k e y ] , d 3 . select ( this.parentNode ) . attr ( \"transform\",\"translate(\"+k(a.key)+\")\"),c.attr(\"d\",A),d.attr(\"d\",A).attr(\"visibility\",null),z.dimensionsOrder(o)}function J(a ) { v a r b = u [ a ] ; r e t u r n n u l l = = b ? k ( a ) : b } v a r K = d 3 . select ( this ) ; if ( i=a.utils.availableWidth(g,K,f ) , j = a . u t i l s . availableHeight ( h,K,f ) , a . u t i l s . initSVG ( K ) , v o i d 0 = = = b [ 0 ] . v a l u e s ) { v a r L = [ ] ; b . forEach ( function(a ) { v a r b = { } , c = O b j e c t . keys ( a ) ; c . forEach ( function(c ) { \ " n a m e \ " ! = = c & & ( b [ c ] = a [ c ] ) } ) , L . push ( {key:a.name,values:b} ) } ) , b = L } v a r M = b . map ( function(a ) { r e t u r n a . v a l u e s } ) ; 0 = = = t . l e n g t h & & ( t = b ) , p = n . sort ( function(a,b ) { r e t u r n a . c u r r e n t P o s i t i o n - b . c u r r e n t P o s i t i o n } ) . map ( function(a ) { r e t u r n a . k e y } ) , o = n . filter ( function(a ) { r e t u r n ! a . d i s a b l e d } ) , k . rangePoints ( [0,i],1 ) . domain ( o.map(function(a ) { r e t u r n a . k e y } ) ) ; v a r N = { } , O = ! 1 , P = [ ] ; p . forEach ( function(a ) { v a r b = d 3 . extent ( M,function(b ) { r e t u r n + b [ a ] } ) , c = b [ 0 ] , d = b [ 1 ] , e = ! 1 ; ( isNaN ( c ) | | isNaN ( d ) ) & & ( e = ! 0 , c = 0 , d = 0 ) , c = = = d & & ( c - = 1 , d + = 1 ) ; v a r f = s . filter ( function(b ) { r e t u r n b . d i m e n s i o n = = a } ) ; 0 ! = = f . l e n g t h & & ( e ? ( c = l [ a ] . domain ( ) [ 0 ] , d = l [ a ] . domain ( ) [ 1 ] ) : ! f [ 0 ] . h a s O n l y N a N & & q ? ( c = c > f [ 0 ] . e x t e n t [ 0 ] ? f [ 0 ] . e x t e n t [ 0 ] : c , d = d < f [ 0 ] . e x t e n t [ 1 ] ? f [ 0 ] . e x t e n t [ 1 ] : d ) : f [ 0 ] . h a s N a N & & ( d = d < f [ 0 ] . e x t e n t [ 1 ] ? f [ 0 ] . e x t e n t [ 1 ] : d , N [ a ] = l [ a ] . domain ( ) [ 1 ] , O = ! 0 ) ) , l [ a ] = d 3 . s c a l e . linear ( ) . domain ( [c,d] ) . range ( [.9*(j-12 ) , 0 ] ) , v = [ ] , l [ a ] . b r u s h = d 3 . s v g . brush ( ) . y ( l[a] ) . on ( \"brushstart\",C).on(\"brush\",D).on(\"brushend\",E)});var Q=K.selectAll(\ "g.nv-wrap.nv-parallelCoordinates\" ) . data ( [b] ) , R = Q . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-parallelCoordinates\ "),S=R.append(\" g\ "),T=Q.select(\" g\ ");S.append(\" g\ ").attr(\" class\ ",\" nv-parallelCoordinates background\ "),S.append(\" g\ ").attr(\" class\ ",\" nv-parallelCoordinates foreground\ "),S.append(\" g\ ").attr(\" class\ ",\" nv-parallelCoordinates missingValuesline\ "),Q.attr(\" transform\ ",\" translate(\ "+f.left+\" ,\ "+f.top+\" ) \ " ) , x . interpolate ( \"cardinal\").tension(w),\
y . orient ( \"left\");var U,V,W=d3.behavior.drag( ) . on ( \"dragstart\",G).on(\"drag\",H).on(\"dragend\",I),X=k.range()[1]-k.range()[0];if(X=isNaN(X)?k.range()[0]:X,!isNaN(X)){var Y=[0+X/2,j-12,i-X/2,j-12];U=Q.select(\ ".missingValuesline\" ) . selectAll ( \"line\").data([Y]),U.enter().append(\"line\"),U.exit().remove(),U.attr(\"x1\",function(a){return a[0]} ) . attr ( \"y1\",function(a){return a[1]} ) . attr ( \"x2\",function(a){return a[2]} ) . attr ( \"y2\",function(a){return a[3]} ) , V = Q . select ( \".missingValuesline\").selectAll(\"text\").data([m]),V.append(\"text\").data([m]),V.enter().append(\"text\"),V.exit().remove(),V.attr(\"y\",j).attr(\"x\",i-92-X/2).text(function(a){return a} ) } d = Q . select ( \".background\").selectAll(\"path\").data(b),d.enter().append(\"path\"),d.exit().remove(),d.attr(\"d\",A),c=Q.select(\".foreground\").selectAll(\"path\").data(b),c.enter().append(\"path\"),c.exit().remove(),c.attr(\"d\",A).style(\"stroke-width\",function(a,b){return isNaN(a.strokeWidth ) & & ( a . s t r o k e W i d t h = 1 ) , a . s t r o k e W i d t h } ) . attr ( \"stroke\",function(a,b){return a.color||r(a,b ) } ) , c . on ( \"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0).style(\"stroke-width\",a.strokeWidth+2+\"px\").style(\"stroke-opacity\",1),z.elementMouseover({label:a.name,color:a.color||r(a,b),values:a.values,dimensions:o})}),c.on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1).style(\"stroke-width\",a.strokeWidth+\"px\").style(\"stroke-opacity\",.7),z.elementMouseout({label:a.name,index:b})}),c.on(\"mousemove\",function(a,b){z.elementMousemove()}),c.on(\"click\",function(a){z.elementClick({id:a.id})}),e=T.selectAll(\".dimension\").data(o);var Z=e.enter( ) . append ( \"g\").attr(\"class\",\"nv-parallelCoordinates dimension\ ");e.attr(\" transform\ ",function(a){return\" translate(\ "+k(a.key)+\" ,0 ) \ " } ) , Z . append ( \"g\").attr(\"class\",\"nv-axis\"),Z.append(\"text\").attr(\"class\",\"nv-label\").style(\"cursor\",\"move\").attr(\"dy\",\"-1em\").attr(\"text-anchor\",\"middle\").on(\"mouseover\",function(a,b){z.elementMouseover({label:a.tooltip||a.key,color:a.color})}).on(\"mouseout\",function(a,b){z.elementMouseout({label:a.tooltip})}).on(\"mousemove\",function(a,b){z.elementMousemove()}).call(W),\
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
2022-04-02 18:58:23 +02:00
file ( APPEND "${METABENCH_DIR}/nvd3.js"
" \
2019-05-17 22:41:46 +02:00
Z . append ( \"g\").attr(\"class\",\"nv-brushBackground\"),e.exit().remove(),e.select(\".nv-label\").text(function(a){return a.key} ) , B ( q ) ; v a r $ = p . filter ( function(a ) { r e t u r n ! l [ a ] . b r u s h . empty ( ) } ) , _ = $ . map ( function(a ) { r e t u r n l [ a ] . b r u s h . extent ( ) } ) , a a = t . slice ( 0 ) ; t = [ ] , c . style ( \"display\",function(a){var b= $ .every(function(b,c ) { return ( isNaN(a.values[b] ) | | isNaN ( parseFloat(a.values[b] ) ) ) & & _ [ c ] [ 0 ] = = l [ b ] . b r u s h . y ( ) . domain ( ) [ 0 ] ? ! 0 : _ [ c ] [ 0 ] < = a . v a l u e s [ b ] & & a . v a l u e s [ b ] < = _ [ c ] [ 1 ] & & ! isNaN ( parseFloat(a.values[b] ) ) } ) ; r e t u r n b & & t . push ( a ) , b ? n u l l : \ " n o n e \ " } ) , ( s . l e n g t h > 0 | | ! a . u t i l s . arrayEquals ( t,aa ) ) & & z . activeChanged ( t ) } ) , b } v a r c , d , e , f = { t o p : 3 0 , r i g h t : 0 , b o t t o m : 1 0 , l e f t : 0 } , g = n u l l , h = n u l l , i = n u l l , j = n u l l , k = d 3 . s c a l e . ordinal ( ) , l = { } , m = \ " u n d e f i n e d v a l u e s \ " , n = [ ] , o = [ ] , p = [ ] , q = ! 0 , r = a . u t i l s . defaultColor ( ) , s = [ ] , t = [ ] , u = [ ] , v = [ ] , w = 1 , x = d 3 . s v g . line ( ) , y = d 3 . s v g . axis ( ) , z = d 3 . dispatch ( \"brushstart\",\"brush\",\"brushEnd\",\"dimensionsOrder\",\"stateChange\",\"elementClick\",\"elementMouseover\",\"elementMouseout\",\"elementMousemove\",\"renderEnd\",\"activeChanged\"),A=a.utils.renderWatch(z);return b.dispatch=z,b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , h e i g h t : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , d i m e n s i o n D a t a : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , d i s p l a y B r u s h : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , f i l t e r s : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , a c t i v e : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , l i n e T e n s i o n : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a } } , u n d e f i n e d V a l u e s L a b e l : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , d i m e n s i o n s : { g e t : function ( ) { r e t u r n n . map ( function(a ) { r e t u r n a . k e y } ) } , s e t : function ( b ) { a . deprecated ( \"dimensions\",\"use dimensionData instead\ "),0===n.length?b.forEach(function(a){n.push({key:a})}):b.forEach(function(a,b){n[b].key=a})}},dimensionNames:{get:function(){return n.map(function(a){return a.key})},set:function(b){a.deprecated(\" dimensionNames\ ",\" use dimensionData instead\ " ) , p = [ ] , 0 = = = n . l e n g t h ? b . forEach ( function(a ) { n . push ( {key:a} ) } ) : b . forEach ( function(a,b ) { n [ b ] . k e y = a } ) } } , d i m e n s i o n F o r m a t s : { g e t : function ( ) { r e t u r n \
n . map ( function(a ) { r e t u r n a . f o r m a t } ) } , s e t : function ( b ) { a . deprecated ( \"dimensionFormats\",\"use dimensionData instead\ "),0===n.length?b.forEach(function(a){n.push({format:a})}):b.forEach(function(a,b){n[b].format=a})}},margin:{get:function(){return f},set:function(a){f.top=void 0!==a.top?a.top:f.top,f.right=void 0!==a.right?a.right:f.right,f.bottom=void 0!==a.bottom?a.bottom:f.bottom,f.left=void 0!==a.left?a.left:f.left}},color:{get:function(){return r},set:function(b){r=a.utils.getColor(b)}}}),a.utils.initOptions(b),b},a.models.parallelCoordinatesChart=function(){\" use strict\ ";function b(e){return s.reset(),s.models(c),e.each(function(e){var k=d3.select(this);a.utils.initSVG(k);var p=a.utils.availableWidth(h,k,f),q=a.utils.availableHeight(i,k,f);if(b.update=function(){k.call(b)},b.container=this,l.setter(u(m),b.update).getter(t(m)).update(),l.disabled=m.map(function(a){return!!a.disabled}),m=m.map(function(a){return a.disabled=!!a.disabled,a}),m.forEach(function(a,b){a.originalPosition=isNaN(a.originalPosition)?b:a.originalPosition,a.currentPosition=isNaN(a.currentPosition)?b:a.currentPosition}),!o){var s;o={};for(s in l)l[s]instanceof Array?o[s]=l[s].slice(0):o[s]=l[s]}if(!e||!e.length)return a.utils.noData(b,k),b;k.selectAll(\" .nv-noData\ ").remove();var v=k.selectAll(\" g.nv-wrap.nv-parallelCoordinatesChart\ ").data([e]),w=v.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-parallelCoordinatesChart\ ").append(\" g\ "),x=v.select(\" g\ ");w.append(\" g\ ").attr(\" class\ ",\" nv-parallelCoordinatesWrap\ "),w.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),x.select(\" rect\ ").attr(\" width\ ",p).attr(\" height\ ",q>0?q:0),j?(d.width(p).color(function(a){return\" rgb(188,190,192 ) \ " } ) , x . select ( \".nv-legendWrap\").datum(m.sort(function(a,b){return a.originalPosition-b.originalPosition} ) ) . call ( d ) , g | | d . height ( ) = = = f . t o p | | ( f . t o p = d . height ( ) , q = a . u t i l s . availableHeight ( i,k,f ) ) , v . select ( \".nv-legendWrap\").attr(\"transform\",\"translate( 0 ,\ "+-f.top+\" ) \ " ) ) : x . select ( \".nv-legendWrap\").selectAll(\"*\").remove(),v.attr(\"transform\",\"translate(\"+f.left+\",\"+f.top+\")\"),c.width(p).height(q).dimensionData(m).displayBrush(n);\
v a r y = x . select ( \".nv-parallelCoordinatesWrap \").datum(e);y.transition().call(c),c.dispatch.on(\"brushEnd\",function(a,b){b?(n=!0,r.brushEnd(a)):n=!1}),d.dispatch.on(\"stateChange\",function(a){for(var c in a ) l [ c ] = a [ c ] ; r . stateChange ( l ) , b . update ( ) } ) , c . d i s p a t c h . on ( \"dimensionsOrder\",function(a){m.sort(function(a,b){return a.currentPosition-b.currentPosition} ) ; v a r b = ! 1 ; m . forEach ( function(a,c ) { a . c u r r e n t P o s i t i o n = c , a . c u r r e n t P o s i t i o n ! = = a . o r i g i n a l P o s i t i o n & & ( b = ! 0 ) } ) , r . dimensionsOrder ( m,b ) } ) , r . on ( \"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(m.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , l . d i s a b l e d = a . d i s a b l e d ) , b . update ( ) } ) } ) , s . renderEnd ( \"parraleleCoordinateChart immediate\ "),b}var c=a.models.parallelCoordinates(),d=a.models.legend(),e=a.models.tooltip(),f=(a.models.tooltip(),{top:0,right:0,bottom:0,left:0}),g=null,h=null,i=null,j=!0,k=a.utils.defaultColor(),l=a.utils.state(),m=[],n=!0,o=null,p=null,q=\" undefined\ ",r=d3.dispatch(\" dimensionsOrder\ ",\" brushEnd\ ",\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),s=a.utils.renderWatch(r),t=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},u=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return e.contentGenerator(function(a){var b='<table><thead><tr><td class=\" legend-color-guide\ "><div style=\" background-color:'+a.color+'\ "></div></td><td><strong>'+a.key+\" </strong></td></tr></thead>\ ";return 0!==a.series.length&&(b+='<tbody><tr><td height =\" 10px\ "></td></tr>',a.series.forEach(function(a){b=b+'<tr><td class=\" legend-color-guide\ "><div style=\" background-color:'+a.color+'\ "></div></td><td class=\" key\ ">'+a.key+'</td><td class=\" value\ ">'+a.value+\" </td></tr>\ "}),b+=\" </tbody>\ "),b+=\" </table>\ "}),c.dispatch.on(\" elementMouseover.tooltip\ " ,function(a ) { v a r b = { k e y : a . l a b e l , c o l o r : a . c o l o r , s e r i e s : [ ] } ; a . v a l u e s & & ( O b j e c t . keys ( a.values ) . forEach ( function(c ) { v a r d = a . d i m e n s i o n s . filter ( function(a ) { r e t u r n a . k e y = = = c } ) [ 0 ] ; if ( d ) { v a r e ; e = isNaN ( a.values[c] ) | | isNaN ( parseFloat(a.values[c] ) ) ? q : d . format ( a.values[c] ) , b . s e r i e s . push ( {idx:d.currentPosition,\
k e y : c , v a l u e : e , c o l o r : d . c o l o r } ) } } ) , b . s e r i e s . sort ( function(a,b ) { r e t u r n a . i d x - b . i d x } ) ) , e . data ( b ) . hidden ( !1 ) } ) , c . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){e.hidden(!0)}),c.dispatch.on(\"elementMousemove.tooltip\",function(){e()}),b.dispatch=r,b.parallelCoordinates=c,b.legend=d,b.tooltip=e,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a ) { h = a } } , h e i g h t : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , d i m e n s i o n D a t a : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , d i s p l a y B r u s h : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , n o D a t a : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , n a n V a l u e : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , m a r g i n : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( f . t o p = a . t o p , g = a . t o p ) , f . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : f . r i g h t , f . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : f . b o t t o m , f . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : f . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n k } , s e t : function ( b ) { k = a . u t i l s . getColor ( b ) , d . color ( k ) , c . color ( k ) } } } ) , a . u t i l s . inheritOptions ( b,c ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . p i e = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( F ) { r e t u r n E . reset ( ) , F . each ( function(b ) { f u n c t i o n F ( a,b ) { a . e n d A n g l e = isNaN ( a.endAngle ) ? 0 : a . e n d A n g l e , a . s t a r t A n g l e = isNaN ( a.startAngle ) ? 0 : a . s t a r t A n g l e , p | | ( a . i n n e r R a d i u s = 0 ) ; v a r c = d 3 . interpolate ( this._current,a ) ; r e t u r n t h i s . _ c u r r e n t = c ( 0 ) , function ( a ) { r e t u r n C [ b ] ( c ( a ) ) } } v a r G = d - c . l e f t - c . r i g h t , H = e - c . t o p - c . b o t t o m , I = M a t h . min ( G,H ) / 2 , J = [ ] , K = [ ] ; if ( i=d3.select(this ) , 0 = = = A . l e n g t h ) for ( var L=I-I/5,M=y*I,N=0;N<b[0].length;N++ ) J . push ( L ) , K . push ( M ) ; e l s e r ? ( J = A . map ( function(a ) { return ( a.outer-a.outer/5 ) * I } ) , K = A . map ( function(a ) { return ( a.inner-a.inner/5 ) * I } ) , y = d 3 . min ( A.map(function(a ) { r e t u r n a . i n n e r - a . i n n e r / 5 } ) ) ) : ( J = A . map ( function(a ) { r e t u r n a . o u t e r * I } ) , K = A . map ( function(a ) { r e t u r n a . i n n e r * I } ) , y = d 3 . min ( A.map(function(a ) { r e t u r n a . i n n e r } ) ) ) ; a . u t i l s . initSVG ( i ) ; v a r O = i . selectAll ( \".nv-wrap.nv-pie\").data(b),P=O.enter().append(\"g\").attr(\"class\",\
\ " n v d 3 n v - w r a p n v - p i e n v - c h a r t - \ " + h ) , Q = P . append ( \"g\"),R=O.select(\"g\"),S=Q.append(\"g\").attr(\"class\",\"nv-pie\");Q.append(\"g\").attr(\"class\",\"nv-pieLabels\"),O.attr(\"transform\",\"translate(\"+c.left+\",\"+c.top+\")\"),R.select(\".nv-pie\").attr(\"transform\",\"translate(\"+G/2+\",\"+H/2+\")\"),R.select(\".nv-pieLabels\").attr(\"transform\",\"translate(\"+G/2+\",\"+H/2+\")\"),i.on(\"click\",function(a,b){B.chartClick({data:a,index:b,pos:d3.event,id:h})}),C=[],D=[];for(var N=0;N<b[0].length;N++ ) { v a r T = d 3 . s v g . arc ( ) . outerRadius ( J[N] ) , U = d 3 . s v g . arc ( ) . outerRadius ( J[N]+5 ) ; u ! = = ! 1 & & ( T . startAngle ( u ) , U . startAngle ( u ) ) , w ! = = ! 1 & & ( T . endAngle ( w ) , U . endAngle ( w ) ) , p & & ( T . innerRadius ( K[N] ) , U . innerRadius ( K[N] ) ) , T . c o r n e r R a d i u s & & x & & ( T . cornerRadius ( x ) , U . cornerRadius ( x ) ) , C . push ( T ) , D . push ( U ) } v a r V = d 3 . l a y o u t . pie ( ) . sort ( null ) . value ( function(a ) { r e t u r n a . d i s a b l e d ? 0 : g ( a ) } ) ; V . p a d A n g l e & & v & & V . padAngle ( v ) , p & & q & & ( S . append ( \"text\").attr(\"class\",\"nv-pie-title\"),O.select(\".nv-pie-title\").style(\"text-anchor\",\"middle\").text(function(a){return q} ) . style ( \"font-size\",Math.min(G,H)*y*2/(q.length+2)+\"px\").attr(\"dy\",\"0.35em\").attr(\"transform\",function(a,b){return\"translate(0, \"+s+\")\"}));var W=O.select(\ ".nv-pie\" ) . selectAll ( \".nv-slice\").data(V),X=O.select(\".nv-pieLabels\").selectAll(\".nv-label\").data(V);W.exit().remove(),X.exit().remove();var Y=W.enter( ) . append ( \"g\");Y.attr(\"class\",\"nv-slice\"),Y.on(\"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0),r&&d3.select(this).select(\"path\").transition().duration(70).attr(\"d\",D[b]),B.elementMouseover({data:a.data,index:b,color:d3.select(this).style(\"fill\"),percent:(a.endAngle-a.startAngle)/(2*Math.PI)})}),Y.on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1),r&&d3.select(this).select(\"path\").transition().duration(50).attr(\"d\",C[b]),B.elementMouseout({data:a.data,index:b})}),Y.on(\"mousemove\",function(a,b){B.elementMousemove({data:a.data,index:b})}),Y.on(\"click\",function(a,b){var c=this;B.elementClick({data:a.data,index:b,color:d3.select(this ) . style ( \"fill\"),event:d3.event,element:c})}),Y.on(\"dblclick\",function(a,b){B.elementDblClick({data:a.data,\
i n d e x : b , c o l o r : d 3 . select ( this ) . style ( \"fill\")})}),W.attr(\"fill\",function(a,b){return j(a.data,b ) } ) , W . attr ( \"stroke\",function(a,b){return j(a.data,b ) } ) ; Y . append ( \"path\").each(function(a){this._current=a});if(W.select(\"path\").transition().duration(z).attr(\"d\",function(a,b){return C[b](a ) } ) . attrTween ( \"d\",F),l){for(var Z=[],N=0;N<b[0].length;N++ ) Z . push ( C[N] ) , m ? p & & ( Z [ N ] = d 3 . s v g . arc ( ) . outerRadius ( C[N].outerRadius( ) ) , u ! = = ! 1 & & Z [ N ] . startAngle ( u ) , w ! = = ! 1 & & Z [ N ] . endAngle ( w ) ) : p | | Z [ N ] . innerRadius ( 0 ) ; X . enter ( ) . append ( \"g\").classed(\"nv-label\",!0).each(function(a,b){var c=d3.select(this ) ; c . attr ( \"transform\",function(a,b){if(t){a.outerRadius=J[b]+10,a.innerRadius=J[b]+15;var c=(a.startAngle+a.endAngle ) / 2 * ( 1 8 0 / M a t h . P I ) ; return ( a.startAngle+a.endAngle ) / 2 < M a t h . P I ? c - = 9 0 : c + = 9 0 , \ " translate ( \"+Z[b].centroid(a)+\") rotate(\ "+c+\" ) \ " } r e t u r n a . o u t e r R a d i u s = I + 1 0 , a . i n n e r R a d i u s = I + 1 5 , \ " translate ( \"+Z[b].centroid(a)+\")\"}),c.append(\"rect\").style(\"stroke\",\"#fff\").style(\"fill\",\"#fff\").attr(\"rx\",3).attr(\"ry\",3),c.append(\"text\").style(\"text-anchor\",t?(a.startAngle+a.endAngle)/2<Math.PI?\"start\":\"end\":\"middle\").style(\"fill\",\"#000\")});var $ ={},_=14,aa=140,ba=function(a ) { r e t u r n M a t h . floor ( a[0]/aa ) * a a + \ " , \ " + M a t h . floor ( a[1]/_ ) * _ } , c a = function ( a ) { return ( a.endAngle-a.startAngle ) / ( 2 * M a t h . P I ) } ; X . watchTransition ( E,\ "pie labels\" ) . attr ( \"transform\",function(a,b){if(t){a.outerRadius=J[b]+10,a.innerRadius=J[b]+15;var c=(a.startAngle+a.endAngle ) / 2 * ( 1 8 0 / M a t h . P I ) ; return ( a.startAngle+a.endAngle ) / 2 < M a t h . P I ? c - = 9 0 : c + = 9 0 , \ " translate ( \"+Z[b].centroid(a)+\") rotate(\ "+c+\" ) \ " } a . o u t e r R a d i u s = I + 1 0 , a . i n n e r R a d i u s = I + 1 5 ; v a r d = Z [ b ] . centroid ( a ) , e = ca ( a ) ; if ( a.value&&e>=o ) { v a r f = ba ( d ) ; $ [ f ] & & ( d [ 1 ] - = _ ) , $ [ ba ( d ) ] = ! 0 } r e t u r n \ " translate ( \"+d+\")\"}),X.select(\".nv-label text\ ").style(\" text-anchor\ ",function(a,b){return t?(a.startAngle+a.endAngle)/2<Math.PI?\" start\ ":\" end\ ":\" middle\ "}).text(function(a,b){var c=ca(a),d=\" \";if(!a.value||o>c)return\"\";if(\"function\"==typeof n ) d = n ( a,b,{key:f(a.data ) , v a l u e : g ( a.data ) , p e r c e n t : k ( c ) } ) ; e l s e switch ( n ) { c a s e \ " k e y \ " : d = f ( a.data ) ; b r e a k ; c a s e \ " v a l u e \ " : d = k ( g(a.data ) ) ; b r e a k ; c a s e \ " p e r c e n t \ " : d = d 3 . format ( \"%\")(c)}return \
d } ) } } ) , E . renderEnd ( \"pie immediate\ "),b}var c={top:0,right:0,bottom:0,left:0},d=500,e=500,f=function(a){return a.x},g=function(a){return a.y},h=Math.floor(1e4*Math.random()),i=null,j=a.utils.defaultColor(),k=d3.format(\" ,.2f\ "),l=!0,m=!1,n=\" key\ ",o=.02,p=!1,q=!1,r=!0,s=0,t=!1,u=!1,v=!1,w=!1,x=0,y=.5,z=250,A=[],B=d3.dispatch(\" chartClick\ ",\" elementClick\ ",\" elementDblClick\ ",\" elementMouseover\ ",\" elementMouseout\ ",\" elementMousemove\ ",\" renderEnd\ "),C=[],D=[],E=a.utils.renderWatch(B);return b.dispatch=B,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{arcsRadius:{get:function(){return A},set:function(a){A=a}},width:{get:function(){return d},set:function(a){d=a}},height:{get:function(){return e},set:function(a){e=a}},showLabels:{get:function(){return l},set:function(a){l=a}},title:{get:function(){return q},set:function(a){q=a}},titleOffset:{get:function(){return s},set:function(a){s=a}},labelThreshold:{get:function(){return o},set:function(a){o=a}},valueFormat:{get:function(){return k},set:function(a){k=a}},x:{get:function(){return f},set:function(a){f=a}},id:{get:function(){return h},set:function(a){h=a}},endAngle:{get:function(){return w},set:function(a){w=a}},startAngle:{get:function(){return u},set:function(a){u=a}},padAngle:{get:function(){return v},set:function(a){v=a}},cornerRadius:{get:function(){return x},set:function(a){x=a}},donutRatio:{get:function(){return y},set:function(a){y=a}},labelsOutside:{get:function(){return m},set:function(a){m=a}},labelSunbeamLayout:{get:function(){return t},set:function(a){t=a}},donut:{get:function(){return p},set:function(a){p=a}},growOnHover:{get:function(){return r},set:function(a){r=a}},pieLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated(\" pieLabelsOutside\ ",\" use labelsOutside instead\ ")}},donutLabelsOutside:{get:function(){return m},set:function(b){m=b,a.deprecated(\" donutLabelsOutside\ ",\" use labelsOutside instead\ ")}},labelFormat:{get:function(){return k},set:function(b){k=b,a.deprecated(\" labelFormat\ ",\" use valueFormat instead\ " ) } } , m a r g i n : { g e t : function ( ) { r e t u r n \
c } , s e t : function ( a ) { c . t o p = \ " u n d e f i n e d \ " ! = t y p e o f a . t o p ? a . t o p : c . t o p , c . r i g h t = \ " u n d e f i n e d \ " ! = t y p e o f a . r i g h t ? a . r i g h t : c . r i g h t , c . b o t t o m = \ " u n d e f i n e d \ " ! = t y p e o f a . b o t t o m ? a . b o t t o m : c . b o t t o m , c . l e f t = \ " u n d e f i n e d \ " ! = t y p e o f a . l e f t ? a . l e f t : c . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a , E . reset ( z ) } } , y : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = d 3 . functor ( a ) } } , c o l o r : { g e t : function ( ) { r e t u r n j } , s e t : function ( b ) { j = a . u t i l s . getColor ( b ) } } , l a b e l T y p e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a | | \ " k e y \ " } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . p i e C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( e ) { r e t u r n s . reset ( ) , s . models ( c ) , e . each ( function(e ) { v a r j = d 3 . select ( this ) ; a . u t i l s . initSVG ( j ) ; v a r m = a . u t i l s . availableWidth ( h,j,f ) , p = a . u t i l s . availableHeight ( i,j,f ) ; if ( b.update=function( ) { j . transition ( ) . call ( b ) } , b . c o n t a i n e r = t h i s , n . setter ( u(e ) , b . u p d a t e ) . getter ( t(e ) ) . update ( ) , n . d i s a b l e d = e . map ( function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , ! o ) { v a r q ; o = { } ; for ( q in n ) n [ q ] i n s t a n c e o f A r r a y ? o [ q ] = n [ q ] . slice ( 0 ) : o [ q ] = n [ q ] } if ( !e||!e.length ) r e t u r n a . u t i l s . noData ( b,j ) , b ; j . selectAll ( \".nv-noData\").remove();var s=j.selectAll(\ "g.nv-wrap.nv-pieChart\" ) . data ( [e] ) , v = s . enter ( ) . append ( \"g\").attr(\"class\",\"nvd3 nv-wrap nv-pieChart\ ").append(\" g\ "),w=s.select(\" g\ " ) ; \
if ( v.append(\ "g\" ) . attr ( \"class\",\"nv-pieWrap\"),v.append(\"g\").attr(\"class\",\"nv-legendWrap\"),k){if(\"top\"===l)d.width(m).key(c.x()),s.select(\".nv-legendWrap\").datum(e).call(d),g||d.height()===f.top||(f.top=d.height(),p=a.utils.availableHeight(i,j,f)),s.select(\".nv-legendWrap\").attr(\"transform\",\"translate(0,\"+-f.top+\")\");else if(\ "right\" ===l ) { v a r x = a . m o d e l s . legend ( ) . width ( ) ; x > m / 2 & & ( x = m / 2 ) , d . height ( p ) . key ( c.x( ) ) , d . width ( x ) , m - = d . width ( ) , s . select ( \".nv-legendWrap\").datum(e).call(d).attr(\"transform\",\"translate(\"+m+\",0)\")}}else w.select(\ ".nv-legendWrap\" ) . selectAll ( \"*\").remove();s.attr(\"transform\",\"translate(\"+f.left+\",\"+f.top+\")\"),c.width(m).height(p);var y=w.select(\ ".nv-pieWrap\" ) . datum ( [e] ) ; d 3 . transition ( y ) . call ( c ) , d . d i s p a t c h . on ( \"stateChange\",function(a){for(var c in a ) n [ c ] = a [ c ] ; r . stateChange ( n ) , b . update ( ) } ) , r . on ( \"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(e.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , n . d i s a b l e d = a . d i s a b l e d ) , b . update ( ) } ) } ) , s . renderEnd ( \"pieChart immediate\ "),b}var c=a.models.pie(),d=a.models.legend(),e=a.models.tooltip(),f={top:30,right:20,bottom:20,left:20},g=null,h=null,i=null,j=!1,k=!0,l=\" top\ ",m=a.utils.defaultColor(),n=a.utils.state(),o=null,p=null,q=250,r=d3.dispatch(\" stateChange\ ",\" changeState\ ",\" renderEnd\ ");e.duration(0).headerEnabled(!1).valueFormatter(function(a,b){return c.valueFormat()(a,b)});var s=a.utils.renderWatch(r),t=function(a){return function(){return{active:a.map(function(a){return!a.disabled})}}},u=function(a){return function(b){void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}};return c.dispatch.on(\" elementMouseover.tooltip\ ",function(a){a.series={key:b.x()(a.data),value:b.y()(a.data),color:a.color,percent:a.percent},j||(delete a.percent,delete a.series.percent),e.data(a).hidden(!1)}),c.dispatch.on(\" elementMouseout.tooltip\ ",function(a){e.hidden(!0)}),c.dispatch.on(\" elementMousemove.tooltip\ " ,function(a ) { e ( ) } ) , b . l e g e n d = d , b . d i s p a t c h = r , b . p i e = c , b . t o o l t i p = e , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , \
h e i g h t : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , n o D a t a : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , s h o w T o o l t i p P e r c e n t : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , l e g e n d P o s i t i o n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , c o l o r : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a , d . color ( m ) , c . color ( m ) } } , d u r a t i o n : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a , s . reset ( q ) , c . duration ( q ) } } , m a r g i n : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( f . t o p = a . t o p , g = a . t o p ) , f . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : f . r i g h t , f . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : f . b o t t o m , f . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : f . l e f t } } } ) , a . u t i l s . inheritOptions ( b,c ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s a n k e y = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( ) { n . forEach ( function(a ) { a . s o u r c e L i n k s = [ ] , a . t a r g e t L i n k s = [ ] } ) , o . forEach ( function(a ) { v a r b = a . s o u r c e , c = a . t a r g e t ; \ " n u m b e r \ " = = t y p e o f b & & ( b = a . s o u r c e = n [ a . s o u r c e ] ) , \ " n u m b e r \ " = = t y p e o f c & & ( c = a . t a r g e t = n [ a . t a r g e t ] ) , b . s o u r c e L i n k s . push ( a ) , c . t a r g e t L i n k s . push ( a ) } ) } f u n c t i o n c ( ) { n . forEach ( function(a ) { a . v a l u e = M a t h . max ( d3.sum(a.sourceLinks,i ) , d 3 . sum ( a.targetLinks,i ) ) } ) } f u n c t i o n d ( ) { for ( var a,b=n,c=0;b.length&&c<n.length; ) a = [ ] , b . forEach ( function(b ) { b . x = c , b . d x = k , b . s o u r c e L i n k s . forEach ( function(b ) { a . indexOf ( b.target ) < 0 & & a . push ( b.target ) } ) } ) , b = a , + + c ; p & & e ( c ) , f ( ( m[0]-k ) /(c-1 ) ) } f u n c t i o n e ( a ) { n . forEach ( function(b ) { b . s o u r c e L i n k s . l e n g t h | | ( b . x = a - 1 ) } ) } f u n c t i o n f ( a ) { n . forEach ( function(b ) { b . x * = a } ) } f u n c t i o n g ( a ) { f u n c t i o n b ( ) { v a r a = d 3 . min ( g,function(a ) { return ( m[1]-(a.length-1 ) * l ) / d 3 . sum ( a,i ) } ) ; g . forEach ( function(b ) { b . forEach ( function(b,c ) { b . y = c , b . d y = b . v a l u e * a } ) } ) , o . forEach ( function(b ) { b . d y = b . v a l u e * a } ) } f u n c t i o n c ( a ) { f u n c t i o n b ( a ) { return ( a.source.y+a.sy+a.dy/2 ) * a . v a l u e } g . forEach ( function(c,d ) { c . forEach ( function(c ) { if ( c.targetLinks.length ) { v a r d = d 3 . sum ( c.targetLinks,b ) / d 3 . sum ( c.targetLinks,i ) ; c . y + = ( d - t ( c ) ) * a } } ) } ) } f u n c t i o n d ( a ) { f u n c t i o n b ( a ) { return ( a.target.y+a.ty+a.dy/2 ) * a . v a l u e } g . slice ( ) . reverse ( ) . forEach ( function(c ) { c . forEach ( function(c ) { if ( c.sourceLinks.length ) { v a r \
d = d 3 . sum ( c.sourceLinks,b ) / d 3 . sum ( c.sourceLinks,i ) ; c . y + = ( d - t ( c ) ) * a } } ) } ) } f u n c t i o n e ( ) { g . forEach ( function(a ) { v a r b , c , d , e = 0 , g = a . l e n g t h ; for ( a.sort(f ) , d = 0 ; g > d ; + + d ) b = a [ d ] , c = e - b . y , c > 0 & & ( b . y + = c ) , e = b . y + b . d y + l ; if ( c=e-l-m[1],c>0 ) for ( e=b.y-=c,d=g-2;d>=0;--d ) b = a [ d ] , c = b . y + b . d y + l - e , c > 0 & & ( b . y - = c ) , e = b . y } ) } f u n c t i o n f ( a,b ) { r e t u r n a . y - b . y } v a r g = d 3 . nest ( ) . key ( function(a ) { r e t u r n a . x } ) . sortKeys ( d3.ascending ) . entries ( n ) . map ( function(a ) { r e t u r n a . v a l u e s } ) ; b ( ) , e ( ) , h ( ) ; for ( var j=1;a>0;--a ) d ( j*=.99 ) , e ( ) , h ( ) , c ( j ) , e ( ) , h ( ) } f u n c t i o n h ( ) { f u n c t i o n a ( a,b ) { r e t u r n a . s o u r c e . y - b . s o u r c e . y } f u n c t i o n b ( a,b ) { r e t u r n a . t a r g e t . y - b . t a r g e t . y } n . forEach ( function(c ) { c . s o u r c e L i n k s . sort ( b ) , c . t a r g e t L i n k s . sort ( a ) } ) , n . forEach ( function(a ) { v a r b = 0 , c = 0 ; a . s o u r c e L i n k s . forEach ( function(a ) { a . s y = b , b + = a . d y } ) , a . t a r g e t L i n k s . forEach ( function(a ) { a . t y = c , c + = a . d y } ) } ) } f u n c t i o n i ( a ) { r e t u r n a . v a l u e } v a r j = { } , k = 2 4 , l = 8 , m = [ 1 , 1 ] , n = [ ] , o = [ ] , p = ! 0 , q = function ( a ) { b ( ) , c ( ) , d ( ) , g ( a ) } , r = function ( ) { h ( ) } , s = function ( ) { f u n c t i o n a ( a ) { v a r c = a . s o u r c e . x + a . s o u r c e . d x , d = a . t a r g e t . x , e = d 3 . interpolateNumber ( c,d ) , f = e ( b ) , g = e ( 1-b ) , h = a . s o u r c e . y + a . s y + a . d y / 2 , i = a . t a r g e t . y + a . t y + a . d y / 2 , j = \ " M \ " + c + \ " , \ " + h + \ " C \ " + f + \ " , \ " + h + \ " \ " + g + \ " , \ " + i + \ " \ " + d + \ " , \ " + i ; r e t u r n j } v a r b = . 5 ; r e t u r n a . c u r v a t u r e = function ( c ) { r e t u r n a r g u m e n t s . l e n g t h ? ( b = + c , a ) : b } , a } , t = function ( a ) { r e t u r n a . y + a . d y / 2 } ; r e t u r n j . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( j ) , j . _ o p t i o n s = O b j e c t . create ( {},{nodeWidth:{get:function( ) { r e t u r n k } , s e t : function ( a ) { k = + a } } , n o d e P a d d i n g : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , n o d e s : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , l i n k s : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , s i z e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , s i n k s R i g h t : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , l a y o u t : { g e t : function ( ) { q ( 32 ) } , s e t : function ( a ) { q ( a ) } } , r e l a y o u t : { g e t : function ( ) { r ( ) } , s e t : function ( a ) { } } , c e n t e r : { g e t : function ( ) { r e t u r n t ( ) } , s e t : function ( a ) { \ " f u n c t i o n \ " = = t y p e o f a & & ( t = a ) } } , l i n k : { g e t : function ( ) { r e t u r n s ( ) } , s e t : function ( a ) { r e t u r n \ " f u n c t i o n \ " = = t y p e o f a & & ( s = a ) , s ( ) } } } ) , a . u t i l s . initOptions ( j ) , j } , a . m o d e l s . s a n k e y C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( a ) { r e t u r n a . each ( function(b ) { f u n c t i o n \
c ( a ) { d 3 . select ( this ) . attr ( \"transform\",\"translate(\"+a.x+\",\"+(a.y=Math.max(0,Math.min(f-a.dy,d3.event.y)))+\")\"),d.relayout(),t.attr(\"d\",s)}var i={nodes:[{node:1,name:\ "Test 1\" },{node:2,name:\ "Test 2\" },{node:3,name:\ "Test 3\" },{node:4,name:\ "Test 4\" },{node:5,name:\ "Test 5\" },{node:6,name:\ "Test 6\" }],links:[{source:0,target:1,value:2295},{source:0,target:5,value:1199},{source:1,target:2,value:1119},{source:1,target:5,value:1176},{source:2,target:3,value:487},{source:2,target:5,value:632},{source:3,target:4,value:301},{source:3,target:5,value:186}]},k=!1,l=!1;if((\ "object\" ==typeof b.nodes&&b.nodes.length ) > = 0 & & ( \ " o b j e c t \ " = = t y p e o f b . l i n k s & & b . l i n k s . l e n g t h ) > = 0 & & ( k = ! 0 ) , b . n o d e s & & b . n o d e s . l e n g t h > 0 & & b . l i n k s & & b . l i n k s . l e n g t h > 0 & & ( l = ! 0 ) , ! k ) r e t u r n c o n s o l e . error ( \"NVD3 Sankey chart error:\ ",\" invalid data format for\ ",b),console.info(\" Valid data format is: \",i,JSON.stringify(i)),r(a,\"Error loading chart, data is invalid\ "),!1;if(!l)return r(a,\" No data available\ "),!1;var m=a.append(\" svg\ ").attr(\" width\ ",e).attr(\" height\ ",f).append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-sankeyChart\ ");d.nodeWidth(g).nodePadding(h).size([e,f]);var s=d.link();d.nodes(b.nodes).links(b.links).layout(32).center(j);var t=m.append(\" g\ ").selectAll(\" .link\ ").data(b.links).enter().append(\" path\ ").attr(\" class\ ",\" link\ ").attr(\" d\ ",s).style(\" stroke-width\ ",function(a){return Math.max(1,a.dy)}).sort(function(a,b){return b.dy-a.dy});t.append(\" title\ ").text(n);var u=m.append(\" g\ ").selectAll(\" .node\ ").data(b.nodes).enter().append(\" g\ ").attr(\" class\ ",\" node\ ").attr(\" transform\ ",function(a){return\" translate(\ "+a.x+\" ,\ "+a.y+\" ) \ " } ) . call ( d3.behavior.drag( ) . origin ( function(a ) { r e t u r n a } ) . on ( \"dragstart\",function(){this.parentNode.appendChild(this)}).on(\"drag\",c));u.append(\"rect\").attr(\"height\",function(a){return a.dy} ) . attr ( \"width\",d.nodeWidth()).style(\"fill\",o).style(\"stroke\",p).append(\"title\").text(q),u.append(\"text\").attr(\"x\",-6).attr(\"y\",function(a){return a.dy/2} ) . attr ( \"dy\",\".35em\").attr(\"text-anchor\",\"end\").attr(\"transform\",null).text(function(a){return a.name} ) . filter ( function(a ) { r e t u r n a . x < e / 2 } ) . attr ( \"x\",6+d.nodeWidth()).attr(\"text-anchor\",\
\ " s t a r t \ " ) } ) , b } v a r c = { t o p : 5 , r i g h t : 0 , b o t t o m : 5 , l e f t : 0 } , d = a . m o d e l s . sankey ( ) , e = 6 0 0 , f = 4 0 0 , g = 3 6 , h = 4 0 , i = \ " u n i t s \ " , j = v o i d 0 , k = d 3 . format ( \",.0f\"),l=function(a){return k(a ) + \ " \ " + i } , m = d 3 . s c a l e . category20 ( ) , n = function ( a ) { r e t u r n a . s o u r c e . n a m e + \ " → \ " + a . t a r g e t . n a m e + \ " \ \ n \ " + l ( a.value ) } , o = function ( a ) { r e t u r n a . c o l o r = m ( a.name.replace(/ .*/,\ "\" ) ) } , p = function ( a ) { r e t u r n d 3 . rgb ( a.color ) . darker ( 2 ) } , q = function ( a ) { r e t u r n a . n a m e + \ " \ \ n \ " + l ( a.value ) } , r = function ( a,b ) { a . append ( \"text\").attr(\"x\",0).attr(\"y\",0).attr(\"class\",\"nvd3-sankey-chart-error\").attr(\"text-anchor\",\"middle\").text(b)};return b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{units:{get:function( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , w i d t h : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e = a } } , h e i g h t : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , f o r m a t : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , l i n k T i t l e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , n o d e W i d t h : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , n o d e P a d d i n g : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , c e n t e r : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , m a r g i n : { g e t : function ( ) { r e t u r n c } , s e t : function ( a ) { c . t o p = v o i d 0 ! = = a . t o p ? a . t o p : c . t o p , c . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : c . r i g h t , c . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : c . b o t t o m , c . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : c . l e f t } } , n o d e S t y l e : { g e t : function ( ) { r e t u r n { } } , s e t : function ( a ) { o = v o i d 0 ! = = a . f i l l C o l o r ? a . f i l l C o l o r : o , p = v o i d 0 ! = = a . s t r o k e C o l o r ? a . s t r o k e C o l o r : p , q = v o i d 0 ! = = a . t i t l e ? a . t i t l e : q } } } ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s c a t t e r = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( a ) { v a r b , c ; r e t u r n b = a [ 0 ] . s e r i e s + \ " : \ " + a [ 1 ] , c = Z [ b ] = Z [ b ] | | { } } f u n c t i o n c ( a ) { v a r b ; b = a [ 0 ] . s e r i e s + \ " : \ " + a [ 1 ] , d e l e t e Z [ b ] } f u n c t i o n d ( a ) { v a r c , d , e , f = b ( a ) , g = ! 1 ; for ( c=1;c<arguments.length;c+=2 ) d = a r g u m e n t s [ c ] , e = a r g u m e n t s [ c + 1 ] ( a [ 0 ] , a [ 1 ] ) , f [ d ] = = = e & & f . hasOwnProperty ( d ) | | ( f [ d ] = e , g = ! 0 ) ; r e t u r n g } f u n c t i o n e ( b ) { r e t u r n X . reset ( ) , b . each ( function(b ) { f u n c t i o n T ( ) { if ( W=!1,!C ) r e t u r n ! 1 ; if ( S===!0 ) { v a r c = d 3 . merge ( b.map(function(b,c ) { r e t u r n b . v a l u e s . map ( function(b,d ) { v a r e = v ( b,d ) , f = w ( b,d ) ; r e t u r n [ a . u t i l s . NaNtoZero ( s(e ) ) + 1 e - 4 * M a t h . random ( ) , a . u t i l s . NaNtoZero ( t(f ) ) + 1 e - 4 * M a t h . random ( ) , \
c , d , b ] } ) . filter ( function(a,b ) { r e t u r n D ( a[4],b ) } ) } ) ) ; if ( 0==c.length ) r e t u r n ! 1 ; c . l e n g t h < 3 & & ( c . push ( [s.range( ) [ 0 ] - 2 0 , t . range ( ) [ 0 ] - 2 0 , n u l l , n u l l ] ) , c . push ( [s.range( ) [ 1 ] + 2 0 , t . range ( ) [ 1 ] + 2 0 , n u l l , n u l l ] ) , c . push ( [s.range( ) [ 0 ] - 2 0 , t . range ( ) [ 0 ] + 2 0 , n u l l , n u l l ] ) , c . push ( [s.range( ) [ 1 ] + 2 0 , t . range ( ) [ 1 ] - 2 0 , n u l l , n u l l ] ) ) ; v a r d = d 3 . g e o m . polygon ( [[-10,-10],[-10,n+10],[m+10,n+10],[m+10,-10]] ) , e = d 3 . g e o m . voronoi ( c ) . map ( function(a,b ) { r e t u r n { d a t a : d . clip ( a ) , s e r i e s : c [ b ] [ 2 ] , p o i n t : c [ b ] [ 3 ] } } ) ; e a . select ( \".nv-point-paths\").selectAll(\"path\").remove();var f=ea.select(\ ".nv-point-paths\" ) . selectAll ( \"path\").data(e),g=f.enter().append(\"svg:path\").attr(\"d\",function(a){return a&&a.data&&0!==a.data.length?\ "M\" +a.data.join(\ ",\" ) + \ " Z \ " : \ " M 0 0 \ " } ) . attr ( \"id\",function(a,b){return\"nv-path-\"+b}).attr(\"clip-path\",function(a,b){return\"url(#nv-clip-\"+q+\"-\"+b+\")\"});if(I&&g.style(\"fill\",d3.rgb(230,230,230)).style(\"fill-opacity\",.4).style(\"stroke-opacity\",1).style(\"stroke\",d3.rgb(200,200,200)),H){ea.select(\".nv-point-clips\").selectAll(\"*\").remove();var h=ea.select(\ ".nv-point-clips\" ) . selectAll ( \"clipPath\").data(c);h.enter().append(\"svg:clipPath\").attr(\"id\",function(a,b){return\"nv-clip-\"+q+\"-\"+b}).append(\"svg:circle\").attr(\"cx\",function(a){return a[0]} ) . attr ( \"cy\",function(a){return a[1]} ) . attr ( \"r\",J)}var i=function(a,c,d ) { if ( W ) r e t u r n 0 ; v a r e = b [ c . s e r i e s ] ; if ( void 0!==e ) { v a r f = e . v a l u e s [ c . p o i n t ] ; f . c o l o r = o ( e,c.series ) , f . x = v ( f ) , f . y = w ( f ) ; v a r g = r . node ( ) . getBoundingClientRect ( ) , h = w i n d o w . p a g e Y O f f s e t | | d o c u m e n t . d o c u m e n t E l e m e n t . s c r o l l T o p , i = w i n d o w . p a g e X O f f s e t | | d o c u m e n t . d o c u m e n t E l e m e n t . s c r o l l L e f t , j = { l e f t : s ( v(f,c.point ) ) + g . l e f t + i + l . l e f t + 1 0 , t o p : t ( w(f,c.point ) ) + g . t o p + h + l . t o p + 1 0 } ; d ( {point:f,series:e,pos:j,relativePos:[s(v(f,c.point ) ) + l . l e f t , t ( w(f,c.point ) ) + l . t o p ] , s e r i e s I n d e x : c . s e r i e s , p o i n t I n d e x : c . p o i n t , e v e n t : d 3 . e v e n t , e l e m e n t : a } ) } } ; f . on ( \"click\",function(a){i(this,a,R.elementClick)}).on(\"dblclick\",function(a){i(this,a,R.elementDblClick)}).on(\"mouseover\",function(a){i(this,a,R.elementMouseover)}).on(\"mouseout\",function(a,b){i(this,a,R.elementMouseout)})}else ea.select(\ ".nv-groups\" ) . selectAll ( \".nv-group\").selectAll(\".nv-point\").on(\"click\",\
function ( a,c ) { if ( W||!b[a.series] ) r e t u r n 0 ; v a r d = b [ a . s e r i e s ] , e = d . v a l u e s [ c ] , f = t h i s ; R . elementClick ( {point:e,series:d,pos:[s(v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , r e l a t i v e P o s : [ s ( v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , s e r i e s I n d e x : a . s e r i e s , p o i n t I n d e x : c , e v e n t : d 3 . e v e n t , e l e m e n t : f } ) } ) . on ( \"dblclick\",function(a,c){if(W||!b[a.series])return 0;var d=b[a.series],e=d.values[c];R.elementDblClick({point:e,series:d,pos:[s(v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , r e l a t i v e P o s : [ s ( v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , s e r i e s I n d e x : a . s e r i e s , p o i n t I n d e x : c } ) } ) . on ( \"mouseover\",function(a,c){if(W||!b[a.series])return 0;var d=b[a.series],e=d.values[c];R.elementMouseover({point:e,series:d,pos:[s(v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , r e l a t i v e P o s : [ s ( v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , s e r i e s I n d e x : a . s e r i e s , p o i n t I n d e x : c , c o l o r : o ( a,c ) } ) } ) . on ( \"mouseout\",function(a,c){if(W||!b[a.series])return 0;var d=b[a.series],e=d.values[c];R.elementMouseout({point:e,series:d,pos:[s(v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , r e l a t i v e P o s : [ s ( v(e,c ) ) + l . l e f t , t ( w(e,c ) ) + l . t o p ] , s e r i e s I n d e x : a . s e r i e s , p o i n t I n d e x : c , c o l o r : o ( a,c ) } ) } ) } r = d 3 . select ( this ) ; v a r Z = a . u t i l s . availableWidth ( m,r,l ) , $ = a . u t i l s . availableHeight ( n,r,l ) ; a . u t i l s . initSVG ( r ) , b . forEach ( function(a,b ) { a . v a l u e s . forEach ( function(a ) { a . s e r i e s = b } ) } ) ; v a r _ = e . yScale ( ) . n a m e = = = d 3 . s c a l e . log ( ) . n a m e ? ! 0 : ! 1 , a a = K & & L & & O ? [ ] : d 3 . merge ( b.map(function(a ) { r e t u r n a . v a l u e s . map ( function(a,b ) { r e t u r n { x : v ( a,b ) , y : w ( a,b ) , s i z e : x ( a,b ) } } ) } ) ) ; if ( s.domain(K||d3.extent(aa.map(function(a ) { r e t u r n a . x } ) . concat ( z ) ) ) , E & & b [ 0 ] ? s . range ( M||[(Z*F+Z ) / ( 2 * b [ 0 ] . v a l u e s . l e n g t h ) , Z - Z * ( 1 + F ) / ( 2 * b [ 0 ] . v a l u e s . l e n g t h ) ] ) : s . range ( M||[0,Z] ) , _ ) { v a r b a = d 3 . min ( aa.map(function(a ) { r e t u r n 0 ! = = a . y ? a . y : v o i d 0 } ) ) ; t . clamp ( !0 ) . domain ( L||d3.extent(aa.map(function(a ) { r e t u r n 0 ! = = a . y ? a . y : . 1 * b a } ) . concat ( A ) ) ) . range ( N||[ $ ,0] ) } e l s e t . domain ( L||d3.extent(aa.map(function(a ) { r e t u r n a . y } ) . concat ( A ) ) ) . range ( N||[ $ ,0] ) ; u . domain ( O||d3.extent(aa.map(function(a ) { r e t u r n a . s i z e } ) . concat ( B ) ) ) . range ( P||Y ) , Q = s . domain ( ) [ 0 ] = = = s . domain ( ) [ 1 ] | | t . domain ( ) [ 0 ] = = = t . domain ( ) [ 1 ] , s . domain ( ) [ 0 ] = = = s . domain ( ) [ 1 ] & & ( s . domain ( ) [ 0 ] ? s . domain ( [s.domain( ) [ 0 ] - . 0 1 * s . domain ( ) [ 0 ] , s . domain ( ) [ 1 ] + . 0 1 * s . domain ( ) [ 1 ] ] ) : s . domain ( [-1,\
1 ] ) ) , t . domain ( ) [ 0 ] = = = t . domain ( ) [ 1 ] & & ( t . domain ( ) [ 0 ] ? t . domain ( [t.domain( ) [ 0 ] - . 0 1 * t . domain ( ) [ 0 ] , t . domain ( ) [ 1 ] + . 0 1 * t . domain ( ) [ 1 ] ] ) : t . domain ( [-1,1] ) ) , isNaN ( s.domain( ) [ 0 ] ) & & s . domain ( [-1,1] ) , isNaN ( t.domain( ) [ 0 ] ) & & t . domain ( [-1,1] ) , f = f | | s , g = g | | t , h = h | | u ; v a r c a = s ( 1 ) ! = = f ( 1 ) | | t ( 1 ) ! = = g ( 1 ) | | u ( 1 ) ! = = h ( 1 ) ; i = i | | m , j = j | | n ; v a r d a = i ! = = m | | j ! = = n , e a = r . selectAll ( \"g.nv-wrap.nv-scatter\").data([b]),fa=ea.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-scatter nv-chart-\ "+q),ga=fa.append(\" defs\ "),ha=fa.append(\" g\ "),ia=ea.select(\" g\ ");ea.classed(\" nv-single-point\ ",Q),ha.append(\" g\ ").attr(\" class\ ",\" nv-groups\ "),ha.append(\" g\ ").attr(\" class\ ",\" nv-point-paths\ "),fa.append(\" g\ ").attr(\" class\ ",\" nv-point-clips\ "),ea.attr(\" transform\ ",\" translate(\ "+l.left+\" ,\ "+l.top+\" ) \ " ) , g a . append ( \"clipPath\").attr(\"id\",\"nv-edge-clip-\"+q).append(\"rect\").attr(\"transform\",\"translate( -10, -10 ) \ " ) , e a . select ( \"#nv-edge-clip-\"+q+\" rect\ ").attr(\" width\ ",Z+20).attr(\" height\ ",$>0?$+20:0),ia.attr(\" clip-path\ ",G?\" url( #nv-edge-clip-\"+q+\")\":\"\"),W=!0;var ja=ea.select(\".nv-groups\").selectAll(\".nv-group\").data(function(a){return a},function(a){return a.key});ja.enter().append(\"g\").style(\"stroke-opacity\",1e-6).style(\"fill-opacity\",1e-6),ja.exit().remove(),ja.attr(\"class\",function(a,b){return(a.classed||\"\")+\" nv-group nv-series-\"+b}).classed(\"nv-noninteractive\",!C).classed(\"hover\",function(a){return a.hover}),ja.watchTransition(X,\"scatter: groups\").style(\"fill\",function(a,b){return o(a,b)}).style(\"stroke\",function(a,b){return a.pointBorderColor||p||o(a,b)}).style(\"stroke-opacity\",1).style(\"fill-opacity\",.5);var ka=ja.selectAll(\"path.nv-point\").data(function(a){return a.values.map(function(a,b){return[a,b]}).filter(function(a,b){return D(a[0],b)})});if(ka.enter().append(\"path\").attr(\"class\",function(a){return\"nv-point nv-point-\"+a[1]}).style(\"fill\",function(a){return a.color}).style(\"stroke\",function(a){return a.color}).attr(\"transform\",function(b){return\"translate(\"+a.utils.NaNtoZero(f(v(b[0],b[1])))+\",\"+a.utils.NaNtoZero(g(w(b[0],b[1])))+\")\"}).attr(\"d\",a.utils.symbol().type(function(a){return y(a[0])}).size(function(a){return \
u ( x(a[0],a[1] ) ) } ) ) , k a . exit ( ) . each ( c ) . remove ( ) , j a . exit ( ) . selectAll ( \"path.nv-point\").watchTransition(X,\"scatter exit\ ").attr(\" transform\ ",function(b){return\" translate(\ "+a.utils.NaNtoZero(s(v(b[0],b[1])))+\" ,\ "+a.utils.NaNtoZero(t(w(b[0],b[1])))+\" ) \ " } ) . remove ( ) , k a . filter ( function(a ) { r e t u r n c a | | d a | | d ( a,\ "x\" ,v,\ "y\" ,w ) } ) . watchTransition ( X,\ "scatter points\" ) . attr ( \"transform\",function(b){return\"translate(\"+a.utils.NaNtoZero(s(v(b[0],b[1])))+\",\"+a.utils.NaNtoZero(t(w(b[0],b[1])))+\")\"}),ka.filter(function(a){return ca||da||d(a,\ "shape\" ,y,\ "size\" ,x ) } ) . watchTransition ( X,\ "scatter points\" ) . attr ( \"d\",a.utils.symbol().type(function(a){return y(a[0] ) } ) . size ( function(a ) { r e t u r n u ( x(a[0],a[1] ) ) } ) ) , V ) { v a r l a = j a . selectAll ( \".nv-label\").data(function(a){return a.values.map(function(a,b ) { r e t u r n [ a , b ] } ) . filter ( function(a,b ) { r e t u r n D ( a[0],b ) } ) } ) ; l a . enter ( ) . append ( \"text\").style(\"fill\",function(a,b){return a.color} ) . style ( \"stroke-opacity\",0).style(\"fill-opacity\",1).attr(\"transform\",function(b){var c=a.utils.NaNtoZero(f(v(b[0],b[1] ) ) ) + M a t h . sqrt ( u(x(b[0],b[1] ) ) / M a t h . P I ) + 2 ; r e t u r n \ " translate ( \"+c+\",\"+a.utils.NaNtoZero(g(w(b[0],b[1])))+\")\"}).text(function(a,b){return a[0].label} ) , l a . exit ( ) . remove ( ) , j a . exit ( ) . selectAll ( \"path.nv-label\").watchTransition(X,\"scatter exit\ ").attr(\" transform\ ",function(b){var c=a.utils.NaNtoZero(s(v(b[0],b[1])))+Math.sqrt(u(x(b[0],b[1]))/Math.PI)+2;return\" translate(\ "+c+\" ,\ "+a.utils.NaNtoZero(t(w(b[0],b[1])))+\" ) \ " } ) . remove ( ) , l a . each ( function(a ) { d 3 . select ( this ) . classed ( \"nv-label\",!0).classed(\"nv-label-\"+a[1],!1).classed(\"hover\",!1)}),la.watchTransition(X,\"scatter labels\ ").attr(\" transform\ ",function(b){var c=a.utils.NaNtoZero(s(v(b[0],b[1])))+Math.sqrt(u(x(b[0],b[1]))/Math.PI)+2;return\" translate(\ "+c+\" ,\ "+a.utils.NaNtoZero(t(w(b[0],b[1])))+\" ) \ " } ) } U ? ( clearTimeout ( k ) , k = setTimeout ( T,U ) ) : T ( ) , f = s . copy ( ) , g = t . copy ( ) , h = u . copy ( ) , i = m , j = n } ) , X . renderEnd ( \"scatter immediate\ " ) , e } v a r f , g , h , i , j , k , l = { t o p : 0 , r i g h t : 0 , b o t t o m : 0 , l e f t : 0 } , m = n u l l , n = n u l l , o = a . u t i l s . defaultColor ( ) , p = n u l l , q = M a t h . floor ( 1e5*Math.random( ) ) , r = n u l l , s = d 3 . s c a l e . linear ( ) , t = d 3 . s c a l e . linear ( ) , u = d 3 . s c a l e . linear ( ) , \
v = function ( a ) { r e t u r n a . x } , w = function ( a ) { r e t u r n a . y } , x = function ( a ) { r e t u r n a . s i z e | | 1 } , y = function ( a ) { r e t u r n a . s h a p e | | \ " c i r c l e \ " } , z = [ ] , A = [ ] , B = [ ] , C = ! 0 , D = function ( a ) { r e t u r n ! a . n o t A c t i v e } , E = ! 1 , F = . 1 , G = ! 1 , H = ! 0 , I = ! 1 , J = function ( ) { r e t u r n 2 5 } , K = n u l l , L = n u l l , M = n u l l , N = n u l l , O = n u l l , P = n u l l , Q = ! 1 , R = d 3 . dispatch ( \"elementClick\",\"elementDblClick\",\"elementMouseover\",\"elementMouseout\",\"renderEnd\"),S=!0,T=250,U=300,V=!1,W=!1,X=a.utils.renderWatch(R,T),Y=[16,256],Z={};return e.dispatch=R,e.options=a.utils.optionsFunc.bind(e ) , e . _ c a l l s = n e w function ( ) { t h i s . c l e a r H i g h l i g h t s = function ( ) { r e t u r n a . d o m . write ( function( ) { r . selectAll ( \".nv-point.hover\").classed(\"hover\",!1)}),null},this.highlightPoint=function(b,c,d){a.dom.write(function(){r.select(\".nv-groups\").selectAll(\".nv-series-\"+b).selectAll(\".nv-point-\"+c).classed(\"hover\",d)})}},R.on(\"elementMouseover.point\",function(a){C&&e._calls.highlightPoint(a.seriesIndex,a.pointIndex,!0)}),R.on(\"elementMouseout.point\",function(a){C&&e._calls.highlightPoint(a.seriesIndex,a.pointIndex,!1)}),e._options=Object.create({},{width:{get:function(){return m},set:function(a ) { m = a } } , h e i g h t : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , x S c a l e : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , y S c a l e : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , p o i n t S c a l e : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , x D o m a i n : { g e t : function ( ) { r e t u r n K } , s e t : function ( a ) { K = a } } , y D o m a i n : { g e t : function ( ) { r e t u r n L } , s e t : function ( a ) { L = a } } , p o i n t D o m a i n : { g e t : function ( ) { r e t u r n O } , s e t : function ( a ) { O = a } } , x R a n g e : { g e t : function ( ) { r e t u r n M } , s e t : function ( a ) { M = a } } , y R a n g e : { g e t : function ( ) { r e t u r n N } , s e t : function ( a ) { N = a } } , p o i n t R a n g e : { g e t : function ( ) { r e t u r n P } , s e t : function ( a ) { P = a } } , f o r c e X : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a } } , f o r c e Y : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , f o r c e P o i n t : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , i n t e r a c t i v e : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a } } , p o i n t A c t i v e : { g e t : function ( ) { r e t u r n D } , s e t : function ( a ) { D = a } } , p a d D a t a O u t e r : { g e t : function ( ) { r e t u r n F } , s e t : function ( a ) { F = a } } , p a d D a t a : { g e t : function ( ) { r e t u r n E } , s e t : function ( a ) { E = a } } , \
c l i p E d g e : { g e t : function ( ) { r e t u r n G } , s e t : function ( a ) { G = a } } , c l i p V o r o n o i : { g e t : function ( ) { r e t u r n H } , s e t : function ( a ) { H = a } } , c l i p R a d i u s : { g e t : function ( ) { r e t u r n J } , s e t : function ( a ) { J = a } } , s h o w V o r o n o i : { g e t : function ( ) { r e t u r n I } , s e t : function ( a ) { I = a } } , i d : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , i n t e r a c t i v e U p d a t e D e l a y : { g e t : function ( ) { r e t u r n U } , s e t : function ( a ) { U = a } } , s h o w L a b e l s : { g e t : function ( ) { r e t u r n V } , s e t : function ( a ) { V = a } } , p o i n t B o r d e r C o l o r : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , x : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = d 3 . functor ( a ) } } , y : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = d 3 . functor ( a ) } } , p o i n t S i z e : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = d 3 . functor ( a ) } } , p o i n t S h a p e : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = d 3 . functor ( a ) } } , m a r g i n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l . t o p = v o i d 0 ! = = a . t o p ? a . t o p : l . t o p , l . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : l . r i g h t , l . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : l . b o t t o m , l . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : l . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n T } , s e t : function ( a ) { T = a , X . reset ( T ) } } , c o l o r : { g e t : function ( ) { r e t u r n o } , s e t : function ( b ) { o = a . u t i l s . getColor ( b ) } } , u s e V o r o n o i : { g e t : function ( ) { r e t u r n S } , s e t : function ( a ) { S = a , S = = = ! 1 & & ( H = ! 1 ) } } } ) , a . u t i l s . initOptions ( e ) , e } , a . m o d e l s . s c a t t e r C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( A ) { r e t u r n F . reset ( ) , F . models ( c ) , u & & F . models ( d ) , v & & F . models ( e ) , r & & F . models ( g ) , s & & F . models ( h ) , A . each ( function(A ) { n = d 3 . select ( this ) , a . u t i l s . initSVG ( n ) ; v a r I = a . u t i l s . availableWidth ( l,n,j ) , J = a . u t i l s . availableHeight ( m,n,j ) ; if ( b.update=function( ) { 0 = = = B ? n . call ( b ) : n . transition ( ) . duration ( B ) . call ( b ) } , b . c o n t a i n e r = t h i s , x . setter ( H(A ) , b . u p d a t e ) . getter ( G(A ) ) . update ( ) , x . d i s a b l e d = A . map ( function(a ) { r e t u r n ! ! a . d i s a b l e d } ) , ! y ) { v a r K ; y = { } ; for ( K in x ) x [ K ] i n s t a n c e o f A r r a y ? y [ K ] = x [ K ] . slice ( 0 ) : y [ K ] = x [ K ] } if ( !(A&&A.length&&A.filter(function(a ) { r e t u r n a . v a l u e s . l e n g t h } ) . l e n g t h ) ) r e t u r n a . u t i l s . noData ( b,n ) , F . renderEnd ( \"scatter immediate\ "),b;n.selectAll(\" .nv-noData\ ").remove(),p=c.xScale(),q=c.yScale();var L=n.selectAll(\" g.nv-wrap.nv-scatterChart\ ").data([A]),M=L.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-scatterChart \
n v - c h a r t - \ " + c . id ( ) ) , N = M . append ( \"g\"),O=L.select(\"g\");if(N.append(\"rect\").attr(\"class\",\"nvd3 nv-background\ ").style(\" pointer-events\ ",\" none\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-scatterWrap\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-regressionLinesWrap\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-distWrap\ "),N.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),w&&O.select(\" .nv-y.nv-axis\ ").attr(\" transform\ ",\" translate(\ "+I+\" ,0 ) \ " ) , t ) { v a r P = I ; f . width ( P ) , L . select ( \".nv-legendWrap\").datum(A).call(f),k||f.height()===j.top||(j.top=f.height(),J=a.utils.availableHeight(m,n,j)),L.select(\".nv-legendWrap\").attr(\"transform\",\"translate(0,\"+-j.top+\")\")}else O.select(\ ".nv-legendWrap\" ) . selectAll ( \"*\").remove();L.attr(\"transform\",\"translate(\"+j.left+\",\"+j.top+\")\"),c.width(I).height(J).color(A.map(function(a,b){return a.color=a.color||o(a,b ) , a . c o l o r } ) . filter ( function(a,b ) { r e t u r n ! A [ b ] . d i s a b l e d } ) ) . showLabels ( C ) , L . select ( \".nv-scatterWrap\").datum(A.filter(function(a){return!a.disabled})).call(c),L.select(\".nv-regressionLinesWrap\").attr(\"clip-path\",\"url(#nv-edge-clip-\"+c.id()+\")\");var Q=L.select(\ ".nv-regressionLinesWrap\" ) . selectAll ( \".nv-regLines\").data(function(a){return a} ) ; Q . enter ( ) . append ( \"g\").attr(\"class\",\"nv-regLines\");var R=Q.selectAll(\ ".nv-regLine\" ) . data ( function(a ) { r e t u r n [ a ] } ) ; R . enter ( ) . append ( \"line\").attr(\"class\",\"nv-regLine\").style(\"stroke-opacity\",0),R.filter(function(a){return a.intercept&&a.slope} ) . watchTransition ( F,\ "scatterPlusLineChart: regline\" ) . attr ( \"x1\",p.range()[0]).attr(\"x2\",p.range()[1]).attr(\"y1\",function(a,b){return q(p.domain( ) [ 0 ] * a . s l o p e + a . i n t e r c e p t ) } ) . attr ( \"y2\",function(a,b){return q(p.domain( ) [ 1 ] * a . s l o p e + a . i n t e r c e p t ) } ) . style ( \"stroke\",function(a,b,c){return o(a,c ) } ) . style ( \"stroke-opacity\",function(a,b){return a.disabled||\ "undefined\" ==typeof a.slope||\ "undefined\" ==typeof a.intercept?0:1} ) , u & & ( d . scale ( p ) . _ticks ( a.utils.calcTicksX(I/100,A ) ) . tickSize ( -J,0 ) , O . select ( \".nv-x.nv-axis\").attr(\"transform\",\"translate(0,\"+q.range()[0]+\")\").call(d)),v&&(e.scale(q)._ticks(a.utils.calcTicksY(J/36,\
A ) ) . tickSize ( -I,0 ) , O . select ( \".nv-y.nv-axis\").call(e)),r&&(g.getData(c.x()).scale(p).width(I).color(A.map(function(a,b){return a.color||o(a,b ) } ) . filter ( function(a,b ) { r e t u r n ! A [ b ] . d i s a b l e d } ) ) , N . select ( \".nv-distWrap\").append(\"g\").attr(\"class\",\"nv-distributionX\"),O.select(\".nv-distributionX\").attr(\"transform\",\"translate(0,\"+q.range()[0]+\")\").datum(A.filter(function(a){return!a.disabled})).call(g)),s&&(h.getData(c.y()).scale(q).width(J).color(A.map(function(a,b){return a.color||o(a,b ) } ) . filter ( function(a,b ) { r e t u r n ! A [ b ] . d i s a b l e d } ) ) , N . select ( \".nv-distWrap\").append(\"g\").attr(\"class\",\"nv-distributionY\"),O.select(\".nv-distributionY\").attr(\"transform\",\"translate(\"+(w?I:-h.size())+\",0)\").datum(A.filter(function(a){return!a.disabled})).call(h)),f.dispatch.on(\"stateChange\",function(a){for(var c in a ) x [ c ] = a [ c ] ; z . stateChange ( x ) , b . update ( ) } ) , z . on ( \"changeState\",function(a){\"undefined\"!=typeof a.disabled&&(A.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , x . d i s a b l e d = a . d i s a b l e d ) , b . update ( ) } ) , c . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){i.hidden(!0),n.select(\".nv-chart-\"+c.id()+\" .nv-series-\ "+a.seriesIndex+\" .nv-distx-\ "+a.pointIndex).attr(\" y1\ ",0),n.select(\" .nv-chart-\ "+c.id()+\" .nv-series-\ "+a.seriesIndex+\" .nv-disty-\ "+a.pointIndex).attr(\" x2\ ",h.size())}),c.dispatch.on(\" elementMouseover.tooltip\ ",function(a){n.select(\" .nv-series-\ "+a.seriesIndex+\" .nv-distx-\ "+a.pointIndex).attr(\" y1\ ",a.relativePos[1]-J),n.select(\" .nv-series-\ "+a.seriesIndex+\" .nv-disty-\ "+a.pointIndex).attr(\" x2\ ",a.relativePos[0]+g.size()),i.data(a).hidden(!1)}),D=p.copy(),E=q.copy()}),F.renderEnd(\" scatter with line immediate\ "),b}var c=a.models.scatter(),d=a.models.axis(),e=a.models.axis(),f=a.models.legend(),g=a.models.distribution(),h=a.models.distribution(),i=a.models.tooltip(),j={top:30,right:20,bottom:50,left:75},k=null,l=null,m=null,n=null,o=a.utils.defaultColor(),p=c.xScale(),q=c.yScale(),r=!1,s=!1,t=!0,u=!0,v=!0,w=!1,x=a.utils.state(),y=null,z=d3.dispatch(\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),A=null,B=250,C=!1;c.xScale(p).yScale(q),d.orient(\" bottom\ " ) . tickPadding ( 10 ) , \
e . orient ( w?\ "right\" :\ "left\" ) . tickPadding ( 10 ) , g . axis ( \"x\"),h.axis(\"y\"),i.headerFormatter(function(a,b){return d.tickFormat( ) ( a , b ) } ) . valueFormatter ( function(a,b ) { r e t u r n e . tickFormat ( ) ( a , b ) } ) ; v a r D , E , F = a . u t i l s . renderWatch ( z,B ) , G = function ( a ) { r e t u r n function ( ) { r e t u r n { a c t i v e : a . map ( function(a ) { r e t u r n ! a . d i s a b l e d } ) } } } , H = function ( a ) { r e t u r n function ( b ) { v o i d 0 ! = = b . a c t i v e & & a . forEach ( function(a,c ) { a . d i s a b l e d = ! b . a c t i v e [ c ] } ) } } ; r e t u r n b . d i s p a t c h = z , b . s c a t t e r = c , b . l e g e n d = f , b . x A x i s = d , b . y A x i s = e , b . d i s t X = g , b . d i s t Y = h , b . t o o l t i p = i , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , h e i g h t : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , c o n t a i n e r : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , s h o w D i s t X : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , s h o w D i s t Y : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = a } } , n o D a t a : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , d u r a t i o n : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , s h o w L a b e l s : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a } } , m a r g i n : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( j . t o p = a . t o p , k = a . t o p ) , j . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : j . r i g h t , j . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : j . b o t t o m , j . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : j . l e f t } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a , e . orient ( a?\ "right\" :\ "left\" ) } } , c o l o r : { g e t : function ( ) { r e t u r n o } , s e t : function ( b ) { o = a . u t i l s . getColor ( b ) , f . color ( o ) , g . color ( o ) , h . color ( o ) } } } ) , a . u t i l s . inheritOptions ( b,c ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s p a r k l i n e = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( k ) { r e t u r n t . reset ( ) , k . each ( function(b ) { v a r k = h - g . l e f t - g . r i g h t , s = i - g . t o p - g . b o t t o m ; j = d 3 . select ( this ) , a . u t i l s . initSVG ( j ) , l . domain ( c||d3.extent(b,n ) ) . range ( e||[0,k] ) , m . domain ( d||d3.extent(b,o ) ) . range ( f||[s,0] ) ; v a r t = j . selectAll ( \"g.nv-wrap.nv-sparkline\").data([b]),u=t.enter().append(\"g\").attr(\"class\",\
\ " n v d 3 n v - w r a p n v - s p a r k l i n e \ " ) ; u . append ( \"g\"),t.select(\"g\");t.attr(\"transform\",\"translate(\"+g.left+\",\"+g.top+\")\");var v=t.selectAll(\ "path\" ) . data ( function(a ) { r e t u r n [ a ] } ) ; v . enter ( ) . append ( \"path\"),v.exit().remove(),v.style(\"stroke\",function(a,b){return a.color||p(a,b ) } ) . attr ( \"d\",d3.svg.line().x(function(a,b){return l(n(a,b ) ) } ) . y ( function(a,b ) { r e t u r n m ( o(a,b ) ) } ) ) ; v a r w = t . selectAll ( \"circle.nv-point\").data(function(a){function b(b ) { if ( -1!=b ) { v a r c = a [ b ] ; r e t u r n c . p o i n t I n d e x = b , c } r e t u r n n u l l } v a r c = a . map ( function(a,b ) { r e t u r n o ( a,b ) } ) , d = b ( c.lastIndexOf(m.domain( ) [ 1 ] ) ) , e = b ( c.indexOf(m.domain( ) [ 0 ] ) ) , f = b ( c.length-1 ) ; r e t u r n [ q ? e : n u l l , q ? d : n u l l , r ? f : n u l l ] . filter ( function(a ) { r e t u r n n u l l ! = a } ) } ) ; w . enter ( ) . append ( \"circle\"),w.exit().remove(),w.attr(\"cx\",function(a,b){return l(n(a,a.pointIndex ) ) } ) . attr ( \"cy\",function(a,b){return m(o(a,a.pointIndex ) ) } ) . attr ( \"r\",2).attr(\"class\",function(a,b){return n(a,a.pointIndex ) = = l . domain ( ) [ 1 ] ? \ " n v - p o i n t n v - c u r r e n t V a l u e \ " : o ( a,a.pointIndex ) = = m . domain ( ) [ 0 ] ? \ " n v - p o i n t n v - m i n V a l u e \ " : \ " n v - p o i n t n v - m a x V a l u e \ " } ) } ) , t . renderEnd ( \"sparkline immediate\ "),b}var c,d,e,f,g={top:2,right:0,bottom:2,left:0},h=400,i=32,j=null,k=!0,l=d3.scale.linear(),m=d3.scale.linear(),n=function(a){return a.x},o=function(a){return a.y},p=a.utils.getColor([\" #000\"]),q=!0,r=!0,s=d3.dispatch(\"renderEnd\"),t=a.utils.renderWatch(s);return b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{width:{get:function(){return h},set:function(a){h=a}},height:{get:function(){return i},set:function(a){i=a}},xDomain:{get:function(){return c},set:function(a){c=a}},yDomain:{get:function(){return d},set:function(a){d=a}},xRange:{get:function(){return e},set:function(a){e=a}},yRange:{get:function(){return f},set:function(a){f=a}},xScale:{get:function(){return l},set:function(a){l=a}},yScale:{get:function(){return m},set:function(a){m=a}},animate:{get:function(){return k},set:function(a){k=a}},showMinMaxPoints:{get:function(){return q},set:function(a){q=a}},showCurrentPoint:{get:function(){return r},set:function(a){r=a}},x:{get:function(){return n},set:function(a){n=d3.functor(a)}},\
y : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = d 3 . functor ( a ) } } , m a r g i n : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g . t o p = v o i d 0 ! = = a . t o p ? a . t o p : g . t o p , g . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : g . r i g h t , g . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : g . b o t t o m , g . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : g . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n p } , s e t : function ( b ) { p = a . u t i l s . getColor ( b ) } } } ) , b . d i s p a t c h = s , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s p a r k l i n e P l u s = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( p ) { r e t u r n r . reset ( ) , r . models ( e ) , p . each ( function(p ) { f u n c t i o n q ( ) { if ( !j ) { v a r a = z . selectAll ( \".nv-hoverValue\").data(i),b=a.enter().append(\"g\").attr(\"class\",\"nv-hoverValue\").style(\"stroke-opacity\",0).style(\"fill-opacity\",0);a.exit().transition().duration(250).style(\"stroke-opacity\",0).style(\"fill-opacity\",0).remove(),a.attr(\"transform\",function(a){return\"translate(\"+c(e.x()(p[a],a))+\",0)\"}).transition().duration(250).style(\"stroke-opacity\",1).style(\"fill-opacity\",1),i.length&&(b.append(\"line\").attr(\"x1\",0).attr(\"y1\",-f.top).attr(\"x2\",0).attr(\"y2\",u),\
b . append ( \"text\").attr(\"class\",\"nv-xValue\").attr(\"x\",-6).attr(\"y\",-f.top).attr(\"text-anchor\",\"end\").attr(\"dy\",\".9em\"),z.select(\".nv-hoverValue .nv-xValue\ ").text(k(e.x()(p[i[0]],i[0]))),b.append(\" text\ ").attr(\" class\ ",\" nv-yValue\ ").attr(\" x\ ",6).attr(\" y\ ",-f.top).attr(\" text-anchor\ ",\" start\ ").attr(\" dy\ ",\" .9em\ "),z.select(\" .nv-hoverValue .nv-yValue\ ").text(l(e.y()(p[i[0]],i[0]))))}}function r(){function a(a,b){for(var c=Math.abs(e.x()(a[0],0)-b),d=0,f=0;f<a.length;f++)Math.abs(e.x()(a[f],f)-b)<c&&(c=Math.abs(e.x()(a[f],f)-b),d=f);return d}if(!j){var b=d3.mouse(this)[0]-f.left;i=[a(p,Math.round(c.invert(b)))],q()}}var s=d3.select(this);a.utils.initSVG(s);var t=a.utils.availableWidth(g,s,f),u=a.utils.availableHeight(h,s,f);if(b.update=function(){s.call(b)},b.container=this,!p||!p.length)return a.utils.noData(b,s),b;s.selectAll(\" .nv-noData\ ").remove();var v=e.y()(p[p.length-1],p.length-1);c=e.xScale(),d=e.yScale();var w=s.selectAll(\" g.nv-wrap.nv-sparklineplus\ ").data([p]),x=w.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-sparklineplus\ "),y=x.append(\" g\ "),z=w.select(\" g\ ");y.append(\" g\ ").attr(\" class\ ",\" nv-sparklineWrap\ "),y.append(\" g\ ").attr(\" class\ ",\" nv-valueWrap\ "),y.append(\" g\ ").attr(\" class\ ",\" nv-hoverArea\ "),w.attr(\" transform\ ",\" translate(\ "+f.left+\" ,\ "+f.top+\" ) \ " ) ; v a r A = z . select ( \".nv-sparklineWrap\");if(e.width(t).height(u),A.call(e),m){var B=z.select(\ ".nv-valueWrap\" ) , C = B . selectAll ( \".nv-currentValue\").data([v]);C.enter().append(\"text\").attr(\"class\",\"nv-currentValue\").attr(\"dx\",o?-8:8).attr(\"dy\",\".9em\").style(\"text-anchor\",o?\"end\":\"start\"),C.attr(\"x\",t+(o?f.right:0)).attr(\"y\",n?function(a){return d(a ) } : 0 ) . style ( \"fill\",e.color()(p[p.length-1],p.length-1)).text(l(v))}y.select(\".nv-hoverArea\").append(\"rect\").on(\"mousemove\",r).on(\"click\",function(){j=!j}).on(\"mouseout\",function(){i=[],q()}),z.select(\".nv-hoverArea rect\ ").attr(\" transform\ ",function(a){return\" translate(\ "+-f.left+\" ,\ "+-f.top+\" ) \ " } ) . attr ( \"width\",t+f.left+f.right).attr(\"height\",u+f.top)}),r.renderEnd(\"sparklinePlus immediate\ " ) , b } v a r c , d , e = a . m o d e l s . sparkline ( ) , f = { t o p : 1 5 , r i g h t : 1 0 0 , b o t t o m : 1 0 , \
l e f t : 5 0 } , g = n u l l , h = n u l l , i = [ ] , j = ! 1 , k = d 3 . format ( \",r\"),l=d3.format(\",.2f\"),m=!0,n=!0,o=!1,p=null,q=d3.dispatch(\"renderEnd\"),r=a.utils.renderWatch(q);return b.dispatch=q,b.sparkline=e,b.options=a.utils.optionsFunc.bind(b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , h e i g h t : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a } } , x T i c k F o r m a t : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = a } } , y T i c k F o r m a t : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a } } , s h o w L a s t V a l u e : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , a l i g n V a l u e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { n = a } } , r i g h t A l i g n V a l u e : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , n o D a t a : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , m a r g i n : { g e t : function ( ) { r e t u r n f } , s e t : function ( a ) { f . t o p = v o i d 0 ! = = a . t o p ? a . t o p : f . t o p , f . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : f . r i g h t , f . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : f . b o t t o m , f . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : f . l e f t } } } ) , a . u t i l s . inheritOptions ( b,e ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s t a c k e d A r e a = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( n ) { r e t u r n v . reset ( ) , v . models ( s ) , n . each ( function(n ) { v a r t = f - e . l e f t - e . r i g h t , w = g - e . t o p - e . b o t t o m ; j = d 3 . select ( this ) , a . u t i l s . initSVG ( j ) , c = s . xScale ( ) , d = s . yScale ( ) ; v a r x = n ; n . forEach ( function(a,b ) { a . s e r i e s I n d e x = b , a . v a l u e s = a . v a l u e s . map ( function(a,c ) { r e t u r n a . i n d e x = c , a . s e r i e s I n d e x = b , a } ) } ) ; v a r y = n . filter ( function(a ) { r e t u r n ! a . d i s a b l e d } ) ; n = d 3 . l a y o u t . stack ( ) . order ( p ) . offset ( o ) . values ( function(a ) { r e t u r n a . v a l u e s } ) . x ( k ) . y ( l ) . out ( function(a,b,c ) { a . d i s p l a y = { y : c , y 0 : b } } ) ( y ) ; v a r z = j . selectAll ( \"g.nv-wrap.nv-stackedarea\").data([n]),A=z.enter().append(\"g\").attr(\"class\",\"nvd3 nv-wrap nv-stackedarea\ "),B=A.append(\" defs\ "),C=A.append(\" g\ "),D=z.select(\" g\ ");C.append(\" g\ ").attr(\" class\ ",\" nv-areaWrap\ "),C.append(\" g\ ").attr(\" class\ ",\" nv-scatterWrap\ "),z.attr(\" transform\ ",\" translate(\ "+e.left+\" ,\ "+e.top+\" ) \ " ) , 0 = = s . forceY ( ) . l e n g t h & & s . forceY ( ) . push ( 0 ) , s . width ( t ) . height ( w ) . x ( k ) . y ( function(a ) { r e t u r n v o i d 0 ! = = a . d i s p l a y ? a . d i s p l a y . y + a . d i s p l a y . y 0 : v o i d 0 } ) . color ( n.map(function(a,b ) { r e t u r n a . c o l o r = a . c o l o r | | h ( a,a.seriesIndex ) , a . c o l o r } ) ) ; v a r E = D . select ( \".nv-scatterWrap\").datum(n);\
E . call ( s ) , B . append ( \"clipPath\").attr(\"id\",\"nv-edge-clip-\"+i).append(\"rect\"),z.select(\"#nv-edge-clip-\"+i+\" rect\ ").attr(\" width\ ",t).attr(\" height\ ",w),D.attr(\" clip-path\ ",r?\" url( #nv-edge-clip-\"+i+\")\":\"\");var F=d3.svg.area().defined(m).x(function(a,b){return c(k(a,b))}).y0(function(a){return d(a.display.y0)}).y1(function(a){return d(a.display.y+a.display.y0)}).interpolate(q),G=d3.svg.area().defined(m).x(function(a,b){return c(k(a,b))}).y0(function(a){return d(a.display.y0)}).y1(function(a){return d(a.display.y0)}),H=D.select(\".nv-areaWrap\").selectAll(\"path.nv-area\").data(function(a){return a});H.enter().append(\"path\").attr(\"class\",function(a,b){return\"nv-area nv-area-\"+b}).attr(\"d\",function(a,b){return G(a.values,a.seriesIndex)}).on(\"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0),u.areaMouseover({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:a.seriesIndex})}).on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1),u.areaMouseout({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:a.seriesIndex})}).on(\"click\",function(a,b){d3.select(this).classed(\"hover\",!1),u.areaClick({point:a,series:a.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:a.seriesIndex})}),H.exit().remove(),H.style(\"fill\",function(a,b){return a.color||h(a,a.seriesIndex)}).style(\"stroke\",function(a,b){return a.color||h(a,a.seriesIndex)}),H.watchTransition(v,\"stackedArea path\").attr(\"d\",function(a,b){return F(a.values,b)}),s.dispatch.on(\"elementMouseover.area\",function(a){D.select(\".nv-chart-\"+i+\" .nv-area-\"+a.seriesIndex).classed(\"hover\",!0)}),s.dispatch.on(\"elementMouseout.area\",function(a){D.select(\".nv-chart-\"+i+\" .nv-area-\"+a.seriesIndex).classed(\"hover\",!1)}),b.d3_stackedOffset_stackPercent=function(a){var b,c,d,e=a.length,f=a[0].length,g=[];for(c=0;f>c;++c){for(b=0,d=0;b<x.length;b++)d+=l(x[b].values[c]);if(d)for(b=0;e>b;b++)a[b][c][1]/=d;else for(b=0;e>b;b++)a[b][c][1]=0}for(c=0;f>c;++c)g[c]=0;return g}}),v.renderEnd(\"stackedArea immediate\"),b}var c,d,e={top:0,right:0,bottom:0,left:0},f=960,\
g = 5 0 0 , h = a . u t i l s . defaultColor ( ) , i = M a t h . floor ( 1e5*Math.random( ) ) , j = n u l l , k = function ( a ) { r e t u r n a . x } , l = function ( a ) { r e t u r n a . y } , m = function ( a,b ) { r e t u r n ! isNaN ( l(a,b ) ) & & n u l l ! = = l ( a,b ) } , n = \ " s t a c k \ " , o = \ " z e r o \ " , p = \ " d e f a u l t \ " , q = \ " l i n e a r \ " , r = ! 1 , s = a . m o d e l s . scatter ( ) , t = 2 5 0 , u = d 3 . dispatch ( \"areaClick\",\"areaMouseover\",\"areaMouseout\",\"renderEnd\",\"elementClick\",\"elementMouseover\",\"elementMouseout\");s.pointSize(2.2).pointDomain([2.2,2.2]);var v=a.utils.renderWatch(u,t ) ; r e t u r n b . d i s p a t c h = u , b . s c a t t e r = s , s . d i s p a t c h . on ( \"elementClick\",function(){u.elementClick.apply(this,arguments)}),s.dispatch.on(\"elementMouseover\",function(){u.elementMouseover.apply(this,arguments)}),s.dispatch.on(\"elementMouseout\",function(){u.elementMouseout.apply(this,arguments)}),b.interpolate=function(a){return arguments.length?(q=a,b ) : q } , b . d u r a t i o n = function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = a , v . reset ( t ) , s . duration ( t ) , b ) : t } , b . d i s p a t c h = u , b . s c a t t e r = s , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n f } , s e t : function ( a ) { f = a } } , h e i g h t : { g e t : function ( ) { r e t u r n g } , s e t : function ( a ) { g = a } } , d e f i n e d : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { m = a } } , c l i p E d g e : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , o f f s e t : { g e t : function ( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , o r d e r : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , i n t e r p o l a t e : { g e t : function ( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , x : { g e t : function ( ) { r e t u r n k } , s e t : function ( a ) { k = d 3 . functor ( a ) } } , y : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = d 3 . functor ( a ) } } , m a r g i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e . t o p = v o i d 0 ! = = a . t o p ? a . t o p : e . t o p , e . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : e . r i g h t , e . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : e . b o t t o m , e . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : e . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n h } , s e t : function ( b ) { h = a . u t i l s . getColor ( b ) } } , s t y l e : { g e t : function ( ) { r e t u r n n } , s e t : function ( a ) { switch ( n=a ) { c a s e \ " s t a c k \ " : b . offset ( \"zero\"),b.order(\"default\");break;case\"stream\":b.offset(\"wiggle\"),b.order(\"inside-out\");break;case\"stream-center\":b.offset(\"silhouette\"),b.order(\"inside-out\");break;case\"expand\":b.offset(\"expand\"),b.order(\"default\");\
b r e a k ; c a s e \ " s t a c k _ p e r c e n t \ " : b . offset ( b.d3_stackedOffset_stackPercent ) , b . order ( \"default\")}}},duration:{get:function(){return t},set:function(a ) { t = a , v . reset ( t ) , s . duration ( t ) } } } ) , a . u t i l s . inheritOptions ( b,s ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s t a c k e d A r e a C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( k ) { r e t u r n L . reset ( ) , L . models ( e ) , u & & L . models ( f ) , v & & L . models ( g ) , k . each ( function(k ) { f u n c t i o n D ( ) { u & & X . select ( \".nv-focus .nv-x.nv-axis\ ").attr(\" transform\ ",\" translate(0,\ "+T+\" ) \ " ) . transition ( ) . duration ( I ) . call ( f ) } f u n c t i o n L ( ) { if ( v ) { if ( \"expand\"===e.style()||\"stack_percent\"===e.style()){var a=g.tickFormat( ) ; J & & a = = = P | | ( J = a ) , g . tickFormat ( P ) } e l s e J & & ( g . tickFormat ( J ) , J = n u l l ) ; X . select ( \".nv-focus .nv-y.nv-axis\ ").transition().duration(0).call(g)}}function Q(a){var b=X.select(\" .nv-focus .nv-stackedWrap\ ").datum(k.filter(function(a){return!a.disabled}).map(function(b,c){return{key:b.key,area:b.area,classed:b.classed,values:b.values.filter(function(b,c){return e.x()(b,c)>=a[0]&&e.x()(b,c)<=a[1]}),disableTooltip:b.disableTooltip}}));b.transition().duration(I).call(e),D(),L()}var R=d3.select(this);a.utils.initSVG(R);var S=a.utils.availableWidth(o,R,m),T=a.utils.availableHeight(p,R,m)-(x?l.height():0);if(b.update=function(){R.transition().duration(I).call(b)},b.container=this,B.setter(O(k),b.update).getter(N(k)).update(),B.disabled=k.map(function(a){return!!a.disabled}),!C){var U;C={};for(U in B)B[U]instanceof Array?C[U]=B[U].slice(0):C[U]=B[U]}if(!(k&&k.length&&k.filter(function(a){return a.values.length}).length))return a.utils.noData(b,R),b;R.selectAll(\" .nv-noData\ ").remove(),c=e.xScale(),d=e.yScale();var V=R.selectAll(\" g.nv-wrap.nv-stackedAreaChart\ ").data([k]),W=V.enter().append(\" g\ ").attr(\" class\ ",\" nvd3 nv-wrap nv-stackedAreaChart\ ").append(\" g\ "),X=V.select(\" g\ ");W.append(\" g\ ").attr(\" class\ ",\" nv-legendWrap\ "),W.append(\" g\ ").attr(\" class\ ",\" nv-controlsWrap\ ");var Y=W.append(\" g\ ").attr(\" class\ ",\" nv-focus\ ");Y.append(\" g\ ").attr(\" class\ ",\" nv-background\ ").append(\" rect\ "),Y.append(\" g\ ").attr(\" class\ ",\" nv-x nv-axis\ "),Y.append(\" g\ ").attr(\" class\ ",\" nv-y nv-axis\ "),Y.append(\" g\ ").attr(\" class\ " ,\
\ " n v - s t a c k e d W r a p \ " ) , Y . append ( \"g\").attr(\"class\",\"nv-interactive\");W.append(\"g\").attr(\"class\",\"nv-focusWrap\");if(s){var Z=r&&\ "top\" ===t?S-F:S;if(h.width(Z ) , X . select ( \".nv-legendWrap\").datum(k).call(h),\"bottom\"===t){var $ =(u?12:0 ) + 1 0 ; m . b o t t o m = M a t h . max ( h.height( ) + $ , m . b o t t o m ) , T = a . u t i l s . availableHeight ( p,R,m ) - ( x ? l . height ( ) : 0 ) ; v a r _ = T + $ ; X . select ( \".nv-legendWrap\").attr(\"transform\",\"translate(0,\"+_+\")\")}else\"top\"===t&&(n||m.top==h.height()||(m.top=h.height(),T=a.utils.availableHeight(p,R,m)-(x?l.height():0)),X.select(\".nv-legendWrap\").attr(\"transform\",\"translate(\"+(S-Z)+\",\"+-m.top+\")\"))}else X.select(\ ".nv-legendWrap\" ) . selectAll ( \"*\").remove();if(r){var aa=[{key:H.stacked||\ "Stacked\" ,metaKey:\ "Stacked\" ,disabled:\ "stack\" !=e.style( ) , s t y l e : \ " s t a c k \ " } , { k e y : H . s t r e a m | | \ " S t r e a m \ " , m e t a K e y : \ " S t r e a m \ " , d i s a b l e d : \ " s t r e a m \ " ! = e . style ( ) , s t y l e : \ " s t r e a m \ " } , { k e y : H . e x p a n d e d | | \ " E x p a n d e d \ " , m e t a K e y : \ " E x p a n d e d \ " , d i s a b l e d : \ " e x p a n d \ " ! = e . style ( ) , s t y l e : \ " e x p a n d \ " } , { k e y : H . s t a c k _ p e r c e n t | | \ " S t a c k % \ " , m e t a K e y : \ " S t a c k _ P e r c e n t \ " , d i s a b l e d : \ " s t a c k _ p e r c e n t \ " ! = e . style ( ) , s t y l e : \ " s t a c k _ p e r c e n t \ " } ] ; F = G . l e n g t h / 3 * 2 6 0 , a a = a a . filter ( function(a ) { r e t u r n - 1 ! = = G . indexOf ( a.metaKey ) } ) , i . width ( F ) . color ( [\ "#444\" ,\ "#444\" ,\ "#444\" ] ) , X . select ( \".nv-controlsWrap\").datum(aa).call(i);var ba=Math.max(i.height( ) , s & & \ " t o p \ " = = = t ? h . height ( ) : 0 ) ; m . t o p ! = b a & & ( m . t o p = b a , T = a . u t i l s . availableHeight ( p,R,m ) - ( x ? l . height ( ) : 0 ) ) , X . select ( \".nv-controlsWrap\").attr(\"transform\",\"translate(0,\"+-m.top+\")\")}else X.select(\ ".nv-controlsWrap\" ) . selectAll ( \"*\").remove();V.attr(\"transform\",\"translate(\"+m.left+\",\"+m.top+\")\"),w&&X.select(\".nv-y.nv-axis\").attr(\"transform\",\"translate(\"+S+\",0)\"),y&&(j.width(S).height(T).margin({left:m.left,top:m.top}).svgContainer(R).xScale(c),V.select(\".nv-interactive\").call(j)),X.select(\".nv-focus .nv-background rect\ ").attr(\" width\ ",S).attr(\" height\ ",T),e.width(S).height(T).color(k.map(function(a,b){return a.color||q(a,b)}).filter(function(a,b){return!k[b].disabled}));var ca=X.select(\" .nv-focus .nv-stackedWrap\ " ) . datum ( k.filter(function(a ) { r e t u r n ! a . d i s a b l e d } ) ) ; if ( u&&f.scale(c ) . _ticks ( a.utils.calcTicksX(S/100,k ) ) . tickSize ( -T,0 ) , v ) { v a r \
d a ; d a = \ " w i g g l e \ " = = = e . offset ( ) ? 0 : a . u t i l s . calcTicksY ( T/36,k ) , g . scale ( d ) . _ticks ( da ) . tickSize ( -S,0 ) } if ( x ) { l . width ( S ) , X . select ( \".nv-focusWrap\").attr(\"transform\",\"translate(0,\"+(T+m.bottom+l.margin().top)+\")\").datum(k.filter(function(a){return!a.disabled})).call(l);var ea=l.brush.empty( ) ? l . xDomain ( ) : l . b r u s h . extent ( ) ; n u l l ! = = e a & & Q ( ea ) } e l s e c a . transition ( ) . call ( e ) , D ( ) , L ( ) ; e . d i s p a t c h . on ( \"areaClick.toggle\",function(a){1===k.filter(function(a){return!a.disabled}).length?k.forEach(function(a){a.disabled=!1}):k.forEach(function(b,c){b.disabled=c!=a.seriesIndex}),B.disabled=k.map(function(a){return!!a.disabled}),E.stateChange(B),b.update()}),h.dispatch.on(\"stateChange\",function(a){for(var c in a ) B [ c ] = a [ c ] ; E . stateChange ( B ) , b . update ( ) } ) , i . d i s p a t c h . on ( \"legendClick\",function(a,c){a.disabled&&(aa=aa.map(function(a){return a.disabled=!0,a} ) , a . d i s a b l e d = ! 1 , e . style ( a.style ) , B . s t y l e = e . style ( ) , E . stateChange ( B ) , b . update ( ) ) } ) , j . d i s p a t c h . on ( \"elementMousemove\",function(c){e.clearHighlights();var d,f,g,h=[],i=0,l=!0;if(k.filter(function(a,b ) { r e t u r n a . s e r i e s I n d e x = b , ! a . d i s a b l e d } ) . forEach ( function(j,k ) { f = a . interactiveBisect ( j.values,c.pointXValue,b.x( ) ) ; v a r m = j . v a l u e s [ f ] , n = b . y ( ) ( m , f ) ; if ( null!=n&&e.highlightPoint(k,f,!0 ) , \ " u n d e f i n e d \ " ! = t y p e o f m ) { \ " u n d e f i n e d \ " = = t y p e o f d & & ( d = m ) , \ " u n d e f i n e d \ " = = t y p e o f g & & ( g = b . xScale ( ) ( b . x ( ) ( m , f ) ) ) ; v a r o = \ " e x p a n d \ " = = e . style ( ) ? m . d i s p l a y . y : b . y ( ) ( m , f ) ; h . push ( {key:j.key,value:o,color:q(j,j.seriesIndex ) , p o i n t : m } ) , z & & \ " e x p a n d \ " ! = e . style ( ) & & n u l l ! = o & & ( i + = o , l = ! 1 ) } } ) , h . reverse ( ) , h . l e n g t h > 2 ) { v a r m = b . yScale ( ) . invert ( c.mouseY ) , n = n u l l ; h . forEach ( function(a,b ) { m = M a t h . abs ( m ) ; v a r c = M a t h . abs ( a.point.display.y0 ) , d = M a t h . abs ( a.point.display.y ) ; r e t u r n m > = c & & d + c > = m ? void ( n=b ) : v o i d 0 } ) , n u l l ! = n & & ( h [ n ] . h i g h l i g h t = ! 0 ) } z & & \ " e x p a n d \ " ! = e . style ( ) & & h . l e n g t h > = 2 & & ! l & & h . push ( {key:A,value:i,total:!0} ) ; v a r o = b . x ( ) ( d , f ) , p = j . t o o l t i p . valueFormatter ( ) ; \ " e x p a n d \ " = = = e . style ( ) | | \ " s t a c k _ p e r c e n t \ " = = = e . style ( ) ? ( K | | ( K = p ) , p = d 3 . format ( \".1%\")):K&&(p=K,K=null),j.tooltip.valueFormatter(p).data({value:o,series:h})(),j.renderGuideLine(g)}),j.dispatch.on(\"elementMouseout\",function(a){e.clearHighlights()}),\
l . d i s p a t c h . on ( \"onBrush\",function(a){Q(a)}),E.on(\"changeState\",function(a){\"undefined\"!=typeof a.disabled&&k.length===a.disabled.length&&(k.forEach(function(b,c ) { b . d i s a b l e d = a . d i s a b l e d [ c ] } ) , B . d i s a b l e d = a . d i s a b l e d ) , \ " u n d e f i n e d \ " ! = t y p e o f a . s t y l e & & ( e . style ( a.style ) , M = a . s t y l e ) , b . update ( ) } ) } ) , L . renderEnd ( \"stacked Area chart immediate\ "),b}var c,d,e=a.models.stackedArea(),f=a.models.axis(),g=a.models.axis(),h=a.models.legend(),i=a.models.legend(),j=a.interactiveGuideline(),k=a.models.tooltip(),l=a.models.focus(a.models.stackedArea()),m={top:10,right:25,bottom:50,left:60},n=null,o=null,p=null,q=a.utils.defaultColor(),r=!0,s=!0,t=\" top\ ",u=!0,v=!0,w=!1,x=!1,y=!1,z=!0,A=\" TOTAL\ ",B=a.utils.state(),C=null,D=null,E=d3.dispatch(\" stateChange\ ",\" changeState\ ",\" renderEnd\ "),F=250,G=[\" Stacked\ ",\" Stream\ ",\" Expanded\ "],H={},I=250;B.style=e.style(),f.orient(\" bottom\ ").tickPadding(7),g.orient(w?\" right\ ":\" left\ "),k.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return g.tickFormat()(a,b)}),j.tooltip.headerFormatter(function(a,b){return f.tickFormat()(a,b)}).valueFormatter(function(a,b){return null==a?\" N/A\ ":g.tickFormat()(a,b)});var J=null,K=null;i.updateState(!1);var L=a.utils.renderWatch(E),M=e.style(),N=function(a){return function(){return{active:a.map(function(a){return!a.disabled}),style:e.style()}}},O=function(a){return function(b){void 0!==b.style&&(M=b.style),void 0!==b.active&&a.forEach(function(a,c){a.disabled=!b.active[c]})}},P=d3.format(\" %\ ");return e.dispatch.on(\" elementMouseover.tooltip\ ",function(a){a.point.x=e.x()(a.point),a.point.y=e.y()(a.point),k.data(a).hidden(!1)}),e.dispatch.on(\" elementMouseout.tooltip\ " ,function(a ) { k . hidden ( !0 ) } ) , b . d i s p a t c h = E , b . s t a c k e d = e , b . l e g e n d = h , b . c o n t r o l s = i , b . x A x i s = f , b . x 2 A x i s = l . x A x i s , b . y A x i s = g , b . y 2 A x i s = l . y A x i s , b . i n t e r a c t i v e L a y e r = j , b . t o o l t i p = k , b . f o c u s = l , b . d i s p a t c h = E , b . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( b ) , b . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n o } , s e t : function ( a ) { o = a } } , h e i g h t : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p = a } } , s h o w L e g e n d : { g e t : function ( ) { r e t u r n s } , \
s e t : function ( a ) { s = a } } , l e g e n d P o s i t i o n : { g e t : function ( ) { r e t u r n t } , s e t : function ( a ) { t = a } } , s h o w X A x i s : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , s h o w Y A x i s : { g e t : function ( ) { r e t u r n v } , s e t : function ( a ) { v = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = a } } , n o D a t a : { g e t : function ( ) { r e t u r n D } , s e t : function ( a ) { D = a } } , s h o w C o n t r o l s : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , c o n t r o l L a b e l s : { g e t : function ( ) { r e t u r n H } , s e t : function ( a ) { H = a } } , c o n t r o l O p t i o n s : { g e t : function ( ) { r e t u r n G } , s e t : function ( a ) { G = a } } , s h o w T o t a l I n T o o l t i p : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a } } , t o t a l L a b e l : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , f o c u s E n a b l e : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = a } } , f o c u s H e i g h t : { g e t : function ( ) { r e t u r n l . height ( ) } , s e t : function ( a ) { l . height ( a ) } } , b r u s h E x t e n t : { g e t : function ( ) { r e t u r n l . brushExtent ( ) } , s e t : function ( a ) { l . brushExtent ( a ) } } , m a r g i n : { g e t : function ( ) { r e t u r n m } , s e t : function ( a ) { v o i d 0 ! = = a . t o p & & ( m . t o p = a . t o p , n = a . t o p ) , m . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : m . r i g h t , m . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : m . b o t t o m , m . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : m . l e f t } } , f o c u s M a r g i n : { g e t : function ( ) { r e t u r n l . m a r g i n } , s e t : function ( a ) { l . m a r g i n . t o p = v o i d 0 ! = = a . t o p ? a . t o p : l . m a r g i n . t o p , l . m a r g i n . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : l . m a r g i n . r i g h t , l . m a r g i n . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : l . m a r g i n . b o t t o m , l . m a r g i n . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : l . m a r g i n . l e f t } } , d u r a t i o n : { g e t : function ( ) { r e t u r n I } , s e t : function ( a ) { I = a , L . reset ( I ) , e . duration ( I ) , f . duration ( I ) , g . duration ( I ) } } , c o l o r : { g e t : function ( ) { r e t u r n q } , s e t : function ( b ) { q = a . u t i l s . getColor ( b ) , h . color ( q ) , e . color ( q ) , l . color ( q ) } } , x : { g e t : function ( ) { r e t u r n e . x ( ) } , s e t : function ( a ) { e . x ( a ) , l . x ( a ) } } , y : { g e t : function ( ) { r e t u r n e . y ( ) } , s e t : function ( a ) { e . y ( a ) , l . y ( a ) } } , r i g h t A l i g n Y A x i s : { g e t : function ( ) { r e t u r n w } , s e t : function ( a ) { w = a , g . orient ( w?\ "right\" :\ "left\" ) } } , u s e I n t e r a c t i v e G u i d e l i n e : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = ! ! a , b . interactive ( !a ) , b . useVoronoi ( !a ) , e . s c a t t e r . interactive ( !a ) } } } ) , a . u t i l s . inheritOptions ( b,e ) , a . u t i l s . initOptions ( b ) , b } , a . m o d e l s . s t a c k e d A r e a W i t h F o c u s C h a r t = function ( ) { r e t u r n a . m o d e l s . stackedAreaChart ( ) . margin ( {bottom:30} ) . focusEnable ( !0 ) } , \
a . m o d e l s . s u n b u r s t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( a ) { v a r b = c ( a ) ; r e t u r n b > 9 0 ? 1 8 0 : 0 } f u n c t i o n c ( a ) { v a r b = M a t h . max ( 0,Math.min(2*Math.PI,F(a.x ) ) ) , c = M a t h . max ( 0,Math.min(2*Math.PI,F(a.x+a.dx ) ) ) , d = ( b + c ) / 2 * ( 1 8 0 / M a t h . P I ) - 9 0 ; r e t u r n d } f u n c t i o n d ( a ) { v a r b = M a t h . max ( 0,Math.min(2*Math.PI,F(a.x ) ) ) , c = M a t h . max ( 0,Math.min(2*Math.PI,F(a.x+a.dx ) ) ) ; return ( c-b ) / ( 2 * M a t h . P I ) } f u n c t i o n e ( a ) { v a r b = M a t h . max ( 0,Math.min(2*Math.PI,F(a.x ) ) ) , c = M a t h . max ( 0,Math.min(2*Math.PI,F(a.x+a.dx ) ) ) , d = c - b ; r e t u r n d > z } f u n c t i o n f ( a,b ) { v a r c = d 3 . interpolate ( F.domain( ) , [ l . x , l . x + l . d x ] ) , d = d 3 . interpolate ( G.domain( ) , [ l . y , 1 ] ) , e = d 3 . interpolate ( G.range( ) , [ l . y ? 2 0 : 0 , o ] ) ; r e t u r n 0 = = = b ? function ( ) { r e t u r n J ( a ) } : function ( b ) { r e t u r n F . domain ( c(b ) ) , G . domain ( d(b ) ) . range ( e(b ) ) , J ( a ) } } f u n c t i o n g ( a ) { v a r b = d 3 . interpolate ( {x:a.x0,dx:a.dx0,y:a.y0,dy:a.dy0},a ) ; r e t u r n function ( c ) { v a r d = b ( c ) ; r e t u r n a . x 0 = d . x , a . d x 0 = d . d x , a . y 0 = d . y , a . d y 0 = d . d y , J ( d ) } } f u n c t i o n h ( a ) { v a r b = B ( a ) ; I [ b ] | | ( I [ b ] = { } ) ; v a r c = I [ b ] ; c . d x = a . d x , c . x = a . x , c . d y = a . d y , c . y = a . y } f u n c t i o n i ( a ) { a . forEach ( function(a ) { v a r b = B ( a ) , c = I [ b ] ; c ? ( a . d x 0 = c . d x , a . x 0 = c . x , a . d y 0 = c . d y , a . y 0 = c . y ) : ( a . d x 0 = a . d x , a . x 0 = a . x , a . d y 0 = a . d y , a . y 0 = a . y ) , h ( a ) } ) } f u n c t i o n j ( a ) { v a r d = v . selectAll ( \"text\"),g=v.selectAll(\"path\");d.transition().attr(\"opacity\",0),l=a,g.transition().duration(D).attrTween(\"d\",f).each(\"end\",function(d){if(d.x>=a.x&&d.x<a.x+a.dx&&d.depth>=a.depth){var f=d3.select(this.parentNode ) , g = f . select ( \"text\");g.transition().duration(D).text(function(a){return y(a ) } ) . attr ( \"opacity\",function(a){return e(a ) ? 1 : 0 } ) . attr ( \"transform\",function(){var e=this.getBBox( ) . w i d t h ; if ( 0===d.depth ) r e t u r n \ " translate ( \"+e/2*-1+\",0)\";if(d.depth===a.depth)return\"translate(\"+(G(d.y)+5)+\",0)\";var f=c(d ) , g = b ( d ) ; r e t u r n 0 = = = g ? \ " rotate ( \"+f+\")translate(\"+(G(d.y)+5)+\",0)\":\"rotate(\"+f+\")translate(\"+(G(d.y)+e+5)+\",0)rotate(\"+g+\")\"})}})}function k(f ) { r e t u r n K . reset ( ) , f . each ( function(f ) { v = d 3 . select ( this ) , m = a . u t i l s . availableWidth ( q,v,p ) , n = a . u t i l s . availableHeight ( r,v,p ) , o = M a t h . min ( m,n ) / 2 , G . range ( [0,o] ) ; v a r h = v . select ( \"g.nvd3.nv-wrap.nv-sunburst\");h[0][0]?h.attr(\"transform\",\"translate(\"+(m/2+p.left+p.right)+\",\"+(n/2+p.top+p.bottom)+\")\"):h=v.append(\"g\").attr(\"class\",\
\ " n v d 3 n v - w r a p n v - s u n b u r s t n v - c h a r t - \ " + u ) . attr ( \"transform\",\"translate(\"+(m/2+p.left+p.right)+\",\"+(n/2+p.top+p.bottom)+\")\"),v.on(\"click\",function(a,b){E.chartClick({data:a,index:b,pos:d3.event,id:u})}),H.value(t[s]||t.count);var k=H.nodes(f[0] ) . reverse ( ) ; i ( k ) ; v a r l = h . selectAll ( \".arc-container\").data(k,B),z=l.enter().append(\"g\").attr(\"class\",\"arc-container\");z.append(\"path\").attr(\"d\",J).style(\"fill\",function(a){return a.color?a.color:w(C?(a.children?a:a.parent ) . n a m e : a . n a m e ) } ) . style ( \"stroke\",\"#FFF\").on(\"click\",function(a,b){j(a),E.elementClick({data:a,index:b})}).on(\"mouseover\",function(a,b){d3.select(this).classed(\"hover\",!0).style(\"opacity\",.8),E.elementMouseover({data:a,color:d3.select(this).style(\"fill\"),percent:d(a)})}).on(\"mouseout\",function(a,b){d3.select(this).classed(\"hover\",!1).style(\"opacity\",1),E.elementMouseout({data:a})}).on(\"mousemove\",function(a,b){E.elementMousemove({data:a})}),l.each(function(a){d3.select(this).select(\"path\").transition().duration(D).attrTween(\"d\",g)}),x&&(l.selectAll(\"text\").remove(),l.append(\"text\").text(function(a){return y(a ) } ) . transition ( ) . duration ( D ) . attr ( \"opacity\",function(a){return e(a ) ? 1 : 0 } ) . attr ( \"transform\",function(a){var d=this.getBBox( ) . w i d t h ; if ( 0===a.depth ) r e t u r n \ " rotate ( 0 ) translate ( \"+d/2*-1+\",0)\";var e=c(a ) , f = b ( a ) ; r e t u r n 0 = = = f ? \ " rotate ( \"+e+\")translate(\"+(G(a.y)+5)+\",0)\":\"rotate(\"+e+\")translate(\"+(G(a.y)+d+5)+\",0)rotate(\"+f+\")\"})),j(k[k.length-1]),l.exit().transition().duration(D).attr(\"opacity\",0).each(\"end\",function(a){var b=B(a ) ; I [ b ] = v o i d 0 } ) . remove ( ) } ) , K . renderEnd ( \"sunburst immediate\ "),k}var l,m,n,o,p={top:0,right:0,bottom:0,left:0},q=600,r=600,s=\" count\ ",t={count:function(a){return 1},value:function(a){return a.value||a.size},size:function(a){return a.value||a.size}},u=Math.floor(1e4*Math.random()),v=null,w=a.utils.defaultColor(),x=!1,y=function(a){return\" count\ "===s?a.name+\" #\"+a.value:a.name+\" \"+(a.value||a.size)},z=.02,A=function(a,b){return a.name>b.name},B=function(a,b){return a.name},C=!0,D=500,E=d3.dispatch(\"chartClick\",\"elementClick\",\"elementDblClick\",\"elementMousemove\",\
\ " e l e m e n t M o u s e o v e r \ " , \ " e l e m e n t M o u s e o u t \ " , \ " r e n d e r E n d \ " ) , F = d 3 . s c a l e . linear ( ) . range ( [0,2*Math.PI] ) , G = d 3 . s c a l e . sqrt ( ) , H = d 3 . l a y o u t . partition ( ) . sort ( A ) , I = { } , J = d 3 . s v g . arc ( ) . startAngle ( function(a ) { r e t u r n M a t h . max ( 0,Math.min(2*Math.PI,F(a.x ) ) ) } ) . endAngle ( function(a ) { r e t u r n M a t h . max ( 0,Math.min(2*Math.PI,F(a.x+a.dx ) ) ) } ) . innerRadius ( function(a ) { r e t u r n M a t h . max ( 0,G(a.y ) ) } ) . outerRadius ( function(a ) { r e t u r n M a t h . max ( 0,G(a.y+a.dy ) ) } ) , K = a . u t i l s . renderWatch ( E ) ; r e t u r n k . d i s p a t c h = E , k . o p t i o n s = a . u t i l s . o p t i o n s F u n c . bind ( k ) , k . _ o p t i o n s = O b j e c t . create ( {},{width:{get:function( ) { r e t u r n q } , s e t : function ( a ) { q = a } } , h e i g h t : { g e t : function ( ) { r e t u r n r } , s e t : function ( a ) { r = a } } , m o d e : { g e t : function ( ) { r e t u r n s } , s e t : function ( a ) { s = a } } , i d : { g e t : function ( ) { r e t u r n u } , s e t : function ( a ) { u = a } } , d u r a t i o n : { g e t : function ( ) { r e t u r n D } , s e t : function ( a ) { D = a } } , g r o u p C o l o r B y P a r e n t : { g e t : function ( ) { r e t u r n C } , s e t : function ( a ) { C = ! ! a } } , s h o w L a b e l s : { g e t : function ( ) { r e t u r n x } , s e t : function ( a ) { x = ! ! a } } , l a b e l F o r m a t : { g e t : function ( ) { r e t u r n y } , s e t : function ( a ) { y = a } } , l a b e l T h r e s h o l d : { g e t : function ( ) { r e t u r n z } , s e t : function ( a ) { z = a } } , s o r t : { g e t : function ( ) { r e t u r n A } , s e t : function ( a ) { A = a } } , k e y : { g e t : function ( ) { r e t u r n B } , s e t : function ( a ) { B = a } } , m a r g i n : { g e t : function ( ) { r e t u r n p } , s e t : function ( a ) { p . t o p = v o i d 0 ! = a . t o p ? a . t o p : p . t o p , p . r i g h t = v o i d 0 ! = a . r i g h t ? a . r i g h t : p . r i g h t , p . b o t t o m = v o i d 0 ! = a . b o t t o m ? a . b o t t o m : p . b o t t o m , p . l e f t = v o i d 0 ! = a . l e f t ? a . l e f t : p . l e f t } } , c o l o r : { g e t : function ( ) { r e t u r n w } , s e t : function ( b ) { w = a . u t i l s . getColor ( b ) } } } ) , a . u t i l s . initOptions ( k ) , k } , a . m o d e l s . s u n b u r s t C h a r t = function ( ) { \ " u s e s t r i c t \ " ; f u n c t i o n b ( d ) { r e t u r n n . reset ( ) , n . models ( c ) , d . each ( function(d ) { v a r h = d 3 . select ( this ) ; a . u t i l s . initSVG ( h ) ; v a r i = a . u t i l s . availableWidth ( f,h,e ) , j = a . u t i l s . availableHeight ( g,h,e ) ; r e t u r n b . u p d a t e = function ( ) { 0 = = = l ? h . call ( b ) : h . transition ( ) . duration ( l ) . call ( b ) } , b . c o n t a i n e r = h , d & & d . l e n g t h ? ( h . selectAll ( \".nv-noData\").remove(),c.width(i).height(j).margin(e),void h.call(c ) ) : ( a . u t i l s . noData ( b,h ) , b ) } ) , n . renderEnd ( \"sunburstChart immediate\ " ) , b } v a r c = a . m o d e l s . sunburst ( ) , d = a . m o d e l s . tooltip ( ) , e = { t o p : 3 0 , r i g h t : 2 0 , b o t t o m : 2 0 , l e f t : 2 0 } , f = n u l l , g = n u l l , h = a . u t i l s . defaultColor ( ) , \
i = ! 1 , j = ( M a t h . round ( 1e5*Math.random( ) ) , n u l l ) , k = n u l l , l = 2 5 0 , m = d 3 . dispatch ( \"stateChange\",\"changeState\",\"renderEnd\"),n=a.utils.renderWatch(m);return d.duration(0 ) . headerEnabled ( !1 ) . valueFormatter ( function(a ) { r e t u r n a } ) , c . d i s p a t c h . on ( \"elementMouseover.tooltip\",function(a){a.series={key:a.data.name,value:a.data.value||a.data.size,color:a.color,percent:a.percent},i||(delete a.percent,delete a.series.percent ) , d . data ( a ) . hidden ( !1 ) } ) , c . d i s p a t c h . on ( \"elementMouseout.tooltip\",function(a){d.hidden(!0)}),c.dispatch.on(\"elementMousemove.tooltip\",function(a){d()}),b.dispatch=m,b.sunburst=c,b.tooltip=d,b.options=a.utils.optionsFunc.bind(b),b._options=Object.create({},{noData:{get:function(){return k},set:function(a ) { k = a } } , d e f a u l t S t a t e : { g e t : function ( ) { r e t u r n j } , s e t : function ( a ) { j = a } } , s h o w T o o l t i p P e r c e n t : { g e t : function ( ) { r e t u r n i } , s e t : function ( a ) { i = a } } , c o l o r : { g e t : function ( ) { r e t u r n h } , s e t : function ( a ) { h = a , c . color ( h ) } } , d u r a t i o n : { g e t : function ( ) { r e t u r n l } , s e t : function ( a ) { l = a , n . reset ( l ) , c . duration ( l ) } } , m a r g i n : { g e t : function ( ) { r e t u r n e } , s e t : function ( a ) { e . t o p = v o i d 0 ! = = a . t o p ? a . t o p : e . t o p , e . r i g h t = v o i d 0 ! = = a . r i g h t ? a . r i g h t : e . r i g h t , e . b o t t o m = v o i d 0 ! = = a . b o t t o m ? a . b o t t o m : e . b o t t o m , e . l e f t = v o i d 0 ! = = a . l e f t ? a . l e f t : e . l e f t , c . margin ( e ) } } } ) , a . u t i l s . inheritOptions ( b,c ) , a . u t i l s . initOptions ( b ) , b } , a . v e r s i o n = \ " 1 . 8 . 5 \ " } ( ) ; \
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
################################################################################
# end nvd3.js
################################################################################
################################################################################
# d3.js
#
# The following is a copy of the d3 3.5.17 js file. Note that we write it
# to the file in multiple steps, because CMake exhausts its stack memory when
# parsing too long strings.
# https://github.com/mbostock/d3
################################################################################
2022-04-02 18:58:23 +02:00
file ( WRITE "${METABENCH_DIR}/d3.js"
" \
2019-05-17 22:41:46 +02:00
! function ( ) { f u n c t i o n n ( n ) { r e t u r n n & & ( n . o w n e r D o c u m e n t | | n . d o c u m e n t | | n ) . d o c u m e n t E l e m e n t } f u n c t i o n t ( n ) { r e t u r n n & & ( n . o w n e r D o c u m e n t & & n . o w n e r D o c u m e n t . d e f a u l t V i e w | | n . d o c u m e n t & & n | | n . d e f a u l t V i e w ) } f u n c t i o n e ( n,t ) { r e t u r n t > n ? - 1 : n > t ? 1 : n > = t ? 0 : N a N } f u n c t i o n r ( n ) { r e t u r n n u l l = = = n ? N a N : + n } f u n c t i o n i ( n ) { r e t u r n ! isNaN ( n ) } f u n c t i o n u ( n ) { r e t u r n { l e f t : function ( t,e,r,i ) { for ( arguments.length<3&&(r=0 ) , a r g u m e n t s . l e n g t h < 4 & & ( i = t . l e n g t h ) ; i > r ; ) { v a r u = r + i > > > 1 ; n ( t[u],e ) < 0 ? r = u + 1 : i = u } r e t u r n r } , r i g h t : function ( t,e,r,i ) { for ( arguments.length<3&&(r=0 ) , a r g u m e n t s . l e n g t h < 4 & & ( i = t . l e n g t h ) ; i > r ; ) { v a r u = r + i > > > 1 ; n ( t[u],e ) > 0 ? i = u : r = u + 1 } r e t u r n r } } } f u n c t i o n o ( n ) { r e t u r n n . l e n g t h } f u n c t i o n a ( n ) { for ( var t=1;n*t%1; ) t * = 1 0 ; r e t u r n t } f u n c t i o n l ( n,t ) { for ( var e in t ) O b j e c t . defineProperty ( n.prototype,e,{value:t[e],enumerable:!1} ) } f u n c t i o n c ( ) { t h i s . _ = O b j e c t . create ( null ) } f u n c t i o n f ( n ) { return ( n+=\ "\" ) = = = b o | | n [ 0 ] = = = _ o ? _ o + n : n } f u n c t i o n s ( n ) { return ( n+=\ "\" ) [ 0 ] = = = _ o ? n . slice ( 1 ) : n } f u n c t i o n h ( n ) { r e t u r n f ( n ) i n t h i s . _ } f u n c t i o n p ( n ) { return ( n=f(n ) ) i n t h i s . _ & & d e l e t e t h i s . _ [ n ] } f u n c t i o n g ( ) { v a r n = [ ] ; for ( var t in this._ ) n . push ( s(t ) ) ; r e t u r n n } f u n c t i o n v ( ) { v a r n = 0 ; for ( var t in this._ ) + + n ; r e t u r n n } f u n c t i o n d ( ) { for ( var n in this._ ) r e t u r n ! 1 ; r e t u r n ! 0 } f u n c t i o n y ( ) { t h i s . _ = O b j e c t . create ( null ) } f u n c t i o n m ( n ) { r e t u r n n } f u n c t i o n M ( n,t,e ) { r e t u r n function ( ) { v a r r = e . apply ( t,arguments ) ; r e t u r n r = = = t ? n : r } } f u n c t i o n x ( n,t ) { if ( t in n ) r e t u r n t ; t = t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) ; for ( var e=0,r=wo.length;r>e;++e ) { v a r i = w o [ e ] + t ; if ( i in n ) r e t u r n i } } f u n c t i o n b ( ) { } f u n c t i o n _ ( ) { } f u n c t i o n w ( n ) { f u n c t i o n t ( ) { for ( var t,r=e,i=-1,u=r.length;++i<u; ) ( t = r [ i ] . o n ) & & t . apply ( this,arguments ) ; r e t u r n n } v a r e = [ ] , r = n e w c ; r e t u r n t . o n = function ( t,i ) { v a r u , o = r . get ( t ) ; r e t u r n a r g u m e n t s . l e n g t h < 2 ? o & & o . o n : ( o & & ( o . o n = n u l l , e = e . slice ( 0,u=e.indexOf(o ) ) . concat ( e.slice(u+1 ) ) , r . remove ( t ) ) , i & & e . push ( r.set(t,{on:i} ) ) , n ) } , t } f u n c t i o n S ( ) { a o . e v e n t . preventDefault ( ) } f u n c t i o n k ( ) { for ( var n,t=ao.event;n=t.sourceEvent; ) t = n ; r e t u r n t } f u n c t i o n N ( n ) { for ( var t=new _,e=0,r=arguments.length;++e<r; ) t [ a r g u m e n t s [ e ] ] = w ( t ) ; r e t u r n t . o f = function ( e,r ) { r e t u r n function ( i ) { t r y { v a r u = i . s o u r c e E v e n t = a o . e v e n t ; \
i . t a r g e t = n , a o . e v e n t = i , t [ i . t y p e ] . apply ( e,r ) } f i n a l l y { a o . e v e n t = u } } } , t } f u n c t i o n E ( n ) { r e t u r n ko ( n,Co ) , n } f u n c t i o n A ( n ) { r e t u r n \ " f u n c t i o n \ " = = t y p e o f n ? n : function ( ) { r e t u r n No ( n,this ) } } f u n c t i o n C ( n ) { r e t u r n \ " f u n c t i o n \ " = = t y p e o f n ? n : function ( ) { r e t u r n Eo ( n,this ) } } f u n c t i o n z ( n,t ) { f u n c t i o n e ( ) { t h i s . removeAttribute ( n ) } f u n c t i o n r ( ) { t h i s . removeAttributeNS ( n.space,n.local ) } f u n c t i o n i ( ) { t h i s . setAttribute ( n,t ) } f u n c t i o n u ( ) { t h i s . setAttributeNS ( n.space,n.local,t ) } f u n c t i o n o ( ) { v a r e = t . apply ( this,arguments ) ; n u l l = = e ? t h i s . removeAttribute ( n ) : t h i s . setAttribute ( n,e ) } f u n c t i o n a ( ) { v a r e = t . apply ( this,arguments ) ; n u l l = = e ? t h i s . removeAttributeNS ( n.space,n.local ) : t h i s . setAttributeNS ( n.space,n.local,e ) } r e t u r n n = a o . n s . qualify ( n ) , n u l l = = t ? n . l o c a l ? r : e : \ " f u n c t i o n \ " = = t y p e o f t ? n . l o c a l ? a : o : n . l o c a l ? u : i } f u n c t i o n L ( n ) { r e t u r n n . trim ( ) . replace ( /\\s+/g,\ " \" ) } f u n c t i o n q ( n ) { r e t u r n n e w RegExp ( \"(?:^|\\\\s+)\"+ao.requote(n)+\"(?:\\\\s+|$)\",\"g\")}function T(n ) { return ( n+\ "\" ) . trim ( ) . split ( /^|\\s+/ ) } f u n c t i o n R ( n,t ) { f u n c t i o n e ( ) { for ( var e=-1;++e<i; ) n [ e ] ( t h i s , t ) } f u n c t i o n r ( ) { for ( var e=-1,r=t.apply(this,arguments ) ; + + e < i ; ) n [ e ] ( t h i s , r ) } n = T ( n ) . map ( D ) ; v a r i = n . l e n g t h ; r e t u r n \ " f u n c t i o n \ " = = t y p e o f t ? r : e } f u n c t i o n D ( n ) { v a r t = q ( n ) ; r e t u r n function ( e,r ) { if ( i=e.classList ) r e t u r n r ? i . add ( n ) : i . remove ( n ) ; v a r i = e . getAttribute ( \"class\")||\"\";r?(t.lastIndex=0,t.test(i)||e.setAttribute(\"class\",L(i+\" \"+n))):e.setAttribute(\"class\",L(i.replace(t,\" \")))}}function P(n,t,e ) { f u n c t i o n r ( ) { t h i s . s t y l e . removeProperty ( n ) } f u n c t i o n i ( ) { t h i s . s t y l e . setProperty ( n,t,e ) } f u n c t i o n u ( ) { v a r r = t . apply ( this,arguments ) ; n u l l = = r ? t h i s . s t y l e . removeProperty ( n ) : t h i s . s t y l e . setProperty ( n,r,e ) } r e t u r n n u l l = = t ? r : \ " f u n c t i o n \ " = = t y p e o f t ? u : i } f u n c t i o n U ( n,t ) { f u n c t i o n e ( ) { d e l e t e t h i s [ n ] } f u n c t i o n r ( ) { t h i s [ n ] = t } f u n c t i o n i ( ) { v a r e = t . apply ( this,arguments ) ; n u l l = = e ? d e l e t e t h i s [ n ] : t h i s [ n ] = e } r e t u r n n u l l = = t ? e : \ " f u n c t i o n \ " = = t y p e o f t ? i : r } f u n c t i o n j ( n ) { f u n c t i o n t ( ) { v a r t = t h i s . o w n e r D o c u m e n t , e = t h i s . n a m e s p a c e U R I ; r e t u r n e = = = z o & & t . d o c u m e n t E l e m e n t . n a m e s p a c e U R I = = = z o ? t . createElement ( n ) : t . createElementNS ( e,n ) } f u n c t i o n e ( ) { r e t u r n t h i s . o w n e r D o c u m e n t . createElementNS ( n.space,n.local ) } r e t u r n \ " f u n c t i o n \ " = = t y p e o f \
n ? n : ( n = a o . n s . qualify ( n ) ) . l o c a l ? e : t } f u n c t i o n F ( ) { v a r n = t h i s . p a r e n t N o d e ; n & & n . removeChild ( this ) } f u n c t i o n H ( n ) { r e t u r n { _ _ d a t a _ _ : n } } f u n c t i o n O ( n ) { r e t u r n function ( ) { r e t u r n Ao ( this,n ) } } f u n c t i o n I ( n ) { r e t u r n a r g u m e n t s . l e n g t h | | ( n = e ) , function ( t,e ) { r e t u r n t & & e ? n ( t.__data__,e.__data__ ) : ! t - ! e } } f u n c t i o n Y ( n,t ) { for ( var e=0,r=n.length;r>e;e++ ) for ( var i,u=n[e],o=0,a=u.length;a>o;o++ ) ( i = u [ o ] ) & & t ( i,o,e ) ; r e t u r n n } f u n c t i o n Z ( n ) { r e t u r n ko ( n,qo ) , n } f u n c t i o n V ( n ) { v a r t , e ; r e t u r n function ( r,i,u ) { v a r o , a = n [ u ] . u p d a t e , l = a . l e n g t h ; for ( u!=e&&(e=u,t=0 ) , i > = t & & ( t = i + 1 ) ; ! ( o = a [ t ] ) & & + + t < l ; ) ; r e t u r n o } } f u n c t i o n X ( n,t,e ) { f u n c t i o n r ( ) { v a r t = t h i s [ o ] ; t & & ( t h i s . removeEventListener ( n,t,t. $ ) , d e l e t e t h i s [ o ] ) } f u n c t i o n i ( ) { v a r i = l ( t,co(arguments ) ) ; r . call ( this ) , t h i s . addEventListener ( n,this[o]=i,i. $ =e ) , i . _ = t } f u n c t i o n u ( ) { v a r t , e = n e w RegExp ( \"^__on([^.]+)\"+ao.requote(n)+\"$\");for(var r in this ) if ( t=r.match(e ) ) { v a r i = t h i s [ r ] ; t h i s . removeEventListener ( t[1],i,i. $ ) , d e l e t e t h i s [ r ] } } v a r o = \ " _ _ o n \ " + n , a = n . indexOf ( \".\"),l=$;a>0&&(n=n.slice(0,a));var c=To.get(n ) ; r e t u r n c & & ( n = c , l = B ) , a ? t ? i : r : t ? b : u } f u n c t i o n $ ( n , t ) { r e t u r n function ( e ) { v a r r = a o . e v e n t ; a o . e v e n t = e , t [ 0 ] = t h i s . _ _ d a t a _ _ ; t r y { n . apply ( this,t ) } f i n a l l y { a o . e v e n t = r } } } f u n c t i o n B ( n,t ) { v a r e = $ ( n , t ) ; r e t u r n function ( n ) { v a r t = t h i s , r = n . r e l a t e d T a r g e t ; r & & ( r = = = t | | 8 & r . compareDocumentPosition ( t ) ) | | e . call ( t,n ) } } f u n c t i o n W ( e ) { v a r r = \ " . d r a g s u p p r e s s - \ " + + + D o , i = \ " c l i c k \ " + r , u = a o . select ( t(e ) ) . on ( \"touchmove\"+r,S).on(\"dragstart\"+r,S).on(\"selectstart\"+r,S);if(null==Ro&&(Ro=\"onselectstart\"in e?!1:x(e.style,\ "userSelect\" ) ) , R o ) { v a r o = n ( e ) . s t y l e , a = o [ R o ] ; o [ R o ] = \ " n o n e \ " } r e t u r n function ( n ) { if ( u.on(r,null ) , R o & & ( o [ R o ] = a ) , n ) { v a r t = function ( ) { u . on ( i,null ) } ; u . on ( i,function( ) { S ( ) , t ( ) } , ! 0 ) , setTimeout ( t,0 ) } } } f u n c t i o n J ( n,e ) { e . c h a n g e d T o u c h e s & & ( e = e . c h a n g e d T o u c h e s [ 0 ] ) ; v a r r = n . o w n e r S V G E l e m e n t | | n ; if ( r.createSVGPoint ) { v a r i = r . createSVGPoint ( ) ; if ( 0>Po ) { v a r u = t ( n ) ; if ( u.scrollX||u.scrollY ) { r = a o . select ( \"body\").append(\"svg\").style({position:\"absolute\",top:0,left:0,margin:0,padding:0,border:\"none\"},\"important\");var o=r[0][0].getScreenCTM( ) ; P o = ! ( o . f | | o . e ) , r . remove ( ) } } r e t u r n P o ? ( i . x = e . p a g e X , i . y = e . p a g e Y ) : ( i . x = e . c l i e n t X , \
i . y = e . c l i e n t Y ) , i = i . matrixTransform ( n.getScreenCTM( ) . inverse ( ) ) , [ i . x , i . y ] } v a r a = n . getBoundingClientRect ( ) ; r e t u r n [ e . c l i e n t X - a . l e f t - n . c l i e n t L e f t , e . c l i e n t Y - a . t o p - n . c l i e n t T o p ] } f u n c t i o n G ( ) { r e t u r n a o . e v e n t . c h a n g e d T o u c h e s [ 0 ] . i d e n t i f i e r } f u n c t i o n K ( n ) { r e t u r n n > 0 ? 1 : 0 > n ? - 1 : 0 } f u n c t i o n Q ( n,t,e ) { return ( t[0]-n[0] ) * ( e [ 1 ] - n [ 1 ] ) - ( t [ 1 ] - n [ 1 ] ) * ( e [ 0 ] - n [ 0 ] ) } f u n c t i o n nn ( n ) { r e t u r n n > 1 ? 0 : - 1 > n ? F o : M a t h . acos ( n ) } f u n c t i o n tn ( n ) { r e t u r n n > 1 ? I o : - 1 > n ? - I o : M a t h . asin ( n ) } f u n c t i o n en ( n ) { return ( ( n=Math.exp(n ) ) - 1 / n ) / 2 } f u n c t i o n rn ( n ) { return ( ( n=Math.exp(n ) ) + 1 / n ) / 2 } f u n c t i o n un ( n ) { return ( ( n=Math.exp(2*n ) ) - 1 ) / ( n + 1 ) } f u n c t i o n on ( n ) { return ( n=Math.sin(n/2 ) ) * n } f u n c t i o n an ( ) { } f u n c t i o n ln ( n,t,e ) { r e t u r n t h i s i n s t a n c e o f l n ? ( t h i s . h = + n , t h i s . s = + t , void ( this.l=+e ) ) : a r g u m e n t s . l e n g t h < 2 ? n i n s t a n c e o f l n ? n e w ln ( n.h,n.s,n.l ) : _n ( \"\"+n,wn,ln):new ln(n,t,e ) } f u n c t i o n cn ( n,t,e ) { f u n c t i o n r ( n ) { r e t u r n n > 3 6 0 ? n - = 3 6 0 : 0 > n & & ( n + = 3 6 0 ) , 6 0 > n ? u + ( o - u ) * n / 6 0 : 1 8 0 > n ? o : 2 4 0 > n ? u + ( o - u ) * ( 2 4 0 - n ) / 6 0 : u } f u n c t i o n i ( n ) { r e t u r n M a t h . round ( 255*r(n ) ) } v a r u , o ; r e t u r n n = isNaN ( n ) ? 0 : ( n % = 3 6 0 ) < 0 ? n + 3 6 0 : n , t = isNaN ( t ) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t , e = 0 > e ? 0 : e > 1 ? 1 : e , o = . 5 > = e ? e * ( 1 + t ) : e + t - e * t , u = 2 * e - o , n e w mn ( i(n+120 ) , i ( n ) , i ( n-120 ) ) } f u n c t i o n fn ( n,t,e ) { r e t u r n t h i s i n s t a n c e o f f n ? ( t h i s . h = + n , t h i s . c = + t , void ( this.l=+e ) ) : a r g u m e n t s . l e n g t h < 2 ? n i n s t a n c e o f f n ? n e w fn ( n.h,n.c,n.l ) : n i n s t a n c e o f h n ? gn ( n.l,n.a,n.b ) : gn ( ( n=Sn((n=ao.rgb(n ) ) . r , n . g , n . b ) ) . l , n . a , n . b ) : n e w fn ( n,t,e ) } f u n c t i o n sn ( n,t,e ) { r e t u r n isNaN ( n ) & & ( n = 0 ) , isNaN ( t ) & & ( t = 0 ) , n e w hn ( e,Math.cos(n*=Yo ) * t , M a t h . sin ( n ) * t ) } f u n c t i o n hn ( n,t,e ) { r e t u r n t h i s i n s t a n c e o f h n ? ( t h i s . l = + n , t h i s . a = + t , void ( this.b=+e ) ) : a r g u m e n t s . l e n g t h < 2 ? n i n s t a n c e o f h n ? n e w hn ( n.l,n.a,n.b ) : n i n s t a n c e o f f n ? sn ( n.h,n.c,n.l ) : Sn ( ( n=mn(n ) ) . r , n . g , n . b ) : n e w hn ( n,t,e ) } f u n c t i o n pn ( n,t,e ) { v a r r = ( n + 1 6 ) / 1 1 6 , i = r + t / 5 0 0 , u = r - e / 2 0 0 ; r e t u r n i = vn ( i ) * n a , r = vn ( r ) * t a , u = vn ( u ) * e a , n e w mn ( yn(3.2404542*i-1.5371385*r-.4985314*u ) , yn ( -.969266*i+1.8760108*r+.041556*u ) , yn ( .0556434*i-.2040259*r+1.0572252*u ) ) } f u n c t i o n gn ( n,t,e ) { r e t u r n n > 0 ? n e w fn ( Math.atan2(e,t ) * Z o , M a t h . sqrt ( t*t+e*e ) , n ) : n e w fn ( NaN,NaN,n ) } f u n c t i o n vn ( n ) { r e t u r n n > . 2 0 6 8 9 3 0 3 4 ? n * n * n : ( n - 4 / 2 9 ) / 7 . 7 8 7 0 3 7 } f u n c t i o n dn ( n ) { r e t u r n n > . 0 0 8 8 5 6 ? M a t h . pow ( n,\
1 / 3 ) : 7 . 7 8 7 0 3 7 * n + 4 / 2 9 } f u n c t i o n yn ( n ) { r e t u r n M a t h . round ( 255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4 ) - . 0 5 5 ) ) } f u n c t i o n mn ( n,t,e ) { r e t u r n t h i s i n s t a n c e o f m n ? ( t h i s . r = ~ ~ n , t h i s . g = ~ ~ t , void ( this.b=~~e ) ) : a r g u m e n t s . l e n g t h < 2 ? n i n s t a n c e o f m n ? n e w mn ( n.r,n.g,n.b ) : _n ( \"\"+n,mn,cn):new mn(n,t,e ) } f u n c t i o n Mn ( n ) { r e t u r n n e w mn ( n>>16,n>>8&255,255&n ) } f u n c t i o n xn ( n ) { r e t u r n Mn ( n ) + \ " \ " } f u n c t i o n bn ( n ) { r e t u r n 1 6 > n ? \ " 0 \ " + M a t h . max ( 0,n ) . toString ( 16 ) : M a t h . min ( 255,n ) . toString ( 16 ) } f u n c t i o n _n ( n,t,e ) { v a r r , i , u , o = 0 , a = 0 , l = 0 ; if ( r=/([a-z]+ ) \ \ ( ( . * ) \ \ ) / . exec ( n=n.toLowerCase( ) ) ) switch ( i=r[2].split(\ ",\" ) , r [ 1 ] ) { c a s e \ " h s l \ " : r e t u r n e ( parseFloat(i[0] ) , parseFloat ( i[1] ) / 1 0 0 , parseFloat ( i[2] ) / 1 0 0 ) ; c a s e \ " r g b \ " : r e t u r n t ( Nn(i[0] ) , Nn ( i[1] ) , Nn ( i[2] ) ) } return ( u=ua.get(n ) ) ? t ( u.r,u.g,u.b ) : ( n u l l = = n | | \ " #\"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return\"%\"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return\"function\"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&\"function\"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch(\"beforesend\",\"progress\",\"load\",\"error\"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||\"withCredentials\"in l||!/^(http(s)?:)?\\/\\//.test(n)||(l=new \
X D o m a i n R e q u e s t ) , \ " o n l o a d \ " i n l ? l . o n l o a d = l . o n e r r o r = i : l . o n r e a d y s t a t e c h a n g e = function ( ) { l . r e a d y S t a t e > 3 & & i ( ) } , l . o n p r o g r e s s = function ( n ) { v a r t = a o . e v e n t ; a o . e v e n t = n ; t r y { o . p r o g r e s s . call ( u,l ) } f i n a l l y { a o . e v e n t = t } } , u . h e a d e r = function ( n,t ) { r e t u r n n = ( n + \ " \ " ) . toLowerCase ( ) , a r g u m e n t s . l e n g t h < 2 ? a [ n ] : ( n u l l = = t ? d e l e t e a [ n ] : a [ n ] = t + \ " \ " , u ) } , u . m i m e T y p e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = n u l l = = n ? n u l l : n + \ " \ " , u ) : t } , u . r e s p o n s e T y p e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c = n , u ) : c } , u . r e s p o n s e = function ( n ) { r e t u r n e = n , u } , [ \ " g e t \ " , \ " p o s t \ " ] . forEach ( function(n ) { u [ n ] = function ( ) { r e t u r n u . s e n d . apply ( u,[n].concat(co(arguments ) ) ) } } ) , u . s e n d = function ( e,r,i ) { if ( 2===arguments.length&&\ "function\" ==typeof r&&(i=r,r=null ) , l . open ( e,n,!0 ) , n u l l = = t | | \ " a c c e p t \ " i n a | | ( a . a c c e p t = t + \ " , * / * \ " ) , l . s e t R e q u e s t H e a d e r ) for ( var f in a ) l . setRequestHeader ( f,a[f] ) ; r e t u r n n u l l ! = t & & l . o v e r r i d e M i m e T y p e & & l . overrideMimeType ( t ) , n u l l ! = c & & ( l . r e s p o n s e T y p e = c ) , n u l l ! = i & & u . on ( \"error\",i).on(\"load\",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort( ) , u } , a o . rebind ( u,o,\ "on\" ) , n u l l = = r ? u : u . get ( zn(r ) ) } f u n c t i o n zn ( n ) { r e t u r n 1 = = = n . l e n g t h ? function ( t,e ) { n ( null==t?e:null ) } : n } f u n c t i o n Ln ( n ) { v a r t = n . r e s p o n s e T y p e ; r e t u r n t & & \ " t e x t \ " ! = = t ? n . r e s p o n s e : n . r e s p o n s e T e x t } f u n c t i o n qn ( n,t,e ) { v a r r = a r g u m e n t s . l e n g t h ; 2 > r & & ( t = 0 ) , 3 > r & & ( e = D a t e . now ( ) ) ; v a r i = e + t , u = { c : n , t : i , n : n u l l } ; r e t u r n a a ? a a . n = u : o a = u , a a = u , l a | | ( c a = clearTimeout ( ca ) , l a = 1 , fa ( Tn ) ) , u } f u n c t i o n Tn ( ) { v a r n = Rn ( ) , t = Dn ( ) - n ; t > 2 4 ? ( isFinite ( t ) & & ( clearTimeout ( ca ) , c a = setTimeout ( Tn,t ) ) , l a = 0 ) : ( l a = 1 , fa ( Tn ) ) } f u n c t i o n Rn ( ) { for ( var n=Date.now( ) , t = o a ; t ; ) n > = t . t & & t . c ( n-t.t ) & & ( t . c = n u l l ) , t = t . n ; r e t u r n n } f u n c t i o n Dn ( ) { for ( var n,t=oa,e=1/0;t; ) t . c ? ( t . t < e & & ( e = t . t ) , t = ( n = t ) . n ) : t = n ? n . n = t . n : o a = t . n ; r e t u r n a a = n , e } f u n c t i o n Pn ( n,t ) { r e t u r n t - ( n ? M a t h . ceil ( Math.log(n ) / M a t h . L N 1 0 ) : 1 ) } f u n c t i o n Un ( n,t ) { v a r e = M a t h . pow ( 10,3*xo(8-t ) ) ; r e t u r n { s c a l e : t > 8 ? function ( n ) { r e t u r n n / e } : function ( n ) { r e t u r n n * e } , s y m b o l : n } } f u n c t i o n jn ( n ) { v a r t = n . d e c i m a l , e = n . t h o u s a n d s , r = n . g r o u p i n g , i = n . c u r r e n c y , u = r & & e ? function ( n,t ) { for ( var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l ) ) , u . push ( n.substring(i-=a,\
i + a ) ) , ! ( ( l + = a + 1 ) > t ) ) ; ) a = r [ o = ( o + 1 ) % r . l e n g t h ] ; r e t u r n u . reverse ( ) . join ( e ) } : m ; r e t u r n function ( n ) { v a r e = h a . exec ( n ) , r = e [ 1 ] | | \ " \ " , o = e [ 2 ] | | \ " > \ " , a = e [ 3 ] | | \ " - \ " , l = e [ 4 ] | | \ " \ " , c = e [ 5 ] , f = + e [ 6 ] , s = e [ 7 ] , h = e [ 8 ] , p = e [ 9 ] , g = 1 , v = \ " \ " , d = \ " \ " , y = ! 1 , m = ! 0 ; switch ( h&&(h=+h.substring(1 ) ) , ( c | | \ " 0 \ " = = = r & & \ " = \ " = = = o ) & & ( c = r = \ " 0 \ " , o = \ " = \ " ) , p ) { c a s e \ " n \ " : s = ! 0 , p = \ " g \ " ; b r e a k ; c a s e \ " % \ " : g = 1 0 0 , d = \ " % \ " , p = \ " f \ " ; b r e a k ; c a s e \ " p \ " : g = 1 0 0 , d = \ " % \ " , p = \ " r \ " ; b r e a k ; c a s e \ " b \ " : c a s e \ " o \ " : c a s e \ " x \ " : c a s e \ " X \ " : \ " #\"===l&&(v=\"0\"+p.toLowerCase());case\"c\":m=!1;case\"d\":y=!0,h=0;break;case\"s\":g=-1,p=\"r\"}\"$\"===l&&(v=i[0],d=i[1]),\"r\"!=p||h||(p=\"g\"),null!=h&&(\"g\"==p?h=Math.max(1,Math.min(21,h)):\"e\"!=p&&\"f\"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return\"\";var i=0>n||0===n&&0>1/n?(n=-n,\"-\"):\"-\"===a?\"\":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(\".\");if(0>_){var w=m?n.lastIndexOf(\"e\"):-1;0>w?(x=n,b=\"\"):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):\"\";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,(\"<\"===o?i+n+k:\">\"===o?k+i+n:\"^\"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+\"\"}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,\
o = [ ] , a = - 1 , l = 0 ; + + a < r ; ) 3 7 = = = n . charCodeAt ( a ) & & ( o . push ( n.slice(l,a ) ) , n u l l ! = ( i = y a [ e = n . charAt ( ++a ) ] ) & & ( e = n . charAt ( ++a ) ) , ( u = A [ e ] ) & & ( e = u ( t,null==i?\ "e\" ===e?\ " \" :\ "0\" :i ) ) , o . push ( e ) , l = a + 1 ) ; r e t u r n o . push ( n.slice(l,a ) ) , o . join ( \"\")}var r=n.length;return t.parse=function(t ) { v a r r = { y : 1 9 0 0 , m : 0 , d : 1 , H : 0 , M : 0 , S : 0 , L : 0 , Z : n u l l } , i = e ( r,n,t,0 ) ; if ( i!=t.length ) r e t u r n n u l l ; \ " p \ " i n r & & ( r . H = r . H % 1 2 + 1 2 * r . p ) ; v a r u = n u l l ! = r . Z & & v a ! = = H n , o = new ( u?Hn:va ) ; r e t u r n \ " j \ " i n r ? o . setFullYear ( r.y,0,r.j ) : \ " W \ " i n r | | \ " U \ " i n r ? ( \ " w \ " i n r | | ( r . w = \ " W \ " i n r ? 1 : 0 ) , o . setFullYear ( r.y,0,1 ) , o . setFullYear ( r.y,0,\ "W\" in r?(r.w+6 ) % 7 + 7 * r . W - ( o . getDay ( ) + 5 ) % 7 : r . w + 7 * r . U - ( o . getDay ( ) + 6 ) % 7 ) ) : o . setFullYear ( r.y,r.m,r.d ) , o . setHours ( r.H+(r.Z/100|0 ) , r . M + r . Z % 1 0 0 , r . S , r . L ) , u ? o . _ : o } , t . t o S t r i n g = function ( ) { r e t u r n n } , t } f u n c t i o n e ( n,t,e,r ) { for ( var i,u,o,a=0,l=t.length,c=e.length;l>a; ) { if ( r>=c ) r e t u r n - 1 ; if ( i=t.charCodeAt(a++ ) , 3 7 = = = i ) { if ( o=t.charAt(a++ ) , u = C [ o i n y a ? t . charAt ( a++ ) : o ] , ! u | | ( r = u ( n,e,r ) ) < 0 ) r e t u r n - 1 } e l s e if ( i!=e.charCodeAt(r++ ) ) r e t u r n - 1 } r e t u r n r } f u n c t i o n r ( n,t,e ) { _ . l a s t I n d e x = 0 ; v a r r = _ . exec ( t.slice(e ) ) ; r e t u r n r ? ( n . w = w . get ( r[0].toLowerCase( ) ) , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n i ( n,t,e ) { x . l a s t I n d e x = 0 ; v a r r = x . exec ( t.slice(e ) ) ; r e t u r n r ? ( n . w = b . get ( r[0].toLowerCase( ) ) , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n u ( n,t,e ) { N . l a s t I n d e x = 0 ; v a r r = N . exec ( t.slice(e ) ) ; r e t u r n r ? ( n . m = E . get ( r[0].toLowerCase( ) ) , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n o ( n,t,e ) { S . l a s t I n d e x = 0 ; v a r r = S . exec ( t.slice(e ) ) ; r e t u r n r ? ( n . m = k . get ( r[0].toLowerCase( ) ) , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n a ( n,t,r ) { r e t u r n e ( n,A.c.toString( ) , t , r ) } f u n c t i o n l ( n,t,r ) { r e t u r n e ( n,A.x.toString( ) , t , r ) } f u n c t i o n c ( n,t,r ) { r e t u r n e ( n,A.X.toString( ) , t , r ) } f u n c t i o n f ( n,t,e ) { v a r r = M . get ( t.slice(e,e+=2 ) . toLowerCase ( ) ) ; r e t u r n n u l l = = r ? - 1 : ( n . p = r , e ) } v a r s = n . d a t e T i m e , h = n . d a t e , p = n . t i m e , g = n . p e r i o d s , v = n . d a y s , d = n . s h o r t D a y s , y = n . m o n t h s , m = n . s h o r t M o n t h s ; t . u t c = function ( n ) { f u n c t i o n e ( n ) { t r y { v a = H n ; v a r t = n e w v a ; r e t u r n t . _ = n , r ( t ) } f i n a l l y { v a = D a t e } } v a r r = t ( n ) ; r e t u r n e . p a r s e = function ( n ) { t r y { v a = H n ; v a r t = r . parse ( n ) ; r e t u r n t & & t . _ } f i n a l l y { v a = D a t e } } , e . t o S t r i n g = r . t o S t r i n g , e } , t . m u l t i = t . u t c . m u l t i = c t ; v a r M = a o . map ( ) , x = Vn ( v ) , b = Xn ( v ) , _ = Vn ( d ) , w = Xn ( d ) , S = Vn ( y ) , k = Xn ( y ) , \
N = Vn ( m ) , E = Xn ( m ) ; g . forEach ( function(n,t ) { M . set ( n.toLowerCase( ) , t ) } ) ; v a r A = { a : function ( n ) { r e t u r n d [ n . getDay ( ) ] } , A : function ( n ) { r e t u r n v [ n . getDay ( ) ] } , b : function ( n ) { r e t u r n m [ n . getMonth ( ) ] } , B : function ( n ) { r e t u r n y [ n . getMonth ( ) ] } , c : t ( s ) , d : function ( n,t ) { r e t u r n Zn ( n.getDate( ) , t , 2 ) } , e : function ( n,t ) { r e t u r n Zn ( n.getDate( ) , t , 2 ) } , H : function ( n,t ) { r e t u r n Zn ( n.getHours( ) , t , 2 ) } , I : function ( n,t ) { r e t u r n Zn ( n.getHours( ) % 1 2 | | 1 2 , t , 2 ) } , j : function ( n,t ) { r e t u r n Zn ( 1+ga.dayOfYear(n ) , t , 3 ) } , L : function ( n,t ) { r e t u r n Zn ( n.getMilliseconds( ) , t , 3 ) } , m : function ( n,t ) { r e t u r n Zn ( n.getMonth( ) + 1 , t , 2 ) } , M : function ( n,t ) { r e t u r n Zn ( n.getMinutes( ) , t , 2 ) } , p : function ( n ) { r e t u r n g [ + ( n . getHours ( ) > = 1 2 ) ] } , S : function ( n,t ) { r e t u r n Zn ( n.getSeconds( ) , t , 2 ) } , U : function ( n,t ) { r e t u r n Zn ( ga.sundayOfYear(n ) , t , 2 ) } , w : function ( n ) { r e t u r n n . getDay ( ) } , W : function ( n,t ) { r e t u r n Zn ( ga.mondayOfYear(n ) , t , 2 ) } , x : t ( h ) , X : t ( p ) , y : function ( n,t ) { r e t u r n Zn ( n.getFullYear( ) % 1 0 0 , t , 2 ) } , Y : function ( n,t ) { r e t u r n Zn ( n.getFullYear( ) % 1 e 4 , t , 4 ) } , Z : a t , \ " % \ " : function ( ) { r e t u r n \ " % \ " } } , C = { a : r , A : i , b : u , B : o , c : a , d : t t , e : t t , H : r t , I : r t , j : e t , L : o t , m : n t , M : i t , p : f , S : u t , U : B n , w : $ n , W : W n , x : l , X : c , y : G n , Y : J n , Z : K n , \ " % \ " : l t } ; r e t u r n t } f u n c t i o n Zn ( n,t,e ) { v a r r = 0 > n ? \ " - \ " : \ " \ " , i = ( r ? - n : n ) + \ " \ " , u = i . l e n g t h ; r e t u r n r + ( e > u ? n e w Array ( e-u+1 ) . join ( t ) + i : i ) } f u n c t i o n Vn ( n ) { r e t u r n n e w RegExp ( \"^(?:\"+n.map(ao.requote).join(\"|\")+\")\",\"i\")}function Xn(n ) { for ( var t=new c,e=-1,r=n.length;++e<r; ) t . set ( n[e].toLowerCase( ) , e ) ; r e t u r n t } f u n c t i o n $ n ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+1 ) ) ; r e t u r n r ? ( n . w = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n Bn ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e ) ) ; r e t u r n r ? ( n . U = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n Wn ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e ) ) ; r e t u r n r ? ( n . W = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n Jn ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+4 ) ) ; r e t u r n r ? ( n . y = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n Gn ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+2 ) ) ; r e t u r n r ? ( n . y = Qn ( +r[0] ) , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n Kn ( n,t,e ) { r e t u r n / ^ [ + - ] \ \ d { 4 } $ / . test ( t=t.slice(e,e+5 ) ) ? ( n . Z = - t , e + 5 ) : - 1 } f u n c t i o n Qn ( n ) { r e t u r n n + ( n > 6 8 ? 1 9 0 0 : 2 e 3 ) } f u n c t i o n nt ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,\
e + 2 ) ) ; r e t u r n r ? ( n . m = r [ 0 ] - 1 , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n tt ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+2 ) ) ; r e t u r n r ? ( n . d = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n et ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+3 ) ) ; r e t u r n r ? ( n . j = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n rt ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+2 ) ) ; r e t u r n r ? ( n . H = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n it ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+2 ) ) ; r e t u r n r ? ( n . M = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n ut ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+2 ) ) ; r e t u r n r ? ( n . S = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n ot ( n,t,e ) { m a . l a s t I n d e x = 0 ; v a r r = m a . exec ( t.slice(e,e+3 ) ) ; r e t u r n r ? ( n . L = + r [ 0 ] , e + r [ 0 ] . l e n g t h ) : - 1 } f u n c t i o n at ( n ) { v a r t = n . getTimezoneOffset ( ) , e = t > 0 ? \ " - \ " : \ " + \ " , r = xo ( t ) / 6 0 | 0 , i = xo ( t ) % 6 0 ; r e t u r n e + Zn ( r,\ "0\" ,2 ) + Zn ( i,\ "0\" ,2 ) } f u n c t i o n lt ( n,t,e ) { M a . l a s t I n d e x = 0 ; v a r r = M a . exec ( t.slice(e,e+1 ) ) ; r e t u r n r ? e + r [ 0 ] . l e n g t h : - 1 } f u n c t i o n ct ( n ) { for ( var t=n.length,e=-1;++e<t; ) n [ e ] [ 0 ] = this ( n[e][0] ) ; r e t u r n function ( t ) { for ( var e=0,r=n[e];!r[1](t ) ; ) r = n [ + + e ] ; r e t u r n r [ 0 ] ( t ) } } f u n c t i o n ft ( ) { } f u n c t i o n st ( n,t,e ) { v a r r = e . s = n + t , i = r - n , u = r - i ; e . t = n - u + ( t - i ) } f u n c t i o n ht ( n,t ) { n & & w a . hasOwnProperty ( n.type ) & & w a [ n . t y p e ] ( n , t ) } f u n c t i o n pt ( n,t,e ) { v a r r , i = - 1 , u = n . l e n g t h - e ; for ( t.lineStart( ) ; + + i < u ; ) r = n [ i ] , t . point ( r[0],r[1],r[2] ) ; t . lineEnd ( ) } f u n c t i o n gt ( n,t ) { v a r e = - 1 , r = n . l e n g t h ; for ( t.polygonStart( ) ; + + e < r ; ) pt ( n[e],t,1 ) ; t . polygonEnd ( ) } f u n c t i o n vt ( ) { f u n c t i o n n ( n,t ) { n * = Y o , t = t * Y o / 2 + F o / 4 ; v a r e = n - r , o = e > = 0 ? 1 : - 1 , a = o * e , l = M a t h . cos ( t ) , c = M a t h . sin ( t ) , f = u * c , s = i * l + f * M a t h . cos ( a ) , h = f * o * M a t h . sin ( a ) ; k a . add ( Math.atan2(h,s ) ) , r = n , i = l , u = c } v a r t , e , r , i , u ; N a . p o i n t = function ( o,a ) { N a . p o i n t = n , r = ( t = o ) * Y o , i = M a t h . cos ( a=(e=a ) * Y o / 2 + F o / 4 ) , u = M a t h . sin ( a ) } , N a . l i n e E n d = function ( ) { n ( t,e ) } } f u n c t i o n dt ( n ) { v a r t = n [ 0 ] , e = n [ 1 ] , r = M a t h . cos ( e ) ; r e t u r n [ r * M a t h . cos ( t ) , r * M a t h . sin ( t ) , M a t h . sin ( e ) ] } f u n c t i o n yt ( n,t ) { r e t u r n n [ 0 ] * t [ 0 ] + n [ 1 ] * t [ 1 ] + n [ 2 ] * t [ 2 ] } f u n c t i o n mt ( n,t ) { r e t u r n [ n [ 1 ] * t [ 2 ] - n [ 2 ] * t [ 1 ] , n [ 2 ] * t [ 0 ] - n [ 0 ] * t [ 2 ] , n [ 0 ] * t [ 1 ] - n [ 1 ] * t [ 0 ] ] } f u n c t i o n Mt ( n,t ) { n [ 0 ] + = t [ 0 ] , n [ 1 ] + = t [ 1 ] , n [ 2 ] + = t [ 2 ] } f u n c t i o n xt ( n,t ) { r e t u r n [ n [ 0 ] * t , n [ 1 ] * t , n [ 2 ] * t ] } f u n c t i o n bt ( n ) { v a r t = M a t h . sqrt ( n[0]*n[0]+n[1]*n[1]+n[2]*n[2] ) ; \
n [ 0 ] / = t , n [ 1 ] / = t , n [ 2 ] / = t } f u n c t i o n _t ( n ) { r e t u r n [ M a t h . atan2 ( n[1],n[0] ) , tn ( n[2] ) ] } f u n c t i o n wt ( n,t ) { r e t u r n xo ( n[0]-t[0] ) < U o & & xo ( n[1]-t[1] ) < U o } f u n c t i o n St ( n,t ) { n * = Y o ; v a r e = M a t h . cos ( t*=Yo ) ; kt ( e*Math.cos(n ) , e * M a t h . sin ( n ) , M a t h . sin ( t ) ) } f u n c t i o n kt ( n,t,e ) { + + E a , C a + = ( n - C a ) / E a , z a + = ( t - z a ) / E a , L a + = ( e - L a ) / E a } f u n c t i o n Nt ( ) { f u n c t i o n n ( n,i ) { n * = Y o ; v a r u = M a t h . cos ( i*=Yo ) , o = u * M a t h . cos ( n ) , a = u * M a t h . sin ( n ) , l = M a t h . sin ( i ) , c = M a t h . atan2 ( Math.sqrt((c=e*l-r*a ) * c + ( c = r * o - t * l ) * c + ( c = t * a - e * o ) * c ) , t * o + e * a + r * l ) ; A a + = c , q a + = c * ( t + ( t = o ) ) , T a + = c * ( e + ( e = a ) ) , R a + = c * ( r + ( r = l ) ) , kt ( t,e,r ) } v a r t , e , r ; j a . p o i n t = function ( i,u ) { i * = Y o ; v a r o = M a t h . cos ( u*=Yo ) ; t = o * M a t h . cos ( i ) , e = o * M a t h . sin ( i ) , r = M a t h . sin ( u ) , j a . p o i n t = n , kt ( t,e,r ) } } f u n c t i o n Et ( ) { j a . p o i n t = S t } f u n c t i o n At ( ) { f u n c t i o n n ( n,t ) { n * = Y o ; v a r e = M a t h . cos ( t*=Yo ) , o = e * M a t h . cos ( n ) , a = e * M a t h . sin ( n ) , l = M a t h . sin ( t ) , c = i * l - u * a , f = u * o - r * l , s = r * a - i * o , h = M a t h . sqrt ( c*c+f*f+s*s ) , p = r * o + i * a + u * l , g = h & & - nn ( p ) / h , v = M a t h . atan2 ( h,p ) ; D a + = g * c , P a + = g * f , U a + = g * s , A a + = v , q a + = v * ( r + ( r = o ) ) , T a + = v * ( i + ( i = a ) ) , R a + = v * ( u + ( u = l ) ) , kt ( r,i,u ) } v a r t , e , r , i , u ; j a . p o i n t = function ( o,a ) { t = o , e = a , j a . p o i n t = n , o * = Y o ; v a r l = M a t h . cos ( a*=Yo ) ; r = l * M a t h . cos ( o ) , i = l * M a t h . sin ( o ) , u = M a t h . sin ( a ) , kt ( r,i,u ) } , j a . l i n e E n d = function ( ) { n ( t,e ) , j a . l i n e E n d = E t , j a . p o i n t = S t } } f u n c t i o n Ct ( n,t ) { f u n c t i o n e ( e,r ) { r e t u r n e = n ( e,r ) , t ( e[0],e[1] ) } r e t u r n n . i n v e r t & & t . i n v e r t & & ( e . i n v e r t = function ( e,r ) { r e t u r n e = t . invert ( e,r ) , e & & n . invert ( e[0],e[1] ) } ) , e } f u n c t i o n zt ( ) { r e t u r n ! 0 } f u n c t i o n Lt ( n,t,e,r,i ) { v a r u = [ ] , o = [ ] ; if ( n.forEach(function(n ) { if ( !((t=n.length-1 ) < = 0 ) ) { v a r t , e = n [ 0 ] , r = n [ t ] ; if ( wt(e,r ) ) { i . lineStart ( ) ; for ( var a=0;t>a;++a ) i . point ( ( e=n[a] ) [0],e[1] ) ; r e t u r n v o i d i . lineEnd ( ) } v a r l = n e w Tt ( e,n,null,!0 ) , c = n e w Tt ( e,null,l,!1 ) ; l . o = c , u . push ( l ) , o . push ( c ) , l = n e w Tt ( r,n,null,!1 ) , c = n e w Tt ( r,null,l,!0 ) , l . o = c , u . push ( l ) , o . push ( c ) } } ) , o . sort ( t ) , qt ( u ) , qt ( o ) , u . l e n g t h ) { for ( var a=0,l=e,c=o.length;c>a;++a ) o [ a ] . e = l = ! l ; for ( var f,s,h=u[0];; ) { for ( var p=h,g=!0;p.v; ) if ( ( p=p.n ) ===h ) r e t u r n ; f = p . z , i . lineStart ( ) ; d o { if ( p.v=p.o.v=!0,p.e ) { if ( g ) for ( var a=0,c=f.length;c>a;++a ) i . point ( ( s=f[a] ) [0],s[1] ) ; e l s e r ( p.x,p.n.x,1,i ) ; p = p . n } e l s e { if ( g ) { f = p . p . z ; for ( var a=f.length-1;a>=0;--a ) i . point ( ( s=f[a] ) [0],\
s [ 1 ] ) } e l s e r ( p.x,p.p.x,-1,i ) ; p = p . p } p = p . o , f = p . z , g = ! g } while ( !p.v ) ; i . lineEnd ( ) } } } f u n c t i o n qt ( n ) { if ( t=n.length ) { for ( var t,e,r=0,i=n[0];++r<t; ) i . n = e = n [ r ] , e . p = i , i = e ; i . n = e = n [ 0 ] , e . p = i } } f u n c t i o n Tt ( n,t,e,r ) { t h i s . x = n , t h i s . z = t , t h i s . o = e , t h i s . e = r , t h i s . v = ! 1 , t h i s . n = t h i s . p = n u l l } f u n c t i o n Rt ( n,t,e,r ) { r e t u r n function ( i,u ) { f u n c t i o n o ( t,e ) { v a r r = i ( t,e ) ; n ( t=r[0],e=r[1] ) & & u . point ( t,e ) } f u n c t i o n a ( n,t ) { v a r e = i ( n,t ) ; d . point ( e[0],e[1] ) } f u n c t i o n l ( ) { m . p o i n t = a , d . lineStart ( ) } f u n c t i o n c ( ) { m . p o i n t = o , d . lineEnd ( ) } f u n c t i o n f ( n,t ) { v . push ( [n,t] ) ; v a r e = i ( n,t ) ; x . point ( e[0],e[1] ) } f u n c t i o n s ( ) { x . lineStart ( ) , v = [ ] } f u n c t i o n h ( ) { f ( v[0][0],v[0][1] ) , x . lineEnd ( ) ; v a r n , t = x . clean ( ) , e = M . buffer ( ) , r = e . l e n g t h ; if ( v.pop( ) , g . push ( v ) , v = n u l l , r ) if ( 1&t ) { n = e [ 0 ] ; v a r i , r = n . l e n g t h - 1 , o = - 1 ; if ( r>0 ) { for ( b||(u.polygonStart( ) , b = ! 0 ) , u . lineStart ( ) ; + + o < r ; ) u . point ( ( i=n[o] ) [0],i[1] ) ; u . lineEnd ( ) } } e l s e r > 1 & & 2 & t & & e . push ( e.pop( ) . concat ( e.shift( ) ) ) , p . push ( e.filter(Dt ) ) } v a r p , g , v , d = t ( u ) , y = i . invert ( r[0],r[1] ) , m = { p o i n t : o , l i n e S t a r t : l , l i n e E n d : c , p o l y g o n S t a r t : function ( ) { m . p o i n t = f , m . l i n e S t a r t = s , m . l i n e E n d = h , p = [ ] , g = [ ] } , p o l y g o n E n d : function ( ) { m . p o i n t = o , m . l i n e S t a r t = l , m . l i n e E n d = c , p = a o . merge ( p ) ; v a r n = Ot ( y,g ) ; p . l e n g t h ? ( b | | ( u . polygonStart ( ) , b = ! 0 ) , Lt ( p,Ut,n,e,u ) ) : n & & ( b | | ( u . polygonStart ( ) , b = ! 0 ) , u . lineStart ( ) , e ( null,null,1,u ) , u . lineEnd ( ) ) , b & & ( u . polygonEnd ( ) , b = ! 1 ) , p = g = n u l l } , s p h e r e : function ( ) { u . polygonStart ( ) , u . lineStart ( ) , e ( null,null,1,u ) , u . lineEnd ( ) , u . polygonEnd ( ) } } , M = Pt ( ) , x = t ( M ) , b = ! 1 ; r e t u r n m } } f u n c t i o n Dt ( n ) { r e t u r n n . l e n g t h > 1 } f u n c t i o n Pt ( ) { v a r n , t = [ ] ; r e t u r n { l i n e S t a r t : function ( ) { t . push ( n=[] ) } , p o i n t : function ( t,e ) { n . push ( [t,e] ) } , l i n e E n d : b , b u f f e r : function ( ) { v a r e = t ; r e t u r n t = [ ] , n = n u l l , e } , r e j o i n : function ( ) { t . l e n g t h > 1 & & t . push ( t.pop( ) . concat ( t.shift( ) ) ) } } } f u n c t i o n Ut ( n,t ) { return ( ( n=n.x ) [0]<0?n[1]-Io-Uo:Io-n[1] ) - ( ( t = t . x ) [ 0 ] < 0 ? t [ 1 ] - I o - U o : I o - t [ 1 ] ) } f u n c t i o n jt ( n ) { v a r t , e = N a N , r = N a N , i = N a N ; r e t u r n { l i n e S t a r t : function ( ) { n . lineStart ( ) , t = 1 } , p o i n t : function ( u,o ) { v a r a = u > 0 ? F o : - F o , l = xo ( u-e ) ; xo ( l-Fo ) < U o ? ( n . point ( e,r=(r+o ) / 2 > 0 ? I o : - I o ) , n . point ( i,r ) , n . lineEnd ( ) , n . lineStart ( ) , n . point ( a,r ) , n . point ( u,r ) , t = 0 ) : i ! = = a & & l > = F o & & ( xo ( e-i ) < U o & & ( e - = i * U o ) , \
xo ( u-a ) < U o & & ( u - = a * U o ) , r = Ft ( e,r,u,o ) , n . point ( i,r ) , n . lineEnd ( ) , n . lineStart ( ) , n . point ( a,r ) , t = 0 ) , n . point ( e=u,r=o ) , i = a } , l i n e E n d : function ( ) { n . lineEnd ( ) , e = r = N a N } , c l e a n : function ( ) { r e t u r n 2 - t } } } f u n c t i o n Ft ( n,t,e,r ) { v a r i , u , o = M a t h . sin ( n-e ) ; r e t u r n xo ( o ) > U o ? M a t h . atan ( ( Math.sin(t ) *(u=Math.cos(r ) ) * M a t h . sin ( e ) - M a t h . sin ( r ) * ( i = M a t h . cos ( t ) ) * M a t h . sin ( n ) ) / ( i * u * o ) ) : ( t + r ) / 2 } f u n c t i o n Ht ( n,t,e,r ) { v a r i ; if ( null==n ) i = e * I o , r . point ( -Fo,i ) , r . point ( 0,i ) , r . point ( Fo,i ) , r . point ( Fo,0 ) , r . point ( Fo,-i ) , r . point ( 0,-i ) , r . point ( -Fo,-i ) , r . point ( -Fo,0 ) , r . point ( -Fo,i ) ; e l s e if ( xo(n[0]-t[0] ) > U o ) { v a r u = n [ 0 ] < t [ 0 ] ? F o : - F o ; i = e * u / 2 , r . point ( -u,i ) , r . point ( 0,i ) , r . point ( u,i ) } e l s e r . point ( t[0],t[1] ) } f u n c t i o n Ot ( n,t ) { v a r e = n [ 0 ] , r = n [ 1 ] , i = [ M a t h . sin ( e ) , - M a t h . cos ( e ) , 0 ] , u = 0 , o = 0 ; k a . reset ( ) ; for ( var a=0,l=t.length;l>a;++a ) { v a r c = t [ a ] , f = c . l e n g t h ; if ( f ) for ( var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p ) , v = M a t h . cos ( p ) , d = 1 ; ; ) { d = = = f & & ( d = 0 ) , n = c [ d ] ; v a r y = n [ 0 ] , m = n [ 1 ] / 2 + F o / 4 , M = M a t h . sin ( m ) , x = M a t h . cos ( m ) , b = y - h , _ = b > = 0 ? 1 : - 1 , w = _ * b , S = w > F o , k = g * M ; if ( ka.add(Math.atan2(k*_*Math.sin(w ) , v * x + k * M a t h . cos ( w ) ) ) , u + = S ? b + _ * H o : b , S ^ h > = e ^ y > = e ) { v a r N = mt ( dt(s ) , dt ( n ) ) ; bt ( N ) ; v a r E = mt ( i,N ) ; bt ( E ) ; v a r A = ( S ^ b > = 0 ? - 1 : 1 ) * tn ( E[2] ) ; ( r > A | | r = = = A & & ( N [ 0 ] | | N [ 1 ] ) ) & & ( o + = S ^ b > = 0 ? 1 : - 1 ) } if ( !d++ ) b r e a k ; h = y , g = M , v = x , s = n } } return ( -Uo>u||Uo>u&&-Uo>ka ) ^ 1 & o } f u n c t i o n It ( n ) { f u n c t i o n t ( n,t ) { r e t u r n M a t h . cos ( n ) * M a t h . cos ( t ) > u } f u n c t i o n e ( n ) { v a r e , u , l , c , f ; r e t u r n { l i n e S t a r t : function ( ) { c = l = ! 1 , f = 1 } , p o i n t : function ( s,h ) { v a r p , g = [ s , h ] , v = t ( s,h ) , d = o ? v ? 0 : i ( s,h ) : v ? i ( s+(0>s?Fo:-Fo ) , h ) : 0 ; if ( !e&&(c=l=v ) & & n . lineStart ( ) , v ! = = l & & ( p = r ( e,g ) , ( wt ( e,p ) | | wt ( g,p ) ) & & ( g [ 0 ] + = U o , g [ 1 ] + = U o , v = t ( g[0],g[1] ) ) ) , v ! = = l ) f = 0 , v ? ( n . lineStart ( ) , p = r ( g,e ) , n . point ( p[0],p[1] ) ) : ( p = r ( e,g ) , n . point ( p[0],p[1] ) , n . lineEnd ( ) ) , e = p ; e l s e if ( a&&e&&o^v ) { v a r y ; d & u | | ! ( y = r ( g,e,!0 ) ) | | ( f = 0 , o ? ( n . lineStart ( ) , n . point ( y[0][0],y[0][1] ) , n . point ( y[1][0],y[1][1] ) , n . lineEnd ( ) ) : ( n . point ( y[1][0],y[1][1] ) , n . lineEnd ( ) , n . lineStart ( ) , n . point ( y[0][0],y[0][1] ) ) ) } ! v | | e & & wt ( e,g ) | | n . point ( g[0],g[1] ) , e = g , l = v , u = d } , l i n e E n d : function ( ) { l & & n . lineEnd ( ) , e = n u l l } , c l e a n : function ( ) { r e t u r n f | ( c & & l ) < < 1 } } } f u n c t i o n r ( n,t,e ) { v a r r = dt ( n ) , i = dt ( t ) , o = [ 1 , 0 , 0 ] , \
a = mt ( r,i ) , l = yt ( a,a ) , c = a [ 0 ] , f = l - c * c ; if ( !f ) r e t u r n ! e & & n ; v a r s = u * l / f , h = - u * c / f , p = mt ( o,a ) , g = xt ( o,s ) , v = xt ( a,h ) ; Mt ( g,v ) ; v a r d = p , y = yt ( g,d ) , m = yt ( d,d ) , M = y * y - m * ( yt ( g,g ) - 1 ) ; if ( !(0>M ) ) { v a r x = M a t h . sqrt ( M ) , b = xt ( d,(-y-x ) / m ) ; if ( Mt(b,g ) , b = _t ( b ) , ! e ) r e t u r n b ; v a r _ , w = n [ 0 ] , S = t [ 0 ] , k = n [ 1 ] , N = t [ 1 ] ; w > S & & ( _ = w , w = S , S = _ ) ; v a r E = S - w , A = xo ( E-Fo ) < U o , C = A | | U o > E ; if ( !A&&k>N&&(_=k,k=N,N=_ ) , C ? A ? k + N > 0 ^ b [ 1 ] < ( xo ( b[0]-w ) < U o ? k : N ) : k < = b [ 1 ] & & b [ 1 ] < = N : E > F o ^ ( w < = b [ 0 ] & & b [ 0 ] < = S ) ) { v a r z = xt ( d,(-y+x ) / m ) ; r e t u r n Mt ( z,g ) , [ b , _t ( z ) ] } } } f u n c t i o n i ( t,e ) { v a r r = o ? n : F o - n , i = 0 ; r e t u r n - r > t ? i | = 1 : t > r & & ( i | = 2 ) , - r > e ? i | = 4 : e > r & & ( i | = 8 ) , i } v a r u = M a t h . cos ( n ) , o = u > 0 , a = xo ( u ) > U o , l = ve ( n,6*Yo ) ; r e t u r n Rt ( t,e,l,o?[0,-n]:[-Fo,n-Fo] ) } f u n c t i o n Yt ( n,t,e,r ) { r e t u r n function ( i ) { v a r u , o = i . a , a = i . b , l = o . x , c = o . y , f = a . x , s = a . y , h = 0 , p = 1 , g = f - l , v = s - c ; if ( u=n-l,g||!(u>0 ) ) { if ( u/=g,0>g ) { if ( h>u ) r e t u r n ; p > u & & ( p = u ) } e l s e if ( g>0 ) { if ( u>p ) r e t u r n ; u > h & & ( h = u ) } if ( u=e-l,g||!(0>u ) ) { if ( u/=g,0>g ) { if ( u>p ) r e t u r n ; u > h & & ( h = u ) } e l s e if ( g>0 ) { if ( h>u ) r e t u r n ; p > u & & ( p = u ) } if ( u=t-c,v||!(u>0 ) ) { if ( u/=v,0>v ) { if ( h>u ) r e t u r n ; p > u & & ( p = u ) } e l s e if ( v>0 ) { if ( u>p ) r e t u r n ; u > h & & ( h = u ) } if ( u=r-c,v||!(0>u ) ) { if ( u/=v,0>v ) { if ( u>p ) r e t u r n ; u > h & & ( h = u ) } e l s e if ( v>0 ) { if ( h>u ) r e t u r n ; p > u & & ( p = u ) } r e t u r n h > 0 & & ( i . a = { x : l + h * g , y : c + h * v } ) , 1 > p & & ( i . b = { x : l + p * g , y : c + p * v } ) , i } } } } } } f u n c t i o n Zt ( n,t,e,r ) { f u n c t i o n i ( r,i ) { r e t u r n xo ( r[0]-n ) < U o ? i > 0 ? 0 : 3 : xo ( r[0]-e ) < U o ? i > 0 ? 2 : 1 : xo ( r[1]-t ) < U o ? i > 0 ? 1 : 0 : i > 0 ? 3 : 2 } f u n c t i o n u ( n,t ) { r e t u r n o ( n.x,t.x ) } f u n c t i o n o ( n,t ) { v a r e = i ( n,1 ) , r = i ( t,1 ) ; r e t u r n e ! = = r ? e - r : 0 = = = e ? t [ 1 ] - n [ 1 ] : 1 = = = e ? n [ 0 ] - t [ 0 ] : 2 = = = e ? n [ 1 ] - t [ 1 ] : t [ 0 ] - n [ 0 ] } r e t u r n function ( a ) { f u n c t i o n l ( n ) { for ( var t=0,e=d.length,r=n[1],i=0;e>i;++i ) for ( var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o ) u = a [ o ] , c [ 1 ] < = r ? u [ 1 ] > r & & Q ( c,u,n ) > 0 & & + + t : u [ 1 ] < = r & & Q ( c,u,n ) < 0 & & - - t , c = u ; r e t u r n 0 ! = = t } f u n c t i o n c ( u,a,l,c ) { v a r f = 0 , s = 0 ; if ( null==u||(f=i(u,l ) ) ! = = ( s = i ( a,l ) ) | | o ( u,a ) < 0 ^ l > 0 ) { d o c . point ( 0===f||3===f?n:e,f>1?r:t ) ; while ( ( f=(f+l+4 ) %4 ) ! = = s ) } e l s e c . point ( a[0],a[1] ) } f u n c t i o n f ( i,u ) { r e t u r n i > = n & & e > = i & & u > = t & & r > = u } f u n c t i o n s ( n,t ) { f ( n,t ) & & a . point ( n,t ) } f u n c t i o n h ( ) { C . p o i n t = g , d & & d . push ( y=[] ) , S = ! 0 , w = ! 1 , b = _ = N a N } f u n c t i o n p ( ) { v & & ( g ( m,M ) , x & & w & & E . rejoin ( ) , v . push ( E.buffer( ) ) ) , C . p o i n t = s , \
w & & a . lineEnd ( ) } f u n c t i o n g ( n,t ) { n = M a t h . max ( -Ha,Math.min(Ha,n ) ) , t = M a t h . max ( -Ha,Math.min(Ha,t ) ) ; v a r e = f ( n,t ) ; if ( d&&y.push([n,t] ) , S ) m = n , M = t , x = e , S = ! 1 , e & & ( a . lineStart ( ) , a . point ( n,t ) ) ; e l s e if ( e&&w ) a . point ( n,t ) ; e l s e { v a r r = { a : { x : b , y : _ } , b : { x : n , y : t } } ; A ( r ) ? ( w | | ( a . lineStart ( ) , a . point ( r.a.x,r.a.y ) ) , a . point ( r.b.x,r.b.y ) , e | | a . lineEnd ( ) , k = ! 1 ) : e & & ( a . lineStart ( ) , a . point ( n,t ) , k = ! 1 ) } b = n , _ = t , w = e } v a r v , d , y , m , M , x , b , _ , w , S , k , N = a , E = Pt ( ) , A = Yt ( n,t,e,r ) , C = { p o i n t : s , l i n e S t a r t : h , l i n e E n d : p , p o l y g o n S t a r t : function ( ) { a = E , v = [ ] , d = [ ] , k = ! 0 } , p o l y g o n E n d : function ( ) { a = N , v = a o . merge ( v ) ; v a r t = l ( [n,r] ) , e = k & & t , i = v . l e n g t h ; ( e | | i ) & & ( a . polygonStart ( ) , e & & ( a . lineStart ( ) , c ( null,null,1,a ) , a . lineEnd ( ) ) , i & & Lt ( v,u,t,c,a ) , a . polygonEnd ( ) ) , v = d = y = n u l l } } ; r e t u r n C } } f u n c t i o n Vt ( n ) { v a r t = 0 , e = F o / 3 , r = ae ( n ) , i = r ( t,e ) ; r e t u r n i . p a r a l l e l s = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? r ( t=n[0]*Fo/180,e=n[1]*Fo/180 ) : [ t / F o * 1 8 0 , e / F o * 1 8 0 ] } , i } f u n c t i o n Xt ( n,t ) { f u n c t i o n e ( n,t ) { v a r e = M a t h . sqrt ( u-2*i*Math.sin(t ) ) / i ; r e t u r n [ e * M a t h . sin ( n*=i ) , o - e * M a t h . cos ( n ) ] } v a r r = M a t h . sin ( n ) , i = ( r + M a t h . sin ( t ) ) / 2 , u = 1 + r * ( 2 * i - r ) , o = M a t h . sqrt ( u ) / i ; r e t u r n e . i n v e r t = function ( n,t ) { v a r e = o - t ; r e t u r n [ M a t h . atan2 ( n,e ) / i , tn ( ( u-(n*n+e*e ) *i*i ) / ( 2 * i ) ) ] } , e } f u n c t i o n $ t ( ) { f u n c t i o n n ( n,t ) { I a + = i * n - r * t , r = n , i = t } v a r t , e , r , i ; $ a . p o i n t = function ( u,o ) { $ a . p o i n t = n , t = r = u , e = i = o } , $ a . l i n e E n d = function ( ) { n ( t,e ) } } f u n c t i o n Bt ( n,t ) { Y a > n & & ( Y a = n ) , n > V a & & ( V a = n ) , Z a > t & & ( Z a = t ) , t > X a & & ( X a = t ) } f u n c t i o n Wt ( ) { f u n c t i o n n ( n,t ) { o . push ( \"M\",n,\",\",t,u)}function t(n,t ) { o . push ( \"M\",n,\",\",t),a.point=e}function e(n,t ) { o . push ( \"L\",n,\",\",t)}function r( ) { a . p o i n t = n } f u n c t i o n i ( ) { o . push ( \"Z\")}var u=Jt(4.5 ) , o = [ ] , a = { p o i n t : n , l i n e S t a r t : function ( ) { a . p o i n t = t } , l i n e E n d : r , p o l y g o n S t a r t : function ( ) { a . l i n e E n d = i } , p o l y g o n E n d : function ( ) { a . l i n e E n d = r , a . p o i n t = n } , p o i n t R a d i u s : function ( n ) { r e t u r n u = Jt ( n ) , a } , r e s u l t : function ( ) { if ( o.length ) { v a r n = o . join ( \"\");return o=[],n}}};return a}function Jt(n ) { r e t u r n \ " m 0 , \ " + n + \ " a \ " + n + \ " , \ " + n + \ " 0 1 , 1 0 , \ " + - 2 * n + \ " a \ " + n + \ " , \ " + n + \ " 0 1 , 1 0 , \ " + 2 * n + \ " z \ " } f u n c t i o n Gt ( n,t ) { C a + = n , z a + = t , + + L a } f u n c t i o n Kt ( ) { f u n c t i o n n ( n,r ) { v a r i = n - t , u = r - e , o = M a t h . sqrt ( i*i+u*u ) ; q a + = o * ( t + n ) / 2 , T a + = o * ( e + r ) / 2 , R a + = o , Gt ( t=n,e=r ) } v a r t , e ; W a . p o i n t = function ( r,\
i ) { W a . p o i n t = n , Gt ( t=r,e=i ) } } f u n c t i o n Qt ( ) { W a . p o i n t = G t } f u n c t i o n ne ( ) { f u n c t i o n n ( n,t ) { v a r e = n - r , u = t - i , o = M a t h . sqrt ( e*e+u*u ) ; q a + = o * ( r + n ) / 2 , T a + = o * ( i + t ) / 2 , R a + = o , o = i * n - r * t , D a + = o * ( r + n ) , P a + = o * ( i + t ) , U a + = 3 * o , Gt ( r=n,i=t ) } v a r t , e , r , i ; W a . p o i n t = function ( u,o ) { W a . p o i n t = n , Gt ( t=r=u,e=i=o ) } , W a . l i n e E n d = function ( ) { n ( t,e ) } } f u n c t i o n te ( n ) { f u n c t i o n t ( t,e ) { n . moveTo ( t+o,e ) , n . arc ( t,e,o,0,Ho ) } f u n c t i o n e ( t,e ) { n . moveTo ( t,e ) , a . p o i n t = r } f u n c t i o n r ( t,e ) { n . lineTo ( t,e ) } f u n c t i o n i ( ) { a . p o i n t = t } f u n c t i o n u ( ) { n . closePath ( ) } v a r o = 4 . 5 , a = { p o i n t : t , l i n e S t a r t : function ( ) { a . p o i n t = e } , l i n e E n d : i , p o l y g o n S t a r t : function ( ) { a . l i n e E n d = u } , p o l y g o n E n d : function ( ) { a . l i n e E n d = i , a . p o i n t = t } , p o i n t R a d i u s : function ( n ) { r e t u r n o = n , a } , r e s u l t : b } ; r e t u r n a } f u n c t i o n ee ( n ) { f u n c t i o n t ( n ) { return ( a?r:e ) ( n ) } f u n c t i o n e ( t ) { r e t u r n ue ( t,function(e,r ) { e = n ( e,r ) , t . point ( e[0],e[1] ) } ) } f u n c t i o n r ( t ) { f u n c t i o n e ( e,r ) { e = n ( e,r ) , t . point ( e[0],e[1] ) } f u n c t i o n r ( ) { M = N a N , S . p o i n t = u , t . lineStart ( ) } f u n c t i o n u ( e,r ) { v a r u = dt ( [e,r] ) , o = n ( e,r ) ; i ( M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t ) , t . point ( M,x ) } f u n c t i o n o ( ) { S . p o i n t = e , t . lineEnd ( ) } f u n c t i o n l ( ) { \
r ( ) , S . p o i n t = c , S . l i n e E n d = f } f u n c t i o n c ( n,t ) { u ( s=n,h=t ) , p = M , g = x , v = b , d = _ , y = w , S . p o i n t = u } f u n c t i o n f ( ) { i ( M,x,m,b,_,w,p,g,s,v,d,y,a,t ) , S . l i n e E n d = o , o ( ) } v a r s , h , p , g , v , d , y , m , M , x , b , _ , w , S = { p o i n t : e , l i n e S t a r t : r , l i n e E n d : o , p o l y g o n S t a r t : function ( ) { t . polygonStart ( ) , S . l i n e S t a r t = l } , p o l y g o n E n d : function ( ) { t . polygonEnd ( ) , S . l i n e S t a r t = r } } ; r e t u r n S } f u n c t i o n i ( t,e,r,a,l,c,f,s,h,p,g,v,d,y ) { v a r m = f - t , M = s - e , x = m * m + M * M ; if ( x>4*u&&d-- ) { v a r b = a + p , _ = l + g , w = c + v , S = M a t h . sqrt ( b*b+_*_+w*w ) , k = M a t h . asin ( w/=S ) , N = xo ( xo(w ) - 1 ) < U o | | xo ( r-h ) < U o ? ( r + h ) / 2 : M a t h . atan2 ( _,b ) , E = n ( N,k ) , A = E [ 0 ] , C = E [ 1 ] , z = A - t , L = C - e , q = M * z - m * L ; ( q * q / x > u | | xo ( ( m*z+M*L ) /x-.5 ) > . 3 | | o > a * p + l * g + c * v ) & & ( i ( t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y ) , y . point ( A,C ) , i ( A,C,N,b,_,w,f,s,h,p,g,v,d,y ) ) } } v a r u = . 5 , o = M a t h . cos ( 30*Yo ) , a = 1 6 ; r e t u r n t . p r e c i s i o n = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = ( u = n * n ) > 0 & & 1 6 , t ) : M a t h . sqrt ( u ) } , t } f u n c t i o n re ( n ) { v a r t = ee ( function(t,e ) { r e t u r n n ( [t*Zo,e*Zo] ) } ) ; r e t u r n function ( n ) { r e t u r n le ( t(n ) ) } } f u n c t i o n ie ( n ) { t h i s . s t r e a m = n } f u n c t i o n ue ( n,t ) { r e t u r n { p o i n t : t , s p h e r e : function ( ) { n . sphere ( ) } , l i n e S t a r t : function ( ) { n . lineStart ( ) } , l i n e E n d : function ( ) { n . lineEnd ( ) } , p o l y g o n S t a r t : function ( ) { n . polygonStart ( ) } , p o l y g o n E n d : function ( ) { n . polygonEnd ( ) } } } f u n c t i o n oe ( n ) { r e t u r n ae ( function( ) { r e t u r n n } ) ( ) } f u n c t i o n ae ( n ) { f u n c t i o n t ( n ) { r e t u r n n = a ( n[0]*Yo,n[1]*Yo ) , [ n [ 0 ] * h + l , c - n [ 1 ] * h ] } f u n c t i o n e ( n ) { r e t u r n n = a . invert ( ( n[0]-l ) /h,(c-n[1] ) / h ) , n & & [ n [ 0 ] * Z o , n [ 1 ] * Z o ] } f u n c t i o n r ( ) { a = Ct ( o=se(y,M,x ) , u ) ; v a r n = u ( v,d ) ; r e t u r n l = p - n [ 0 ] * h , c = g + n [ 1 ] * h , i ( ) } f u n c t i o n i ( ) { r e t u r n f & & ( f . v a l i d = ! 1 , f = n u l l ) , t } v a r u , o , a , l , c , f , s = ee ( function(n,t ) { r e t u r n n = u ( n,t ) , [ n [ 0 ] * h + l , c - n [ 1 ] * h ] } ) , h = 1 5 0 , p = 4 8 0 , g = 2 5 0 , v = 0 , d = 0 , y = 0 , M = 0 , x = 0 , b = F a , _ = m , w = n u l l , S = n u l l ; r e t u r n t . s t r e a m = function ( n ) { r e t u r n f & & ( f . v a l i d = ! 1 ) , f = le ( b(o,s(_(n ) ) ) ) , f . v a l i d = ! 0 , f } , t . c l i p A n g l e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( b = n u l l = = n ? ( w = n , F a ) : It ( ( w=+n ) *Yo ) , i ( ) ) : w } , t . c l i p E x t e n t = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( S = n , _ = n ? Zt ( n[0][0],n[0][1],n[1][0],n[1][1] ) : m , i ( ) ) : S } , t . s c a l e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( h = + n , r ( ) ) : h } , t . t r a n s l a t e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( p = + n [ 0 ] , g = + n [ 1 ] , r ( ) ) : [ p , g ] } , t . c e n t e r = function ( n ) { r e t u r n \
a r g u m e n t s . l e n g t h ? ( v = n [ 0 ] % 3 6 0 * Y o , d = n [ 1 ] % 3 6 0 * Y o , r ( ) ) : [ v * Z o , d * Z o ] } , t . r o t a t e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( y = n [ 0 ] % 3 6 0 * Y o , M = n [ 1 ] % 3 6 0 * Y o , x = n . l e n g t h > 2 ? n [ 2 ] % 3 6 0 * Y o : 0 , r ( ) ) : [ y * Z o , M * Z o , x * Z o ] } , a o . rebind ( t,s,\ "precision\" ) , function ( ) { r e t u r n u = n . apply ( this,arguments ) , t . i n v e r t = u . i n v e r t & & e , r ( ) } } f u n c t i o n le ( n ) { r e t u r n ue ( n,function(t,e ) { n . point ( t*Yo,e*Yo ) } ) } f u n c t i o n ce ( n,t ) { r e t u r n [ n , t ] } f u n c t i o n fe ( n,t ) { r e t u r n [ n > F o ? n - H o : - F o > n ? n + H o : n , t ] } f u n c t i o n se ( n,t,e ) { r e t u r n n ? t | | e ? Ct ( pe(n ) , ge ( t,e ) ) : pe ( n ) : t | | e ? ge ( t,e ) : f e } f u n c t i o n he ( n ) { r e t u r n function ( t,e ) { r e t u r n t + = n , [ t > F o ? t - H o : - F o > t ? t + H o : t , e ] } } f u n c t i o n pe ( n ) { v a r t = he ( n ) ; r e t u r n t . i n v e r t = he ( -n ) , t } f u n c t i o n ge ( n,t ) { f u n c t i o n e ( n,t ) { v a r e = M a t h . cos ( t ) , a = M a t h . cos ( n ) * e , l = M a t h . sin ( n ) * e , c = M a t h . sin ( t ) , f = c * r + a * i ; r e t u r n [ M a t h . atan2 ( l*u-f*o,a*r-c*i ) , tn ( f*u+l*o ) ] } v a r r = M a t h . cos ( n ) , i = M a t h . sin ( n ) , u = M a t h . cos ( t ) , o = M a t h . sin ( t ) ; r e t u r n e . i n v e r t = function ( n,t ) { v a r e = M a t h . cos ( t ) , a = M a t h . cos ( n ) * e , l = M a t h . sin ( n ) * e , c = M a t h . sin ( t ) , f = c * u - l * o ; r e t u r n [ M a t h . atan2 ( l*u+c*o,a*r+f*i ) , tn ( f*r-a*i ) ] } , e } f u n c t i o n ve ( n,t ) { v a r e = M a t h . cos ( n ) , r = M a t h . sin ( n ) ; r e t u r n function ( i,u,o,a ) { v a r l = o * t ; n u l l ! = i ? ( i = de ( e,i ) , u = de ( e,u ) , ( o > 0 ? u > i : i > u ) & & ( i + = o * H o ) ) : ( i = n + o * H o , u = n - . 5 * l ) ; for ( var c,f=i;o>0?f>u:u>f;f-=l ) a . point ( ( c=_t([e,-r*Math.cos(f ) ,-r*Math.sin(f ) ] ) ) [ 0 ] , c [ 1 ] ) } } f u n c t i o n de ( n,t ) { v a r e = dt ( t ) ; e [ 0 ] - = n , bt ( e ) ; v a r r = nn ( -e[1] ) ; return ( ( -e[2]<0?-r:r ) +2*Math.PI-Uo ) % ( 2 * M a t h . P I ) } f u n c t i o n ye ( n,t,e ) { v a r r = a o . range ( n,t-Uo,e ) . concat ( t ) ; r e t u r n function ( n ) { r e t u r n r . map ( function(t ) { r e t u r n [ n , t ] } ) } } f u n c t i o n me ( n,t,e ) { v a r r = a o . range ( n,t-Uo,e ) . concat ( t ) ; r e t u r n function ( n ) { r e t u r n r . map ( function(t ) { r e t u r n [ t , n ] } ) } } f u n c t i o n Me ( n ) { r e t u r n n . s o u r c e } f u n c t i o n xe ( n ) { r e t u r n n . t a r g e t } f u n c t i o n be ( n,t,e,r ) { v a r i = M a t h . cos ( t ) , u = M a t h . sin ( t ) , o = M a t h . cos ( r ) , a = M a t h . sin ( r ) , l = i * M a t h . cos ( n ) , c = i * M a t h . sin ( n ) , f = o * M a t h . cos ( e ) , s = o * M a t h . sin ( e ) , h = 2 * M a t h . asin ( Math.sqrt(on(r-t ) + i * o * on ( e-n ) ) ) , p = 1 / M a t h . sin ( h ) , g = h ? function ( n ) { v a r t = M a t h . sin ( n*=h ) * p , e = M a t h . sin ( h-n ) * p , r = e * l + t * f , i = e * c + t * s , o = e * u + t * a ; r e t u r n [ M a t h . atan2 ( i,r ) * Z o , M a t h . atan2 ( o,Math.sqrt(r*r+i*i ) ) * Z o ] } : function ( ) { r e t u r n [ n * Z o , t * Z o ] } ; r e t u r n g . d i s t a n c e = h , \
g } f u n c t i o n _e ( ) { f u n c t i o n n ( n,i ) { v a r u = M a t h . sin ( i*=Yo ) , o = M a t h . cos ( i ) , a = xo ( ( n*=Yo ) -t ) , l = M a t h . cos ( a ) ; J a + = M a t h . atan2 ( Math.sqrt((a=o*Math.sin(a ) ) * a + ( a = r * u - e * o * l ) * a ) , e * u + r * o * l ) , t = n , e = u , r = o } v a r t , e , r ; G a . p o i n t = function ( i,u ) { t = i * Y o , e = M a t h . sin ( u*=Yo ) , r = M a t h . cos ( u ) , G a . p o i n t = n } , G a . l i n e E n d = function ( ) { G a . p o i n t = G a . l i n e E n d = b } } f u n c t i o n we ( n,t ) { f u n c t i o n e ( t,e ) { v a r r = M a t h . cos ( t ) , i = M a t h . cos ( e ) , u = n ( r*i ) ; r e t u r n [ u * i * M a t h . sin ( t ) , u * M a t h . sin ( e ) ] } r e t u r n e . i n v e r t = function ( n,e ) { v a r r = M a t h . sqrt ( n*n+e*e ) , i = t ( r ) , u = M a t h . sin ( i ) , o = M a t h . cos ( i ) ; r e t u r n [ M a t h . atan2 ( n*u,r*o ) , M a t h . asin ( r&&e*u/r ) ] } , e } f u n c t i o n Se ( n,t ) { f u n c t i o n e ( n,t ) { o > 0 ? - I o + U o > t & & ( t = - I o + U o ) : t > I o - U o & & ( t = I o - U o ) ; v a r e = o / M a t h . pow ( i(t ) , u ) ; r e t u r n [ e * M a t h . sin ( u*n ) , o - e * M a t h . cos ( u*n ) ] } v a r r = M a t h . cos ( n ) , i = function ( n ) { r e t u r n M a t h . tan ( Fo/4+n/2 ) } , u = n = = = t ? M a t h . sin ( n ) : M a t h . log ( r/Math.cos(t ) ) / M a t h . log ( i(t ) / i ( n ) ) , o = r * M a t h . pow ( i(n ) , u ) / u ; r e t u r n u ? ( e . i n v e r t = function ( n,t ) { v a r e = o - t , r = K ( u ) * M a t h . sqrt ( n*n+e*e ) ; r e t u r n [ M a t h . atan2 ( n,e ) / u , 2 * M a t h . atan ( Math.pow(o/r,1/u ) ) - I o ] } , e ) : N e } f u n c t i o n ke ( n,t ) { f u n c t i o n e ( n,t ) { v a r e = u - t ; r e t u r n [ e * M a t h . sin ( i*n ) , u - e * M a t h . cos ( i*n ) ] } v a r r = M a t h . cos ( n ) , i = n = = = t ? M a t h . sin ( n ) : ( r - M a t h . cos ( t ) ) / ( t - n ) , u = r / i + n ; r e t u r n xo ( i ) < U o ? c e : ( e . i n v e r t = function ( n,t ) { v a r e = u - t ; r e t u r n [ M a t h . atan2 ( n,e ) / i , u - K ( i ) * M a t h . sqrt ( n*n+e*e ) ] } , e ) } f u n c t i o n Ne ( n,t ) { r e t u r n [ n , M a t h . log ( Math.tan(Fo/4+t/2 ) ) ] } f u n c t i o n Ee ( n ) { v a r t , e = oe ( n ) , r = e . s c a l e , i = e . t r a n s l a t e , u = e . c l i p E x t e n t ; r e t u r n e . s c a l e = function ( ) { v a r n = r . apply ( e,arguments ) ; r e t u r n n = = = e ? t ? e . clipExtent ( null ) : e : n } , e . t r a n s l a t e = function ( ) { v a r n = i . apply ( e,arguments ) ; r e t u r n n = = = e ? t ? e . clipExtent ( null ) : e : n } , e . c l i p E x t e n t = function ( n ) { v a r o = u . apply ( e,arguments ) ; if ( o===e ) { if ( t=null==n ) { v a r a = F o * r ( ) , l = i ( ) ; u ( [[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]] ) } } e l s e t & & ( o = n u l l ) ; r e t u r n o } , e . clipExtent ( null ) } f u n c t i o n Ae ( n,t ) { r e t u r n [ M a t h . log ( Math.tan(Fo/4+t/2 ) ) , - n ] } f u n c t i o n Ce ( n ) { r e t u r n n [ 0 ] } f u n c t i o n ze ( n ) { r e t u r n n [ 1 ] } f u n c t i o n Le ( n ) { for ( var t=n.length,e=[0,1],r=2,i=2;t>i;i++ ) { for ( ;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i] ) < = 0 ; ) - - r ; e [ r + + ] = i } r e t u r n e . slice ( 0,r ) } f u n c t i o n qe ( n,t ) { r e t u r n n [ 0 ] - t [ 0 ] | | n [ 1 ] - t [ 1 ] } f u n c t i o n Te ( n,t,e ) { return ( e[0]-t[0] ) * ( n [ 1 ] - t [ 1 ] ) < ( e [ 1 ] - t [ 1 ] ) * ( n [ 0 ] - t [ 0 ] ) } f u n c t i o n \
Re ( n,t,e,r ) { v a r i = n [ 0 ] , u = e [ 0 ] , o = t [ 0 ] - i , a = r [ 0 ] - u , l = n [ 1 ] , c = e [ 1 ] , f = t [ 1 ] - l , s = r [ 1 ] - c , h = ( a * ( l - c ) - s * ( i - u ) ) / ( s * o - a * f ) ; r e t u r n [ i + h * o , l + h * f ] } f u n c t i o n De ( n ) { v a r t = n [ 0 ] , e = n [ n . l e n g t h - 1 ] ; r e t u r n ! ( t [ 0 ] - e [ 0 ] | | t [ 1 ] - e [ 1 ] ) } f u n c t i o n Pe ( ) { rr ( this ) , t h i s . e d g e = t h i s . s i t e = t h i s . c i r c l e = n u l l } f u n c t i o n Ue ( n ) { v a r t = c l . pop ( ) | | n e w P e ; r e t u r n t . s i t e = n , t } f u n c t i o n je ( n ) { Be ( n ) , o l . remove ( n ) , c l . push ( n ) , rr ( n ) } f u n c t i o n Fe ( n ) { v a r t = n . c i r c l e , e = t . x , r = t . c y , i = { x : e , y : r } , u = n . P , o = n . N , a = [ n ] ; je ( n ) ; for ( var l=u;l.circle&&xo(e-l.circle.x ) < U o & & xo ( r-l.circle.cy ) < U o ; ) u = l . P , a . unshift ( l ) , je ( l ) , l = u ; a . unshift ( l ) , Be ( l ) ; for ( var c=o;c.circle&&xo(e-c.circle.x ) < U o & & xo ( r-c.circle.cy ) < U o ; ) o = c . N , a . push ( c ) , je ( c ) , c = o ; a . push ( c ) , Be ( c ) ; v a r f , s = a . l e n g t h ; for ( f=1;s>f;++f ) c = a [ f ] , l = a [ f - 1 ] , nr ( c.edge,l.site,c.site,i ) ; l = a [ 0 ] , c = a [ s - 1 ] , c . e d g e = Ke ( l.site,c.site,null,i ) , $ e ( l ) , $ e ( c ) } f u n c t i o n He ( n ) { for ( var t,e,r,i,u=n.x,o=n.y,a=ol._;a; ) if ( r=Oe(a,o ) - u , r > U o ) a = a . L ; e l s e { if ( i=u-Ie(a,o ) , ! ( i > U o ) ) { r > - U o ? ( t = a . P , e = a ) : i > - U o ? ( t = a , e = a . N ) : t = e = a ; b r e a k } if ( !a.R ) { t = a ; b r e a k } a = a . R } v a r l = Ue ( n ) ; if ( ol.insert(t,l ) , t | | e ) { if ( t===e ) r e t u r n Be ( t ) , e = Ue ( t.site ) , o l . insert ( l,e ) , l . e d g e = e . e d g e = Ke ( t.site,l.site ) , $ e ( t ) , v o i d $ e ( e ) ; if ( !e ) r e t u r n void ( l.edge=Ke(t.site,l.site ) ) ; Be ( t ) , Be ( e ) ; v a r c = t . s i t e , f = c . x , s = c . y , h = n . x - f , p = n . y - s , g = e . s i t e , v = g . x - f , d = g . y - s , y = 2 * ( h * d - p * v ) , m = h * h + p * p , M = v * v + d * d , x = { x : ( d * m - p * M ) / y + f , y : ( h * M - v * m ) / y + s } ; nr ( e.edge,c,g,x ) , l . e d g e = Ke ( c,n,null,x ) , e . e d g e = Ke ( n,g,null,x ) , $ e ( t ) , $ e ( e ) } } f u n c t i o n Oe ( n,t ) { v a r e = n . s i t e , r = e . x , i = e . y , u = i - t ; if ( !u ) r e t u r n r ; v a r o = n . P ; if ( !o ) r e t u r n - ( 1 / 0 ) ; e = o . s i t e ; v a r a = e . x , l = e . y , c = l - t ; if ( !c ) r e t u r n a ; v a r f = a - r , s = 1 / u - 1 / c , h = f / c ; r e t u r n s ? ( - h + M a t h . sqrt ( h*h-2*s*(f*f/(-2*c ) - l + c / 2 + i - u / 2 ) ) ) / s + r : ( r + a ) / 2 } f u n c t i o n Ie ( n,t ) { v a r e = n . N ; if ( e ) r e t u r n Oe ( e,t ) ; v a r r = n . s i t e ; r e t u r n r . y = = = t ? r . x : 1 / 0 } f u n c t i o n Ye ( n ) { t h i s . s i t e = n , t h i s . e d g e s = [ ] } f u n c t i o n Ze ( n ) { for ( var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--; ) if ( u=v[d],u&&u.prepare( ) ) for ( a=u.edges,l=a.length,o=0;l>o; ) f = a [ o ] . end ( ) , r = f . x , i = f . y , c = a [ + + o % l ] . start ( ) , t = c . x , e = c . y , ( xo ( r-t ) > U o | | xo ( i-e ) > U o ) & & ( a . splice ( o,0,new tr(Qe(u.site,f,xo(r-s ) < U o & & g - i > U o ? { x : s , y : xo ( t-s ) < U o ? e : g } : xo ( i-g ) < U o & & h - r > U o ? { x : xo ( e-g ) < U o ? t : h , \
y : g } : xo ( r-h ) < U o & & i - p > U o ? { x : h , y : xo ( t-h ) < U o ? e : p } : xo ( i-p ) < U o & & r - s > U o ? { x : xo ( e-p ) < U o ? t : s , y : p } : n u l l ) , u . s i t e , n u l l ) ) , + + l ) } f u n c t i o n Ve ( n,t ) { r e t u r n t . a n g l e - n . a n g l e } f u n c t i o n Xe ( ) { rr ( this ) , t h i s . x = t h i s . y = t h i s . a r c = t h i s . s i t e = t h i s . c y = n u l l } f u n c t i o n $ e ( n ) { v a r t = n . P , e = n . N ; if ( t&&e ) { v a r r = t . s i t e , i = n . s i t e , u = e . s i t e ; if ( r!==u ) { v a r o = i . x , a = i . y , l = r . x - o , c = r . y - a , f = u . x - o , s = u . y - a , h = 2 * ( l * s - c * f ) ; if ( !(h>=-jo ) ) { v a r p = l * l + c * c , g = f * f + s * s , v = ( s * p - c * g ) / h , d = ( l * g - f * p ) / h , s = d + a , y = f l . pop ( ) | | n e w X e ; y . a r c = n , y . s i t e = i , y . x = v + o , y . y = s + M a t h . sqrt ( v*v+d*d ) , y . c y = s , n . c i r c l e = y ; for ( var m=null,M=ll._;M; ) if ( y.y<M.y||y.y===M.y&&y.x<=M.x ) { if ( !M.L ) { m = M . P ; b r e a k } M = M . L } e l s e { if ( !M.R ) { m = M ; b r e a k } M = M . R } l l . insert ( m,y ) , m | | ( a l = y ) } } } } f u n c t i o n Be ( n ) { v a r t = n . c i r c l e ; t & & ( t . P | | ( a l = t . N ) , l l . remove ( t ) , f l . push ( t ) , rr ( t ) , n . c i r c l e = n u l l ) } f u n c t i o n We ( n ) { for ( var t,e=il,r=Yt(n[0][0],n[0][1],n[1][0],n[1][1] ) , i = e . l e n g t h ; i - - ; ) t = e [ i ] , ( ! Je ( t,n ) | | ! r ( t ) | | xo ( t.a.x-t.b.x ) < U o & & xo ( t.a.y-t.b.y ) < U o ) & & ( t . a = t . b = n u l l , e . splice ( i,1 ) ) } f u n c t i o n Je ( n,t ) { v a r e = n . b ; if ( e ) r e t u r n ! 0 ; v a r r , i , u = n . a , o = t [ 0 ] [ 0 ] , a = t [ 1 ] [ 0 ] , l = t [ 0 ] [ 1 ] , c = t [ 1 ] [ 1 ] , f = n . l , s = n . r , h = f . x , p = f . y , g = s . x , v = s . y , d = ( h + g ) / 2 , y = ( p + v ) / 2 ; if ( v===p ) { if ( o>d||d>=a ) r e t u r n ; if ( h>g ) { if ( u ) { if ( u.y>=c ) r e t u r n } e l s e u = { x : d , y : l } ; e = { x : d , y : c } } e l s e { if ( u ) { if ( u.y<l ) r e t u r n } e l s e u = { x : d , y : c } ; e = { x : d , y : l } } } e l s e if ( r=(h-g ) / ( v - p ) , i = y - r * d , - 1 > r | | r > 1 ) if ( h>g ) { if ( u ) { if ( u.y>=c ) r e t u r n } e l s e u = { x : ( l - i ) / r , y : l } ; e = { x : ( c - i ) / r , y : c } } e l s e { if ( u ) { if ( u.y<l ) r e t u r n } e l s e u = { x : ( c - i ) / r , y : c } ; e = { x : ( l - i ) / r , y : l } } e l s e if ( v>p ) { if ( u ) { if ( u.x>=a ) r e t u r n } e l s e u = { x : o , y : r * o + i } ; e = { x : a , y : r * a + i } } e l s e { if ( u ) { if ( u.x<o ) r e t u r n } e l s e u = { x : a , y : r * a + i } ; e = { x : o , y : r * o + i } } r e t u r n n . a = u , n . b = e , ! 0 } f u n c t i o n Ge ( n,t ) { t h i s . l = n , t h i s . r = t , t h i s . a = t h i s . b = n u l l } f u n c t i o n Ke ( n,t,e,r ) { v a r i = n e w Ge ( n,t ) ; r e t u r n i l . push ( i ) , e & & nr ( i,n,t,e ) , r & & nr ( i,t,n,r ) , u l [ n . i ] . e d g e s . push ( new tr(i,n,t ) ) , u l [ t . i ] . e d g e s . push ( new tr(i,t,n ) ) , i } f u n c t i o n Qe ( n,t,e ) { v a r r = n e w Ge ( n,null ) ; r e t u r n r . a = t , r . b = e , i l . push ( r ) , r } f u n c t i o n nr ( n,t,e,r ) { n . a | | n . b ? n . l = = = e ? n . b = r : n . a = r : ( n . a = r , n . l = t , n . r = e ) } f u n c t i o n tr ( n,t,e ) { v a r r = n . a , i = n . b ; t h i s . e d g e = n , t h i s . s i t e = t , t h i s . a n g l e = e ? M a t h . atan2 ( e.y-t.y,e.x-t.x ) : n . l = = = t ? M a t h . atan2 ( i.x-r.x,\
r . y - i . y ) : M a t h . atan2 ( r.x-i.x,i.y-r.y ) } f u n c t i o n er ( ) { t h i s . _ = n u l l } f u n c t i o n rr ( n ) { n . U = n . C = n . L = n . R = n . P = n . N = n u l l } f u n c t i o n ir ( n,t ) { v a r e = t , r = t . R , i = e . U ; i ? i . L = = = e ? i . L = r : i . R = r : n . _ = r , r . U = i , e . U = r , e . R = r . L , e . R & & ( e . R . U = e ) , r . L = e } f u n c t i o n ur ( n,t ) { v a r e = t , r = t . L , i = e . U ; i ? i . L = = = e ? i . L = r : i . R = r : n . _ = r , r . U = i , e . U = r , e . L = r . R , e . L & & ( e . L . U = e ) , r . R = e } f u n c t i o n or ( n ) { for ( ;n.L; ) n = n . L ; r e t u r n n } f u n c t i o n ar ( n,t ) { v a r e , r , i , u = n . sort ( lr ) . pop ( ) ; for ( il=[],ul=new Array(n.length ) , o l = n e w e r , l l = n e w e r ; ; ) if ( i=al,u&&(!i||u.y<i.y||u.y===i.y&&u.x<i.x ) ) u . x = = = e & & u . y = = = r | | ( u l [ u . i ] = n e w Ye ( u ) , He ( u ) , e = u . x , r = u . y ) , u = n . pop ( ) ; e l s e { if ( !i ) b r e a k ; Fe ( i.arc ) } t & & ( We ( t ) , Ze ( t ) ) ; v a r o = { c e l l s : u l , e d g e s : i l } ; r e t u r n o l = l l = i l = u l = n u l l , o } f u n c t i o n lr ( n,t ) { r e t u r n t . y - n . y | | t . x - n . x } f u n c t i o n cr ( n,t,e ) { return ( n.x-e.x ) * ( t . y - n . y ) - ( n . x - t . x ) * ( e . y - n . y ) } f u n c t i o n fr ( n ) { r e t u r n n . x } f u n c t i o n sr ( n ) { r e t u r n n . y } f u n c t i o n hr ( ) { r e t u r n { l e a f : ! 0 , n o d e s : [ ] , p o i n t : n u l l , x : n u l l , y : n u l l } } f u n c t i o n pr ( n,t,e,r,i,u ) { if ( !n(t,e,r,i,u ) ) { v a r o = . 5 * ( e + i ) , a = . 5 * ( r + u ) , l = t . n o d e s ; l [ 0 ] & & pr ( n,l[0],e,r,o,a ) , l [ 1 ] & & pr ( n,l[1],o,r,i,a ) , l [ 2 ] & & pr ( n,l[2],e,a,o,u ) , l [ 3 ] & & pr ( n,l[3],o,a,i,u ) } } f u n c t i o n gr ( n,t,e,r,i,u,o ) { v a r a , l = 1 / 0 ; r e t u r n f u n c t i o n c ( n,f,s,h,p ) { if ( !(f>u||s>o||r>h||i>p ) ) { if ( g=n.point ) { v a r g , v = t - n . x , d = e - n . y , y = v * v + d * d ; if ( l>y ) { v a r m = M a t h . sqrt ( l=y ) ; r = t - m , i = e - m , u = t + m , o = e + m , a = g } } for ( var M=n.nodes,x=.5*(f+h ) , b = . 5 * ( s + p ) , _ = t > = x , w = e > = b , S = w < < 1 | _ , k = S + 4 ; k > S ; + + S ) if ( n=M[3&S] ) switch ( 3&S ) { c a s e 0 : c ( n,f,s,x,b ) ; b r e a k ; c a s e 1 : c ( n,x,s,h,b ) ; b r e a k ; c a s e 2 : c ( n,f,b,x,p ) ; b r e a k ; c a s e 3 : c ( n,x,b,h,p ) } } } ( n , r , i , u , o ) , a } f u n c t i o n vr ( n,t ) { n = a o . rgb ( n ) , t = a o . rgb ( t ) ; v a r e = n . r , r = n . g , i = n . b , u = t . r - e , o = t . g - r , a = t . b - i ; r e t u r n function ( n ) { r e t u r n \ " #\"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+=\"\",t+=\"\";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),\
( e = e [ 0 ] ) = = = ( r = r [ 0 ] ) ? a [ o ] ? a [ o ] + = r : a [ + + o ] = r : ( a [ + + o ] = n u l l , l . push ( {i:o,x:yr(e,r ) } ) ) , u = p l . l a s t I n d e x ; r e t u r n u < t . l e n g t h & & ( i = t . slice ( u ) , a [ o ] ? a [ o ] + = i : a [ + + o ] = i ) , a . l e n g t h < 2 ? l [ 0 ] ? ( t = l [ 0 ] . x , function ( n ) { r e t u r n t ( n ) + \ " \ " } ) : function ( ) { r e t u r n t } : ( t = l . l e n g t h , function ( n ) { for ( var e,r=0;t>r;++r ) a [ ( e = l [ r ] ) . i ] = e . x ( n ) ; r e t u r n a . join ( \"\")})}function Mr(n,t ) { for ( var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t ) ) ; ) ; r e t u r n e } f u n c t i o n xr ( n,t ) { v a r e , r = [ ] , i = [ ] , u = n . l e n g t h , o = t . l e n g t h , a = M a t h . min ( n.length,t.length ) ; for ( e=0;a>e;++e ) r . push ( Mr(n[e],t[e] ) ) ; for ( ;u>e;++e ) i [ e ] = n [ e ] ; for ( ;o>e;++e ) i [ e ] = t [ e ] ; r e t u r n function ( n ) { for ( e=0;a>e;++e ) i [ e ] = r [ e ] ( n ) ; r e t u r n i } } f u n c t i o n br ( n ) { r e t u r n function ( t ) { r e t u r n 0 > = t ? 0 : t > = 1 ? 1 : n ( t ) } } f u n c t i o n _r ( n ) { r e t u r n function ( t ) { r e t u r n 1 - n ( 1-t ) } } f u n c t i o n wr ( n ) { r e t u r n function ( t ) { r e t u r n . 5 * ( . 5 > t ? n ( 2*t ) : 2 - n ( 2-2*t ) ) } } f u n c t i o n Sr ( n ) { r e t u r n n * n } f u n c t i o n kr ( n ) { r e t u r n n * n * n } f u n c t i o n Nr ( n ) { if ( 0>=n ) r e t u r n 0 ; if ( n>=1 ) r e t u r n 1 ; v a r t = n * n , e = t * n ; r e t u r n 4 * ( . 5 > n ? e : 3 * ( n - t ) + e - . 7 5 ) } f u n c t i o n Er ( n ) { r e t u r n function ( t ) { r e t u r n M a t h . pow ( t,n ) } } f u n c t i o n Ar ( n ) { r e t u r n 1 - M a t h . cos ( n*Io ) } f u n c t i o n Cr ( n ) { r e t u r n M a t h . pow ( 2,10*(n-1 ) ) } f u n c t i o n zr ( n ) { r e t u r n 1 - M a t h . sqrt ( 1-n*n ) } f u n c t i o n Lr ( n,t ) { v a r e ; r e t u r n a r g u m e n t s . l e n g t h < 2 & & ( t = . 4 5 ) , a r g u m e n t s . l e n g t h ? e = t / H o * M a t h . asin ( 1/n ) : ( n = 1 , e = t / 4 ) , function ( r ) { r e t u r n 1 + n * M a t h . pow ( 2,-10*r ) * M a t h . sin ( ( r-e ) *Ho/t ) } } f u n c t i o n qr ( n ) { r e t u r n n | | ( n = 1 . 7 0 1 5 8 ) , function ( t ) { r e t u r n t * t * ( ( n + 1 ) * t - n ) } } f u n c t i o n Tr ( n ) { r e t u r n 1 / 2 . 7 5 > n ? 7 . 5 6 2 5 * n * n : 2 / 2 . 7 5 > n ? 7 . 5 6 2 5 * ( n - = 1 . 5 / 2 . 7 5 ) * n + . 7 5 : 2 . 5 / 2 . 7 5 > n ? 7 . 5 6 2 5 * ( n - = 2 . 2 5 / 2 . 7 5 ) * n + . 9 3 7 5 : 7 . 5 6 2 5 * ( n - = 2 . 6 2 5 / 2 . 7 5 ) * n + . 9 8 4 3 7 5 } f u n c t i o n Rr ( n,t ) { n = a o . hcl ( n ) , t = a o . hcl ( t ) ; v a r e = n . h , r = n . c , i = n . l , u = t . h - e , o = t . c - r , a = t . l - i ; r e t u r n isNaN ( o ) & & ( o = 0 , r = isNaN ( r ) ? t . c : r ) , isNaN ( u ) ? ( u = 0 , e = isNaN ( e ) ? t . h : e ) : u > 1 8 0 ? u - = 3 6 0 : - 1 8 0 > u & & ( u + = 3 6 0 ) , function ( n ) { r e t u r n sn ( e+u*n,r+o*n,i+a*n ) + \ " \ " } } f u n c t i o n Dr ( n,t ) { n = a o . hsl ( n ) , t = a o . hsl ( t ) ; v a r e = n . h , r = n . s , i = n . l , u = t . h - e , o = t . s - r , a = t . l - i ; r e t u r n isNaN ( o ) & & ( o = 0 , r = isNaN ( r ) ? t . s : r ) , isNaN ( u ) ? ( u = 0 , e = isNaN ( e ) ? t . h : e ) : u > 1 8 0 ? u - = 3 6 0 : - 1 8 0 > u & & ( u + = 3 6 0 ) , function ( n ) { r e t u r n cn ( e+u*n,r+o*n,i+a*n ) + \ " \ " } } f u n c t i o n Pr ( n,t ) { n = a o . lab ( n ) , t = a o . lab ( t ) ; \
v a r e = n . l , r = n . a , i = n . b , u = t . l - e , o = t . a - r , a = t . b - i ; r e t u r n function ( n ) { r e t u r n pn ( e+u*n,r+o*n,i+a*n ) + \ " \ " } } f u n c t i o n Ur ( n,t ) { r e t u r n t - = n , function ( e ) { r e t u r n M a t h . round ( n+t*e ) } } f u n c t i o n jr ( n ) { v a r t = [ n . a , n . b ] , e = [ n . c , n . d ] , r = Hr ( t ) , i = Fr ( t,e ) , u = Hr ( Or(e,t,-i ) ) | | 0 ; t [ 0 ] * e [ 1 ] < e [ 0 ] * t [ 1 ] & & ( t [ 0 ] * = - 1 , t [ 1 ] * = - 1 , r * = - 1 , i * = - 1 ) , t h i s . r o t a t e = ( r ? M a t h . atan2 ( t[1],t[0] ) : M a t h . atan2 ( -e[0],e[1] ) ) * Z o , t h i s . t r a n s l a t e = [ n . e , n . f ] , t h i s . s c a l e = [ r , u ] , t h i s . s k e w = u ? M a t h . atan2 ( i,u ) * Z o : 0 } f u n c t i o n Fr ( n,t ) { r e t u r n n [ 0 ] * t [ 0 ] + n [ 1 ] * t [ 1 ] } f u n c t i o n Hr ( n ) { v a r t = M a t h . sqrt ( Fr(n,n ) ) ; r e t u r n t & & ( n [ 0 ] / = t , n [ 1 ] / = t ) , t } f u n c t i o n Or ( n,t,e ) { r e t u r n n [ 0 ] + = e * t [ 0 ] , n [ 1 ] + = e * t [ 1 ] , n } f u n c t i o n Ir ( n ) { r e t u r n n . l e n g t h ? n . pop ( ) + \ " , \ " : \ " \ " } f u n c t i o n Yr ( n,t,e,r ) { if ( n[0]!==t[0]||n[1]!==t[1] ) { v a r i = e . push ( \"translate(\",null,\",\",null,\")\");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else(t[0]||t[1])&&e.push(\"translate(\"+t+\")\")}function Zr(n,t,e,r ) { n ! = = t ? ( n - t > 1 8 0 ? t + = 3 6 0 : t - n > 1 8 0 & & ( n + = 3 6 0 ) , r . push ( {i:e.push(Ir(e ) + \ " rotate ( \",null,\")\")-2,x:yr(n,t)})):t&&e.push(Ir(e)+\"rotate(\"+t+\")\")}function Vr(n,t,e,r ) { n ! = = t ? r . push ( {i:e.push(Ir(e ) + \ " skewX ( \",null,\")\")-2,x:yr(n,t)}):t&&e.push(Ir(e)+\"skewX(\"+t+\")\")}function Xr(n,t,e,r ) { if ( n[0]!==t[0]||n[1]!==t[1] ) { v a r i = e . push ( Ir(e ) + \ " scale ( \",null,\",\",null,\")\");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e ) + \ " scale ( \"+t+\")\")}function $ r(n,t ) { v a r e = [ ] , r = [ ] ; r e t u r n n = a o . transform ( n ) , t = a o . transform ( t ) , Yr ( n.translate,t.translate,e,r ) , Zr ( n.rotate,t.rotate,e,r ) , Vr ( n.skew,t.skew,e,r ) , Xr ( n.scale,t.scale,e,r ) , n = t = n u l l , function ( n ) { for ( var t,i=-1,u=r.length;++i<u; ) e [ ( t = r [ i ] ) . i ] = t . x ( n ) ; r e t u r n e . join ( \"\")}}function Br(n,t ) { r e t u r n t = ( t - = n = + n ) | | 1 / t , function ( e ) { return ( e-n ) / t } } f u n c t i o n Wr ( n,t ) { r e t u r n t = ( t - = n = + n ) | | 1 / t , function ( e ) { r e t u r n M a t h . max ( 0,Math.min(1,(e-n ) / t ) ) } } f u n c t i o n Jr ( n ) { for ( var t=n.source,e=n.target,r=Kr(t,e ) , i = [ t ] ; t ! = = r ; ) t = t . p a r e n t , i . push ( t ) ; for ( var u=i.length;e!==r; ) i . splice ( u,0,e ) , e = e . p a r e n t ; r e t u r n i } f u n c t i o n Gr ( n ) { for ( var t=[],e=n.parent;null!=e; ) t . push ( n ) , n = e , e = e . p a r e n t ; r e t u r n t . push ( n ) , t } f u n c t i o n Kr ( n,t ) { if ( n===t ) r e t u r n n ; for ( var e=Gr(n ) , r = Gr ( t ) , \
i = e . pop ( ) , u = r . pop ( ) , o = n u l l ; i = = = u ; ) o = i , i = e . pop ( ) , u = r . pop ( ) ; r e t u r n o } f u n c t i o n Qr ( n ) { n . f i x e d | = 2 } f u n c t i o n ni ( n ) { n . f i x e d & = - 7 } f u n c t i o n ti ( n ) { n . f i x e d | = 4 , n . p x = n . x , n . p y = n . y } f u n c t i o n ei ( n ) { n . f i x e d & = - 5 } f u n c t i o n ri ( n,t,e ) { v a r r = 0 , i = 0 ; if ( n.charge=0,!n.leaf ) for ( var u,o=n.nodes,a=o.length,l=-1;++l<a; ) u = o [ l ] , n u l l ! = u & & ( ri ( u,t,e ) , n . c h a r g e + = u . c h a r g e , r + = u . c h a r g e * u . c x , i + = u . c h a r g e * u . c y ) ; if ( n.point ) { n . l e a f | | ( n . p o i n t . x + = M a t h . random ( ) - . 5 , n . p o i n t . y + = M a t h . random ( ) - . 5 ) ; v a r c = t * e [ n . p o i n t . i n d e x ] ; n . c h a r g e + = n . p o i n t C h a r g e = c , r + = c * n . p o i n t . x , i + = c * n . p o i n t . y } n . c x = r / n . c h a r g e , n . c y = i / n . c h a r g e } f u n c t i o n ii ( n,t ) { r e t u r n a o . rebind ( n,t,\ "sort\" ,\ "children\" ,\ "value\" ) , n . n o d e s = n , n . l i n k s = f i , n } f u n c t i o n ui ( n,t ) { for ( var e=[n];null!=(n=e.pop( ) ) ; ) if ( t(n ) , ( i = n . c h i l d r e n ) & & ( r = i . l e n g t h ) ) for ( var r,i;--r>=0; ) e . push ( i[r] ) } f u n c t i o n oi ( n,t ) { for ( var e=[n],r=[];null!=(n=e.pop( ) ) ; ) if ( r.push(n ) , ( u = n . c h i l d r e n ) & & ( i = u . l e n g t h ) ) for ( var i,u,o=-1;++o<i; ) e . push ( u[o] ) ; for ( ;null!=(n=r.pop( ) ) ; ) t ( n ) } f u n c t i o n ai ( n ) { r e t u r n n . c h i l d r e n } f u n c t i o n li ( n ) { r e t u r n n . v a l u e } f u n c t i o n ci ( n,t ) { r e t u r n t . v a l u e - n . v a l u e } f u n c t i o n fi ( n ) { r e t u r n a o . merge ( n.map(function(n ) { return ( n.children||[] ) . map ( function(t ) { r e t u r n { s o u r c e : n , t a r g e t : t } } ) } ) ) } f u n c t i o n si ( n ) { r e t u r n n . x } f u n c t i o n hi ( n ) { r e t u r n n . y } f u n c t i o n pi ( n,t,e ) { n . y 0 = t , n . y = e } f u n c t i o n gi ( n ) { r e t u r n a o . range ( n.length ) } f u n c t i o n vi ( n ) { for ( var t=-1,e=n[0].length,r=[];++t<e; ) r [ t ] = 0 ; r e t u r n r } f u n c t i o n di ( n ) { for ( var t,e=1,r=0,i=n[0][1],u=n.length;u>e;++e ) ( t = n [ e ] [ 1 ] ) > i & & ( r = e , i = t ) ; r e t u r n r } f u n c t i o n yi ( n ) { r e t u r n n . reduce ( mi,0 ) } f u n c t i o n mi ( n,t ) { r e t u r n n + t [ 1 ] } f u n c t i o n Mi ( n,t ) { r e t u r n xi ( n,Math.ceil(Math.log(t.length ) / M a t h . L N 2 + 1 ) ) } f u n c t i o n xi ( n,t ) { for ( var e=-1,r=+n[0],i=(n[1]-r ) / t , u = [ ] ; + + e < = t ; ) u [ e ] = i * e + r ; r e t u r n u } f u n c t i o n bi ( n ) { r e t u r n [ a o . min ( n ) , a o . max ( n ) ] } f u n c t i o n _i ( n,t ) { r e t u r n n . v a l u e - t . v a l u e } f u n c t i o n wi ( n,t ) { v a r e = n . _ p a c k _ n e x t ; n . _ p a c k _ n e x t = t , t . _ p a c k _ p r e v = n , t . _ p a c k _ n e x t = e , e . _ p a c k _ p r e v = t } f u n c t i o n Si ( n,t ) { n . _ p a c k _ n e x t = t , t . _ p a c k _ p r e v = n } f u n c t i o n ki ( n,t ) { v a r e = t . x - n . x , r = t . y - n . y , i = n . r + t . r ; r e t u r n . 9 9 9 * i * i > e * e + r * r } f u n c t i o n Ni ( n ) { f u n c t i o n t ( n ) { f = M a t h . min ( n.x-n.r,f ) , s = M a t h . max ( n.x+n.r,s ) , h = M a t h . min ( n.y-n.r,\
h ) , p = M a t h . max ( n.y+n.r,p ) } if ( ( e=n.children ) &&(c=e.length ) ) { v a r e , r , i , u , o , a , l , c , f = 1 / 0 , s = - ( 1 / 0 ) , h = 1 / 0 , p = - ( 1 / 0 ) ; if ( e.forEach(Ei ) , r = e [ 0 ] , r . x = - r . r , r . y = 0 , t ( r ) , c > 1 & & ( i = e [ 1 ] , i . x = i . r , i . y = 0 , t ( i ) , c > 2 ) ) for ( u=e[2],zi(r,i,u ) , t ( u ) , wi ( r,u ) , r . _ p a c k _ p r e v = u , wi ( u,i ) , i = r . _ p a c k _ n e x t , o = 3 ; c > o ; o + + ) { zi ( r,i,u=e[o] ) ; v a r g = 0 , v = 1 , d = 1 ; for ( a=i._pack_next;a!==i;a=a._pack_next,v++ ) if ( ki(a,u ) ) { g = 1 ; b r e a k } if ( 1==g ) for ( l=r._pack_prev;l!==a._pack_prev&&!ki(l,u ) ; l = l . _ p a c k _ p r e v , d + + ) ; g ? ( d > v | | v = = d & & i . r < r . r ? Si ( r,i=a ) : Si ( r=l,i ) , o - - ) : ( wi ( r,u ) , i = u , t ( u ) ) } v a r y = ( f + s ) / 2 , m = ( h + p ) / 2 , M = 0 ; for ( o=0;c>o;o++ ) u = e [ o ] , u . x - = y , u . y - = m , M = M a t h . max ( M,u.r+Math.sqrt(u.x*u.x+u.y*u.y ) ) ; n . r = M , e . forEach ( Ai ) } } f u n c t i o n Ei ( n ) { n . _ p a c k _ n e x t = n . _ p a c k _ p r e v = n } f u n c t i o n Ai ( n ) { d e l e t e n . _ p a c k _ n e x t , d e l e t e n . _ p a c k _ p r e v } f u n c t i o n Ci ( n,t,e,r ) { v a r i = n . c h i l d r e n ; if ( n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i ) for ( var u=-1,o=i.length;++u<o; ) Ci ( i[u],t,e,r ) } f u n c t i o n zi ( n,t,e ) { v a r r = n . r + e . r , i = t . x - n . x , u = t . y - n . y ; if ( r&&(i||u ) ) { v a r o = t . r + e . r , a = i * i + u * u ; o * = o , r * = r ; v a r l = . 5 + ( r - o ) / ( 2 * a ) , c = M a t h . sqrt ( Math.max(0,2*o*(r+a ) - ( r - = a ) * r - o * o ) ) / ( 2 * a ) ; e . x = n . x + l * i + c * u , e . y = n . y + l * u - c * i } e l s e e . x = n . x + r , e . y = n . y } f u n c t i o n Li ( n,t ) { r e t u r n n . p a r e n t = = t . p a r e n t ? 1 : 2 } f u n c t i o n qi ( n ) { v a r t = n . c h i l d r e n ; r e t u r n t . l e n g t h ? t [ 0 ] : n . t } f u n c t i o n Ti ( n ) { v a r t , e = n . c h i l d r e n ; return ( t=e.length ) ? e [ t - 1 ] : n . t } f u n c t i o n Ri ( n,t,e ) { v a r r = e / ( t . i - n . i ) ; t . c - = r , t . s + = e , n . c + = r , t . z + = e , t . m + = e } f u n c t i o n Di ( n ) { for ( var t,e=0,r=0,i=n.children,u=i.length;--u>=0; ) t = i [ u ] , t . z + = e , t . m + = e , e + = t . s + ( r + = t . c ) } f u n c t i o n Pi ( n,t,e ) { r e t u r n n . a . p a r e n t = = = t . p a r e n t ? n . a : e } f u n c t i o n Ui ( n ) { r e t u r n 1 + a o . max ( n,function(n ) { r e t u r n n . y } ) } f u n c t i o n ji ( n ) { r e t u r n n . reduce ( function(n,t ) { r e t u r n n + t . x } , 0 ) / n . l e n g t h } f u n c t i o n Fi ( n ) { v a r t = n . c h i l d r e n ; r e t u r n t & & t . l e n g t h ? Fi ( t[0] ) : n } f u n c t i o n Hi ( n ) { v a r t , e = n . c h i l d r e n ; r e t u r n e & & ( t = e . l e n g t h ) ? Hi ( e[t-1] ) : n } f u n c t i o n Oi ( n ) { r e t u r n { x : n . x , y : n . y , d x : n . d x , d y : n . d y } } f u n c t i o n Ii ( n,t ) { v a r e = n . x + t [ 3 ] , r = n . y + t [ 0 ] , i = n . d x - t [ 1 ] - t [ 3 ] , u = n . d y - t [ 0 ] - t [ 2 ] ; r e t u r n 0 > i & & ( e + = i / 2 , i = 0 ) , 0 > u & & ( r + = u / 2 , u = 0 ) , { x : e , y : r , d x : i , d y : u } } f u n c t i o n Yi ( n ) { v a r t = n [ 0 ] , e = n [ n . l e n g t h - 1 ] ; r e t u r n e > t ? [ t , e ] : [ e , t ] } f u n c t i o n Zi ( n ) { r e t u r n n . r a n g e E x t e n t ? n . rangeExtent ( ) : Yi ( n.range( ) ) } f u n c t i o n \
Vi ( n,t,e,r ) { v a r i = e ( n[0],n[1] ) , u = r ( t[0],t[1] ) ; r e t u r n function ( n ) { r e t u r n u ( i(n ) ) } } f u n c t i o n Xi ( n,t ) { v a r e , r = 0 , i = n . l e n g t h - 1 , u = n [ r ] , o = n [ i ] ; r e t u r n u > o & & ( e = r , r = i , i = e , e = u , u = o , o = e ) , n [ r ] = t . floor ( u ) , n [ i ] = t . ceil ( o ) , n } f u n c t i o n $ i ( n ) { r e t u r n n ? { f l o o r : function ( t ) { r e t u r n M a t h . floor ( t/n ) * n } , c e i l : function ( t ) { r e t u r n M a t h . ceil ( t/n ) * n } } : S l } f u n c t i o n Bi ( n,t,e,r ) { v a r i = [ ] , u = [ ] , o = 0 , a = M a t h . min ( n.length,t.length ) - 1 ; for ( n[a]<n[0]&&(n=n.slice( ) . reverse ( ) , t = t . slice ( ) . reverse ( ) ) ; + + o < = a ; ) i . push ( e(n[o-1],n[o] ) ) , u . push ( r(t[o-1],t[o] ) ) ; r e t u r n function ( t ) { v a r e = a o . bisect ( n,t,1,a ) - 1 ; r e t u r n u [ e ] ( i [ e ] ( t ) ) } } f u n c t i o n Wi ( n,t,e,r ) { f u n c t i o n i ( ) { v a r i = M a t h . min ( n.length,t.length ) > 2 ? B i : V i , l = r ? W r : B r ; r e t u r n o = i ( n,t,l,e ) , a = i ( t,n,l,Mr ) , u } f u n c t i o n u ( n ) { r e t u r n o ( n ) } v a r o , a ; r e t u r n u . i n v e r t = function ( n ) { r e t u r n a ( n ) } , u . d o m a i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n = t . map ( Number ) , i ( ) ) : n } , u . r a n g e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = n , i ( ) ) : t } , u . r a n g e R o u n d = function ( n ) { r e t u r n u . range ( n ) . interpolate ( Ur ) } , u . c l a m p = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = n , i ( ) ) : r } , u . i n t e r p o l a t e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = n , i ( ) ) : e } , u . t i c k s = function ( t ) { r e t u r n Qi ( n,t ) } , u . t i c k F o r m a t = function ( t,e ) { r e t u r n nu ( n,t,e ) } , u . n i c e = function ( t ) { r e t u r n Gi ( n,t ) , i ( ) } , u . c o p y = function ( ) { r e t u r n Wi ( n,t,e,r ) } , i ( ) } f u n c t i o n Ji ( n,t ) { r e t u r n a o . rebind ( n,t,\ "range\" ,\ "rangeRound\" ,\ "interpolate\" ,\ "clamp\" ) } f u n c t i o n Gi ( n,t ) { r e t u r n Xi ( n, $ i(Ki(n,t ) [ 2 ] ) ) , Xi ( n, $ i(Ki(n,t ) [ 2 ] ) ) , n } f u n c t i o n Ki ( n,t ) { n u l l = = t & & ( t = 1 0 ) ; v a r e = Yi ( n ) , r = e [ 1 ] - e [ 0 ] , i = M a t h . pow ( 10,Math.floor(Math.log(r/t ) / M a t h . L N 1 0 ) ) , u = t / r * i ; r e t u r n . 1 5 > = u ? i * = 1 0 : . 3 5 > = u ? i * = 5 : . 7 5 > = u & & ( i * = 2 ) , e [ 0 ] = M a t h . ceil ( e[0]/i ) * i , e [ 1 ] = M a t h . floor ( e[1]/i ) * i + . 5 * i , e [ 2 ] = i , e } f u n c t i o n Qi ( n,t ) { r e t u r n a o . r a n g e . apply ( ao,Ki(n,t ) ) } f u n c t i o n nu ( n,t,e ) { v a r r = Ki ( n,t ) ; if ( e ) { v a r i = h a . exec ( e ) ; if ( i.shift( ) , \ " s \ " = = = i [ 8 ] ) { v a r u = a o . formatPrefix ( Math.max(xo(r[0] ) , xo ( r[1] ) ) ) ; r e t u r n i [ 7 ] | | ( i [ 7 ] = \ " . \ " + tu ( u.scale(r[2] ) ) ) , i [ 8 ] = \ " f \ " , e = a o . format ( i.join(\ "\" ) ) , function ( n ) { r e t u r n e ( u.scale(n ) ) + u . s y m b o l } } i [ 7 ] | | ( i [ 7 ] = \ " . \ " + eu ( i[8],r ) ) , e = i . join ( \"\")}else e=\ ",.\" +tu(r[2] ) + \ " f \ " ; r e t u r n a o . format ( e ) } f u n c t i o n tu ( n ) { r e t u r n - M a t h . floor ( Math.log(n ) / M a t h . L N 1 0 + . 0 1 ) } f u n c t i o n \
eu ( n,t ) { v a r e = tu ( t[2] ) ; r e t u r n n i n k l ? M a t h . abs ( e-tu(Math.max(xo(t[0] ) , xo ( t[1] ) ) ) ) + + ( \ " e \ " ! = = n ) : e - 2 * ( \ " % \ " = = = n ) } f u n c t i o n ru ( n,t,e,r ) { f u n c t i o n i ( n ) { return ( e?Math.log(0>n?0:n ) : - M a t h . log ( n>0?0:-n ) ) / M a t h . log ( t ) } f u n c t i o n u ( n ) { r e t u r n e ? M a t h . pow ( t,n ) : - M a t h . pow ( t,-n ) } f u n c t i o n o ( t ) { r e t u r n n ( i(t ) ) } r e t u r n o . i n v e r t = function ( t ) { r e t u r n u ( n.invert(t ) ) } , o . d o m a i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = t [ 0 ] > = 0 , n . domain ( ( r=t.map(Number ) ) . map ( i ) ) , o ) : r } , o . b a s e = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = + e , n . domain ( r.map(i ) ) , o ) : t } , o . n i c e = function ( ) { v a r t = Xi ( r.map(i ) , e ? M a t h : E l ) ; r e t u r n n . domain ( t ) , r = t . map ( u ) , o } , o . t i c k s = function ( ) { v a r n = Yi ( r ) , o = [ ] , a = n [ 0 ] , l = n [ 1 ] , c = M a t h . floor ( i(a ) ) , f = M a t h . ceil ( i(l ) ) , s = t % 1 ? 2 : t ; if ( isFinite(f-c ) ) { if ( e ) { for ( ;f>c;c++ ) for ( var h=1;s>h;h++ ) o . push ( u(c ) * h ) ; o . push ( u(c ) ) } e l s e for ( o.push(u(c ) ) ; c + + < f ; ) for ( var h=s-1;h>0;h-- ) o . push ( u(c ) * h ) ; for ( c=0;o[c]<a;c++ ) ; for ( f=o.length;o[f-1]>l;f-- ) ; o = o . slice ( c,f ) } r e t u r n o } , o . t i c k F o r m a t = function ( n,e ) { if ( !arguments.length ) r e t u r n N l ; a r g u m e n t s . l e n g t h < 2 ? e = N l : \ " f u n c t i o n \ " ! = t y p e o f e & & ( e = a o . format ( e ) ) ; v a r r = M a t h . max ( 1,t*n/o.ticks( ) . l e n g t h ) ; r e t u r n function ( n ) { v a r o = n / u ( Math.round(i(n ) ) ) ; r e t u r n t - . 5 > o * t & & ( o * = t ) , r > = o ? e ( n ) : \ " \ " } } , o . c o p y = function ( ) { r e t u r n ru ( n.copy( ) , t , e , r ) } , Ji ( o,n ) } f u n c t i o n iu ( n,t,e ) { f u n c t i o n r ( t ) { r e t u r n n ( i(t ) ) } v a r i = uu ( t ) , u = uu ( 1/t ) ; r e t u r n r . i n v e r t = function ( t ) { r e t u r n u ( n.invert(t ) ) } , r . d o m a i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n . domain ( ( e=t.map(Number ) ) . map ( i ) ) , r ) : e } , r . t i c k s = function ( n ) { r e t u r n Qi ( e,n ) } , r . t i c k F o r m a t = function ( n,t ) { r e t u r n nu ( e,n,t ) } , r . n i c e = function ( n ) { r e t u r n r . domain ( Gi(e,n ) ) } , r . e x p o n e n t = function ( o ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = uu ( t=o ) , u = uu ( 1/t ) , n . domain ( e.map(i ) ) , r ) : t } , r . c o p y = function ( ) { r e t u r n iu ( n.copy( ) , t , e ) } , Ji ( r,n ) } f u n c t i o n uu ( n ) { r e t u r n function ( t ) { r e t u r n 0 > t ? - M a t h . pow ( -t,n ) : M a t h . pow ( t,n ) } } f u n c t i o n ou ( n,t ) { f u n c t i o n e ( e ) { r e t u r n u [ ( ( i . get ( e ) | | ( \ " r a n g e \ " = = = t . t ? i . set ( e,n.push(e ) ) : N a N ) ) - 1 ) % u . l e n g t h ] } f u n c t i o n r ( t,e ) { r e t u r n a o . range ( n.length ) . map ( function(n ) { r e t u r n t + e * n } ) } v a r i , u , o ; r e t u r n e . d o m a i n = function ( r ) { if ( !arguments.length ) r e t u r n n ; n = [ ] , i = n e w c ; for ( var u,o=-1,a=r.length;++o<a;\
) i . has ( u=r[o] ) | | i . set ( u,n.push(u ) ) ; r e t u r n e [ t . t ] . apply ( e,t.a ) } , e . r a n g e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = n , o = 0 , t = { t : \ " r a n g e \ " , a : a r g u m e n t s } , e ) : u } , e . r a n g e P o i n t s = function ( i,a ) { a r g u m e n t s . l e n g t h < 2 & & ( a = 0 ) ; v a r l = i [ 0 ] , c = i [ 1 ] , f = n . l e n g t h < 2 ? ( l = ( l + c ) / 2 , 0 ) : ( c - l ) / ( n . l e n g t h - 1 + a ) ; r e t u r n u = r ( l+f*a/2,f ) , o = 0 , t = { t : \ " r a n g e P o i n t s \ " , a : a r g u m e n t s } , e } , e . r a n g e R o u n d P o i n t s = function ( i,a ) { a r g u m e n t s . l e n g t h < 2 & & ( a = 0 ) ; v a r l = i [ 0 ] , c = i [ 1 ] , f = n . l e n g t h < 2 ? ( l = c = M a t h . round ( ( l+c ) /2 ) , 0 ) : ( c - l ) / ( n . l e n g t h - 1 + a ) | 0 ; r e t u r n u = r ( l+Math.round(f*a/2+(c-l-(n.length-1+a ) * f ) / 2 ) , f ) , o = 0 , t = { t : \ " r a n g e R o u n d P o i n t s \ " , a : a r g u m e n t s } , e } , e . r a n g e B a n d s = function ( i,a,l ) { a r g u m e n t s . l e n g t h < 2 & & ( a = 0 ) , a r g u m e n t s . l e n g t h < 3 & & ( l = a ) ; v a r c = i [ 1 ] < i [ 0 ] , f = i [ c - 0 ] , s = i [ 1 - c ] , h = ( s - f ) / ( n . l e n g t h - a + 2 * l ) ; r e t u r n u = r ( f+h*l,h ) , c & & u . reverse ( ) , o = h * ( 1 - a ) , t = { t : \ " r a n g e B a n d s \ " , a : a r g u m e n t s } , e } , e . r a n g e R o u n d B a n d s = function ( i,a,l ) { a r g u m e n t s . l e n g t h < 2 & & ( a = 0 ) , a r g u m e n t s . l e n g t h < 3 & & ( l = a ) ; v a r c = i [ 1 ] < i [ 0 ] , f = i [ c - 0 ] , s = i [ 1 - c ] , h = M a t h . floor ( ( s-f ) /(n.length-a+2*l ) ) ; r e t u r n u = r ( f+Math.round((s-f-(n.length-a ) * h ) / 2 ) , h ) , c & & u . reverse ( ) , o = M a t h . round ( h*(1-a ) ) , t = { t : \ " r a n g e R o u n d B a n d s \ " , a : a r g u m e n t s } , e } , e . r a n g e B a n d = function ( ) { r e t u r n o } , e . r a n g e E x t e n t = function ( ) { r e t u r n Yi ( t.a[0] ) } , e . c o p y = function ( ) { r e t u r n ou ( n,t ) } , e . domain ( n ) } f u n c t i o n au ( n,t ) { f u n c t i o n u ( ) { v a r e = 0 , r = t . l e n g t h ; for ( a=[];++e<r; ) a [ e - 1 ] = a o . quantile ( n,e/r ) ; r e t u r n o } f u n c t i o n o ( n ) { r e t u r n isNaN ( n=+n ) ? v o i d 0 : t [ a o . bisect ( a,n ) ] } v a r a ; r e t u r n o . d o m a i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n = t . map ( r ) . filter ( i ) . sort ( e ) , u ( ) ) : n } , o . r a n g e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = n , u ( ) ) : t } , o . q u a n t i l e s = function ( ) { r e t u r n a } , o . i n v e r t E x t e n t = function ( e ) { r e t u r n e = t . indexOf ( e ) , 0 > e ? [ N a N , N a N ] : [ e > 0 ? a [ e - 1 ] : n [ 0 ] , e < a . l e n g t h ? a [ e ] : n [ n . l e n g t h - 1 ] ] } , o . c o p y = function ( ) { r e t u r n au ( n,t ) } , u ( ) } f u n c t i o n lu ( n,t,e ) { f u n c t i o n r ( t ) { r e t u r n e [ M a t h . max ( 0,Math.min(o,Math.floor(u*(t-n ) ) ) ) ] } f u n c t i o n i ( ) { r e t u r n u = e . l e n g t h / ( t - n ) , o = e . l e n g t h - 1 , r } v a r u , o ; r e t u r n r . d o m a i n = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n = + e [ 0 ] , t = + e [ e . l e n g t h - 1 ] , i ( ) ) : [ n , t ] } , r . r a n g e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = n , i ( ) ) : e } , r . i n v e r t E x t e n t = function ( t ) { r e t u r n t = e . indexOf ( t ) , t = 0 > t ? N a N : t / u + n , \
[ t , t + 1 / u ] } , r . c o p y = function ( ) { r e t u r n lu ( n,t,e ) } , i ( ) } f u n c t i o n cu ( n,t ) { f u n c t i o n e ( e ) { r e t u r n e > = e ? t [ a o . bisect ( n,e ) ] : v o i d 0 } r e t u r n e . d o m a i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n = t , e ) : n } , e . r a n g e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = n , e ) : t } , e . i n v e r t E x t e n t = function ( e ) { r e t u r n e = t . indexOf ( e ) , [ n [ e - 1 ] , n [ e ] ] } , e . c o p y = function ( ) { r e t u r n cu ( n,t ) } , e } f u n c t i o n fu ( n ) { f u n c t i o n t ( n ) { r e t u r n + n } r e t u r n t . i n v e r t = t , t . d o m a i n = t . r a n g e = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n = e . map ( t ) , t ) : n } , t . t i c k s = function ( t ) { r e t u r n Qi ( n,t ) } , t . t i c k F o r m a t = function ( t,e ) { r e t u r n nu ( n,t,e ) } , t . c o p y = function ( ) { r e t u r n fu ( n ) } , t } f u n c t i o n su ( ) { r e t u r n 0 } f u n c t i o n hu ( n ) { r e t u r n n . i n n e r R a d i u s } f u n c t i o n pu ( n ) { r e t u r n n . o u t e r R a d i u s } f u n c t i o n gu ( n ) { r e t u r n n . s t a r t A n g l e } f u n c t i o n vu ( n ) { r e t u r n n . e n d A n g l e } f u n c t i o n du ( n ) { r e t u r n n & & n . p a d A n g l e } f u n c t i o n yu ( n,t,e,r ) { return ( n-e ) * t - ( t - r ) * n > 0 ? 0 : 1 } f u n c t i o n mu ( n,t,e,r,i ) { v a r u = n [ 0 ] - t [ 0 ] , o = n [ 1 ] - t [ 1 ] , a = ( i ? r : - r ) / M a t h . sqrt ( u*u+o*o ) , l = a * o , c = - a * u , f = n [ 0 ] + l , s = n [ 1 ] + c , h = t [ 0 ] + l , p = t [ 1 ] + c , g = ( f + h ) / 2 , v = ( s + p ) / 2 , d = h - f , y = p - s , m = d * d + y * y , M = e - r , x = f * p - h * s , b = ( 0 > y ? - 1 : 1 ) * M a t h . sqrt ( Math.max(0,M*M*m-x*x ) ) , _ = ( x * y - d * b ) / m , w = ( - x * d - y * b ) / m , S = ( x * y + d * b ) / m , k = ( - x * d + y * b ) / m , N = _ - g , E = w - v , A = S - g , C = k - v ; r e t u r n N * N + E * E > A * A + C * C & & ( _ = S , w = k ) , [ [ _ - l , w - c ] , [ _ * e / M , w * e / M ] ] } f u n c t i o n Mu ( n ) { f u n c t i o n t ( t ) { f u n c t i o n o ( ) { c . push ( \"M\",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e ) , g = En ( r ) ; + + s < h ; ) i . call ( this,l=t[s],s ) ? f . push ( [+p.call(this,l,s ) , + g . call ( this,l,s ) ] ) : f . l e n g t h & & ( o ( ) , f = [ ] ) ; r e t u r n f . l e n g t h & & o ( ) , c . l e n g t h ? c . join ( \"\"):null}var e=Ce,r=ze,i=zt,u=xu,o=u.key,a=.7;return t.x=function(n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = n , t ) : e } , t . y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = n , t ) : r } , t . d e f i n e d = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = n , t ) : i } , t . i n t e r p o l a t e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = \ " f u n c t i o n \ " = = t y p e o f n ? u = n : ( u = T l . get ( n ) | | x u ) . k e y , t ) : o } , t . t e n s i o n = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = n , t ) : a } , t } f u n c t i o n xu ( n ) { r e t u r n n . l e n g t h > 1 ? n . join ( \"L\"):n+\"Z\"}function bu(n ) { r e t u r n n . join ( \"L\")+\"Z\"}function _u(n ) { for ( var t=0,e=n.length,r=n[0],i=[r[0],\ ",\" ,r[1]];++t<e; ) i . push ( \"H\",(r[0]+(r=n[t])[0])/2,\"V\",r[1]);return e>1&&i.push(\ "H\" ,\
r [ 0 ] ) , i . join ( \"\")}function wu(n ) { for ( var t=0,e=n.length,r=n[0],i=[r[0],\ ",\" ,r[1]];++t<e; ) i . push ( \"V\",(r=n[t])[1],\"H\",r[0]);return i.join(\ "\" ) } f u n c t i o n Su ( n ) { for ( var t=0,e=n.length,r=n[0],i=[r[0],\ ",\" ,r[1]];++t<e; ) i . push ( \"H\",(r=n[t])[0],\"V\",r[1]);return i.join(\ "\" ) } f u n c t i o n ku ( n,t ) { r e t u r n n . l e n g t h < 4 ? xu ( n ) : n [ 1 ] + Au ( n.slice(1,-1 ) , Cu ( n,t ) ) } f u n c t i o n Nu ( n,t ) { r e t u r n n . l e n g t h < 3 ? bu ( n ) : n [ 0 ] + Au ( ( n.push(n[0] ) ,n ) , Cu ( [n[n.length-2]].concat(n,[n[1]] ) , t ) ) } f u n c t i o n Eu ( n,t ) { r e t u r n n . l e n g t h < 3 ? xu ( n ) : n [ 0 ] + Au ( n,Cu(n,t ) ) } f u n c t i o n Au ( n,t ) { if ( t.length<1||n.length!=t.length&&n.length!=t.length+2 ) r e t u r n xu ( n ) ; v a r e = n . l e n g t h ! = t . l e n g t h , r = \ " \ " , i = n [ 0 ] , u = n [ 1 ] , o = t [ 0 ] , a = o , l = 1 ; if ( e&&(r+=\ "Q\" +(u[0]-2*o[0]/3 ) + \ " , \ " + ( u [ 1 ] - 2 * o [ 1 ] / 3 ) + \ " , \ " + u [ 0 ] + \ " , \ " + u [ 1 ] , i = n [ 1 ] , l = 2 ) , t . l e n g t h > 1 ) { a = t [ 1 ] , u = n [ l ] , l + + , r + = \ " C \ " + ( i [ 0 ] + o [ 0 ] ) + \ " , \ " + ( i [ 1 ] + o [ 1 ] ) + \ " , \ " + ( u [ 0 ] - a [ 0 ] ) + \ " , \ " + ( u [ 1 ] - a [ 1 ] ) + \ " , \ " + u [ 0 ] + \ " , \ " + u [ 1 ] ; for ( var c=2;c<t.length;c++,l++ ) u = n [ l ] , a = t [ c ] , r + = \ " S \ " + ( u [ 0 ] - a [ 0 ] ) + \ " , \ " + ( u [ 1 ] - a [ 1 ] ) + \ " , \ " + u [ 0 ] + \ " , \ " + u [ 1 ] } if ( e ) { v a r f = n [ l ] ; r + = \ " Q \ " + ( u [ 0 ] + 2 * a [ 0 ] / 3 ) + \ " , \ " + ( u [ 1 ] + 2 * a [ 1 ] / 3 ) + \ " , \ " + f [ 0 ] + \ " , \ " + f [ 1 ] } r e t u r n r } f u n c t i o n Cu ( n,t ) { for ( var e,r=[],i=(1-t ) / 2 , u = n [ 0 ] , o = n [ 1 ] , a = 1 , l = n . l e n g t h ; + + a < l ; ) e = u , u = o , o = n [ a ] , r . push ( [i*(o[0]-e[0] ) , i * ( o [ 1 ] - e [ 1 ] ) ] ) ; r e t u r n r } f u n c t i o n zu ( n ) { if ( n.length<3 ) r e t u r n xu ( n ) ; v a r t = 1 , e = n . l e n g t h , r = n [ 0 ] , i = r [ 0 ] , u = r [ 1 ] , o = [ i , i , i , ( r = n [ 1 ] ) [ 0 ] ] , a = [ u , u , u , r [ 1 ] ] , l = [ i , \ " , \ " , u , \ " L \ " , Ru ( Pl,o ) , \ " , \ " , Ru ( Pl,a ) ] ; for ( n.push(n[e-1] ) ; + + t < = e ; ) r = n [ t ] , o . shift ( ) , o . push ( r[0] ) , a . shift ( ) , a . push ( r[1] ) , Du ( l,o,a ) ; r e t u r n n . pop ( ) , l . push ( \"L\",r),l.join(\"\")}function Lu(n ) { if ( n.length<4 ) r e t u r n xu ( n ) ; for ( var t,e=[],r=-1,i=n.length,u=[0],o=[0];++r<3; ) t = n [ r ] , u . push ( t[0] ) , o . push ( t[1] ) ; for ( e.push(Ru(Pl,u ) + \ " , \ " + Ru ( Pl,o ) ) , - - r ; + + r < i ; ) t = n [ r ] , u . shift ( ) , u . push ( t[0] ) , o . shift ( ) , o . push ( t[1] ) , Du ( e,u,o ) ; r e t u r n e . join ( \"\")}function qu(n ) { for ( var t,e,r=-1,i=n.length,u=i+4,o=[],a=[];++r<4; ) e = n [ r % i ] , o . push ( e[0] ) , a . push ( e[1] ) ; for ( t=[Ru(Pl,o ) , \ " , \ " , Ru ( Pl,a ) ] , - - r ; + + r < u ; ) e = n [ r % i ] , o . shift ( ) , o . push ( e[0] ) , a . shift ( ) , a . push ( e[1] ) , Du ( t,o,a ) ; r e t u r n t . join ( \"\")}function Tu(n,t ) { v a r e = n . l e n g t h - 1 ; if ( e ) for ( var r,i,u=n[0][0],o=n[0][1],a=n[e][0]-u,l=n[e][1]-o,c=-1;++c<=e; ) r = n [ c ] , i = c / e , r [ 0 ] = t * r [ 0 ] + ( 1 - t ) * ( u + i * a ) , \
r [ 1 ] = t * r [ 1 ] + ( 1 - t ) * ( o + i * l ) ; r e t u r n zu ( n ) } f u n c t i o n Ru ( n,t ) { r e t u r n n [ 0 ] * t [ 0 ] + n [ 1 ] * t [ 1 ] + n [ 2 ] * t [ 2 ] + n [ 3 ] * t [ 3 ] } f u n c t i o n Du ( n,t,e ) { n . push ( \"C\",Ru(Rl,t),\",\",Ru(Rl,e),\",\",Ru(Dl,t),\",\",Ru(Dl,e),\",\",Ru(Pl,t),\",\",Ru(Pl,e))}function Pu(n,t ) { return ( t[1]-n[1] ) / ( t [ 0 ] - n [ 0 ] ) } f u n c t i o n Uu ( n ) { for ( var t=0,e=n.length-1,r=[],i=n[0],u=n[1],o=r[0]=Pu(i,u ) ; + + t < e ; ) r [ t ] = ( o + ( o = Pu ( i=u,u=n[t+1] ) ) ) / 2 ; r e t u r n r [ t ] = o , r } f u n c t i o n ju ( n ) { for ( var t,e,r,i,u=[],o=Uu(n ) , a = - 1 , l = n . l e n g t h - 1 ; + + a < l ; ) t = Pu ( n[a],n[a+1] ) , xo ( t ) < U o ? o [ a ] = o [ a + 1 ] = 0 : ( e = o [ a ] / t , r = o [ a + 1 ] / t , i = e * e + r * r , i > 9 & & ( i = 3 * t / M a t h . sqrt ( i ) , o [ a ] = i * e , o [ a + 1 ] = i * r ) ) ; for ( a=-1;++a<=l; ) i = ( n [ M a t h . min ( l,a+1 ) ] [ 0 ] - n [ M a t h . max ( 0,a-1 ) ] [ 0 ] ) / ( 6 * ( 1 + o [ a ] * o [ a ] ) ) , u . push ( [i||0,o[a]*i||0] ) ; r e t u r n u } f u n c t i o n Fu ( n ) { r e t u r n n . l e n g t h < 3 ? xu ( n ) : n [ 0 ] + Au ( n,ju(n ) ) } f u n c t i o n Hu ( n ) { for ( var t,e,r,i=-1,u=n.length;++i<u; ) t = n [ i ] , e = t [ 0 ] , r = t [ 1 ] - I o , t [ 0 ] = e * M a t h . cos ( r ) , t [ 1 ] = e * M a t h . sin ( r ) ; r e t u r n n } f u n c t i o n Ou ( n ) { f u n c t i o n t ( t ) { f u n c t i o n l ( ) { v . push ( \"M\",a(n(y),s),f,c(n(d.reverse()),s),\"Z\")}for(var h,p,g,v=[],d=[],y=[],m=-1,M=t.length,x=En(e ) , b = En ( i ) , _ = e = = = r ? function ( ) { \
r e t u r n p } : En ( r ) , w = i = = = u ? function ( ) { r e t u r n g } : En ( u ) ; + + m < M ; ) o . call ( this,h=t[m],m ) ? ( d . push ( [p=+x.call(this,h,m ) , g = + b . call ( this,h,m ) ] ) , y . push ( [+_.call(this,h,m ) , + w . call ( this,h,m ) ] ) ) : d . l e n g t h & & ( l ( ) , d = [ ] , y = [ ] ) ; r e t u r n d . l e n g t h & & l ( ) , v . l e n g t h ? v . join ( \"\"):null}var e=Ce,r=Ce,i=0,u=ze,o=zt,a=xu,l=a.key,c=a,f=\ "L\" ,s=.7;return t.x=function(n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = r = n , t ) : r } , t . x 0 = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = n , t ) : e } , t . x 1 = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = n , t ) : r } , t . y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = u = n , t ) : u } , t . y 0 = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = n , t ) : i } , t . y 1 = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = n , t ) : u } , t . d e f i n e d = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = n , t ) : o } , t . i n t e r p o l a t e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = \ " f u n c t i o n \ " = = t y p e o f n ? a = n : ( a = T l . get ( n ) | | x u ) . k e y , c = a . r e v e r s e | | a , f = a . c l o s e d ? \ " M \ " : \ " L \ " , t ) : l } , t . t e n s i o n = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( s = n , t ) : s } , t } f u n c t i o n Iu ( n ) { r e t u r n n . r a d i u s } f u n c t i o n Yu ( n ) { r e t u r n [ n . x , n . y ] } f u n c t i o n Zu ( n ) { r e t u r n function ( ) { v a r t = n . apply ( this,arguments ) , e = t [ 0 ] , r = t [ 1 ] - I o ; r e t u r n [ e * M a t h . cos ( r ) , e * M a t h . sin ( r ) ] } } f u n c t i o n Vu ( ) { r e t u r n 6 4 } f u n c t i o n Xu ( ) { r e t u r n \ " c i r c l e \ " } f u n c t i o n $ u ( n ) { v a r t = M a t h . sqrt ( n/Fo ) ; r e t u r n \ " M 0 , \ " + t + \ " A \ " + t + \ " , \ " + t + \ " 0 1 , 1 0 , \ " + - t + \ " A \ " + t + \ " , \ " + t + \ " 0 1 , 1 0 , \ " + t + \ " Z \ " } f u n c t i o n Bu ( n ) { r e t u r n function ( ) { v a r t , e , r ; ( t = t h i s [ n ] ) & & ( r = t [ e = t . a c t i v e ] ) & & ( r . t i m e r . c = n u l l , r . t i m e r . t = N a N , - - t . c o u n t ? d e l e t e t [ e ] : d e l e t e t h i s [ n ] , t . a c t i v e + = . 5 , r . e v e n t & & r . e v e n t . i n t e r r u p t . call ( this,this.__data__,r.index ) ) } } f u n c t i o n Wu ( n,t,e ) { r e t u r n ko ( n,Yl ) , n . n a m e s p a c e = t , n . i d = e , n } f u n c t i o n Ju ( n,t,e,r ) { v a r i = n . i d , u = n . n a m e s p a c e ; r e t u r n Y ( n,\ "function\" ==typeof e?function(n,o,a ) { n [ u ] [ i ] . t w e e n . set ( t,r(e.call(n,n.__data__,o,a ) ) ) } : ( e = r ( e ) , function ( n ) { n [ u ] [ i ] . t w e e n . set ( t,e ) } ) ) } f u n c t i o n Gu ( n ) { r e t u r n n u l l = = n & & ( n = \ " \ " ) , function ( ) { t h i s . t e x t C o n t e n t = n } } f u n c t i o n Ku ( n ) { r e t u r n n u l l = = n ? \ " _ _ t r a n s i t i o n _ _ \ " : \ " _ _ t r a n s i t i o n _ \ " + n + \ " _ _ \ " } f u n c t i o n Qu ( n,t,e,r,i ) { f u n c t i o n u ( n ) { v a r t = v . d e l a y ; r e t u r n f . t = t + l , n > = t ? o ( n-t ) : void ( f.c=o ) } f u n c t i o n o ( e ) { v a r i = g . a c t i v e , u = g [ i ] ; u & & ( u . t i m e r . c = n u l l , u . t i m e r . t = N a N , - - g . c o u n t , d e l e t e g [ i ] , u . e v e n t & & u . e v e n t . i n t e r r u p t . call ( n,n.__data__,\
u . i n d e x ) ) ; for ( var o in g ) if ( r>+o ) { v a r c = g [ o ] ; c . t i m e r . c = n u l l , c . t i m e r . t = N a N , - - g . c o u n t , d e l e t e g [ o ] } f . c = a , qn ( function( ) { r e t u r n f . c & & a ( e||1 ) & & ( f . c = n u l l , f . t = N a N ) , 1 } , 0 , l ) , g . a c t i v e = r , v . e v e n t & & v . e v e n t . s t a r t . call ( n,n.__data__,t ) , p = [ ] , v . t w e e n . forEach ( function(e,r ) { ( r = r . call ( n,n.__data__,t ) ) & & p . push ( r ) } ) , h = v . e a s e , s = v . d u r a t i o n } f u n c t i o n a ( i ) { for ( var u=i/s,o=h(u ) , a = p . l e n g t h ; a > 0 ; ) p [ - - a ] . call ( n,o ) ; r e t u r n u > = 1 ? ( v . e v e n t & & v . e v e n t . e n d . call ( n,n.__data__,t ) , - - g . c o u n t ? d e l e t e g [ r ] : d e l e t e n [ e ] , 1 ) : v o i d 0 } v a r l , f , s , h , p , g = n [ e ] | | ( n [ e ] = { a c t i v e : 0 , c o u n t : 0 } ) , v = g [ r ] ; v | | ( l = i . t i m e , f = qn ( u,0,l ) , v = g [ r ] = { t w e e n : n e w c , t i m e : l , t i m e r : f , d e l a y : i . d e l a y , d u r a t i o n : i . d u r a t i o n , e a s e : i . e a s e , i n d e x : t } , i = n u l l , + + g . c o u n t ) } f u n c t i o n no ( n,t,e ) { n . attr ( \"transform\",function(n){var r=t(n ) ; r e t u r n \ " translate ( \"+(isFinite(r)?r:e(n))+\",0)\"})}function to(n,t,e ) { n . attr ( \"transform\",function(n){var r=t(n ) ; r e t u r n \ " translate ( 0,\ "+(isFinite(r)?r:e(n))+\" ) \ " } ) } f u n c t i o n eo ( n ) { r e t u r n n . toISOString ( ) } f u n c t i o n ro ( n,t,e ) { f u n c t i o n r ( t ) { r e t u r n n ( t ) } f u n c t i o n i ( n,e ) { v a r r = n [ 1 ] - n [ 0 ] , i = r / e , u = a o . bisect ( Kl,i ) ; r e t u r n u = = K l . l e n g t h ? [ t . y e a r , Ki ( n.map(function(n ) { r e t u r n n / 3 1 5 3 6 e 6 } ) , e ) [ 2 ] ] : u ? t [ i / K l [ u - 1 ] < K l [ u ] / i ? u - 1 : u ] : [ t c , Ki ( n,e ) [ 2 ] ] } r e t u r n r . i n v e r t = function ( t ) { r e t u r n io ( n.invert(t ) ) } , r . d o m a i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n . domain ( t ) , r ) : n . domain ( ) . map ( io ) } , r . n i c e = function ( n,t ) { f u n c t i o n e ( e ) { r e t u r n ! isNaN ( e ) & & ! n . range ( e,io(+e+1 ) , t ) . l e n g t h } v a r u = r . domain ( ) , o = Yi ( u ) , a = n u l l = = n ? i ( o,10 ) : \ " n u m b e r \ " = = t y p e o f n & & i ( o,n ) ; r e t u r n a & & ( n = a [ 0 ] , t = a [ 1 ] ) , r . domain ( Xi(u,t>1?{floor:function(t ) { for ( ;e(t=n.floor(t ) ) ; ) t = io ( t-1 ) ; r e t u r n t } , c e i l : function ( t ) { for ( ;e(t=n.ceil(t ) ) ; ) t = io ( +t+1 ) ; r e t u r n t } } : n ) ) } , r . t i c k s = function ( n,t ) { v a r e = Yi ( r.domain( ) ) , u = n u l l = = n ? i ( e,10 ) : \ " n u m b e r \ " = = t y p e o f n ? i ( e,n ) : ! n . r a n g e & & [ { r a n g e : n } , t ] ; r e t u r n u & & ( n = u [ 0 ] , t = u [ 1 ] ) , n . range ( e[0],io(+e[1]+1 ) , 1 > t ? 1 : t ) } , r . t i c k F o r m a t = function ( ) { r e t u r n e } , r . c o p y = function ( ) { r e t u r n ro ( n.copy( ) , t , e ) } , Ji ( r,n ) } f u n c t i o n io ( n ) { r e t u r n n e w Date ( n ) } f u n c t i o n uo ( n ) { r e t u r n J S O N . parse ( n.responseText ) } f u n c t i o n oo ( n ) { v a r t = f o . createRange ( ) ; r e t u r n t . selectNode ( fo.body ) , t . createContextualFragment ( n.responseText ) } v a r \
a o = { v e r s i o n : \ " 3 . 5 . 1 7 \ " } , l o = [ ] . s l i c e , c o = function ( n ) { r e t u r n l o . call ( n ) } , f o = t h i s . d o c u m e n t ; if ( fo ) t r y { co ( fo.documentElement.childNodes ) [ 0 ] . n o d e T y p e } catch ( so ) { c o = function ( n ) { for ( var t=n.length,e=new Array(t ) ; t - - ; ) e [ t ] = n [ t ] ; r e t u r n e } } if ( Date.now||(Date.now=function( ) { r e t u r n + n e w D a t e } ) , f o ) t r y { f o . createElement ( \"DIV\").style.setProperty(\"opacity\",0,\"\")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t ) { g o . call ( this,n,t+\ "\" ) } , p o . s e t A t t r i b u t e N S = function ( n,t,e ) { v o . call ( this,n,t,e+\ "\" ) } , y o . s e t P r o p e r t y = function ( n,t,e ) { m o . call ( this,n,t+\ "\" ,e ) } } a o . a s c e n d i n g = e , a o . d e s c e n d i n g = function ( n,t ) { r e t u r n n > t ? - 1 : t > n ? 1 : t > = n ? 0 : N a N } , a o . m i n = function ( n,t ) { v a r e , r , i = - 1 , u = n . l e n g t h ; if ( 1===arguments.length ) { for ( ;++i<u; ) if ( null!=(r=n[i] ) & & r > = r ) { e = r ; b r e a k } for ( ;++i<u; ) n u l l ! = ( r = n [ i ] ) & & e > r & & ( e = r ) } e l s e { for ( ;++i<u; ) if ( null!=(r=t.call(n,n[i],i ) ) & & r > = r ) { e = r ; b r e a k } for ( ;++i<u; ) n u l l ! = ( r = t . call ( n,n[i],i ) ) & & e > r & & ( e = r ) } r e t u r n e } , a o . m a x = function ( n,t ) { v a r e , r , i = - 1 , u = n . l e n g t h ; if ( 1===arguments.length ) { for ( ;++i<u; ) if ( null!=(r=n[i] ) & & r > = r ) { e = r ; b r e a k } for ( ;++i<u; ) n u l l ! = ( r = n [ i ] ) & & r > e & & ( e = r ) } e l s e { for ( ;++i<u; ) if ( null!=(r=t.call(n,n[i],i ) ) & & r > = r ) { e = r ; b r e a k } for ( ;++i<u; ) n u l l ! = ( r = t . call ( n,n[i],i ) ) & & r > e & & ( e = r ) } r e t u r n e } , a o . e x t e n t = function ( n,t ) { v a r e , r , i , u = - 1 , o = n . l e n g t h ; if ( 1===arguments.length ) { for ( ;++u<o; ) if ( null!=(r=n[u] ) & & r > = r ) { e = i = r ; b r e a k } for ( ;++u<o; ) n u l l ! = ( r = n [ u ] ) & & ( e > r & & ( e = r ) , r > i & & ( i = r ) ) } e l s e { for ( ;++u<o; ) if ( null!=(r=t.call(n,n[u],u ) ) & & r > = r ) { e = i = r ; b r e a k } for ( ;++u<o; ) n u l l ! = ( r = t . call ( n,n[u],u ) ) & & ( e > r & & ( e = r ) , r > i & & ( i = r ) ) } r e t u r n [ e , i ] } , a o . s u m = function ( n,t ) { v a r e , r = 0 , u = n . l e n g t h , o = - 1 ; if ( 1===arguments.length ) for ( ;++o<u; ) i ( e=+n[o] ) & & ( r + = e ) ; e l s e for ( ;++o<u; ) i ( e=+t.call(n,n[o],o ) ) & & ( r + = e ) ; r e t u r n r } , a o . m e a n = function ( n,t ) { v a r e , u = 0 , o = n . l e n g t h , a = - 1 , l = o ; if ( 1===arguments.length ) for ( ;++a<o; ) i ( e=r(n[a] ) ) ? u + = e : - - l ; e l s e for ( ;++a<o; ) i ( e=r(t.call(n,n[a],a ) ) ) ? u + = e : - - l ; r e t u r n l ? u / l : v o i d 0 } , a o . q u a n t i l e = function ( n,t ) { v a r e = ( n . l e n g t h - 1 ) * t + 1 , r = M a t h . floor ( e ) , i = + n [ r - 1 ] , u = e - r ; r e t u r n u ? i + u * ( n [ r ] - i ) : i } , a o . m e d i a n = function ( n,\
t ) { v a r u , o = [ ] , a = n . l e n g t h , l = - 1 ; if ( 1===arguments.length ) for ( ;++l<a; ) i ( u=r(n[l] ) ) & & o . push ( u ) ; e l s e for ( ;++l<a; ) i ( u=r(t.call(n,n[l],l ) ) ) & & o . push ( u ) ; r e t u r n o . l e n g t h ? a o . quantile ( o.sort(e ) , . 5 ) : v o i d 0 } , a o . v a r i a n c e = function ( n,t ) { v a r e , u , o = n . l e n g t h , a = 0 , l = 0 , c = - 1 , f = 0 ; if ( 1===arguments.length ) for ( ;++c<o; ) i ( e=r(n[c] ) ) & & ( u = e - a , a + = u / + + f , l + = u * ( e - a ) ) ; e l s e for ( ;++c<o; ) i ( e=r(t.call(n,n[c],c ) ) ) & & ( u = e - a , a + = u / + + f , l + = u * ( e - a ) ) ; r e t u r n f > 1 ? l / ( f - 1 ) : v o i d 0 } , a o . d e v i a t i o n = function ( ) { v a r n = a o . v a r i a n c e . apply ( this,arguments ) ; r e t u r n n ? M a t h . sqrt ( n ) : n } ; v a r M o = u ( e ) ; a o . b i s e c t L e f t = M o . l e f t , a o . b i s e c t = a o . b i s e c t R i g h t = M o . r i g h t , a o . b i s e c t o r = function ( n ) { r e t u r n u ( 1===n.length?function(t,r ) { r e t u r n e ( n(t ) , r ) } : n ) } , a o . s h u f f l e = function ( n,t,e ) { ( u = a r g u m e n t s . l e n g t h ) < 3 & & ( e = n . l e n g t h , 2 > u & & ( t = 0 ) ) ; for ( var r,i,u=e-t;u; ) i = M a t h . random ( ) * u - - | 0 , r = n [ u + t ] , n [ u + t ] = n [ i + t ] , n [ i + t ] = r ; r e t u r n n } , a o . p e r m u t e = function ( n,t ) { for ( var e=t.length,r=new Array(e ) ; e - - ; ) r [ e ] = n [ t [ e ] ] ; r e t u r n r } , a o . p a i r s = function ( n ) { for ( var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r ) ; r > e ; ) u [ e ] = [ t = i , i = n [ + + e ] ] ; r e t u r n u } , a o . t r a n s p o s e = function ( n ) { if ( !(i=n.length ) ) r e t u r n [ ] ; for ( var t=-1,e=ao.min(n,o ) , r = n e w Array ( e ) ; + + t < e ; ) for ( var i,u=-1,a=r[t]=new Array(i ) ; + + u < i ; ) a [ u ] = n [ u ] [ t ] ; r e t u r n r } , a o . z i p = function ( ) { r e t u r n a o . transpose ( arguments ) } , a o . k e y s = function ( n ) { v a r t = [ ] ; for ( var e in n ) t . push ( e ) ; r e t u r n t } , a o . v a l u e s = function ( n ) { v a r t = [ ] ; for ( var e in n ) t . push ( n[e] ) ; r e t u r n t } , a o . e n t r i e s = function ( n ) { v a r t = [ ] ; for ( var e in n ) t . push ( {key:e,value:n[e]} ) ; r e t u r n t } , a o . m e r g e = function ( n ) { for ( var t,e,r,i=n.length,u=-1,o=0;++u<i; ) o + = n [ u ] . l e n g t h ; for ( e=new Array(o ) ; - - i > = 0 ; ) for ( r=n[i],t=r.length;--t>=0; ) e [ - - o ] = r [ t ] ; r e t u r n e } ; v a r x o = M a t h . a b s ; a o . r a n g e = function ( n,t,e ) { if ( arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0 ) ) , ( t - n ) / e = = = 1 / 0 ) t h r o w n e w Error ( \"infinite range\ " ) ; v a r r , i = [ ] , u = a ( xo(e ) ) , o = - 1 ; if ( n*=u,t*=u,e*=u,0>e ) for ( ;(r=n+e*++o ) > t ; ) i . push ( r/u ) ; e l s e for ( ;(r=n+e*++o ) < t ; ) i . push ( r/u ) ; r e t u r n i } , a o . m a p = function ( n,t ) { v a r e = n e w c ; if ( n instanceof c ) n . forEach ( function(n,t ) { e . set ( n,t ) } ) ; e l s e if ( Array.isArray(n ) ) { v a r r , i = - 1 , u = n . l e n g t h ; if ( 1===arguments.length ) for ( ;\
+ + i < u ; ) e . set ( i,n[i] ) ; e l s e for ( ;++i<u; ) e . set ( t.call(n,r=n[i],i ) , r ) } e l s e for ( var o in n ) e . set ( o,n[o] ) ; r e t u r n e } ; v a r b o = \ " _ _ p r o t o _ _ \ " , _ o = \ " \ \ x 0 0 \ " ; l ( c,{has:h,get:function(n ) { r e t u r n t h i s . _ [ f ( n ) ] } , s e t : function ( n,t ) { r e t u r n t h i s . _ [ f ( n ) ] = t } , r e m o v e : p , k e y s : g , v a l u e s : function ( ) { v a r n = [ ] ; for ( var t in this._ ) n . push ( this._[t] ) ; r e t u r n n } , e n t r i e s : function ( ) { v a r n = [ ] ; for ( var t in this._ ) n . push ( {key:s(t ) , v a l u e : t h i s . _ [ t ] } ) ; r e t u r n n } , s i z e : v , e m p t y : d , f o r E a c h : function ( n ) { for ( var t in this._ ) n . call ( this,s(t ) , t h i s . _ [ t ] ) } } ) , a o . n e s t = function ( ) { f u n c t i o n n ( t,o,a ) { if ( a>=u.length ) r e t u r n r ? r . call ( i,o ) : e ? o . sort ( e ) : o ; for ( var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p<g; ) ( h = d . get ( l=v(f=o[p] ) ) ) ? h . push ( f ) : d . set ( l,[f] ) ; r e t u r n t ? ( f = t ( ) , s = function ( e,r ) { f . set ( e,n(t,r,a ) ) } ) : ( f = { } , s = function ( e,r ) { f [ e ] = n ( t,r,a ) } ) , d . forEach ( s ) , f } f u n c t i o n t ( n,e ) { if ( e>=u.length ) r e t u r n n ; v a r r = [ ] , i = o [ e + + ] ; r e t u r n n . forEach ( function(n,i ) { r . push ( {key:n,values:t(i,e ) } ) } ) , i ? r . sort ( function(n,t ) { r e t u r n i ( n.key,t.key ) } ) : r } v a r e , r , i = { } , u = [ ] , o = [ ] ; r e t u r n i . m a p = function ( t,e ) { r e t u r n n ( e,t,0 ) } , i . e n t r i e s = function ( e ) { r e t u r n t ( n(ao.map,e,0 ) , 0 ) } , i . k e y = function ( n ) { r e t u r n u . push ( n ) , i } , i . s o r t K e y s = function ( n ) { r e t u r n o [ u . l e n g t h - 1 ] = n , i } , i . s o r t V a l u e s = function ( n ) { r e t u r n e = n , i } , i . r o l l u p = function ( n ) { r e t u r n r = n , i } , i } , a o . s e t = function ( n ) { v a r t = n e w y ; if ( n ) for ( var e=0,r=n.length;r>e;++e ) t . add ( n[e] ) ; r e t u r n t } , l ( y,{has:h,add:function(n ) { r e t u r n t h i s . _ [ f ( n+=\ "\" ) ] = ! 0 , n } , r e m o v e : p , v a l u e s : g , s i z e : v , e m p t y : d , f o r E a c h : function ( n ) { for ( var t in this._ ) n . call ( this,s(t ) ) } } ) , a o . b e h a v i o r = { } , a o . r e b i n d = function ( n,t ) { for ( var e,r=1,i=arguments.length;++r<i; ) n [ e = a r g u m e n t s [ r ] ] = M ( n,t,t[e] ) ; r e t u r n n } ; v a r w o = [ \ " w e b k i t \ " , \ " m s \ " , \ " m o z \ " , \ " M o z \ " , \ " o \ " , \ " O \ " ] ; a o . d i s p a t c h = function ( ) { for ( var n=new _,t=-1,e=arguments.length;++t<e; ) n [ a r g u m e n t s [ t ] ] = w ( n ) ; r e t u r n n } , _ . p r o t o t y p e . o n = function ( n,t ) { v a r e = n . indexOf ( \".\"),r=\"\";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r ) : t h i s [ n ] . on ( r,t ) ; if ( 2===arguments.length ) { if ( null==t ) for ( n in this ) t h i s . hasOwnProperty ( n ) & & t h i s [ n ] . on ( r,null ) ; r e t u r n t h i s } } , a o . e v e n t = n u l l , a o . r e q u o t e = function ( n ) { r e t u r n \
n . replace ( So,\ "\\\\$&\" ) } ; v a r S o = / [ \ \ \ \ \ \ ^ \ \ $ \ \ * \ \ + \ \ ? \ \ | \ \ [ \ \ ] \ \ ( \ \ ) \ \ . \ \ { \ \ } ] / g , k o = { } . _ _ p r o t o _ _ ? function ( n,t ) { n . _ _ p r o t o _ _ = t } : function ( n,t ) { for ( var e in t ) n [ e ] = t [ e ] } , N o = function ( n,t ) { r e t u r n t . querySelector ( n ) } , E o = function ( n,t ) { r e t u r n t . querySelectorAll ( n ) } , A o = function ( n,t ) { v a r e = n . m a t c h e s | | n [ x ( n,\ "matchesSelector\" ) ] ; return ( Ao=function(n,t ) { r e t u r n e . call ( n,t ) } ) ( n , t ) } ; \ " f u n c t i o n \ " = = t y p e o f S i z z l e & & ( N o = function ( n,t ) { r e t u r n Sizzle ( n,t ) [ 0 ] | | n u l l } , E o = S i z z l e , A o = S i z z l e . m a t c h e s S e l e c t o r ) , a o . s e l e c t i o n = function ( ) { r e t u r n a o . select ( fo.documentElement ) } ; v a r C o = a o . s e l e c t i o n . p r o t o t y p e = [ ] ; C o . s e l e c t = function ( n ) { v a r t , e , r , i , u = [ ] ; n = A ( n ) ; for ( var o=-1,a=this.length;++o<a; ) { u . push ( t=[] ) , t . p a r e n t N o d e = ( r = t h i s [ o ] ) . p a r e n t N o d e ; for ( var l=-1,c=r.length;++l<c; ) ( i = r [ l ] ) ? ( t . push ( e=n.call(i,i.__data__,l,o ) ) , e & & \ " _ _ d a t a _ _ \ " i n i & & ( e . _ _ d a t a _ _ = i . _ _ d a t a _ _ ) ) : t . push ( null ) } r e t u r n E ( u ) } , C o . s e l e c t A l l = function ( n ) { v a r t , e , r = [ ] ; n = C ( n ) ; for ( var i=-1,u=this.length;++i<u; ) for ( var o=this[i],a=-1,l=o.length;++a<l; ) ( e = o [ a ] ) & & ( r . push ( t=co(n.call(e,e.__data__,a,i ) ) ) , t . p a r e n t N o d e = e ) ; r e t u r n E ( r ) } ; v a r z o = \ " h t t p : / / w w w . w 3 . o r g / 1 9 9 9 / x h t m l \ " , L o = { s v g : \ " h t t p : / / w w w . w 3 . o r g / 2 0 0 0 / s v g \ " , x h t m l : z o , x l i n k : \ " h t t p : / / w w w . w 3 . o r g / 1 9 9 9 / x l i n k \ " , x m l : \ " h t t p : / / w w w . w 3 . o r g / X M L / 1 9 9 8 / n a m e s p a c e \ " , x m l n s : \ " h t t p : / / w w w . w 3 . o r g / 2 0 0 0 / x m l n s / \ " } ; a o . n s = { p r e f i x : L o , q u a l i f y : function ( n ) { v a r t = n . indexOf ( \":\"),e=n;return t>=0&&\ "xmlns\" !==(e=n.slice(0,t ) ) & & ( n = n . slice ( t+1 ) ) , L o . hasOwnProperty ( e ) ? { s p a c e : L o [ e ] , l o c a l : n } : n } } , C o . a t t r = function ( n,t ) { if ( arguments.length<2 ) { if ( \"string\"==typeof n ) { v a r e = t h i s . node ( ) ; r e t u r n n = a o . n s . qualify ( n ) , n . l o c a l ? e . getAttributeNS ( n.space,n.local ) : e . getAttribute ( n ) } for ( t in n ) t h i s . each ( z(t,n[t] ) ) ; r e t u r n t h i s } r e t u r n t h i s . each ( z(n,t ) ) } , C o . c l a s s e d = function ( n,t ) { if ( arguments.length<2 ) { if ( \"string\"==typeof n ) { v a r e = t h i s . node ( ) , r = ( n = T ( n ) ) . l e n g t h , i = - 1 ; if ( t=e.classList ) { for ( ;++i<r; ) if ( !t.contains(n[i] ) ) r e t u r n ! 1 } e l s e for ( t=e.getAttribute(\ "class\" ) ; + + i < r ; ) if ( !q(n[i] ) . test ( t ) ) r e t u r n ! 1 ; r e t u r n ! 0 } for ( t in n ) t h i s . each ( R(t,n[t] ) ) ; r e t u r n t h i s } r e t u r n t h i s . each ( R(n,t ) ) } , C o . s t y l e = function ( n,e,r ) { v a r i = a r g u m e n t s . l e n g t h ; if ( 3>i ) { if ( \"string\"!=typeof n ) { 2 > i & & ( e = \ " \ " ) ; \
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
2022-04-02 18:58:23 +02:00
file ( APPEND "${METABENCH_DIR}/d3.js"
" \
2019-05-17 22:41:46 +02:00
for ( r in n ) t h i s . each ( P(r,n[r],e ) ) ; r e t u r n t h i s } if ( 2>i ) { v a r u = t h i s . node ( ) ; r e t u r n t ( u ) . getComputedStyle ( u,null ) . getPropertyValue ( n ) } r = \ " \ " } r e t u r n t h i s . each ( P(n,e,r ) ) } , C o . p r o p e r t y = function ( n,t ) { if ( arguments.length<2 ) { if ( \"string\"==typeof n ) r e t u r n t h i s . node ( ) [ n ] ; for ( t in n ) t h i s . each ( U(t,n[t] ) ) ; r e t u r n t h i s } r e t u r n t h i s . each ( U(n,t ) ) } , C o . t e x t = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? t h i s . each ( \"function\"==typeof n?function( ) { v a r t = n . apply ( this,arguments ) ; t h i s . t e x t C o n t e n t = n u l l = = t ? \ " \ " : t } : n u l l = = n ? function ( ) { t h i s . t e x t C o n t e n t = \ " \ " } : function ( ) { t h i s . t e x t C o n t e n t = n } ) : t h i s . node ( ) . t e x t C o n t e n t } , C o . h t m l = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? t h i s . each ( \"function\"==typeof n?function( ) { v a r t = n . apply ( this,arguments ) ; t h i s . i n n e r H T M L = n u l l = = t ? \ " \ " : t } : n u l l = = n ? function ( ) { t h i s . i n n e r H T M L = \ " \ " } : function ( ) { t h i s . i n n e r H T M L = n } ) : t h i s . node ( ) . i n n e r H T M L } , C o . a p p e n d = function ( n ) { r e t u r n n = j ( n ) , t h i s . select ( function( ) { r e t u r n t h i s . appendChild ( n.apply(this,arguments ) ) } ) } , C o . i n s e r t = function ( n,t ) { r e t u r n n = j ( n ) , t = A ( t ) , t h i s . select ( function( ) { r e t u r n t h i s . insertBefore ( n.apply(this,arguments ) , t . apply ( this,arguments ) | | n u l l ) } ) } , C o . r e m o v e = function ( ) { r e t u r n t h i s . each ( F ) } , C o . d a t a = function ( n,t ) { f u n c t i o n e ( n,e ) { v a r r , i , u , o = n . l e n g t h , s = e . l e n g t h , h = M a t h . min ( o,s ) , p = n e w Array ( s ) , g = n e w Array ( s ) , v = n e w Array ( o ) ; if ( t ) { v a r d , y = n e w c , m = n e w Array ( o ) ; for ( r=-1;++r<o; ) ( i = n [ r ] ) & & ( y . has ( d=t.call(i,i.__data__,r ) ) ? v [ r ] = i : y . set ( d,i ) , m [ r ] = d ) ; for ( r=-1;++r<s; ) ( i = y . get ( d=t.call(e,u=e[r],r ) ) ) ? i ! = = ! 0 & & ( p [ r ] = i , i . _ _ d a t a _ _ = u ) : g [ r ] = H ( u ) , y . set ( d,!0 ) ; for ( r=-1;++r<o; ) r i n m & & y . get ( m[r] ) ! = = ! 0 & & ( v [ r ] = n [ r ] ) } e l s e { for ( r=-1;++r<h; ) i = n [ r ] , u = e [ r ] , i ? ( i . _ _ d a t a _ _ = u , p [ r ] = i ) : g [ r ] = H ( u ) ; for ( ;s>r;++r ) g [ r ] = H ( e[r] ) ; for ( ;o>r;++r ) v [ r ] = n [ r ] } g . u p d a t e = p , g . p a r e n t N o d e = p . p a r e n t N o d e = v . p a r e n t N o d e = n . p a r e n t N o d e , a . push ( g ) , l . push ( p ) , f . push ( v ) } v a r r , i , u = - 1 , o = t h i s . l e n g t h ; if ( !arguments.length ) { for ( n=new Array(o=(r=this[0] ) . l e n g t h ) ; + + u < o ; ) ( i = r [ u ] ) & & ( n [ u ] = i . _ _ d a t a _ _ ) ; r e t u r n n } v a r a = Z ( [] ) , l = E ( [] ) , f = E ( [] ) ; if ( \"function\"==typeof n ) for ( ;++u<o; ) e ( r=this[u],n.call(r,r.parentNode.__data__,u ) ) ; e l s e for ( ;++u<o; ) e ( r=this[u],n ) ; r e t u r n l . e n t e r = function ( ) { r e t u r n a } , l . e x i t = function ( ) { r e t u r n \
f } , l } , C o . d a t u m = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? t h i s . property ( \"__data__\",n):this.property(\"__data__\")},Co.filter=function(n){var t,e,r,i=[];\ "function\" !=typeof n&&(n=O(n ) ) ; for ( var u=0,o=this.length;o>u;u++ ) { i . push ( t=[] ) , t . p a r e n t N o d e = ( e = t h i s [ u ] ) . p a r e n t N o d e ; for ( var a=0,l=e.length;l>a;a++ ) ( r = e [ a ] ) & & n . call ( r,r.__data__,a,u ) & & t . push ( r ) } r e t u r n E ( i ) } , C o . o r d e r = function ( ) { for ( var n=-1,t=this.length;++n<t; ) for ( var e,r=this[n],i=r.length-1,u=r[i];--i>=0; ) ( e = r [ i ] ) & & ( u & & u ! = = e . n e x t S i b l i n g & & u . p a r e n t N o d e . insertBefore ( e,u ) , u = e ) ; r e t u r n t h i s } , C o . s o r t = function ( n ) { n = I . apply ( this,arguments ) ; for ( var t=-1,e=this.length;++t<e; ) t h i s [ t ] . sort ( n ) ; r e t u r n t h i s . order ( ) } , C o . e a c h = function ( n ) { r e t u r n Y ( this,function(t,e,r ) { n . call ( t,t.__data__,e,r ) } ) } , C o . c a l l = function ( n ) { v a r t = co ( arguments ) ; r e t u r n n . apply ( t[0]=this,t ) , t h i s } , C o . e m p t y = function ( ) { r e t u r n ! t h i s . node ( ) } , C o . n o d e = function ( ) { for ( var n=0,t=this.length;t>n;n++ ) for ( var e=this[n],r=0,i=e.length;i>r;r++ ) { v a r u = e [ r ] ; if ( u ) r e t u r n u } r e t u r n n u l l } , C o . s i z e = function ( ) { v a r n = 0 ; r e t u r n Y ( this,function( ) { + + n } ) , n } ; v a r q o = [ ] ; a o . s e l e c t i o n . e n t e r = Z , a o . s e l e c t i o n . e n t e r . p r o t o t y p e = q o , q o . a p p e n d = C o . a p p e n d , q o . e m p t y = C o . e m p t y , q o . n o d e = C o . n o d e , q o . c a l l = C o . c a l l , q o . s i z e = C o . s i z e , q o . s e l e c t = function ( n ) { for ( var t,e,r,i,u,o=[],a=-1,l=this.length;++a<l; ) { r = ( i = t h i s [ a ] ) . u p d a t e , o . push ( t=[] ) , t . p a r e n t N o d e = i . p a r e n t N o d e ; for ( var c=-1,f=i.length;++c<f; ) ( u = i [ c ] ) ? ( t . push ( r[c]=e=n.call(i.parentNode,u.__data__,c,a ) ) , e . _ _ d a t a _ _ = u . _ _ d a t a _ _ ) : t . push ( null ) } r e t u r n E ( o ) } , q o . i n s e r t = function ( n,t ) { r e t u r n a r g u m e n t s . l e n g t h < 2 & & ( t = V ( this ) ) , C o . i n s e r t . call ( this,n,t ) } , a o . s e l e c t = function ( t ) { v a r e ; r e t u r n \ " s t r i n g \ " = = t y p e o f t ? ( e = [ No ( t,fo ) ] , e . p a r e n t N o d e = f o . d o c u m e n t E l e m e n t ) : ( e = [ t ] , e . p a r e n t N o d e = n ( t ) ) , E ( [e] ) } , a o . s e l e c t A l l = function ( n ) { v a r t ; r e t u r n \ " s t r i n g \ " = = t y p e o f n ? ( t = co ( Eo(n,fo ) ) , t . p a r e n t N o d e = f o . d o c u m e n t E l e m e n t ) : ( t = co ( n ) , t . p a r e n t N o d e = n u l l ) , E ( [t] ) } , C o . o n = function ( n,t,e ) { v a r r = a r g u m e n t s . l e n g t h ; if ( 3>r ) { if ( \"string\"!=typeof n ) { 2 > r & & ( t = ! 1 ) ; for ( e in n ) t h i s . each ( X(e,n[e],t ) ) ; r e t u r n t h i s } if ( 2>r ) return ( r=this.node( ) [ \ " _ _ o n \ " + n ] ) & & r . _ ; e = ! 1 } r e t u r n t h i s . each ( X(n,t,e ) ) } ; v a r T o = a o . map ( {mouseenter:\ "mouseover\" ,\
m o u s e l e a v e : \ " m o u s e o u t \ " } ) ; f o & & T o . forEach ( function(n ) { \ " o n \ " + n i n f o & & T o . remove ( n ) } ) ; v a r R o , D o = 0 ; a o . m o u s e = function ( n ) { r e t u r n J ( n,k( ) ) } ; v a r P o = t h i s . n a v i g a t o r & & / W e b K i t / . test ( this.navigator.userAgent ) ? - 1 : 0 ; a o . t o u c h = function ( n,t,e ) { if ( arguments.length<3&&(e=t,t=k( ) . c h a n g e d T o u c h e s ) , t ) for ( var r,i=0,u=t.length;u>i;++i ) if ( ( r=t[i] ) .identifier===e ) r e t u r n J ( n,r ) } , a o . b e h a v i o r . d r a g = function ( ) { f u n c t i o n n ( ) { t h i s . on ( \"mousedown.drag\",u).on(\"touchstart.drag\",o)}function e(n,t,e,u,o ) { r e t u r n function ( ) { f u n c t i o n a ( ) { v a r n , e , r = t ( h,v ) ; r & & ( n = r [ 0 ] - M [ 0 ] , e = r [ 1 ] - M [ 1 ] , g | = n | e , M = r , p ( {type:\ "drag\" ,x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e} ) ) } f u n c t i o n l ( ) { t ( h,v ) & & ( y . on ( u+d,null ) . on ( o+d,null ) , m ( g ) , p ( {type:\ "dragend\" } ) ) } v a r c , f = t h i s , s = a o . e v e n t . t a r g e t . c o r r e s p o n d i n g E l e m e n t | | a o . e v e n t . t a r g e t , h = f . p a r e n t N o d e , p = r . of ( f,arguments ) , g = 0 , v = n ( ) , d = \ " . d r a g \ " + ( n u l l = = v ? \ " \ " : \ " - \ " + v ) , y = a o . select ( e(s ) ) . on ( u+d,a ) . on ( o+d,l ) , m = W ( s ) , M = t ( h,v ) ; i ? ( c = i . apply ( f,arguments ) , c = [ c . x - M [ 0 ] , c . y - M [ 1 ] ] ) : c = [ 0 , 0 ] , p ( {type:\ "dragstart\" } ) } } v a r r = N ( n,\ "drag\" ,\ "dragstart\" ,\ "dragend\" ) , i = n u l l , u = e ( b,ao.mouse,t,\ "mousemove\" ,\ "mouseup\" ) , o = e ( G,ao.touch,m,\ "touchmove\" ,\ "touchend\" ) ; r e t u r n n . o r i g i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = t , n ) : i } , a o . rebind ( n,r,\ "on\" ) } , a o . t o u c h e s = function ( n,t ) { r e t u r n a r g u m e n t s . l e n g t h < 2 & & ( t = k ( ) . t o u c h e s ) , t ? co ( t ) . map ( function(t ) { v a r e = J ( n,t ) ; r e t u r n e . i d e n t i f i e r = t . i d e n t i f i e r , e } ) : [ ] } ; v a r U o = 1 e - 6 , j o = U o * U o , F o = M a t h . P I , H o = 2 * F o , O o = H o - U o , I o = F o / 2 , Y o = F o / 1 8 0 , Z o = 1 8 0 / F o , V o = M a t h . S Q R T 2 , X o = 2 , $ o = 4 ; a o . i n t e r p o l a t e Z o o m = function ( n,t ) { v a r e , r , i = n [ 0 ] , u = n [ 1 ] , o = n [ 2 ] , a = t [ 0 ] , l = t [ 1 ] , c = t [ 2 ] , f = a - i , s = l - u , h = f * f + s * s ; if ( jo>h ) r = M a t h . log ( c/o ) / V o , e = function ( n ) { r e t u r n [ i + n * f , u + n * s , o * M a t h . exp ( Vo*n*r ) ] } ; e l s e { v a r p = M a t h . sqrt ( h ) , g = ( c * c - o * o + $ o * h ) / ( 2 * o * X o * p ) , v = ( c * c - o * o - $ o * h ) / ( 2 * c * X o * p ) , d = M a t h . log ( Math.sqrt(g*g+1 ) - g ) , y = M a t h . log ( Math.sqrt(v*v+1 ) - v ) ; r = ( y - d ) / V o , e = function ( n ) { v a r t = n * r , e = rn ( d ) , a = o / ( X o * p ) * ( e * un ( Vo*t+d ) - en ( d ) ) ; r e t u r n [ i + a * f , u + a * s , o * e / rn ( Vo*t+d ) ] } } r e t u r n e . d u r a t i o n = 1 e 3 * r , e } , a o . b e h a v i o r . z o o m = function ( ) { f u n c t i o n n ( n ) { n . on ( L,s ) . on ( Wo+\ ".zoom\" ,p ) . on ( \"dblclick.zoom\",g).on(R,h)}function e(n ) { r e t u r n [ ( n [ 0 ] - k . x ) / k . k , ( n [ 1 ] - k . y ) / k . k ] } f u n c t i o n r ( n ) { r e t u r n [ n [ 0 ] * k . k + k . x , \
n [ 1 ] * k . k + k . y ] } f u n c t i o n i ( n ) { k . k = M a t h . max ( A[0],Math.min(A[1],n ) ) } f u n c t i o n u ( n,t ) { t = r ( t ) , k . x + = n [ 0 ] - t [ 0 ] , k . y + = n [ 1 ] - t [ 1 ] } f u n c t i o n o ( t,e,r,o ) { t . _ _ c h a r t _ _ = { x : k . x , y : k . y , k : k . k } , i ( Math.pow(2,o ) ) , u ( d=e,r ) , t = a o . select ( t ) , C > 0 & & ( t = t . transition ( ) . duration ( C ) ) , t . call ( n.event ) } f u n c t i o n a ( ) { b & & b . domain ( x.range( ) . map ( function(n ) { return ( n-k.x ) / k . k } ) . map ( x.invert ) ) , w & & w . domain ( _.range( ) . map ( function(n ) { return ( n-k.y ) / k . k } ) . map ( _.invert ) ) } f u n c t i o n l ( n ) { z + + | | n ( {type:\ "zoomstart\" } ) } f u n c t i o n c ( n ) { a ( ) , n ( {type:\ "zoom\" ,scale:k.k,translate:[k.x,k.y]} ) } f u n c t i o n f ( n ) { - - z | | ( n ( {type:\ "zoomend\" } ) , d = n u l l ) } f u n c t i o n s ( ) { f u n c t i o n n ( ) { a = 1 , u ( ao.mouse(i ) , h ) , c ( o ) } f u n c t i o n r ( ) { s . on ( q,null ) . on ( T,null ) , p ( a ) , f ( o ) } v a r i = t h i s , o = D . of ( i,arguments ) , a = 0 , s = a o . select ( t(i ) ) . on ( q,n ) . on ( T,r ) , h = e ( ao.mouse(i ) ) , p = W ( i ) ; I l . call ( i ) , l ( o ) } f u n c t i o n h ( ) { f u n c t i o n n ( ) { v a r n = a o . touches ( g ) ; r e t u r n p = k . k , n . forEach ( function(n ) { n . i d e n t i f i e r i n d & & ( d [ n . i d e n t i f i e r ] = e ( n ) ) } ) , n } f u n c t i o n t ( ) { v a r t = a o . e v e n t . t a r g e t ; a o . select ( t ) . on ( x,r ) . on ( b,a ) , _ . push ( t ) ; for ( var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i ) d [ e [ i ] . i d e n t i f i e r ] = n u l l ; v a r l = n ( ) , c = D a t e . now ( ) ; if ( 1===l.length ) { if ( 500>c-M ) { v a r f = l [ 0 ] ; o ( g,f,d[f.identifier],Math.floor(Math.log(k.k ) / M a t h . L N 2 ) + 1 ) , S ( ) } M = c } e l s e if ( l.length>1 ) { v a r f = l [ 0 ] , s = l [ 1 ] , h = f [ 0 ] - s [ 0 ] , p = f [ 1 ] - s [ 1 ] ; y = h * h + p * p } } f u n c t i o n r ( ) { v a r n , t , e , r , o = a o . touches ( g ) ; I l . call ( g ) ; for ( var a=0,l=o.length;l>a;++a,r=null ) if ( e=o[a],r=d[e.identifier] ) { if ( t ) b r e a k ; n = e , t = r } if ( r ) { v a r f = ( f = e [ 0 ] - n [ 0 ] ) * f + ( f = e [ 1 ] - n [ 1 ] ) * f , s = y & & M a t h . sqrt ( f/y ) ; n = [ ( n [ 0 ] + e [ 0 ] ) / 2 , ( n [ 1 ] + e [ 1 ] ) / 2 ] , t = [ ( t [ 0 ] + r [ 0 ] ) / 2 , ( t [ 1 ] + r [ 1 ] ) / 2 ] , i ( s*p ) } M = n u l l , u ( n,t ) , c ( v ) } f u n c t i o n a ( ) { if ( ao.event.touches.length ) { for ( var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e ) d e l e t e d [ t [ e ] . i d e n t i f i e r ] ; for ( var i in d ) r e t u r n v o i d n ( ) } a o . selectAll ( _ ) . on ( m,null ) , w . on ( L,s ) . on ( R,h ) , N ( ) , f ( v ) } v a r p , g = t h i s , v = D . of ( g,arguments ) , d = { } , y = 0 , m = \ " . z o o m - \ " + a o . e v e n t . c h a n g e d T o u c h e s [ 0 ] . i d e n t i f i e r , x = \ " t o u c h m o v e \ " + m , b = \ " t o u c h e n d \ " + m , _ = [ ] , w = a o . select ( g ) , N = W ( g ) ; t ( ) , l ( v ) , w . on ( L,null ) . on ( R,t ) } f u n c t i o n p ( ) { v a r n = D . of ( this,arguments ) ; m ? clearTimeout ( m ) : ( I l . call ( this ) , v = e ( d=y||ao.mouse(this ) ) , l ( n ) ) , \
m = setTimeout ( function( ) { m = n u l l , f ( n ) } , 5 0 ) , S ( ) , i ( Math.pow(2,.002*Bo( ) ) * k . k ) , u ( d,v ) , c ( n ) } f u n c t i o n g ( ) { v a r n = a o . mouse ( this ) , t = M a t h . log ( k.k ) / M a t h . L N 2 ; o ( this,n,e(n ) , a o . e v e n t . s h i f t K e y ? M a t h . ceil ( t ) - 1 : M a t h . floor ( t ) + 1 ) } v a r v , d , y , m , M , x , b , _ , w , k = { x : 0 , y : 0 , k : 1 } , E = [ 9 6 0 , 5 0 0 ] , A = J o , C = 2 5 0 , z = 0 , L = \ " m o u s e d o w n . z o o m \ " , q = \ " m o u s e m o v e . z o o m \ " , T = \ " m o u s e u p . z o o m \ " , R = \ " t o u c h s t a r t . z o o m \ " , D = N ( n,\ "zoomstart\" ,\ "zoom\" ,\ "zoomend\" ) ; r e t u r n W o | | ( W o = \ " o n w h e e l \ " i n f o ? ( B o = function ( ) { r e t u r n - a o . e v e n t . d e l t a Y * ( a o . e v e n t . d e l t a M o d e ? 1 2 0 : 1 ) } , \ " w h e e l \ " ) : \ " o n m o u s e w h e e l \ " i n f o ? ( B o = function ( ) { r e t u r n a o . e v e n t . w h e e l D e l t a } , \ " m o u s e w h e e l \ " ) : ( B o = function ( ) { r e t u r n - a o . e v e n t . d e t a i l } , \ " M o z M o u s e P i x e l S c r o l l \ " ) ) , n . e v e n t = function ( n ) { n . each ( function( ) { v a r n = D . of ( this,arguments ) , t = k ; H l ? a o . select ( this ) . transition ( ) . each ( \"start.zoom\",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween(\"zoom:zoom\",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x ) / k . k , ( u - k . y ) / k . k , e / k . k ] , [ ( i - t . x ) / t . k , ( u - t . y ) / t . k , e / t . k ] ) ; r e t u r n function ( t ) { v a r r = o ( t ) , a = e / r [ 2 ] ; t h i s . _ _ c h a r t _ _ = k = { x : i - r [ 0 ] * a , y : u - r [ 1 ] * a , k : a } , c ( n ) } } ) . each ( \"interrupt.zoom\",function(){f(n)}).each(\"end.zoom\",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a( ) , n ) : [ k . x , k . y ] } , n . s c a l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( k = { x : k . x , y : k . y , k : n u l l } , i ( +t ) , a ( ) , n ) : k . k } , n . s c a l e E x t e n t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( A = n u l l = = t ? J o : [ + t [ 0 ] , + t [ 1 ] ] , n ) : A } , n . c e n t e r = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( y = t & & [ + t [ 0 ] , + t [ 1 ] ] , n ) : y } , n . s i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( E = t & & [ + t [ 0 ] , + t [ 1 ] ] , n ) : E } , n . d u r a t i o n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( C = + t , n ) : C } , n . x = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( b = t , x = t . copy ( ) , k = { x : 0 , y : 0 , k : 1 } , n ) : b } , n . y = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( w = t , _ = t . copy ( ) , k = { x : 0 , y : 0 , k : 1 } , n ) : w } , a o . rebind ( n,D,\ "on\" ) } ; v a r B o , W o , J o = [ 0 , 1 / 0 ] ; a o . c o l o r = a n , a n . p r o t o t y p e . t o S t r i n g = function ( ) { r e t u r n t h i s . rgb ( ) + \ " \ " } , a o . h s l = l n ; v a r G o = l n . p r o t o t y p e = n e w a n ; G o . b r i g h t e r = function ( n ) { r e t u r n n = M a t h . pow ( .7,arguments.length?n:1 ) , n e w ln ( this.h,this.s,this.l/n ) } , G o . d a r k e r = function ( n ) { r e t u r n \
n = M a t h . pow ( .7,arguments.length?n:1 ) , n e w ln ( this.h,this.s,n*this.l ) } , G o . r g b = function ( ) { r e t u r n cn ( this.h,this.s,this.l ) } , a o . h c l = f n ; v a r K o = f n . p r o t o t y p e = n e w a n ; K o . b r i g h t e r = function ( n ) { r e t u r n n e w fn ( this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1 ) ) ) } , K o . d a r k e r = function ( n ) { r e t u r n n e w fn ( this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1 ) ) ) } , K o . r g b = function ( ) { r e t u r n sn ( this.h,this.c,this.l ) . rgb ( ) } , a o . l a b = h n ; v a r Q o = 1 8 , n a = . 9 5 0 4 7 , t a = 1 , e a = 1 . 0 8 8 8 3 , r a = h n . p r o t o t y p e = n e w a n ; r a . b r i g h t e r = function ( n ) { r e t u r n n e w hn ( Math.min(100,this.l+Qo*(arguments.length?n:1 ) ) , t h i s . a , t h i s . b ) } , r a . d a r k e r = function ( n ) { r e t u r n n e w hn ( Math.max(0,this.l-Qo*(arguments.length?n:1 ) ) , t h i s . a , t h i s . b ) } , r a . r g b = function ( ) { r e t u r n pn ( this.l,this.a,this.b ) } , a o . r g b = m n ; v a r i a = m n . p r o t o t y p e = n e w a n ; i a . b r i g h t e r = function ( n ) { n = M a t h . pow ( .7,arguments.length?n:1 ) ; v a r t = t h i s . r , e = t h i s . g , r = t h i s . b , i = 3 0 ; r e t u r n t | | e | | r ? ( t & & i > t & & ( t = i ) , e & & i > e & & ( e = i ) , r & & i > r & & ( r = i ) , n e w mn ( Math.min(255,t/n ) , M a t h . min ( 255,e/n ) , M a t h . min ( 255,r/n ) ) ) : n e w mn ( i,i,i ) } , i a . d a r k e r = function ( n ) { r e t u r n n = M a t h . pow ( .7,arguments.length?n:1 ) , n e w mn ( n*this.r,n*this.g,n*this.b ) } , i a . h s l = function ( ) { r e t u r n wn ( this.r,this.g,this.b ) } , i a . t o S t r i n g = function ( ) { r e t u r n \ " #\"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,\
f l o r a l w h i t e : 1 6 7 7 5 9 2 0 , f o r e s t g r e e n : 2 2 6 3 8 4 2 , f u c h s i a : 1 6 7 1 1 9 3 5 , g a i n s b o r o : 1 4 4 7 4 4 6 0 , g h o s t w h i t e : 1 6 3 1 6 6 7 1 , g o l d : 1 6 7 6 6 7 2 0 , g o l d e n r o d : 1 4 3 2 9 1 2 0 , g r a y : 8 4 2 1 5 0 4 , g r e e n : 3 2 7 6 8 , g r e e n y e l l o w : 1 1 4 0 3 0 5 5 , g r e y : 8 4 2 1 5 0 4 , h o n e y d e w : 1 5 7 9 4 1 6 0 , h o t p i n k : 1 6 7 3 8 7 4 0 , i n d i a n r e d : 1 3 4 5 8 5 2 4 , i n d i g o : 4 9 1 5 3 3 0 , i v o r y : 1 6 7 7 7 2 0 0 , k h a k i : 1 5 7 8 7 6 6 0 , l a v e n d e r : 1 5 1 3 2 4 1 0 , l a v e n d e r b l u s h : 1 6 7 7 3 3 6 5 , l a w n g r e e n : 8 1 9 0 9 7 6 , l e m o n c h i f f o n : 1 6 7 7 5 8 8 5 , l i g h t b l u e : 1 1 3 9 3 2 5 4 , l i g h t c o r a l : 1 5 7 6 1 5 3 6 , l i g h t c y a n : 1 4 7 4 5 5 9 9 , l i g h t g o l d e n r o d y e l l o w : 1 6 4 4 8 2 1 0 , l i g h t g r a y : 1 3 8 8 2 3 2 3 , l i g h t g r e e n : 9 4 9 8 2 5 6 , l i g h t g r e y : 1 3 8 8 2 3 2 3 , l i g h t p i n k : 1 6 7 5 8 4 6 5 , l i g h t s a l m o n : 1 6 7 5 2 7 6 2 , l i g h t s e a g r e e n : 2 1 4 2 8 9 0 , l i g h t s k y b l u e : 8 9 0 0 3 4 6 , l i g h t s l a t e g r a y : 7 8 3 3 7 5 3 , l i g h t s l a t e g r e y : 7 8 3 3 7 5 3 , l i g h t s t e e l b l u e : 1 1 5 8 4 7 3 4 , l i g h t y e l l o w : 1 6 7 7 7 1 8 4 , l i m e : 6 5 2 8 0 , l i m e g r e e n : 3 3 2 9 3 3 0 , l i n e n : 1 6 4 4 5 6 7 0 , m a g e n t a : 1 6 7 1 1 9 3 5 , m a r o o n : 8 3 8 8 6 0 8 , m e d i u m a q u a m a r i n e : 6 7 3 7 3 2 2 , m e d i u m b l u e : 2 0 5 , m e d i u m o r c h i d : 1 2 2 1 1 6 6 7 , m e d i u m p u r p l e : 9 6 6 2 6 8 3 , m e d i u m s e a g r e e n : 3 9 7 8 0 9 7 , m e d i u m s l a t e b l u e : 8 0 8 7 7 9 0 , m e d i u m s p r i n g g r e e n : 6 4 1 5 4 , m e d i u m t u r q u o i s e : 4 7 7 2 3 0 0 , m e d i u m v i o l e t r e d : 1 3 0 4 7 1 7 3 , m i d n i g h t b l u e : 1 6 4 4 9 1 2 , m i n t c r e a m : 1 6 1 2 1 8 5 0 , m i s t y r o s e : 1 6 7 7 0 2 7 3 , m o c c a s i n : 1 6 7 7 0 2 2 9 , n a v a j o w h i t e : 1 6 7 6 8 6 8 5 , n a v y : 1 2 8 , o l d l a c e : 1 6 6 4 3 5 5 8 , o l i v e : 8 4 2 1 3 7 6 , o l i v e d r a b : 7 0 4 8 7 3 9 , o r a n g e : 1 6 7 5 3 9 2 0 , o r a n g e r e d : 1 6 7 2 9 3 4 4 , o r c h i d : 1 4 3 1 5 7 3 4 , p a l e g o l d e n r o d : 1 5 6 5 7 1 3 0 , p a l e g r e e n : 1 0 0 2 5 8 8 0 , p a l e t u r q u o i s e : 1 1 5 2 9 9 6 6 , p a l e v i o l e t r e d : 1 4 3 8 1 2 0 3 , p a p a y a w h i p : 1 6 7 7 3 0 7 7 , p e a c h p u f f : 1 6 7 6 7 6 7 3 , p e r u : 1 3 4 6 8 9 9 1 , p i n k : 1 6 7 6 1 0 3 5 , p l u m : 1 4 5 2 4 6 3 7 , p o w d e r b l u e : 1 1 5 9 1 9 1 0 , p u r p l e : 8 3 8 8 7 3 6 , r e b e c c a p u r p l e : 6 6 9 7 8 8 1 , r e d : 1 6 7 1 1 6 8 0 , r o s y b r o w n : 1 2 3 5 7 5 1 9 , r o y a l b l u e : 4 2 8 6 9 4 5 , s a d d l e b r o w n : 9 1 2 7 1 8 7 , s a l m o n : 1 6 4 1 6 8 8 2 , s a n d y b r o w n : 1 6 0 3 2 8 6 4 , s e a g r e e n : 3 0 5 0 3 2 7 , s e a s h e l l : 1 6 7 7 4 6 3 8 , s i e n n a : 1 0 5 0 6 7 9 7 , s i l v e r : 1 2 6 3 2 2 5 6 , s k y b l u e : 8 9 0 0 3 3 1 , s l a t e b l u e : 6 9 7 0 0 6 1 , s l a t e g r a y : 7 3 7 2 9 4 4 , s l a t e g r e y : 7 3 7 2 9 4 4 , s n o w : 1 6 7 7 5 9 3 0 , s p r i n g g r e e n : 6 5 4 0 7 , s t e e l b l u e : 4 6 2 0 9 8 0 , t a n : 1 3 8 0 8 7 8 0 , t e a l : 3 2 8 9 6 , t h i s t l e : 1 4 2 0 4 8 8 8 , t o m a t o : 1 6 7 3 7 0 9 5 , t u r q u o i s e : 4 2 5 1 8 5 6 , v i o l e t : 1 5 6 3 1 0 8 6 , w h e a t : 1 6 1 1 3 3 3 1 , w h i t e : 1 6 7 7 7 2 1 5 , w h i t e s m o k e : 1 6 1 1 9 2 8 5 , y e l l o w : 1 6 7 7 6 9 6 0 , y e l l o w g r e e n : 1 0 1 4 5 0 7 4 } ) ; u a . forEach ( function(n,t ) { u a . set ( n,Mn(t ) ) } ) , a o . f u n c t o r = E n , a o . x h r = An ( m ) , a o . d s v = function ( n,t ) { f u n c t i o n e ( n,e,u ) { a r g u m e n t s . l e n g t h < 3 & & ( u = e , e = n u l l ) ; v a r o = Cn ( n,t,null==e?r:i(e ) , u ) ; r e t u r n \
o . r o w = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? o . response ( null==(e=n ) ? r : i ( n ) ) : e } , o } f u n c t i o n r ( n ) { r e t u r n e . parse ( n.responseText ) } f u n c t i o n i ( n ) { r e t u r n function ( t ) { r e t u r n e . parse ( t.responseText,n ) } } f u n c t i o n u ( t ) { r e t u r n t . map ( o ) . join ( n ) } f u n c t i o n o ( n ) { r e t u r n a . test ( n ) ? ' \ " ' + n . replace ( /\\\ "/g,'\" \"')+'\"':n}var a=new RegExp('[\ "'+n+\" \\n]\"),l=n.charCodeAt(0);return e.parse=function(n,t ) { v a r r ; r e t u r n e . parseRows ( n,function(n,e ) { if ( r ) r e t u r n r ( n,e-1 ) ; v a r i = n e w Function ( \"d\",\"return {\ "+n.map(function(n,t){return JSON.stringify(n)+\" : d[\ "+t+\" ]\ "}).join(\" ,\ ")+\" }\ ");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}f=e+2;var r=n.charCodeAt(e+1);return 13===r?(i=!0,10===n.charCodeAt(e+2)&&++f):10===r&&(i=!0),n.slice(t+1,e).replace(/\" \"/g,'\"')}for(;c>f;){var r=n.charCodeAt(f++ ) , a = 1 ; if ( 10===r ) i = ! 0 ; e l s e if ( 13===r ) i = ! 0 , 1 0 = = = n . charCodeAt ( f ) & & ( + + f , + + a ) ; e l s e if ( r!==l ) c o n t i n u e ; r e t u r n n . slice ( t,f-a ) } r e t u r n n . slice ( t ) } for ( var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e( ) ) ! = = o ; ) { for ( var h=[];r!==u&&r!==o; ) h . push ( r ) , r = e ( ) ; t & & n u l l = = ( h = t ( h,s++ ) ) | | a . push ( h ) } r e t u r n a } , e . f o r m a t = function ( t ) { if ( Array.isArray(t[0] ) ) r e t u r n e . formatRows ( t ) ; v a r r = n e w y , i = [ ] ; r e t u r n t . forEach ( function(n ) { for ( var t in n ) r . has ( t ) | | i . push ( r.add(t ) ) } ) , [ i . map ( o ) . join ( n ) ] . concat ( t.map(function(t ) { r e t u r n i . map ( function(n ) { r e t u r n o ( t[n] ) } ) . join ( n ) } ) ) . join ( \"\\n\")},e.formatRows=function(n){return n.map(u ) . join ( \"\\n\")},e},ao.csv=ao.dsv(\",\",\"text/csv\"),ao.tsv=ao.dsv(\" \",\"text/tab-separated-values\");var oa,aa,la,ca,fa=this[x(this,\ "requestAnimationFrame\" ) ] | | function ( n ) { setTimeout ( n,17 ) } ; a o . t i m e r = function ( ) { q n . apply ( this,arguments ) } , a o . t i m e r . f l u s h = function ( ) { Rn ( ) , Dn ( ) } , a o . r o u n d = function ( n,t ) { r e t u r n t ? M a t h . round ( n*(t=Math.pow(10,t ) ) ) / t : M a t h . round ( n ) } ; v a r s a = [ \ " y \ " , \ " z \ " , \ " a \ " , \ " f \ " , \ " p \ " , \ " n \ " , \ " \ \ x b 5 \ " , \ " m \ " , \ " \ " , \ " k \ " , \ " M \ " , \ " G \ " , \ " T \ " , \ " P \ " , \ " E \ " , \ " Z \ " , \ " Y \ " ] . map ( Un ) ; a o . f o r m a t P r e f i x = function ( n,t ) { v a r e = 0 ; return ( n=+n ) & & ( 0 > n & & ( n * = - 1 ) , t & & ( n = a o . round ( n,Pn(n,t ) ) ) , e = 1 + M a t h . floor ( 1e-12+Math.log(n ) / M a t h . L N 1 0 ) , \
e = M a t h . max ( -24,Math.min(24,3*Math.floor((e-1 ) / 3 ) ) ) ) , s a [ 8 + e / 3 ] } ; v a r h a = / ( ? : ( [ ^ { ] ) ? ( [ < > = ^ ] ) ) ? ( [ + \ \ - ] ) ? ( [ $ #])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,\
t ) { n . setDate ( n.getDate( ) + t ) } , function ( n ) { r e t u r n n . getDate ( ) - 1 } ) , g a . d a y s = g a . d a y . r a n g e , g a . d a y s . u t c = g a . d a y . u t c . r a n g e , g a . d a y O f Y e a r = function ( n ) { v a r t = g a . year ( n ) ; r e t u r n M a t h . floor ( ( n-t-6e4*(n.getTimezoneOffset( ) -t.getTimezoneOffset( ) ) ) / 8 6 4 e 5 ) } , [ \ " s u n d a y \ " , \ " m o n d a y \ " , \ " t u e s d a y \ " , \ " w e d n e s d a y \ " , \ " t h u r s d a y \ " , \ " f r i d a y \ " , \ " s a t u r d a y \ " ] . forEach ( function(n,t ) { t = 7 - t ; v a r e = g a [ n ] = On ( function(n ) { return ( n=ga.day(n ) ) . setDate ( n.getDate( ) - ( n . getDay ( ) + t ) % 7 ) , n } , function ( n,t ) { n . setDate ( n.getDate( ) + 7 * M a t h . floor ( t ) ) } , function ( n ) { v a r e = g a . year ( n ) . getDay ( ) ; r e t u r n M a t h . floor ( ( ga.dayOfYear(n ) +(e+t ) % 7 ) / 7 ) - ( e ! = = t ) } ) ; g a [ n + \ " s \ " ] = e . r a n g e , g a [ n + \ " s \ " ] . u t c = e . u t c . r a n g e , g a [ n + \ " O f Y e a r \ " ] = function ( n ) { v a r e = g a . year ( n ) . getDay ( ) ; r e t u r n M a t h . floor ( ( ga.dayOfYear(n ) +(e+t ) % 7 ) / 7 ) } } ) , g a . w e e k = g a . s u n d a y , g a . w e e k s = g a . s u n d a y . r a n g e , g a . w e e k s . u t c = g a . s u n d a y . u t c . r a n g e , g a . w e e k O f Y e a r = g a . s u n d a y O f Y e a r ; v a r y a = { \ " - \ " : \ " \ " , _ : \ " \ " , 0 : \ " 0 \ " } , m a = / ^ \ \ s * \ \ d + / , M a = / ^ % / ; a o . l o c a l e = function ( n ) { r e t u r n { n u m b e r F o r m a t : jn ( n ) , t i m e F o r m a t : Yn ( n ) } } ; v a r x a = a o . 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\" ],\
s h o r t D a y s : [ \ " S u n \ " , \ " M o n \ " , \ " T u e \ " , \ " W e d \ " , \ " T h u \ " , \ " F r i \ " , \ " S a t \ " ] , m o n t h s : [ \ " J a n u a r y \ " , \ " F e b r u a r y \ " , \ " M a r c h \ " , \ " A p r i l \ " , \ " M a y \ " , \ " J u n e \ " , \ " J u l y \ " , \ " A u g u s t \ " , \ " S e p t e m b e r \ " , \ " O c t o b e r \ " , \ " N o v e m b e r \ " , \ " D e c e m b e r \ " ] , s h o r t M o n t h s : [ \ " J a n \ " , \ " F e b \ " , \ " M a r \ " , \ " A p r \ " , \ " M a y \ " , \ " J u n \ " , \ " J u l \ " , \ " A u g \ " , \ " S e p \ " , \ " O c t \ " , \ " N o v \ " , \ " D e c \ " ] } ) ; a o . f o r m a t = x a . n u m b e r F o r m a t , a o . g e o = { } , f t . p r o t o t y p e = { s : 0 , t : 0 , a d d : function ( n ) { st ( n,this.t,ba ) , st ( ba.s,this.s,this ) , t h i s . s ? t h i s . t + = b a . t : t h i s . s = b a . t } , r e s e t : function ( ) { t h i s . s = t h i s . t = 0 } , v a l u e O f : function ( ) { r e t u r n t h i s . s } } ; v a r b a = n e w f t ; a o . g e o . s t r e a m = function ( n,t ) { n & & _ a . hasOwnProperty ( n.type ) ? _ a [ n . t y p e ] ( n , t ) : ht ( n,t ) } ; v a r _ a = { F e a t u r e : function ( n,t ) { ht ( n.geometry,t ) } , F e a t u r e C o l l e c t i o n : function ( n,t ) { for ( var e=n.features,r=-1,i=e.length;++r<i; ) ht ( e[r].geometry,t ) } } , w a = { S p h e r e : function ( n,t ) { t . sphere ( ) } , P o i n t : function ( n,t ) { n = n . c o o r d i n a t e s , t . point ( n[0],n[1],n[2] ) } , M u l t i P o i n t : function ( n,t ) { for ( var e=n.coordinates,r=-1,i=e.length;++r<i; ) n = e [ r ] , t . point ( n[0],n[1],n[2] ) } , L i n e S t r i n g : function ( n,t ) { pt ( n.coordinates,t,0 ) } , M u l t i L i n e S t r i n g : function ( n,t ) { for ( var e=n.coordinates,r=-1,i=e.length;++r<i; ) pt ( e[r],t,0 ) } , P o l y g o n : function ( n,t ) { gt ( n.coordinates,t ) } , M u l t i P o l y g o n : function ( n,t ) { for ( var e=n.coordinates,r=-1,i=e.length;++r<i; ) gt ( e[r],t ) } , G e o m e t r y C o l l e c t i o n : function ( n,t ) { for ( var e=n.geometries,r=-1,i=e.length;++r<i; ) ht ( e[r],t ) } } ; a o . g e o . a r e a = function ( n ) { r e t u r n S a = 0 , a o . g e o . stream ( n,Na ) , S a } ; v a r S a , k a = n e w f t , N a = { s p h e r e : function ( ) { S a + = 4 * F o } , p o i n t : b , l i n e S t a r t : b , l i n e E n d : b , p o l y g o n S t a r t : function ( ) { k a . reset ( ) , N a . l i n e S t a r t = v t } , p o l y g o n E n d : function ( ) { v a r n = 2 * k a ; S a + = 0 > n ? 4 * F o + n : n , N a . l i n e S t a r t = N a . l i n e E n d = N a . p o i n t = b } } ; a o . g e o . b o u n d s = function ( ) { f u n c t i o n n ( n,t ) { M . push ( x=[f=n,h=n] ) , s > t & & ( s = t ) , t > p & & ( p = t ) } f u n c t i o n t ( t,e ) { v a r r = dt ( [t*Yo,e*Yo] ) ; if ( y ) { v a r i = mt ( y,r ) , u = [ i [ 1 ] , - i [ 0 ] , 0 ] , o = mt ( u,i ) ; bt ( o ) , o = _t ( o ) ; v a r l = t - g , c = l > 0 ? 1 : - 1 , v = o [ 0 ] * Z o * c , d = xo ( l ) > 1 8 0 ; if ( d^(v>c*g&&c*t>v ) ) { v a r m = o [ 1 ] * Z o ; m > p & & ( p = m ) } e l s e if ( v=(v+360 ) % 3 6 0 - 1 8 0 , d ^ ( v > c * g & & c * t > v ) ) { v a r m = - o [ 1 ] * Z o ; s > m & & ( s = m ) } e l s e s > e & & ( s = e ) , e > p & & ( p = e ) ; d ? g > t ? a ( f,t ) > a ( f,h ) & & ( h = t ) : a ( t,h ) > a ( f,h ) & & ( f = t ) : h > = f ? ( f > t & & ( f = t ) , t > h & & ( h = t ) ) : t > g ? a ( f,t ) > a ( f,h ) & & ( h = t ) : a ( t,h ) > a ( f,h ) & & ( f = t ) } e l s e \
n ( t,e ) ; y = r , g = t } f u n c t i o n e ( ) { b . p o i n t = t } f u n c t i o n r ( ) { x [ 0 ] = f , x [ 1 ] = h , b . p o i n t = n , y = n u l l } f u n c t i o n i ( n,e ) { if ( y ) { v a r r = n - g ; m + = xo ( r ) > 1 8 0 ? r + ( r > 0 ? 3 6 0 : - 3 6 0 ) : r } e l s e v = n , d = e ; N a . point ( n,e ) , t ( n,e ) } f u n c t i o n u ( ) { N a . lineStart ( ) } f u n c t i o n o ( ) { i ( v,d ) , N a . lineEnd ( ) , xo ( m ) > U o & & ( f = - ( h = 1 8 0 ) ) , x [ 0 ] = f , x [ 1 ] = h , y = n u l l } f u n c t i o n a ( n,t ) { return ( t-=n ) < 0 ? t + 3 6 0 : t } f u n c t i o n l ( n,t ) { r e t u r n n [ 0 ] - t [ 0 ] } f u n c t i o n c ( n,t ) { r e t u r n t [ 0 ] < = t [ 1 ] ? t [ 0 ] < = n & & n < = t [ 1 ] : n < t [ 0 ] | | t [ 1 ] < n } v a r f , s , h , p , g , v , d , y , m , M , x , b = { p o i n t : n , l i n e S t a r t : e , l i n e E n d : r , p o l y g o n S t a r t : function ( ) { b . p o i n t = i , b . l i n e S t a r t = u , b . l i n e E n d = o , m = 0 , N a . polygonStart ( ) } , p o l y g o n E n d : function ( ) { N a . polygonEnd ( ) , b . p o i n t = n , b . l i n e S t a r t = e , b . l i n e E n d = r , 0 > k a ? ( f = - ( h = 1 8 0 ) , s = - ( p = 9 0 ) ) : m > U o ? p = 9 0 : - U o > m & & ( s = - 9 0 ) , x [ 0 ] = f , x [ 1 ] = h } } ; r e t u r n function ( n ) { p = h = - ( f = s = 1 / 0 ) , M = [ ] , a o . g e o . stream ( n,b ) ; v a r t = M . l e n g t h ; if ( t ) { M . sort ( l ) ; for ( var e,r=1,i=M[0],u=[i];t>r;++r ) e = M [ r ] , c ( e[0],i ) | | c ( e[1],i ) ? ( a ( i[0],e[1] ) > a ( i[0],i[1] ) & & ( i [ 1 ] = e [ 1 ] ) , a ( e[0],i[1] ) > a ( i[0],i[1] ) & & ( i [ 0 ] = e [ 0 ] ) ) : u . push ( i=e ) ; for ( var o,e,g=-(1/0 ) , t = u . l e n g t h - 1 , r = 0 , i = u [ t ] ; t > = r ; i = e , + + r ) e = u [ r ] , ( o = a ( i[1],e[0] ) ) > g & & ( g = o , f = e [ 0 ] , h = i [ 1 ] ) } r e t u r n M = x = n u l l , f = = = 1 / 0 | | s = = = 1 / 0 ? [ [ N a N , N a N ] , [ N a N , N a N ] ] : [ [ f , s ] , [ h , p ] ] } } ( ) , a o . g e o . c e n t r o i d = function ( n ) { E a = A a = C a = z a = L a = q a = T a = R a = D a = P a = U a = 0 , a o . g e o . stream ( n,ja ) ; v a r t = D a , e = P a , r = U a , i = t * t + e * e + r * r ; r e t u r n j o > i & & ( t = q a , e = T a , r = R a , U o > A a & & ( t = C a , e = z a , r = L a ) , i = t * t + e * e + r * r , j o > i ) ? [ N a N , N a N ] : [ M a t h . atan2 ( e,t ) * Z o , tn ( r/Math.sqrt(i ) ) * Z o ] } ; v a r E a , A a , C a , z a , L a , q a , T a , R a , D a , P a , U a , j a = { s p h e r e : b , p o i n t : S t , l i n e S t a r t : N t , l i n e E n d : E t , p o l y g o n S t a r t : function ( ) { j a . l i n e S t a r t = A t } , p o l y g o n E n d : function ( ) { j a . l i n e S t a r t = N t } } , F a = Rt ( zt,jt,Ht,[-Fo,-Fo/2] ) , H a = 1 e 9 ; a o . g e o . c l i p E x t e n t = function ( ) { v a r n , t , e , r , i , u , o = { s t r e a m : function ( n ) { r e t u r n i & & ( i . v a l i d = ! 1 ) , i = u ( n ) , i . v a l i d = ! 0 , i } , e x t e n t : function ( a ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = Zt ( n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1] ) , i & & ( i . v a l i d = ! 1 , i = n u l l ) , o ) : [ [ n , t ] , [ e , r ] ] } } ; r e t u r n o . extent ( [[0,0],[960,500]] ) } , ( a o . g e o . c o n i c E q u a l A r e a = function ( ) { r e t u r n Vt ( Xt ) } ) . r a w = X t , a o . g e o . a l b e r s = function ( ) { r e t u r n a o . g e o . conicEqualArea ( ) . rotate ( [96,0] ) . center ( [-.6,38.7] ) . parallels ( [29.5,45.5] ) . scale ( 1070 ) } , a o . g e o . a l b e r s U s a = function ( ) { f u n c t i o n \
n ( n ) { v a r u = n [ 0 ] , o = n [ 1 ] ; r e t u r n t = n u l l , e ( u,o ) , t | | ( r ( u,o ) , t ) | | i ( u,o ) , t } v a r t , e , r , i , u = a o . g e o . albers ( ) , o = a o . g e o . conicEqualArea ( ) . rotate ( [154,0] ) . center ( [-2,58.5] ) . parallels ( [55,65] ) , a = a o . g e o . conicEqualArea ( ) . rotate ( [157,0] ) . center ( [-3,19.9] ) . parallels ( [8,18] ) , l = { p o i n t : function ( n,e ) { t = [ n , e ] } } ; r e t u r n n . i n v e r t = function ( n ) { v a r t = u . scale ( ) , e = u . translate ( ) , r = ( n [ 0 ] - e [ 0 ] ) / t , i = ( n [ 1 ] - e [ 1 ] ) / t ; return ( i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u ) . invert ( n ) } , n . s t r e a m = function ( n ) { v a r t = u . stream ( n ) , e = o . stream ( n ) , r = a . stream ( n ) ; r e t u r n { p o i n t : function ( n,i ) { t . point ( n,i ) , e . point ( n,i ) , r . point ( n,i ) } , s p h e r e : function ( ) { t . sphere ( ) , e . sphere ( ) , r . sphere ( ) } , l i n e S t a r t : function ( ) { t . lineStart ( ) , e . lineStart ( ) , r . lineStart ( ) } , l i n e E n d : function ( ) { t . lineEnd ( ) , e . lineEnd ( ) , r . lineEnd ( ) } , p o l y g o n S t a r t : function ( ) { t . polygonStart ( ) , e . polygonStart ( ) , r . polygonStart ( ) } , p o l y g o n E n d : function ( ) { t . polygonEnd ( ) , e . polygonEnd ( ) , r . polygonEnd ( ) } } } , n . p r e c i s i o n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u . precision ( t ) , o . precision ( t ) , a . precision ( t ) , n ) : u . precision ( ) } , n . s c a l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u . scale ( t ) , o . scale ( .35*t ) , a . scale ( t ) , n . translate ( u.translate( ) ) ) : u . scale ( ) } , n . t r a n s l a t e = function ( t ) { if ( !arguments.length ) r e t u r n u . translate ( ) ; v a r c = u . scale ( ) , f = + t [ 0 ] , s = + t [ 1 ] ; r e t u r n e = u . translate ( t ) . clipExtent ( [[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]] ) . stream ( l ) . p o i n t , r = o . translate ( [f-.307*c,s+.201*c] ) . clipExtent ( [[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]] ) . stream ( l ) . p o i n t , i = a . translate ( [f-.205*c,s+.212*c] ) . clipExtent ( [[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]] ) . stream ( l ) . p o i n t , n } , n . scale ( 1070 ) } ; v a r O a , I a , Y a , Z a , V a , X a , $ a = { p o i n t : b , l i n e S t a r t : b , l i n e E n d : b , p o l y g o n S t a r t : function ( ) { I a = 0 , $ a . l i n e S t a r t = $ t } , p o l y g o n E n d : function ( ) { $ a . l i n e S t a r t = $ a . l i n e E n d = $ a . p o i n t = b , O a + = xo ( Ia/2 ) } } , B a = { p o i n t : B t , l i n e S t a r t : b , l i n e E n d : b , p o l y g o n S t a r t : b , p o l y g o n E n d : b } , W a = { p o i n t : G t , l i n e S t a r t : K t , l i n e E n d : Q t , p o l y g o n S t a r t : function ( ) { W a . l i n e S t a r t = n e } , p o l y g o n E n d : function ( ) { W a . p o i n t = G t , W a . l i n e S t a r t = K t , W a . l i n e E n d = Q t } } ; a o . g e o . p a t h = function ( ) { f u n c t i o n n ( n ) { r e t u r n n & & ( \ " f u n c t i o n \ " = = t y p e o f \
a & & u . pointRadius ( +a.apply(this,arguments ) ) , o & & o . v a l i d | | ( o = i ( u ) ) , a o . g e o . stream ( n,o ) ) , u . result ( ) } f u n c t i o n t ( ) { r e t u r n o = n u l l , n } v a r e , r , i , u , o , a = 4 . 5 ; r e t u r n n . a r e a = function ( n ) { r e t u r n O a = 0 , a o . g e o . stream ( n,i( $ a ) ) , O a } , n . c e n t r o i d = function ( n ) { r e t u r n C a = z a = L a = q a = T a = R a = D a = P a = U a = 0 , a o . g e o . stream ( n,i(Wa ) ) , U a ? [ D a / U a , P a / U a ] : R a ? [ q a / R a , T a / R a ] : L a ? [ C a / L a , z a / L a ] : [ N a N , N a N ] } , n . b o u n d s = function ( n ) { r e t u r n V a = X a = - ( Y a = Z a = 1 / 0 ) , a o . g e o . stream ( n,i(Ba ) ) , [ [ Y a , Z a ] , [ V a , X a ] ] } , n . p r o j e c t i o n = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = ( e = n ) ? n . s t r e a m | | re ( n ) : m , t ( ) ) : e } , n . c o n t e x t = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = n u l l = = ( r = n ) ? n e w W t : n e w te ( n ) , \ " f u n c t i o n \ " ! = t y p e o f a & & u . pointRadius ( a ) , t ( ) ) : r } , n . p o i n t R a d i u s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = \ " f u n c t i o n \ " = = t y p e o f t ? t : ( u . pointRadius ( +t ) , + t ) , n ) : a } , n . projection ( ao.geo.albersUsa( ) ) . context ( null ) } , a o . g e o . t r a n s f o r m = function ( n ) { r e t u r n { s t r e a m : function ( t ) { v a r e = n e w ie ( t ) ; for ( var r in n ) e [ r ] = n [ r ] ; r e t u r n e } } } , i e . p r o t o t y p e = { p o i n t : function ( n,t ) { t h i s . s t r e a m . point ( n,t ) } , s p h e r e : function ( ) { t h i s . s t r e a m . sphere ( ) } , l i n e S t a r t : function ( ) { t h i s . s t r e a m . lineStart ( ) } , l i n e E n d : function ( ) { t h i s . s t r e a m . lineEnd ( ) } , p o l y g o n S t a r t : function ( ) { t h i s . s t r e a m . polygonStart ( ) } , p o l y g o n E n d : function ( ) { t h i s . s t r e a m . polygonEnd ( ) } } , a o . g e o . p r o j e c t i o n = o e , a o . g e o . p r o j e c t i o n M u t a t o r = a e , ( a o . g e o . e q u i r e c t a n g u l a r = function ( ) { r e t u r n oe ( ce ) } ) . r a w = c e . i n v e r t = c e , a o . g e o . r o t a t i o n = function ( n ) { f u n c t i o n t ( t ) { r e t u r n t = n ( t[0]*Yo,t[1]*Yo ) , t [ 0 ] * = Z o , t [ 1 ] * = Z o , t } r e t u r n n = se ( n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0 ) , t . i n v e r t = function ( t ) { r e t u r n t = n . invert ( t[0]*Yo,t[1]*Yo ) , t [ 0 ] * = Z o , t [ 1 ] * = Z o , t } , t } , f e . i n v e r t = c e , a o . g e o . c i r c l e = function ( ) { f u n c t i o n n ( ) { v a r n = \ " f u n c t i o n \ " = = t y p e o f r ? r . apply ( this,arguments ) : r , t = se ( -n[0]*Yo,-n[1]*Yo,0 ) . i n v e r t , i = [ ] ; r e t u r n e ( null,null,1,{point:function(n,e ) { i . push ( n=t(n,e ) ) , n [ 0 ] * = Z o , n [ 1 ] * = Z o } } ) , { t y p e : \ " P o l y g o n \ " , c o o r d i n a t e s : [ i ] } } v a r t , e , r = [ 0 , 0 ] , i = 6 ; r e t u r n n . o r i g i n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = t , n ) : r } , n . a n g l e = function ( r ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = ve ( ( t=+r ) *Yo,i*Yo ) , n ) : t } , n . p r e c i s i o n = function ( r ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = ve ( t*Yo,(i=+r ) * Y o ) , n ) : i } , n . angle ( 90 ) } , a o . g e o . d i s t a n c e = function ( n,\
t ) { v a r e , r = ( t [ 0 ] - n [ 0 ] ) * Y o , i = n [ 1 ] * Y o , u = t [ 1 ] * Y o , o = M a t h . sin ( r ) , a = M a t h . cos ( r ) , l = M a t h . sin ( i ) , c = M a t h . cos ( i ) , f = M a t h . sin ( u ) , s = M a t h . cos ( u ) ; r e t u r n M a t h . atan2 ( Math.sqrt((e=s*o ) * e + ( e = c * f - l * s * a ) * e ) , l * f + c * s * a ) } , a o . g e o . g r a t i c u l e = function ( ) { f u n c t i o n n ( ) { r e t u r n { t y p e : \ " M u l t i L i n e S t r i n g \ " , c o o r d i n a t e s : t ( ) } } f u n c t i o n t ( ) { r e t u r n a o . range ( Math.ceil(u/d ) * d , i , d ) . map ( h ) . concat ( ao.range(Math.ceil(c/y ) * y , l , y ) . map ( p ) ) . concat ( ao.range(Math.ceil(r/g ) * g , e , g ) . filter ( function(n ) { r e t u r n xo ( n%d ) > U o } ) . map ( f ) ) . concat ( ao.range(Math.ceil(a/v ) * v , o , v ) . filter ( function(n ) { r e t u r n xo ( n%y ) > U o } ) . map ( s ) ) } v a r e , r , i , u , o , a , l , c , f , s , h , p , g = 1 0 , v = g , d = 9 0 , y = 3 6 0 , m = 2 . 5 ; r e t u r n n . l i n e s = function ( ) { r e t u r n t ( ) . map ( function(n ) { r e t u r n { t y p e : \ " L i n e S t r i n g \ " , c o o r d i n a t e s : n } } ) } , n . o u t l i n e = function ( ) { r e t u r n { t y p e : \ " P o l y g o n \ " , c o o r d i n a t e s : [ h ( u ) . concat ( p(l ) . slice ( 1 ) , h ( i ) . reverse ( ) . slice ( 1 ) , p ( c ) . reverse ( ) . slice ( 1 ) ) ] } } , n . e x t e n t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? n . majorExtent ( t ) . minorExtent ( t ) : n . minorExtent ( ) } , n . m a j o r E x t e n t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = + t [ 0 ] [ 0 ] , i = + t [ 1 ] [ 0 ] , c = + t [ 0 ] [ 1 ] , l = + t [ 1 ] [ 1 ] , u > i & & ( t = u , u = i , i = t ) , c > l & & ( t = c , c = l , l = t ) , n . precision ( m ) ) : [ [ u , c ] , [ i , l ] ] } , n . m i n o r E x t e n t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = + t [ 0 ] [ 0 ] , e = + t [ 1 ] [ 0 ] , a = + t [ 0 ] [ 1 ] , o = + t [ 1 ] [ 1 ] , r > e & & ( t = r , r = e , e = t ) , a > o & & ( t = a , a = o , o = t ) , n . precision ( m ) ) : [ [ r , a ] , [ e , o ] ] } , n . s t e p = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? n . majorStep ( t ) . minorStep ( t ) : n . minorStep ( ) } , n . m a j o r S t e p = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( d = + t [ 0 ] , y = + t [ 1 ] , n ) : [ d , y ] } , n . m i n o r S t e p = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( g = + t [ 0 ] , v = + t [ 1 ] , n ) : [ g , v ] } , n . p r e c i s i o n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( m = + t , f = ye ( a,o,90 ) , s = me ( r,e,m ) , h = ye ( c,l,90 ) , p = me ( u,i,m ) , n ) : m } , n . majorExtent ( [[-180,-90+Uo],[180,90-Uo]] ) . minorExtent ( [[-180,-80-Uo],[180,80+Uo]] ) } , a o . g e o . g r e a t A r c = function ( ) { f u n c t i o n n ( ) { r e t u r n { t y p e : \ " L i n e S t r i n g \ " , c o o r d i n a t e s : [ t | | r . apply ( this,arguments ) , e | | i . apply ( this,arguments ) ] } } v a r t , e , r = M e , i = x e ; r e t u r n n . d i s t a n c e = function ( ) { r e t u r n a o . g e o . distance ( t||r.apply(this,arguments ) , e | | i . apply ( this,arguments ) ) } , n . s o u r c e = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = e , t = \ " f u n c t i o n \ " = = t y p e o f e ? n u l l : e , n ) : r } , n . t a r g e t = function ( t ) { r e t u r n \
a r g u m e n t s . l e n g t h ? ( i = t , e = \ " f u n c t i o n \ " = = t y p e o f t ? n u l l : t , n ) : i } , n . p r e c i s i o n = function ( ) { r e t u r n a r g u m e n t s . l e n g t h ? n : 0 } , n } , a o . g e o . i n t e r p o l a t e = function ( n,t ) { r e t u r n be ( n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo ) } , a o . g e o . l e n g t h = function ( n ) { r e t u r n J a = 0 , a o . g e o . stream ( n,Ga ) , J a } ; v a r J a , G a = { s p h e r e : b , p o i n t : b , l i n e S t a r t : _ e , l i n e E n d : b , p o l y g o n S t a r t : b , p o l y g o n E n d : b } , K a = we ( function(n ) { r e t u r n M a t h . sqrt ( 2/(1+n ) ) } , function ( n ) { r e t u r n 2 * M a t h . asin ( n/2 ) } ) ; ( a o . g e o . a z i m u t h a l E q u a l A r e a = function ( ) { r e t u r n oe ( Ka ) } ) . r a w = K a ; v a r Q a = we ( function(n ) { v a r t = M a t h . acos ( n ) ; r e t u r n t & & t / M a t h . sin ( t ) } , m ) ; ( a o . g e o . a z i m u t h a l E q u i d i s t a n t = function ( ) { r e t u r n oe ( Qa ) } ) . r a w = Q a , ( a o . g e o . c o n i c C o n f o r m a l = function ( ) { r e t u r n Vt ( Se ) } ) . r a w = S e , ( a o . g e o . c o n i c E q u i d i s t a n t = function ( ) { r e t u r n Vt ( ke ) } ) . r a w = k e ; v a r n l = we ( function(n ) { r e t u r n 1 / n } , M a t h . a t a n ) ; ( a o . g e o . g n o m o n i c = function ( ) { r e t u r n oe ( nl ) } ) . r a w = n l , N e . i n v e r t = function ( n,t ) { r e t u r n [ n , 2 * M a t h . atan ( Math.exp(t ) ) - I o ] } , ( a o . g e o . m e r c a t o r = function ( ) { r e t u r n Ee ( Ne ) } ) . r a w = N e ; v a r t l = we ( function( ) { r e t u r n 1 } , M a t h . a s i n ) ; ( a o . g e o . o r t h o g r a p h i c = function ( ) { r e t u r n oe ( tl ) } ) . r a w = t l ; v a r e l = we ( function(n ) { r e t u r n 1 / ( 1 + n ) } , function ( n ) { r e t u r n 2 * M a t h . atan ( n ) } ) ; ( a o . g e o . s t e r e o g r a p h i c = function ( ) { r e t u r n oe ( el ) } ) . r a w = e l , A e . i n v e r t = function ( n,t ) { r e t u r n [ - t , 2 * M a t h . atan ( Math.exp(n ) ) - I o ] } , ( a o . g e o . t r a n s v e r s e M e r c a t o r = function ( ) { v a r n = Ee ( Ae ) , t = n . c e n t e r , e = n . r o t a t e ; r e t u r n n . c e n t e r = function ( n ) { r e t u r n n ? t ( [-n[1],n[0]] ) : ( n = t ( ) , [ n [ 1 ] , - n [ 0 ] ] ) } , n . r o t a t e = function ( n ) { r e t u r n n ? e ( [n[0],n[1],n.length>2?n[2]+90:90] ) : ( n = e ( ) , [ n [ 0 ] , n [ 1 ] , n [ 2 ] - 9 0 ] ) } , e ( [0,0,90] ) } ) . r a w = A e , a o . g e o m = { } , a o . g e o m . h u l l = function ( n ) { f u n c t i o n t ( n ) { if ( n.length<3 ) r e t u r n [ ] ; v a r t , i = En ( e ) , u = En ( r ) , o = n . l e n g t h , a = [ ] , l = [ ] ; for ( t=0;o>t;t++ ) a . push ( [+i.call(this,n[t],t ) , + u . call ( this,n[t],t ) , t ] ) ; for ( a.sort(qe ) , t = 0 ; o > t ; t + + ) l . push ( [a[t][0],-a[t][1]] ) ; v a r c = Le ( a ) , f = Le ( l ) , s = f [ 0 ] = = = c [ 0 ] , h = f [ f . l e n g t h - 1 ] = = = c [ c . l e n g t h - 1 ] , p = [ ] ; for ( t=c.length-1;t>=0;--t ) p . push ( n[a[c[t]][2]] ) ; for ( t=+s;t<f.length-h;++t ) p . push ( n[a[f[t]][2]] ) ; r e t u r n p } v a r e = C e , r = z e ; r e t u r n a r g u m e n t s . l e n g t h ? t ( n ) : ( t . x = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = n , t ) : e } , t . y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = n , t ) : r } , \
t ) } , a o . g e o m . p o l y g o n = function ( n ) { r e t u r n ko ( n,rl ) , n } ; v a r r l = a o . g e o m . p o l y g o n . p r o t o t y p e = [ ] ; r l . a r e a = function ( ) { for ( var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e; ) n = r , r = t h i s [ t ] , i + = n [ 1 ] * r [ 0 ] - n [ 0 ] * r [ 1 ] ; r e t u r n . 5 * i } , r l . c e n t r o i d = function ( n ) { v a r t , e , r = - 1 , i = t h i s . l e n g t h , u = 0 , o = 0 , a = t h i s [ i - 1 ] ; for ( arguments.length||(n=-1/(6*this.area( ) ) ) ; + + r < i ; ) t = a , a = t h i s [ r ] , e = t [ 0 ] * a [ 1 ] - a [ 0 ] * t [ 1 ] , u + = ( t [ 0 ] + a [ 0 ] ) * e , o + = ( t [ 1 ] + a [ 1 ] ) * e ; r e t u r n [ u * n , o * n ] } , r l . c l i p = function ( n ) { for ( var t,e,r,i,u,o,a=De(n ) , l = - 1 , c = t h i s . l e n g t h - De ( this ) , f = t h i s [ c - 1 ] ; + + l < c ; ) { for ( t=n.slice( ) , n . l e n g t h = 0 , i = t h i s [ l ] , u = t [ ( r = t . l e n g t h - a ) - 1 ] , e = - 1 ; + + e < r ; ) o = t [ e ] , Te ( o,f,i ) ? ( Te ( u,f,i ) | | n . push ( Re(u,o,f,i ) ) , n . push ( o ) ) : Te ( u,f,i ) & & n . push ( Re(u,o,f,i ) ) , u = o ; a & & n . push ( n[0] ) , f = i } r e t u r n n } ; v a r i l , u l , o l , a l , l l , c l = [ ] , f l = [ ] ; Y e . p r o t o t y p e . p r e p a r e = function ( ) { for ( var n,t=this.edges,e=t.length;e--; ) n = t [ e ] . e d g e , n . b & & n . a | | t . splice ( e,1 ) ; r e t u r n t . sort ( Ve ) , t . l e n g t h } , t r . p r o t o t y p e = { s t a r t : function ( ) { r e t u r n t h i s . e d g e . l = = = t h i s . s i t e ? t h i s . e d g e . a : t h i s . e d g e . b } , e n d : function ( ) { r e t u r n t h i s . e d g e . l = = = t h i s . s i t e ? t h i s . e d g e . b : t h i s . e d g e . a } } , e r . p r o t o t y p e = { i n s e r t : function ( n,t ) { v a r e , r , i ; if ( n ) { if ( t.P=n,t.N=n.N,n.N&&(n.N.P=t ) , n . N = t , n . R ) { for ( n=n.R;n.L; ) n = n . L ; n . L = t } e l s e n . R = t ; e = n } e l s e t h i s . _ ? ( n = or ( this._ ) , t . P = n u l l , t . N = n , n . P = n . L = t , e = n ) : ( t . P = t . N = n u l l , t h i s . _ = t , e = n u l l ) ; for ( t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C; ) r = e . U , e = = = r . L ? ( i = r . R , i & & i . C ? ( e . C = i . C = ! 1 , r . C = ! 0 , n = r ) : ( n = = = e . R & & ( ir ( this,e ) , n = e , e = n . U ) , e . C = ! 1 , r . C = ! 0 , ur ( this,r ) ) ) : ( i = r . L , i & & i . C ? ( e . C = i . C = ! 1 , r . C = ! 0 , n = r ) : ( n = = = e . L & & ( ur ( this,e ) , n = e , e = n . U ) , e . C = ! 1 , r . C = ! 0 , ir ( this,r ) ) ) , e = n . U ; t h i s . _ . C = ! 1 } , r e m o v e : function ( n ) { n . N & & ( n . N . P = n . P ) , n . P & & ( n . P . N = n . N ) , n . N = n . P = n u l l ; v a r t , e , r , i = n . U , u = n . L , o = n . R ; if ( e=u?o?or(o ) : u : o , i ? i . L = = = n ? i . L = e : i . R = e : t h i s . _ = e , u & & o ? ( r = e . C , e . C = n . C , e . L = u , u . U = e , e ! = = o ? ( i = e . U , e . U = n . U , n = e . R , i . L = n , e . R = o , o . U = e ) : ( e . U = i , i = e , n = e . R ) ) : ( r = n . C , n = e ) , n & & ( n . U = i ) , ! r ) { if ( n&&n.C ) r e t u r n void ( n.C=!1 ) ; d o { if ( n===this._ ) b r e a k ; if ( n===i.L ) { if ( t=i.R,t.C&&(t.C=!1,i.C=!0,ir(this,i ) , t = i . R ) , t . L & & t . L . C | | t . R & & t . R . C ) { t . R & & t . R . C | | ( t . L . C = ! 1 , t . C = ! 0 , ur ( this,t ) , t = i . R ) , t . C = i . C , i . C = t . R . C = ! 1 , ir ( this,i ) , n = t h i s . _ ; b r e a k } } e l s e if ( t=i.L,t.C&&(t.C=!1,\
i . C = ! 0 , ur ( this,i ) , t = i . L ) , t . L & & t . L . C | | t . R & & t . R . C ) { t . L & & t . L . C | | ( t . R . C = ! 1 , t . C = ! 0 , ir ( this,t ) , t = i . L ) , t . C = i . C , i . C = t . L . C = ! 1 , ur ( this,i ) , n = t h i s . _ ; b r e a k } t . C = ! 0 , n = i , i = i . U } while ( !n.C ) ; n & & ( n . C = ! 1 ) } } } , a o . g e o m . v o r o n o i = function ( n ) { f u n c t i o n t ( n ) { v a r t = n e w Array ( n.length ) , r = a [ 0 ] [ 0 ] , i = a [ 0 ] [ 1 ] , u = a [ 1 ] [ 0 ] , o = a [ 1 ] [ 1 ] ; r e t u r n ar ( e(n ) , a ) . c e l l s . forEach ( function(e,a ) { v a r l = e . e d g e s , c = e . s i t e , f = t [ a ] = l . l e n g t h ? l . map ( function(n ) { v a r t = n . start ( ) ; r e t u r n [ t . x , t . y ] } ) : c . x > = r & & c . x < = u & & c . y > = i & & c . y < = o ? [ [ r , o ] , [ u , o ] , [ u , i ] , [ r , i ] ] : [ ] ; f . p o i n t = n [ a ] } ) , t } f u n c t i o n e ( n ) { r e t u r n n . map ( function(n,t ) { r e t u r n { x : M a t h . round ( u(n,t ) / U o ) * U o , y : M a t h . round ( o(n,t ) / U o ) * U o , i : t } } ) } v a r r = C e , i = z e , u = r , o = i , a = s l ; r e t u r n n ? t ( n ) : ( t . l i n k s = function ( n ) { r e t u r n ar ( e(n ) ) . e d g e s . filter ( function(n ) { r e t u r n n . l & & n . r } ) . map ( function(t ) { r e t u r n { s o u r c e : n [ t . l . i ] , t a r g e t : n [ t . r . i ] } } ) } , t . t r i a n g l e s = function ( n ) { v a r t = [ ] ; r e t u r n ar ( e(n ) ) . c e l l s . forEach ( function(e,r ) { for ( var i,u,o=e.site,a=e.edges.sort(Ve ) , l = - 1 , c = a . l e n g t h , f = a [ c - 1 ] . e d g e , s = f . l = = = o ? f . r : f . l ; + + l < c ; ) i = f , u = s , f = a [ l ] . e d g e , s = f . l = = = o ? f . r : f . l , r < u . i & & r < s . i & & cr ( o,u,s ) < 0 & & t . push ( [n[r],n[u.i],n[s.i]] ) } ) , t } , t . x = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = En ( r=n ) , t ) : r } , t . y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = En ( i=n ) , t ) : i } , t . c l i p E x t e n t = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = n u l l = = n ? s l : n , t ) : a = = = s l ? n u l l : a } , t . s i z e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? t . clipExtent ( n&&[[0,0],n] ) : a = = = s l ? n u l l : a & & a [ 1 ] } , t ) } ; v a r s l = [ [ - 1 e 6 , - 1 e 6 ] , [ 1 e 6 , 1 e 6 ] ] ; a o . g e o m . d e l a u n a y = function ( n ) { r e t u r n a o . g e o m . voronoi ( ) . triangles ( n ) } , a o . g e o m . q u a d t r e e = function ( n,t,e,r,i ) { f u n c t i o n u ( n ) { f u n c t i o n u ( n,t,e,r,i,u,o,a ) { if ( !isNaN(e ) & & ! isNaN ( r ) ) if ( n.leaf ) { v a r l = n . x , f = n . y ; if ( null!=l ) if ( xo(l-e ) + xo ( f-r ) < . 0 1 ) c ( n,t,e,r,i,u,o,a ) ; e l s e { v a r s = n . p o i n t ; n . x = n . y = n . p o i n t = n u l l , c ( n,s,l,f,i,u,o,a ) , c ( n,t,e,r,i,u,o,a ) } e l s e n . x = e , n . y = r , n . p o i n t = t } e l s e c ( n,t,e,r,i,u,o,a ) } f u n c t i o n c ( n,t,e,r,i,o,a,l ) { v a r c = . 5 * ( i + a ) , f = . 5 * ( o + l ) , s = e > = c , h = r > = f , p = h < < 1 | s ; n . l e a f = ! 1 , n = n . n o d e s [ p ] | | ( n . n o d e s [ p ] = hr ( ) ) , s ? i = c : a = c , h ? o = f : l = f , u ( n,t,e,r,i,o,a,l ) } v a r f , s , h , p , g , v , d , y , m , M = En ( a ) , x = En ( l ) ; if ( null!=t ) v = t , d = e , y = r , m = i ; e l s e if ( y=m=-(v=d=1/0 ) , s = [ ] , h = [ ] , g = n . l e n g t h , o ) for ( p=0;g>p;\
+ + p ) f = n [ p ] , f . x < v & & ( v = f . x ) , f . y < d & & ( d = f . y ) , f . x > y & & ( y = f . x ) , f . y > m & & ( m = f . y ) , s . push ( f.x ) , h . push ( f.y ) ; e l s e for ( p=0;g>p;++p ) { v a r b = + M ( f=n[p],p ) , _ = + x ( f,p ) ; v > b & & ( v = b ) , d > _ & & ( d = _ ) , b > y & & ( y = b ) , _ > m & & ( m = _ ) , s . push ( b ) , h . push ( _ ) } v a r w = y - v , S = m - d ; w > S ? m = d + w : y = v + S ; v a r k = hr ( ) ; if ( k.add=function(n ) { u ( k,n,+M(n,++p ) , + x ( n,p ) , v , d , y , m ) } , k . v i s i t = function ( n ) { pr ( n,k,v,d,y,m ) } , k . f i n d = function ( n ) { r e t u r n gr ( k,n[0],n[1],v,d,y,m ) } , p = - 1 , n u l l = = t ) { for ( ;++p<g; ) u ( k,n[p],s[p],h[p],v,d,y,m ) ; - - p } e l s e n . forEach ( k.add ) ; r e t u r n s = h = n = f = n u l l , k } v a r o , a = C e , l = z e ; return ( o=arguments.length ) ? ( a = f r , l = s r , 3 = = = o & & ( i = e , r = t , e = t = 0 ) , u ( n ) ) : ( u . x = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = n , u ) : a } , u . y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = n , u ) : l } , u . e x t e n t = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n u l l = = n ? t = e = r = i = n u l l : ( t = + n [ 0 ] [ 0 ] , e = + n [ 0 ] [ 1 ] , r = + n [ 1 ] [ 0 ] , i = + n [ 1 ] [ 1 ] ) , u ) : n u l l = = t ? n u l l : [ [ t , e ] , [ r , i ] ] } , u . s i z e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n u l l = = n ? t = e = r = i = n u l l : ( t = e = 0 , r = + n [ 0 ] , i = + n [ 1 ] ) , u ) : n u l l = = t ? n u l l : [ r - t , i - e ] } , u ) } , a o . i n t e r p o l a t e R g b = v r , a o . i n t e r p o l a t e O b j e c t = d r , a o . i n t e r p o l a t e N u m b e r = y r , a o . i n t e r p o l a t e S t r i n g = m r ; v a r h l = / [ - + ] ? ( ? : \ \ d + \ \ . ? \ \ d * | \ \ . ? \ \ d + ) ( ? : [ e E ] [ - + ] ? \ \ d + ) ? / g , p l = n e w RegExp ( hl.source,\ "g\" ) ; a o . i n t e r p o l a t e = M r , a o . i n t e r p o l a t o r s = [ function ( n,t ) { v a r e = t y p e o f t ; return ( \"string\"===e?ua.has(t.toLowerCase())||/^(#|rgb\\(|hsl\\()/i.test(t)?vr:mr:t instanceof an?vr:Array.isArray(t ) ? x r : \ " o b j e c t \ " = = = e & & isNaN ( t ) ? d r : y r ) ( n , t ) } ] , a o . i n t e r p o l a t e A r r a y = x r ; v a r g l = function ( ) { r e t u r n m } , v l = a o . map ( {linear:gl,poly:Er,quad:function( ) { r e t u r n S r } , c u b i c : function ( ) { r e t u r n k r } , s i n : function ( ) { r e t u r n A r } , e x p : function ( ) { r e t u r n C r } , c i r c l e : function ( ) { r e t u r n z r } , e l a s t i c : L r , b a c k : q r , b o u n c e : function ( ) { r e t u r n T r } } ) , d l = a o . map ( {\ "in\" :m,out:_r,\ "in-out\" :wr,\ "out-in\" :function(n ) { r e t u r n wr ( _r(n ) ) } } ) ; a o . e a s e = function ( n ) { v a r t = n . indexOf ( \"-\"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):\"in\";return e=vl.get(e ) | | g l , r = d l . get ( r ) | | m , br ( r(e.apply(null,lo.call(arguments,1 ) ) ) ) } , a o . i n t e r p o l a t e H c l = R r , a o . i n t e r p o l a t e H s l = D r , a o . i n t e r p o l a t e L a b = P r , a o . i n t e r p o l a t e R o u n d = U r , a o . t r a n s f o r m = function ( n ) { v a r t = f o . createElementNS ( ao.ns.prefix.svg,\ "g\" ) ; return ( ao.transform=function(n ) { if ( null!=n ) { t . setAttribute ( \"transform\",\
n ) ; v a r e = t . t r a n s f o r m . b a s e V a l . consolidate ( ) } r e t u r n n e w jr ( e?e.matrix:yl ) } ) ( n ) } , j r . p r o t o t y p e . t o S t r i n g = function ( ) { r e t u r n \ " translate ( \"+this.translate+\")rotate(\"+this.rotate+\")skewX(\"+this.skew+\")scale(\"+this.scale+\")\"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform= $ r,ao.layout={},ao.layout.bundle=function( ) { r e t u r n function ( n ) { for ( var t=[],e=-1,r=n.length;++e<r; ) t . push ( Jr(n[e] ) ) ; r e t u r n t } } , a o . l a y o u t . c h o r d = function ( ) { f u n c t i o n n ( ) { v a r n , c , s , h , p , g = { } , v = [ ] , d = a o . range ( u ) , y = [ ] ; for ( e=[],r=[],n=0,h=-1;++h<u; ) { for ( c=0,p=-1;++p<u; ) c + = i [ h ] [ p ] ; v . push ( c ) , y . push ( ao.range(u ) ) , n + = c } for ( o&&d.sort(function(n,t ) { r e t u r n o ( v[n],v[t] ) } ) , a & & y . forEach ( function(n,t ) { n . sort ( function(n,e ) { r e t u r n a ( i[t][n],i[t][e] ) } ) } ) , n = ( H o - f * u ) / n , c = 0 , h = - 1 ; + + h < u ; ) { for ( s=c,p=-1;++p<u; ) { v a r m = d [ h ] , M = y [ m ] [ p ] , x = i [ m ] [ M ] , b = c , _ = c + = x * n ; g [ m + \ " - \ " + M ] = { i n d e x : m , s u b i n d e x : M , s t a r t A n g l e : b , e n d A n g l e : _ , v a l u e : x } } r [ m ] = { i n d e x : m , s t a r t A n g l e : s , e n d A n g l e : c , v a l u e : v [ m ] } , c + = f } for ( h=-1;++h<u; ) for ( p=h-1;++p<u; ) { v a r w = g [ h + \ " - \ " + p ] , S = g [ p + \ " - \ " + h ] ; ( w . v a l u e | | S . v a l u e ) & & e . push ( w.value<S.value?{source:S,target:w}:{source:w,target:S} ) } l & & t ( ) } f u n c t i o n t ( ) { e . sort ( function(n,t ) { r e t u r n l ( ( n.source.value+n.target.value ) /2,(t.source.value+t.target.value ) / 2 ) } ) } v a r e , r , i , u , o , a , l , c = { } , f = 0 ; r e t u r n c . m a t r i x = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = ( i = n ) & & i . l e n g t h , e = r = n u l l , c ) : i } , c . p a d d i n g = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( f = n , e = r = n u l l , c ) : f } , c . s o r t G r o u p s = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = n , e = r = n u l l , c ) : o } , c . s o r t S u b g r o u p s = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = n , e = n u l l , c ) : a } , c . s o r t C h o r d s = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = n , e & & t ( ) , c ) : l } , c . c h o r d s = function ( ) { r e t u r n e | | n ( ) , e } , c . g r o u p s = function ( ) { r e t u r n r | | n ( ) , r } , c } , a o . l a y o u t . f o r c e = function ( ) { f u n c t i o n n ( n ) { r e t u r n function ( t,e,r,i ) { if ( t.point!==n ) { v a r u = t . c x - n . x , o = t . c y - n . y , a = i - e , l = u * u + o * o ; if ( l>a*a/y ) { if ( v>l ) { v a r c = t . c h a r g e / l ; n . p x - = u * c , n . p y - = o * c } r e t u r n ! 0 } if ( t.point&&l&&v>l ) { v a r c = t . p o i n t C h a r g e / l ; n . p x - = u * c , n . p y - = o * c } } r e t u r n ! t . c h a r g e } } f u n c t i o n t ( n ) { n . p x = a o . e v e n t . x , n . p y = a o . e v e n t . y , l . resume ( ) } v a r e , r , i , u , o , a , l = { } , c = a o . dispatch ( \"start\",\"tick\",\"end\"),f=[1,1],s=.9,h=ml,\
p = M l , g = - 3 0 , v = x l , d = . 1 , y = . 6 4 , M = [ ] , x = [ ] ; r e t u r n l . t i c k = function ( ) { if ( ( i*=.99 ) <.005 ) r e t u r n e = n u l l , c . end ( {type:\ "end\" ,alpha:i=0} ) , ! 0 ; v a r t , r , l , h , p , v , y , m , b , _ = M . l e n g t h , w = x . l e n g t h ; for ( r=0;w>r;++r ) l = x [ r ] , h = l . s o u r c e , p = l . t a r g e t , m = p . x - h . x , b = p . y - h . y , ( v = m * m + b * b ) & & ( v = i * o [ r ] * ( ( v = M a t h . sqrt ( v ) ) - u [ r ] ) / v , m * = v , b * = v , p . x - = m * ( y = h . w e i g h t + p . w e i g h t ? h . w e i g h t / ( h . w e i g h t + p . w e i g h t ) : . 5 ) , p . y - = b * y , h . x + = m * ( y = 1 - y ) , h . y + = b * y ) ; if ( ( y=i*d ) &&(m=f[0]/2,b=f[1]/2,r=-1,y ) ) for ( ;++r<_; ) l = M [ r ] , l . x + = ( m - l . x ) * y , l . y + = ( b - l . y ) * y ; if ( g ) for ( ri(t=ao.geom.quadtree(M ) , i , a ) , r = - 1 ; + + r < _ ; ) ( l = M [ r ] ) . f i x e d | | t . visit ( n(l ) ) ; for ( r=-1;++r<_; ) l = M [ r ] , l . f i x e d ? ( l . x = l . p x , l . y = l . p y ) : ( l . x - = ( l . p x - ( l . p x = l . x ) ) * s , l . y - = ( l . p y - ( l . p y = l . y ) ) * s ) ; c . tick ( {type:\ "tick\" ,alpha:i} ) } , l . n o d e s = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( M = n , l ) : M } , l . l i n k s = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( x = n , l ) : x } , l . s i z e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( f = n , l ) : f } , l . l i n k D i s t a n c e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( h = \ " f u n c t i o n \ " = = t y p e o f n ? n : + n , l ) : h } , l . d i s t a n c e = l . l i n k D i s t a n c e , l . l i n k S t r e n g t h = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( p = \ " f u n c t i o n \ " = = t y p e o f n ? n : + n , l ) : p } , l . f r i c t i o n = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( s = + n , l ) : s } , l . c h a r g e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( g = \ " f u n c t i o n \ " = = t y p e o f n ? n : + n , l ) : g } , l . c h a r g e D i s t a n c e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( v = n * n , l ) : M a t h . sqrt ( v ) } , l . g r a v i t y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( d = + n , l ) : d } , l . t h e t a = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( y = n * n , l ) : M a t h . sqrt ( y ) } , l . a l p h a = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( n = + n , i ? n > 0 ? i = n : ( e . c = n u l l , e . t = N a N , e = n u l l , c . end ( {type:\ "end\" ,alpha:i=0} ) ) : n > 0 & & ( c . start ( {type:\ "start\" ,alpha:i=n} ) , e = qn ( l.tick ) ) , l ) : i } , l . s t a r t = function ( ) { f u n c t i o n n ( n,r ) { if ( !e ) { for ( e=new Array(i ) , l = 0 ; i > l ; + + l ) e [ l ] = [ ] ; for ( l=0;c>l;++l ) { v a r u = x [ l ] ; e [ u . s o u r c e . i n d e x ] . push ( u.target ) , e [ u . t a r g e t . i n d e x ] . push ( u.source ) } } for ( var o,a=e[t],l=-1,f=a.length;++l<f; ) if ( !isNaN(o=a[l][n] ) ) r e t u r n o ; r e t u r n M a t h . random ( ) * r } v a r t , e , r , i = M . l e n g t h , c = x . l e n g t h , s = f [ 0 ] , v = f [ 1 ] ; for ( t=0;i>t;++t ) ( r = M [ t ] ) . i n d e x = t , r . w e i g h t = 0 ; for ( t=0;c>t;++t ) r = x [ t ] , \ " n u m b e r \ " = = t y p e o f r . s o u r c e & & ( r . s o u r c e = M [ r . s o u r c e ] ) , \ " n u m b e r \ " = = t y p e o f r . t a r g e t & & ( r . t a r g e t = M [ r . t a r g e t ] ) , \
+ + r . s o u r c e . w e i g h t , + + r . t a r g e t . w e i g h t ; for ( t=0;i>t;++t ) r = M [ t ] , isNaN ( r.x ) & & ( r . x = n ( \"x\",s)),isNaN(r.y)&&(r.y=n(\"y\",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],\"function\"==typeof h ) for ( t=0;c>t;++t ) u [ t ] = + h . call ( this,x[t],t ) ; e l s e for ( t=0;c>t;++t ) u [ t ] = h ; if ( o=[],\ "function\" ==typeof p ) for ( t=0;c>t;++t ) o [ t ] = + p . call ( this,x[t],t ) ; e l s e for ( t=0;c>t;++t ) o [ t ] = p ; if ( a=[],\ "function\" ==typeof g ) for ( t=0;i>t;++t ) a [ t ] = + g . call ( this,M[t],t ) ; e l s e for ( t=0;i>t;++t ) a [ t ] = g ; r e t u r n l . resume ( ) } , l . r e s u m e = function ( ) { r e t u r n l . alpha ( .1 ) } , l . s t o p = function ( ) { r e t u r n l . alpha ( 0 ) } , l . d r a g = function ( ) { r e t u r n r | | ( r = a o . b e h a v i o r . drag ( ) . origin ( m ) . on ( \"dragstart.force\",Qr).on(\"drag.force\",t).on(\"dragend.force\",ni)),arguments.length?void this.on(\ "mouseover.force\" ,ti ) . on ( \"mouseout.force\",ei).call(r):r},ao.rebind(l,c,\"on\")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function( ) { f u n c t i o n n ( i ) { v a r u , o = [ i ] , a = [ ] ; for ( i.depth=0;null!=(u=o.pop( ) ) ; ) if ( a.push(u ) , ( c = e . call ( n,u,u.depth ) ) & & ( l = c . l e n g t h ) ) { for ( var l,c,f;--l>=0; ) o . push ( f=c[l] ) , f . p a r e n t = u , f . d e p t h = u . d e p t h + 1 ; r & & ( u . v a l u e = 0 ) , u . c h i l d r e n = c } e l s e r & & ( u . v a l u e = + r . call ( n,u,u.depth ) | | 0 ) , d e l e t e u . c h i l d r e n ; r e t u r n oi ( i,function(n ) { v a r e , i ; t & & ( e = n . c h i l d r e n ) & & e . sort ( t ) , r & & ( i = n . p a r e n t ) & & ( i . v a l u e + = n . v a l u e ) } ) , a } v a r t = c i , e = a i , r = l i ; r e t u r n n . s o r t = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = e , n ) : t } , n . c h i l d r e n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = t , n ) : e } , n . v a l u e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = t , n ) : r } , n . r e v a l u e = function ( t ) { r e t u r n r & & ( ui ( t,function(n ) { n . c h i l d r e n & & ( n . v a l u e = 0 ) } ) , oi ( t,function(t ) { v a r e ; t . c h i l d r e n | | ( t . v a l u e = + r . call ( n,t,t.depth ) | | 0 ) , ( e = t . p a r e n t ) & & ( e . v a l u e + = t . v a l u e ) } ) ) , t } , n } , a o . l a y o u t . p a r t i t i o n = function ( ) { f u n c t i o n n ( t,e,r,i ) { v a r u = t . c h i l d r e n ; if ( t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length ) ) { v a r o , a , l , c = - 1 ; for ( r=t.value?r/t.value:0;++c<o; ) n ( a=u[c],e,l=a.value*r,i ) , e + = l } } f u n c t i o n t ( n ) { v a r e = n . c h i l d r e n , r = 0 ; if ( e&&(i=e.length ) ) for ( var i,u=-1;++u<i; ) r = M a t h . max ( r,t(e[u] ) ) ; r e t u r n 1 + r } f u n c t i o n e ( e,u ) { v a r o = r . call ( this,e,u ) ; r e t u r n n ( o[0],0,i[0],i[1]/t(o[0] ) ) , o } v a r r = a o . l a y o u t . hierarchy ( ) , i = [ 1 , 1 ] ; r e t u r n e . s i z e = function ( n ) { r e t u r n \
a r g u m e n t s . l e n g t h ? ( i = n , e ) : i } , ii ( e,r ) } , a o . l a y o u t . p i e = function ( ) { f u n c t i o n n ( o ) { v a r a , l = o . l e n g t h , c = o . map ( function(e,r ) { r e t u r n + t . call ( n,e,r ) } ) , f = + ( \ " f u n c t i o n \ " = = t y p e o f r ? r . apply ( this,arguments ) : r ) , s = ( \ " f u n c t i o n \ " = = t y p e o f i ? i . apply ( this,arguments ) : i ) - f , h = M a t h . min ( Math.abs(s ) / l , + ( \ " f u n c t i o n \ " = = t y p e o f u ? u . apply ( this,arguments ) : u ) ) , p = h * ( 0 > s ? - 1 : 1 ) , g = a o . sum ( c ) , v = g ? ( s - l * p ) / g : 0 , d = a o . range ( l ) , y = [ ] ; r e t u r n n u l l ! = e & & d . sort ( e===bl?function(n,t ) { r e t u r n c [ t ] - c [ n ] } : function ( n,t ) { r e t u r n e ( o[n],o[t] ) } ) , d . forEach ( function(n ) { y [ n ] = { d a t a : o [ n ] , v a l u e : a = c [ n ] , s t a r t A n g l e : f , e n d A n g l e : f + = a * v + p , p a d A n g l e : h } } ) , y } v a r t = N u m b e r , e = b l , r = 0 , i = H o , u = 0 ; r e t u r n n . v a l u e = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = e , n ) : t } , n . s o r t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = t , n ) : e } , n . s t a r t A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = t , n ) : r } , n . e n d A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = t , n ) : i } , n . p a d A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = t , n ) : u } , n } ; v a r b l = { } ; a o . l a y o u t . s t a c k = function ( ) { f u n c t i o n n ( a,l ) { if ( !(h=a.length ) ) r e t u r n a ; v a r c = a . map ( function(e,r ) { r e t u r n t . call ( n,e,r ) } ) , f = c . map ( function(t ) { r e t u r n t . map ( function(t,e ) { r e t u r n [ u . call ( n,t,e ) , o . call ( n,t,e ) ] } ) } ) , s = e . call ( n,f,l ) ; c = a o . permute ( c,s ) , f = a o . permute ( f,s ) ; v a r h , p , g , v , d = r . call ( n,f,l ) , y = c [ 0 ] . l e n g t h ; for ( g=0;y>g;++g ) for ( i.call(n,c[0][g],v=d[g],f[0][g][1] ) , p = 1 ; h > p ; + + p ) i . call ( n,c[p][g],v+=f[p-1][g][1],f[p][g][1] ) ; r e t u r n a } v a r t = m , e = g i , r = v i , i = p i , u = s i , o = h i ; r e t u r n n . v a l u e s = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = e , n ) : t } , n . o r d e r = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = \ " f u n c t i o n \ " = = t y p e o f t ? t : _ l . get ( t ) | | g i , n ) : e } , n . o f f s e t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = \ " f u n c t i o n \ " = = t y p e o f t ? t : w l . get ( t ) | | v i , n ) : r } , n . x = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = t , n ) : u } , n . y = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = t , n ) : o } , n . o u t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = t , n ) : i } , n } ; v a r _ l = a o . map ( {\ "inside-out\" :function(n ) { v a r t , e , r = n . l e n g t h , i = n . map ( di ) , u = n . map ( yi ) , o = a o . range ( r ) . sort ( function(n,t ) { r e t u r n i [ n ] - i [ t ] } ) , a = 0 , l = 0 , c = [ ] , f = [ ] ; for ( t=0;r>t;++t ) e = o [ t ] , l > a ? ( a + = u [ e ] , c . push ( e ) ) : ( l + = u [ e ] , f . push ( e ) ) ; r e t u r n f . reverse ( ) . concat ( c ) } , r e v e r s e : function ( n ) { r e t u r n a o . range ( n.length ) . reverse ( ) } , \
\ " d e f a u l t \ " : g i } ) , w l = a o . map ( {silhouette:function(n ) { v a r t , e , r , i = n . l e n g t h , u = n [ 0 ] . l e n g t h , o = [ ] , a = 0 , l = [ ] ; for ( e=0;u>e;++e ) { for ( t=0,r=0;i>t;t++ ) r + = n [ t ] [ e ] [ 1 ] ; r > a & & ( a = r ) , o . push ( r ) } for ( e=0;u>e;++e ) l [ e ] = ( a - o [ e ] ) / 2 ; r e t u r n l } , w i g g l e : function ( n ) { v a r t , e , r , i , u , o , a , l , c , f = n . l e n g t h , s = n [ 0 ] , h = s . l e n g t h , p = [ ] ; for ( p[0]=l=c=0,e=1;h>e;++e ) { for ( t=0,i=0;f>t;++t ) i + = n [ t ] [ e ] [ 1 ] ; for ( t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t ) { for ( r=0,o=(n[t][e][1]-n[t][e-1][1] ) / ( 2 * a ) ; t > r ; + + r ) o + = ( n [ r ] [ e ] [ 1 ] - n [ r ] [ e - 1 ] [ 1 ] ) / a ; u + = o * n [ t ] [ e ] [ 1 ] } p [ e ] = l - = i ? u / i * a : 0 , c > l & & ( c = l ) } for ( e=0;h>e;++e ) p [ e ] - = c ; r e t u r n p } , e x p a n d : function ( n ) { v a r t , e , r , i = n . l e n g t h , u = n [ 0 ] . l e n g t h , o = 1 / i , a = [ ] ; for ( e=0;u>e;++e ) { for ( t=0,r=0;i>t;t++ ) r + = n [ t ] [ e ] [ 1 ] ; if ( r ) for ( t=0;i>t;t++ ) n [ t ] [ e ] [ 1 ] / = r ; e l s e for ( t=0;i>t;t++ ) n [ t ] [ e ] [ 1 ] = o } for ( e=0;u>e;++e ) a [ e ] = 0 ; r e t u r n a } , z e r o : v i } ) ; a o . l a y o u t . h i s t o g r a m = function ( ) { f u n c t i o n n ( n,u ) { for ( var o,a,l=[],c=n.map(e,this ) , f = r . call ( this,c,u ) , s = i . call ( this,f,c,u ) , u = - 1 , h = c . l e n g t h , p = s . l e n g t h - 1 , g = t ? 1 : 1 / h ; + + u < p ; ) o = l [ u ] = [ ] , o . d x = s [ u + 1 ] - ( o . x = s [ u ] ) , o . y = 0 ; if ( p>0 ) for ( u=-1;++u<h; ) a = c [ u ] , a > = f [ 0 ] & & a < = f [ 1 ] & & ( o = l [ a o . bisect ( s,a,1,p ) - 1 ] , o . y + = g , o . push ( n[u] ) ) ; r e t u r n l } v a r t = ! 0 , e = N u m b e r , r = b i , i = M i ; r e t u r n n . v a l u e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = t , n ) : e } , n . r a n g e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = En ( t ) , n ) : r } , n . b i n s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = \ " n u m b e r \ " = = t y p e o f t ? function ( n ) { r e t u r n xi ( n,t ) } : En ( t ) , n ) : i } , n . f r e q u e n c y = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = ! ! e , n ) : t } , n } , a o . l a y o u t . p a c k = function ( ) { f u n c t i o n n ( n,u ) { v a r o = e . call ( this,n,u ) , a = o [ 0 ] , l = i [ 0 ] , c = i [ 1 ] , f = n u l l = = t ? M a t h . s q r t : \ " f u n c t i o n \ " = = t y p e o f t ? t : function ( ) { r e t u r n t } ; if ( a.x=a.y=0,oi(a,function(n ) { n . r = + f ( n.value ) } ) , oi ( a,Ni ) , r ) { v a r s = r * ( t ? 1 : M a t h . max ( 2*a.r/l,2*a.r/c ) ) / 2 ; oi ( a,function(n ) { n . r + = s } ) , oi ( a,Ni ) , oi ( a,function(n ) { n . r - = s } ) } r e t u r n Ci ( a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c ) ) , o } v a r t , e = a o . l a y o u t . hierarchy ( ) . sort ( _i ) , r = 0 , i = [ 1 , 1 ] ; r e t u r n n . s i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = t , n ) : i } , n . r a d i u s = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = n u l l = = e | | \ " f u n c t i o n \ " = = t y p e o f e ? e : + e , n ) : t } , n . p a d d i n g = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = + t , n ) : r } , ii ( n,e ) } , a o . l a y o u t . t r e e = function ( ) { f u n c t i o n \
n ( n,i ) { v a r f = o . call ( this,n,i ) , s = f [ 0 ] , h = t ( s ) ; if ( oi(h,e ) , h . p a r e n t . m = - h . z , ui ( h,r ) , c ) ui ( s,u ) ; e l s e { v a r p = s , g = s , v = s ; ui ( s,function(n ) { n . x < p . x & & ( p = n ) , n . x > g . x & & ( g = n ) , n . d e p t h > v . d e p t h & & ( v = n ) } ) ; v a r d = a ( p,g ) / 2 - p . x , y = l [ 0 ] / ( g . x + a ( g,p ) / 2 + d ) , m = l [ 1 ] / ( v . d e p t h | | 1 ) ; ui ( s,function(n ) { n . x = ( n . x + d ) * y , n . y = n . d e p t h * m } ) } r e t u r n f } f u n c t i o n t ( n ) { for ( var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop( ) ) ; ) for ( var i,u=t.children,o=0,a=u.length;a>o;++o ) r . push ( ( u[o]=i={_:u[o],parent:t,children:(i=u[o].children ) &&i.slice( ) | | [ ] , A : n u l l , a : n u l l , z : 0 , m : 0 , c : 0 , s : 0 , t : n u l l , i : o } ) . a = i ) ; r e t u r n e . c h i l d r e n [ 0 ] } f u n c t i o n e ( n ) { v a r t = n . c h i l d r e n , e = n . p a r e n t . c h i l d r e n , r = n . i ? e [ n . i - 1 ] : n u l l ; if ( t.length ) { Di ( n ) ; v a r u = ( t [ 0 ] . z + t [ t . l e n g t h - 1 ] . z ) / 2 ; r ? ( n . z = r . z + a ( n._,r._ ) , n . m = n . z - u ) : n . z = u } e l s e r & & ( n . z = r . z + a ( n._,r._ ) ) ; n . p a r e n t . A = i ( n,r,n.parent.A||e[0] ) } f u n c t i o n r ( n ) { n . _ . x = n . z + n . p a r e n t . m , n . m + = n . p a r e n t . m } f u n c t i o n i ( n,t,e ) { if ( t ) { for ( var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o ) , i = qi ( i ) , o & & i ; ) l = qi ( l ) , u = Ti ( u ) , u . a = n , r = o . z + s - i . z - c + a ( o._,i._ ) , r > 0 & & ( Ri ( Pi(o,n,e ) , n , r ) , c + = r , f + = r ) , s + = o . m , c + = i . m , h + = l . m , f + = u . m ; o & & ! Ti ( u ) & & ( u . t = o , u . m + = s - f ) , i & & ! qi ( l ) & & ( l . t = i , l . m + = c - h , e = n ) } r e t u r n e } f u n c t i o n u ( n ) { n . x * = l [ 0 ] , n . y = n . d e p t h * l [ 1 ] } v a r o = a o . l a y o u t . hierarchy ( ) . sort ( null ) . value ( null ) , a = L i , l = [ 1 , 1 ] , c = n u l l ; r e t u r n n . s e p a r a t i o n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = t , n ) : a } , n . s i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c = n u l l = = ( l = t ) ? u : n u l l , n ) : c ? n u l l : l } , n . n o d e S i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c = n u l l = = ( l = t ) ? n u l l : u , n ) : c ? l : n u l l } , ii ( n,o ) } , a o . l a y o u t . c l u s t e r = function ( ) { f u n c t i o n n ( n,u ) { v a r o , a = t . call ( this,n,u ) , l = a [ 0 ] , c = 0 ; oi ( l,function(n ) { v a r t = n . c h i l d r e n ; t & & t . l e n g t h ? ( n . x = ji ( t ) , n . y = Ui ( t ) ) : ( n . x = o ? c + = e ( n,o ) : 0 , n . y = 0 , o = n ) } ) ; v a r f = Fi ( l ) , s = Hi ( l ) , h = f . x - e ( f,s ) / 2 , p = s . x + e ( s,f ) / 2 ; r e t u r n oi ( l,i?function(n ) { n . x = ( n . x - l . x ) * r [ 0 ] , n . y = ( l . y - n . y ) * r [ 1 ] } : function ( n ) { n . x = ( n . x - h ) / ( p - h ) * r [ 0 ] , n . y = ( 1 - ( l . y ? n . y / l . y : 1 ) ) * r [ 1 ] } ) , a } v a r t = a o . l a y o u t . hierarchy ( ) . sort ( null ) . value ( null ) , e = L i , r = [ 1 , 1 ] , i = ! 1 ; r e t u r n n . s e p a r a t i o n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = t , n ) : e } , n . s i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = n u l l = = ( r = t ) , n ) : i ? n u l l : r } , \
n . n o d e S i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = n u l l ! = ( r = t ) , n ) : i ? r : n u l l } , ii ( n,t ) } , a o . l a y o u t . t r e e m a p = function ( ) { f u n c t i o n n ( n,t ) { for ( var e,r,i=-1,u=n.length;++i<u; ) r = ( e = n [ i ] ) . v a l u e * ( 0 > t ? 0 : t ) , e . a r e a = isNaN ( r ) | | 0 > = r ? 0 : r } f u n c t i o n t ( e ) { v a r u = e . c h i l d r e n ; if ( u&&u.length ) { v a r o , a , l , c = s ( e ) , f = [ ] , h = u . slice ( ) , g = 1 / 0 , v = \ " s l i c e \ " = = = p ? c . d x : \ " d i c e \ " = = = p ? c . d y : \ " s l i c e - d i c e \ " = = = p ? 1 & e . d e p t h ? c . d y : c . d x : M a t h . min ( c.dx,c.dy ) ; for ( n(h,c.dx*c.dy/e.value ) , f . a r e a = 0 ; ( l = h . l e n g t h ) > 0 ; ) f . push ( o=h[l-1] ) , f . a r e a + = o . a r e a , \ " s q u a r i f y \ " ! = = p | | ( a = r ( f,v ) ) < = g ? ( h . pop ( ) , g = a ) : ( f . a r e a - = f . pop ( ) . a r e a , i ( f,v,c,!1 ) , v = M a t h . min ( c.dx,c.dy ) , f . l e n g t h = f . a r e a = 0 , g = 1 / 0 ) ; f . l e n g t h & & ( i ( f,v,c,!0 ) , f . l e n g t h = f . a r e a = 0 ) , u . forEach ( t ) } } f u n c t i o n e ( t ) { v a r r = t . c h i l d r e n ; if ( r&&r.length ) { v a r u , o = s ( t ) , a = r . slice ( ) , l = [ ] ; for ( n(a,o.dx*o.dy/t.value ) , l . a r e a = 0 ; u = a . pop ( ) ; ) l . push ( u ) , l . a r e a + = u . a r e a , n u l l ! = u . z & & ( i ( l,u.z?o.dx:o.dy,o,!a.length ) , l . l e n g t h = l . a r e a = 0 ) ; r . forEach ( e ) } } f u n c t i o n r ( n,t ) { for ( var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++o<a; ) ( e = n [ o ] . a r e a ) & & ( u > e & & ( u = e ) , e > i & & ( i = e ) ) ; r e t u r n r * = r , t * = t , r ? M a t h . max ( t*i*g/r,r/(t*u*g ) ) : 1 / 0 } f u n c t i o n i ( n,t,e,r ) { v a r i , u = - 1 , o = n . l e n g t h , a = e . x , c = e . y , f = t ? l ( n.area/t ) : 0 ; \
if ( t==e.dx ) { for ( ( r||f>e.dy ) &&(f=e.dy ) ; + + u < o ; ) i = n [ u ] , i . x = a , i . y = c , i . d y = f , a + = i . d x = M a t h . min ( e.x+e.dx-a,f?l(i.area/f ) : 0 ) ; i . z = ! 0 , i . d x + = e . x + e . d x - a , e . y + = f , e . d y - = f } e l s e { for ( ( r||f>e.dx ) &&(f=e.dx ) ; + + u < o ; ) i = n [ u ] , i . x = a , i . y = c , i . d x = f , c + = i . d y = M a t h . min ( e.y+e.dy-c,f?l(i.area/f ) : 0 ) ; i . z = ! 1 , i . d y + = e . y + e . d y - c , e . x + = f , e . d x - = f } } f u n c t i o n u ( r ) { v a r i = o | | a ( r ) , u = i [ 0 ] ; r e t u r n u . x = u . y = 0 , u . v a l u e ? ( u . d x = c [ 0 ] , u . d y = c [ 1 ] ) : u . d x = u . d y = 0 , o & & a . revalue ( u ) , n ( [u],u.dx*u.dy/u.value ) , ( o ? e : t ) ( u ) , h & & ( o = i ) , i } v a r o , a = a o . l a y o u t . hierarchy ( ) , l = M a t h . r o u n d , c = [ 1 , 1 ] , f = n u l l , s = O i , h = ! 1 , p = \ " s q u a r i f y \ " , g = . 5 * ( 1 + M a t h . sqrt ( 5 ) ) ; r e t u r n u . s i z e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c = n , u ) : c } , u . p a d d i n g = function ( n ) { f u n c t i o n t ( t ) { v a r e = n . call ( u,t,t.depth ) ; r e t u r n n u l l = = e ? Oi ( t ) : Ii ( t,\ "number\" ==typeof e?[e,e,e,e]:e ) } f u n c t i o n e ( t ) { r e t u r n Ii ( t,n ) } if ( !arguments.length ) r e t u r n f ; v a r r ; r e t u r n s = n u l l = = ( f = n ) ? O i : \ " f u n c t i o n \ " = = ( r = t y p e o f n ) ? t : \ " n u m b e r \ " = = = r ? ( n = [ n , n , n , n ] , e ) : e , u } , u . r o u n d = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = n ? M a t h . r o u n d : N u m b e r , u ) : l ! = N u m b e r } , u . s t i c k y = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( h = n , o = n u l l , u ) : h } , u . r a t i o = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( g = n , u ) : g } , u . m o d e = function ( n ) { r e t u r n a r g u m e n t s . l e n g t h ? ( p = n + \ " \ " , u ) : p } , ii ( u,a ) } , a o . r a n d o m = { n o r m a l : function ( n,t ) { v a r e = a r g u m e n t s . l e n g t h ; r e t u r n 2 > e & & ( t = 1 ) , 1 > e & & ( n = 0 ) , function ( ) { v a r e , r , i ; d o e = 2 * M a t h . random ( ) - 1 , r = 2 * M a t h . random ( ) - 1 , i = e * e + r * r ; while ( !i||i>1 ) ; r e t u r n n + t * e * M a t h . sqrt ( -2*Math.log(i ) / i ) } } , l o g N o r m a l : function ( ) { v a r n = a o . r a n d o m . n o r m a l . apply ( ao,arguments ) ; r e t u r n function ( ) { r e t u r n M a t h . exp ( n( ) ) } } , b a t e s : function ( n ) { v a r t = a o . r a n d o m . irwinHall ( n ) ; r e t u r n function ( ) { r e t u r n t ( ) / n } } , i r w i n H a l l : function ( n ) { r e t u r n function ( ) { for ( var t=0,e=0;n>e;e++ ) t + = M a t h . random ( ) ; r e t u r n t } } } , a o . s c a l e = { } ; v a r S l = { f l o o r : m , c e i l : m } ; a o . s c a l e . l i n e a r = function ( ) { r e t u r n Wi ( [0,1],[0,1],Mr,!1 ) } ; v a r k l = { s : 1 , g : 1 , p : 1 , r : 1 , e : 1 } ; a o . s c a l e . l o g = function ( ) { r e t u r n ru ( ao.scale.linear( ) . domain ( [0,1] ) , 1 0 , ! 0 , [ 1 , 1 0 ] ) } ; v a r N l = a o . format ( \".0e\"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear( ) , 1 , [ 0 , 1 ] ) } , a o . s c a l e . s q r t = function ( ) { r e t u r n \
a o . s c a l e . pow ( ) . exponent ( .5 ) } , a o . s c a l e . o r d i n a l = function ( ) { r e t u r n ou ( [],{t:\ "range\" ,a:[[]]} ) } , a o . s c a l e . c a t e g o r y 1 0 = function ( ) { r e t u r n a o . s c a l e . ordinal ( ) . range ( Al ) } , a o . s c a l e . c a t e g o r y 2 0 = function ( ) { r e t u r n a o . s c a l e . ordinal ( ) . range ( Cl ) } , a o . s c a l e . c a t e g o r y 2 0 b = function ( ) { r e t u r n a o . s c a l e . ordinal ( ) . range ( zl ) } , a o . s c a l e . c a t e g o r y 2 0 c = function ( ) { r e t u r n a o . s c a l e . ordinal ( ) . range ( Ll ) } ; v a r A l = [ 2 0 6 2 2 6 0 , 1 6 7 4 4 2 0 6 , 2 9 2 4 5 8 8 , 1 4 0 3 4 7 2 8 , 9 7 2 5 8 8 5 , 9 1 9 7 1 3 1 , 1 4 9 0 7 3 3 0 , 8 3 5 5 7 1 1 , 1 2 3 6 9 1 8 6 , 1 5 5 6 1 7 5 ] . map ( xn ) , C l = [ 2 0 6 2 2 6 0 , 1 1 4 5 4 4 4 0 , 1 6 7 4 4 2 0 6 , 1 6 7 5 9 6 7 2 , 2 9 2 4 5 8 8 , 1 0 0 1 8 6 9 8 , 1 4 0 3 4 7 2 8 , 1 6 7 5 0 7 4 2 , 9 7 2 5 8 8 5 , 1 2 9 5 5 8 6 1 , 9 1 9 7 1 3 1 , 1 2 8 8 5 1 4 0 , 1 4 9 0 7 3 3 0 , 1 6 2 3 4 1 9 4 , 8 3 5 5 7 1 1 , 1 3 0 9 2 8 0 7 , 1 2 3 6 9 1 8 6 , 1 4 4 0 8 5 8 9 , 1 5 5 6 1 7 5 , 1 0 4 1 0 7 2 5 ] . map ( xn ) , z l = [ 3 7 5 0 7 7 7 , 5 3 9 5 6 1 9 , 7 0 4 0 7 1 9 , 1 0 2 6 4 2 8 6 , 6 5 1 9 0 9 7 , 9 2 1 6 5 9 4 , 1 1 9 1 5 1 1 5 , 1 3 5 5 6 6 3 6 , 9 2 0 2 9 9 3 , 1 2 4 2 6 8 0 9 , 1 5 1 8 6 5 1 4 , 1 5 1 9 0 9 3 2 , 8 6 6 6 1 6 9 , 1 1 3 5 6 4 9 0 , 1 4 0 4 9 6 4 3 , 1 5 1 7 7 3 7 2 , 8 0 7 7 6 8 3 , 1 0 8 3 4 3 2 4 , 1 3 5 2 8 5 0 9 , 1 4 5 8 9 6 5 4 ] . map ( xn ) , L l = [ 3 2 4 4 7 3 3 , 7 0 5 7 1 1 0 , 1 0 4 0 6 6 2 5 , 1 3 0 3 2 4 3 1 , 1 5 0 9 5 0 5 3 , 1 6 6 1 6 7 6 4 , 1 6 6 2 5 2 5 9 , 1 6 6 3 4 0 1 8 , 3 2 5 3 0 7 6 , 7 6 5 2 4 7 0 , 1 0 6 0 7 0 0 3 , 1 3 1 0 1 5 0 4 , 7 6 9 5 2 8 1 , 1 0 3 9 4 3 1 2 , 1 2 3 6 9 3 7 2 , 1 4 3 4 2 8 9 1 , 6 5 1 3 5 0 7 , 9 8 6 8 9 5 0 , 1 2 4 3 4 8 7 7 , 1 4 2 7 7 0 8 1 ] . map ( xn ) ; a o . s c a l e . q u a n t i l e = function ( ) { r e t u r n au ( [],[] ) } , a o . s c a l e . q u a n t i z e = function ( ) { r e t u r n lu ( 0,1,[0,1] ) } , a o . s c a l e . t h r e s h o l d = function ( ) { r e t u r n cu ( [.5],[0,1] ) } , a o . s c a l e . i d e n t i t y = function ( ) { r e t u r n fu ( [0,1] ) } , a o . s v g = { } , a o . s v g . a r c = function ( ) { f u n c t i o n n ( ) { v a r n = M a t h . max ( 0,+e.apply(this,arguments ) ) , c = M a t h . max ( 0,+r.apply(this,arguments ) ) , f = o . apply ( this,arguments ) - I o , s = a . apply ( this,arguments ) - I o , h = M a t h . abs ( s-f ) , p = f > s ? 0 : 1 ; if ( n>c&&(g=c,c=n,n=g ) , h > = O o ) r e t u r n t ( c,p ) + ( n ? t ( n,1-p ) : \ " \ " ) + \ " Z \ " ; v a r g , v , d , y , m , M , x , b , _ , w , S , k , N = 0 , E = 0 , A = [ ] ; if ( ( y=(+l.apply(this,arguments ) ||0 ) / 2 ) & & ( d = u = = = q l ? M a t h . sqrt ( n*n+c*c ) : + u . apply ( this,arguments ) , p | | ( E * = - 1 ) , c & & ( E = tn ( d/c*Math.sin(y ) ) ) , n & & ( N = tn ( d/n*Math.sin(y ) ) ) ) , c ) { m = c * M a t h . cos ( f+E ) , M = c * M a t h . sin ( f+E ) , x = c * M a t h . cos ( s-E ) , b = c * M a t h . sin ( s-E ) ; v a r C = M a t h . abs ( s-f-2*E ) < = F o ? 0 : 1 ; if ( E&&yu(m,M,x,b ) = = = p ^ C ) { v a r z = ( f + s ) / 2 ; m = c * M a t h . cos ( z ) , M = c * M a t h . sin ( z ) , x = b = n u l l } } e l s e m = M = 0 ; if ( n ) { _ = n * M a t h . cos ( s-N ) , w = n * M a t h . sin ( s-N ) , S = n * M a t h . cos ( f+N ) , k = n * M a t h . sin ( f+N ) ; v a r L = M a t h . abs ( f-s+2*N ) < = F o ? 0 : 1 ; if ( N&&yu(_,w,S,k ) = = = 1 - p ^ L ) { v a r q = ( f + s ) / 2 ; _ = n * M a t h . cos ( q ) , \
w = n * M a t h . sin ( q ) , S = k = n u l l } } e l s e _ = w = 0 ; if ( h>Uo&&(g=Math.min(Math.abs(c-n ) / 2 , + i . apply ( this,arguments ) ) ) > . 0 0 1 ) { v = c > n ^ p ? 0 : 1 ; v a r T = g , R = g ; if ( Fo>h ) { v a r D = n u l l = = S ? [ _ , w ] : n u l l = = x ? [ m , M ] : Re ( [m,M],[S,k],[x,b],[_,w] ) , P = m - D [ 0 ] , U = M - D [ 1 ] , j = x - D [ 0 ] , F = b - D [ 1 ] , H = 1 / M a t h . sin ( Math.acos((P*j+U*F ) / ( M a t h . sqrt ( P*P+U*U ) * M a t h . sqrt ( j*j+F*F ) ) ) / 2 ) , O = M a t h . sqrt ( D[0]*D[0]+D[1]*D[1] ) ; R = M a t h . min ( g,(n-O ) / ( H - 1 ) ) , T = M a t h . min ( g,(c-O ) / ( H + 1 ) ) } if ( null!=x ) { v a r I = mu ( null==S?[_,w]:[S,k],[m,M],c,T,p ) , Y = mu ( [x,b],[_,w],c,T,p ) ; g = = = T ? A . push ( \"M\",I[0],\"A\",T,\",\",T,\" 0 0,\ ",v,\" \",I[1],\"A\",c,\",\",c,\" 0 \",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),\",\",p,\" \",Y[1],\"A\",T,\",\",T,\" 0 0,\ ",v,\" \",Y[0]):A.push(\"M\",I[0],\"A\",T,\",\",T,\" 0 1,\ ",v,\" \",Y[0])}else A.push(\ "M\" ,m,\ ",\" ,M ) ; if ( null!=S ) { v a r Z = mu ( [m,M],[S,k],n,-R,p ) , V = mu ( [_,w],null==x?[m,M]:[x,b],n,-R,p ) ; g = = = R ? A . push ( \"L\",V[0],\"A\",R,\",\",R,\" 0 0,\ ",v,\" \",V[1],\"A\",n,\",\",n,\" 0 \",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),\",\",1-p,\" \",Z[1],\"A\",R,\",\",R,\" 0 0,\ ",v,\" \",Z[0]):A.push(\"L\",V[0],\"A\",R,\",\",R,\" 0 0,\ ",v,\" \",Z[0])}else A.push(\ "L\" ,_,\ ",\" ,w ) } e l s e A . push ( \"M\",m,\",\",M),null!=x&&A.push(\"A\",c,\",\",c,\" 0 \",C,\",\",p,\" \",x,\",\",b),A.push(\"L\",_,\",\",w),null!=S&&A.push(\"A\",n,\",\",n,\" 0 \",L,\",\",1-p,\" \",S,\",\",k);return A.push(\ "Z\" ) , A . join ( \"\")}function t(n,t ) { r e t u r n \ " M 0 , \ " + n + \ " A \ " + n + \ " , \ " + n + \ " 0 1 , \ " + t + \ " 0 , \ " + - n + \ " A \ " + n + \ " , \ " + n + \ " 0 1 , \ " + t + \ " 0 , \ " + n } v a r e = h u , r = p u , i = s u , u = q l , o = g u , a = v u , l = d u ; r e t u r n n . i n n e r R a d i u s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = En ( t ) , n ) : e } , n . o u t e r R a d i u s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = En ( t ) , n ) : r } , n . c o r n e r R a d i u s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = En ( t ) , n ) : i } , n . p a d R a d i u s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = t = = q l ? q l : En ( t ) , n ) : u } , n . s t a r t A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = En ( t ) , n ) : o } , n . e n d A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = En ( t ) , n ) : a } , n . p a d A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = En ( t ) , n ) : l } , n . c e n t r o i d = function ( ) { v a r n = ( + e . apply ( this,arguments ) + + r . apply ( this,arguments ) ) / 2 , t = ( + o . apply ( this,arguments ) + + a . apply ( this,arguments ) ) / 2 - I o ; r e t u r n [ M a t h . cos ( t ) * n , M a t h . sin ( t ) * n ] } , n } ; v a r q l = \ " a u t o \ " ; a o . s v g . l i n e = function ( ) { r e t u r n Mu ( m ) } ; v a r T l = a o . map ( {linear:xu,\
\ " l i n e a r - c l o s e d \ " : b u , s t e p : _ u , \ " s t e p - b e f o r e \ " : w u , \ " s t e p - a f t e r \ " : S u , b a s i s : z u , \ " b a s i s - o p e n \ " : L u , \ " b a s i s - c l o s e d \ " : q u , b u n d l e : T u , c a r d i n a l : E u , \ " c a r d i n a l - o p e n \ " : k u , \ " c a r d i n a l - c l o s e d \ " : N u , m o n o t o n e : F u } ) ; T l . forEach ( function(n,t ) { t . k e y = n , t . c l o s e d = / - c l o s e d $ / . test ( n ) } ) ; v a r R l = [ 0 , 2 / 3 , 1 / 3 , 0 ] , D l = [ 0 , 1 / 3 , 2 / 3 , 0 ] , P l = [ 0 , 1 / 6 , 2 / 3 , 1 / 6 ] ; a o . s v g . l i n e . r a d i a l = function ( ) { v a r n = Mu ( Hu ) ; r e t u r n n . r a d i u s = n . x , d e l e t e n . x , n . a n g l e = n . y , d e l e t e n . y , n } , w u . r e v e r s e = S u , S u . r e v e r s e = w u , a o . s v g . a r e a = function ( ) { r e t u r n Ou ( m ) } , a o . s v g . a r e a . r a d i a l = function ( ) { v a r n = Ou ( Hu ) ; r e t u r n n . r a d i u s = n . x , d e l e t e n . x , n . i n n e r R a d i u s = n . x 0 , d e l e t e n . x 0 , n . o u t e r R a d i u s = n . x 1 , d e l e t e n . x 1 , n . a n g l e = n . y , d e l e t e n . y , n . s t a r t A n g l e = n . y 0 , d e l e t e n . y 0 , n . e n d A n g l e = n . y 1 , d e l e t e n . y 1 , n } , a o . s v g . c h o r d = function ( ) { f u n c t i o n n ( n,a ) { v a r l = t ( this,u,n,a ) , c = t ( this,o,n,a ) ; r e t u r n \ " M \ " + l . p 0 + r ( l.r,l.p1,l.a1-l.a0 ) + ( e ( l,c ) ? i ( l.r,l.p1,l.r,l.p0 ) : i ( l.r,l.p1,c.r,c.p0 ) + r ( c.r,c.p1,c.a1-c.a0 ) + i ( c.r,c.p1,l.r,l.p0 ) ) + \ " Z \ " } f u n c t i o n t ( n,t,e,r ) { v a r i = t . call ( n,e,r ) , u = a . call ( n,i,r ) , o = l . call ( n,i,r ) - I o , f = c . call ( n,i,r ) - I o ; r e t u r n { r : u , a 0 : o , a 1 : f , p 0 : [ u * M a t h . cos ( o ) , u * M a t h . sin ( o ) ] , p 1 : [ u * M a t h . cos ( f ) , u * M a t h . sin ( f ) ] } } f u n c t i o n e ( n,t ) { r e t u r n n . a 0 = = t . a 0 & & n . a 1 = = t . a 1 } f u n c t i o n r ( n,t,e ) { r e t u r n \ " A \ " + n + \ " , \ " + n + \ " 0 \ " + + ( e > F o ) + \ " , 1 \ " + t } f u n c t i o n i ( n,t,e,r ) { r e t u r n \ " Q 0 , 0 \ " + r } v a r u = M e , o = x e , a = I u , l = g u , c = v u ; r e t u r n n . r a d i u s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = En ( t ) , n ) : a } , n . s o u r c e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = En ( t ) , n ) : u } , n . t a r g e t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = En ( t ) , n ) : o } , n . s t a r t A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = En ( t ) , n ) : l } , n . e n d A n g l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c = En ( t ) , n ) : c } , n } , a o . s v g . d i a g o n a l = function ( ) { f u n c t i o n n ( n,i ) { v a r u = t . call ( this,n,i ) , o = e . call ( this,n,i ) , a = ( u . y + o . y ) / 2 , l = [ u , { x : u . x , y : a } , { x : o . x , y : a } , o ] ; r e t u r n l = l . map ( r ) , \ " M \ " + l [ 0 ] + \ " C \ " + l [ 1 ] + \ " \ " + l [ 2 ] + \ " \ " + l [ 3 ] } v a r t = M e , e = x e , r = Y u ; r e t u r n n . s o u r c e = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = En ( e ) , n ) : t } , n . t a r g e t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = En ( t ) , n ) : e } , n . p r o j e c t i o n = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = t , n ) : r } , n } , a o . s v g . d i a g o n a l . r a d i a l = function ( ) { v a r n = a o . s v g . diagonal ( ) , t = Y u , e = n . p r o j e c t i o n ; r e t u r n n . p r o j e c t i o n = function ( n ) { r e t u r n \
a r g u m e n t s . l e n g t h ? e ( Zu(t=n ) ) : t } , n } , a o . s v g . s y m b o l = function ( ) { f u n c t i o n n ( n,r ) { return ( Ul.get(t.call(this,n,r ) ) | | $ u ) ( e . call ( this,n,r ) ) } v a r t = X u , e = V u ; r e t u r n n . t y p e = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = En ( e ) , n ) : t } , n . s i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = En ( t ) , n ) : e } , n } ; v a r U l = a o . map ( {circle: $ u,cross:function(n ) { v a r t = M a t h . sqrt ( n/5 ) / 2 ; r e t u r n \ " M \ " + - 3 * t + \ " , \ " + - t + \ " H \ " + - t + \ " V \ " + - 3 * t + \ " H \ " + t + \ " V \ " + - t + \ " H \ " + 3 * t + \ " V \ " + t + \ " H \ " + t + \ " V \ " + 3 * t + \ " H \ " + - t + \ " V \ " + t + \ " H \ " + - 3 * t + \ " Z \ " } , d i a m o n d : function ( n ) { v a r t = M a t h . sqrt ( n/(2*Fl ) ) , e = t * F l ; r e t u r n \ " M 0 , \ " + - t + \ " L \ " + e + \ " , 0 0 , \ " + t + \ " \ " + - e + \ " , 0 Z \ " } , s q u a r e : function ( n ) { v a r t = M a t h . sqrt ( n ) / 2 ; r e t u r n \ " M \ " + - t + \ " , \ " + - t + \ " L \ " + t + \ " , \ " + - t + \ " \ " + t + \ " , \ " + t + \ " \ " + - t + \ " , \ " + t + \ " Z \ " } , \ " t r i a n g l e - d o w n \ " : function ( n ) { v a r t = M a t h . sqrt ( n/jl ) , e = t * j l / 2 ; r e t u r n \ " M 0 , \ " + e + \ " L \ " + t + \ " , \ " + - e + \ " \ " + - t + \ " , \ " + - e + \ " Z \ " } , \ " t r i a n g l e - u p \ " : function ( n ) { v a r t = M a t h . sqrt ( n/jl ) , e = t * j l / 2 ; r e t u r n \ " M 0 , \ " + - e + \ " L \ " + t + \ " , \ " + e + \ " \ " + - t + \ " , \ " + e + \ " Z \ " } } ) ; a o . s v g . s y m b o l T y p e s = U l . keys ( ) ; v a r j l = M a t h . sqrt ( 3 ) , F l = M a t h . tan ( 30*Yo ) ; C o . t r a n s i t i o n = function ( n ) { for ( var t,e,r=Hl||++Zl,i=Ku(n ) , u = [ ] , o = O l | | { t i m e : D a t e . now ( ) , e a s e : N r , d e l a y : 0 , d u r a t i o n : 2 5 0 } , a = - 1 , l = t h i s . l e n g t h ; + + a < l ; ) { u . push ( t=[] ) ; for ( var c=this[a],f=-1,s=c.length;++f<s; ) ( e = c [ f ] ) & & Qu ( e,f,i,r,o ) , t . push ( e ) } r e t u r n Wu ( u,i,r ) } , C o . i n t e r r u p t = function ( n ) { r e t u r n t h i s . each ( null==n?Il:Bu(Ku(n ) ) ) } ; v a r H l , O l , I l = Bu ( Ku( ) ) , Y l = [ ] , Z l = 0 ; Y l . c a l l = C o . c a l l , Y l . e m p t y = C o . e m p t y , Y l . n o d e = C o . n o d e , Y l . s i z e = C o . s i z e , a o . t r a n s i t i o n = function ( n,t ) { r e t u r n n & & n . t r a n s i t i o n ? H l ? n . transition ( t ) : n : a o . selection ( ) . transition ( n ) } , a o . t r a n s i t i o n . p r o t o t y p e = Y l , Y l . s e l e c t = function ( n ) { v a r t , e , r , i = t h i s . i d , u = t h i s . n a m e s p a c e , o = [ ] ; n = A ( n ) ; for ( var a=-1,l=this.length;++a<l; ) { o . push ( t=[] ) ; for ( var c=this[a],f=-1,s=c.length;++f<s; ) ( r = c [ f ] ) & & ( e = n . call ( r,r.__data__,f,a ) ) ? ( \ " _ _ d a t a _ _ \ " i n r & & ( e . _ _ d a t a _ _ = r . _ _ d a t a _ _ ) , Qu ( e,f,u,i,r[u][i] ) , t . push ( e ) ) : t . push ( null ) } r e t u r n Wu ( o,u,i ) } , Y l . s e l e c t A l l = function ( n ) { v a r t , e , r , i , u , o = t h i s . i d , a = t h i s . n a m e s p a c e , l = [ ] ; n = C ( n ) ; for ( var c=-1,f=this.length;++c<f; ) for ( var s=this[c],h=-1,p=s.length;++h<p; ) if ( r=s[h] ) { u = r [ a ] [ o ] , e = n . call ( r,r.__data__,h,c ) , l . push ( t=[] ) ; for ( var g=-1,v=e.length;++g<v; ) ( i = e [ g ] ) & & Qu ( i,g,a,o,u ) , t . push ( i ) } r e t u r n Wu ( l,\
a , o ) } , Y l . f i l t e r = function ( n ) { v a r t , e , r , i = [ ] ; \ " f u n c t i o n \ " ! = t y p e o f n & & ( n = O ( n ) ) ; for ( var u=0,o=this.length;o>u;u++ ) { i . push ( t=[] ) ; for ( var e=this[u],a=0,l=e.length;l>a;a++ ) ( r = e [ a ] ) & & n . call ( r,r.__data__,a,u ) & & t . push ( r ) } r e t u r n Wu ( i,this.namespace,this.id ) } , Y l . t w e e n = function ( n,t ) { v a r e = t h i s . i d , r = t h i s . n a m e s p a c e ; r e t u r n a r g u m e n t s . l e n g t h < 2 ? t h i s . node ( ) [ r ] [ e ] . t w e e n . get ( n ) : Y ( this,null==t?function(t ) { t [ r ] [ e ] . t w e e n . remove ( n ) } : function ( i ) { i [ r ] [ e ] . t w e e n . set ( n,t ) } ) } , Y l . a t t r = function ( n,t ) { f u n c t i o n e ( ) { t h i s . removeAttribute ( a ) } f u n c t i o n r ( ) { t h i s . removeAttributeNS ( a.space,a.local ) } f u n c t i o n i ( n ) { r e t u r n n u l l = = n ? e : ( n + = \ " \ " , function ( ) { v a r t , e = t h i s . getAttribute ( a ) ; r e t u r n e ! = = n & & ( t = o ( e,n ) , function ( n ) { t h i s . setAttribute ( a,t(n ) ) } ) } ) } f u n c t i o n u ( n ) { r e t u r n n u l l = = n ? r : ( n + = \ " \ " , function ( ) { v a r t , e = t h i s . getAttributeNS ( a.space,a.local ) ; r e t u r n e ! = = n & & ( t = o ( e,n ) , function ( n ) { t h i s . setAttributeNS ( a.space,a.local,t(n ) ) } ) } ) } if ( arguments.length<2 ) { for ( t in n ) t h i s . attr ( t,n[t] ) ; r e t u r n t h i s } v a r o = \ " t r a n s f o r m \ " = = n ? $ r : M r , a = a o . n s . qualify ( n ) ; r e t u r n Ju ( this,\ "attr.\" +n,t,a.local?u:i ) } , Y l . a t t r T w e e n = function ( n,t ) { f u n c t i o n e ( n,e ) { v a r r = t . call ( this,n,e,this.getAttribute(i ) ) ; r e t u r n r & & function ( n ) { t h i s . setAttribute ( i,r(n ) ) } } f u n c t i o n r ( n,e ) { v a r r = t . call ( this,n,e,this.getAttributeNS(i.space,i.local ) ) ; r e t u r n r & & function ( n ) { t h i s . setAttributeNS ( i.space,i.local,r(n ) ) } } v a r i = a o . n s . qualify ( n ) ; r e t u r n t h i s . tween ( \"attr.\"+n,i.local?r:e)},Yl.style=function(n,e,r){function i( ) { t h i s . s t y l e . removeProperty ( n ) } f u n c t i o n u ( e ) { r e t u r n n u l l = = e ? i : ( e + = \ " \ " , function ( ) { v a r i , u = t ( this ) . getComputedStyle ( this,null ) . getPropertyValue ( n ) ; r e t u r n u ! = = e & & ( i = Mr ( u,e ) , function ( t ) { t h i s . s t y l e . setProperty ( n,i(t ) , r ) } ) } ) } v a r o = a r g u m e n t s . l e n g t h ; if ( 3>o ) { if ( \"string\"!=typeof n ) { 2 > o & & ( e = \ " \ " ) ; for ( r in n ) t h i s . style ( r,n[r],e ) ; r e t u r n t h i s } r = \ " \ " } r e t u r n Ju ( this,\ "style.\" +n,e,u ) } , Y l . s t y l e T w e e n = function ( n,e,r ) { f u n c t i o n i ( i,u ) { v a r o = e . call ( this,i,u,t(this ) . getComputedStyle ( this,null ) . getPropertyValue ( n ) ) ; r e t u r n o & & function ( t ) { t h i s . s t y l e . setProperty ( n,o(t ) , r ) } } r e t u r n a r g u m e n t s . l e n g t h < 3 & & ( r = \ " \ " ) , t h i s . tween ( \"style.\"+n,i)},Yl.text=function(n){return Ju(this,\ "text\" ,\
n , G u ) } , Y l . r e m o v e = function ( ) { v a r n = t h i s . n a m e s p a c e ; r e t u r n t h i s . each ( \"end.transition\",function(){var t;this[n].count<2&&(t=this.parentNode ) & & t . removeChild ( this ) } ) } , Y l . e a s e = function ( n ) { v a r t = t h i s . i d , e = t h i s . n a m e s p a c e ; r e t u r n a r g u m e n t s . l e n g t h < 1 ? t h i s . node ( ) [ e ] [ t ] . e a s e : ( \ " f u n c t i o n \ " ! = t y p e o f n & & ( n = a o . e a s e . apply ( ao,arguments ) ) , Y ( this,function(r ) { r [ e ] [ t ] . e a s e = n } ) ) } , Y l . d e l a y = function ( n ) { v a r t = t h i s . i d , e = t h i s . n a m e s p a c e ; r e t u r n a r g u m e n t s . l e n g t h < 1 ? t h i s . node ( ) [ e ] [ t ] . d e l a y : Y ( this,\ "function\" ==typeof n?function(r,i,u ) { r [ e ] [ t ] . d e l a y = + n . call ( r,r.__data__,i,u ) } : ( n = + n , function ( r ) { r [ e ] [ t ] . d e l a y = n } ) ) } , Y l . d u r a t i o n = function ( n ) { v a r t = t h i s . i d , e = t h i s . n a m e s p a c e ; r e t u r n a r g u m e n t s . l e n g t h < 1 ? t h i s . node ( ) [ e ] [ t ] . d u r a t i o n : Y ( this,\ "function\" ==typeof n?function(r,i,u ) { r [ e ] [ t ] . d u r a t i o n = M a t h . max ( 1,n.call(r,r.__data__,i,u ) ) } : ( n = M a t h . max ( 1,n ) , function ( r ) { r [ e ] [ t ] . d u r a t i o n = n } ) ) } , Y l . e a c h = function ( n,t ) { v a r e = t h i s . i d , r = t h i s . n a m e s p a c e ; if ( arguments.length<2 ) { v a r i = O l , u = H l ; t r y { H l = e , Y ( this,function(t,i,u ) { O l = t [ r ] [ e ] , n . call ( t,t.__data__,i,u ) } ) } f i n a l l y { O l = i , H l = u } } e l s e Y ( this,function(i ) { v a r u = i [ r ] [ e ] ; ( u . e v e n t | | ( u . e v e n t = a o . dispatch ( \"start\",\"end\",\"interrupt\"))).on(n,t)});return this},Yl.transition=function( ) { for ( var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++ ) { a . push ( n=[] ) ; for ( var t=this[l],f=0,s=t.length;s>f;f++ ) ( e = t [ f ] ) & & ( r = e [ o ] [ i ] , Qu ( e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration} ) ) , n . push ( e ) } r e t u r n Wu ( a,o,u ) } , a o . s v g . a x i s = function ( ) { f u n c t i o n n ( n ) { n . each ( function( ) { v a r n , c = a o . select ( this ) , f = t h i s . _ _ c h a r t _ _ | | e , s = t h i s . _ _ c h a r t _ _ = e . copy ( ) , h = n u l l = = l ? s . t i c k s ? s . t i c k s . apply ( s,a ) : s . domain ( ) : l , p = n u l l = = t ? s . t i c k F o r m a t ? s . t i c k F o r m a t . apply ( s,a ) : m : t , g = c . selectAll ( \".tick\").data(h,s),v=g.enter().insert(\"g\",\".domain\").attr(\"class\",\"tick\").style(\"opacity\",Uo),d=ao.transition(g.exit()).style(\"opacity\",Uo).remove(),y=ao.transition(g.order()).style(\"opacity\",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(\".domain\").data([0]),_=(b.enter().append(\"path\").attr(\"class\",\"domain\"),ao.transition(b));v.append(\"line\"),v.append(\"text\");var w,S,k,N,E=v.select(\ "line\" ) , \
A = y . select ( \"line\"),C=g.select(\"text\").text(p),z=v.select(\"text\"),L=y.select(\"text\"),q=\"top\"===r||\"left\"===r?-1:1;if(\"bottom\"===r||\"top\"===r?(n=no,w=\"x\",k=\"y\",S=\"x2\",N=\"y2\",C.attr(\"dy\",0>q?\"0em\":\".71em\").style(\"text-anchor\",\"middle\"),_.attr(\"d\",\"M\"+x[0]+\",\"+q*u+\"V0H\"+x[1]+\"V\"+q*u)):(n=to,w=\"y\",k=\"x\",S=\"y2\",N=\"x2\",C.attr(\"dy\",\".32em\").style(\"text-anchor\",0>q?\"end\":\"start\"),_.attr(\"d\",\"M\"+q*u+\",\"+x[0]+\"H0V\"+x[1]+\"H\"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand( ) / 2 ; f = s = function ( n ) { r e t u r n T ( n ) + R } } e l s e f . r a n g e B a n d ? f = s : d . call ( n,s,f ) ; v . call ( n,f,s ) , y . call ( n,s,s ) } ) } v a r t , e = a o . s c a l e . linear ( ) , r = V l , i = 6 , u = 6 , o = 3 , a = [ 1 0 ] , l = n u l l ; r e t u r n n . s c a l e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( e = t , n ) : e } , n . o r i e n t = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( r = t i n X l ? t + \ " \ " : V l , n ) : r } , n . t i c k s = function ( ) { r e t u r n a r g u m e n t s . l e n g t h ? ( a = co ( arguments ) , n ) : a } , n . t i c k V a l u e s = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( l = t , n ) : l } , n . t i c k F o r m a t = function ( e ) { r e t u r n a r g u m e n t s . l e n g t h ? ( t = e , n ) : t } , n . t i c k S i z e = function ( t ) { v a r e = a r g u m e n t s . l e n g t h ; r e t u r n e ? ( i = + t , u = + a r g u m e n t s [ e - 1 ] , n ) : i } , n . i n n e r T i c k S i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( i = + t , n ) : i } , n . o u t e r T i c k S i z e = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( u = + t , n ) : u } , n . t i c k P a d d i n g = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( o = + t , n ) : o } , n . t i c k S u b d i v i d e = function ( ) { r e t u r n a r g u m e n t s . l e n g t h & & n } , n } ; v a r V l = \ " b o t t o m \ " , X l = { t o p : 1 , r i g h t : 1 , b o t t o m : 1 , l e f t : 1 } ; a o . s v g . b r u s h = function ( ) { f u n c t i o n n ( t ) { t . each ( function( ) { v a r t = a o . select ( this ) . style ( \"pointer-events\",\"all\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\").on(\"mousedown.brush\",u).on(\"touchstart.brush\",u),o=t.selectAll(\".background\").data([0]);o.enter().append(\"rect\").attr(\"class\",\"background\").style(\"visibility\",\"hidden\").style(\"cursor\",\"crosshair\"),t.selectAll(\".extent\").data([0]).enter().append(\"rect\").attr(\"class\",\"extent\").style(\"cursor\",\"move\");var a=t.selectAll(\ ".resize\" ) . data ( v,m ) ; a . exit ( ) . remove ( ) , a . enter ( ) . append ( \"g\").attr(\"class\",function(n){return\"resize \"+n}).style(\"cursor\",function(n){return $ l[n]} ) . append ( \"rect\").attr(\"x\",function(n){return/[ew]$/.test(n)?-3:null}).attr(\"y\",\
function ( n ) { r e t u r n / ^ [ n s ] / . test ( n ) ? - 3 : n u l l } ) . attr ( \"width\",6).attr(\"height\",6).style(\"visibility\",\"hidden\"),a.style(\"display\",n.empty()?\"none\":null);var l,s=ao.transition(t ) , h = a o . transition ( o ) ; c & & ( l = Zi ( c ) , h . attr ( \"x\",l[0]).attr(\"width\",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr(\"y\",l[0]).attr(\"height\",l[1]-l[0]),i(s)),e(s)})}function e(n ) { n . selectAll ( \".resize\").attr(\"transform\",function(n){return\"translate(\"+s[+/e$/.test(n)]+\",\"+h[+/^s/.test(n)]+\")\"})}function r(n ) { n . select ( \".extent\").attr(\"x\",s[0]),n.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\",s[1]-s[0])}function i(n ) { n . select ( \".extent\").attr(\"y\",h[0]),n.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\",h[1]-h[0])}function u( ) { f u n c t i o n u ( ) { 3 2 = = a o . e v e n t . k e y C o d e & & ( C | | ( M = n u l l , L [ 0 ] - = s [ 1 ] , L [ 1 ] - = h [ 1 ] , C = 2 ) , S ( ) ) } f u n c t i o n v ( ) { 3 2 = = a o . e v e n t . k e y C o d e & & 2 = = C & & ( L [ 0 ] + = s [ 1 ] , L [ 1 ] + = h [ 1 ] , C = 0 , S ( ) ) } f u n c t i o n d ( ) { v a r n = a o . mouse ( b ) , t = ! 1 ; x & & ( n [ 0 ] + = x [ 0 ] , n [ 1 ] + = x [ 1 ] ) , C | | ( a o . e v e n t . a l t K e y ? ( M | | ( M = [ ( s [ 0 ] + s [ 1 ] ) / 2 , ( h [ 0 ] + h [ 1 ] ) / 2 ] ) , L [ 0 ] = s [ + ( n [ 0 ] < M [ 0 ] ) ] , L [ 1 ] = h [ + ( n [ 1 ] < M [ 1 ] ) ] ) : M = n u l l ) , E & & y ( n,c,0 ) & & ( r ( k ) , t = ! 0 ) , A & & y ( n,f,1 ) & & ( i ( k ) , t = ! 0 ) , t & & ( e ( k ) , w ( {type:\ "brush\" ,mode:C?\ "move\" :\ "resize\" } ) ) } f u n c t i o n y ( n,t,e ) { v a r r , i , u = Zi ( t ) , l = u [ 0 ] , c = u [ 1 ] , f = L [ e ] , v = e ? h : s , d = v [ 1 ] - v [ 0 ] ; r e t u r n C & & ( l - = f , c - = d + f ) , r = ( e ? g : p ) ? M a t h . max ( l,Math.min(c,n[e] ) ) : n [ e ] , C ? i = ( r + = f ) + d : ( M & & ( f = M a t h . max ( l,Math.min(c,2*M[e]-r ) ) ) , r > f ? ( i = r , r = f ) : i = f ) , v [ 0 ] ! = r | | v [ 1 ] ! = i ? ( e ? a = n u l l : o = n u l l , v [ 0 ] = r , v [ 1 ] = i , ! 0 ) : v o i d 0 } f u n c t i o n m ( ) { d ( ) , k . style ( \"pointer-events\",\"all\").selectAll(\".resize\").style(\"display\",n.empty()?\"none\":null),ao.select(\"body\").style(\"cursor\",null),q.on(\"mousemove.brush\",null).on(\"mouseup.brush\",null).on(\"touchmove.brush\",null).on(\"touchend.brush\",null).on(\"keydown.brush\",null).on(\"keyup.brush\",null),z(),w({type:\"brushend\"})}var M,x,b=this,_=ao.select(ao.event.target ) , w = l . of ( b,arguments ) , k = a o . select ( b ) , N = _ . datum ( ) , E = ! / ^ ( n | s ) $ / . test ( N ) & & c , A = ! / ^ ( e | w ) $ / . test ( N ) & & f , C = _ . classed ( \"extent\"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on(\"keydown.brush\",u).on(\"keyup.brush\",v);if(ao.event.changedTouches?q.on(\"touchmove.brush\",d).on(\"touchend.brush\",m):q.on(\"mousemove.brush\",\
d ) . on ( \"mouseup.brush\",m),k.interrupt().selectAll(\"*\").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N ) { v a r T = + / w $ / . test ( N ) , R = + / ^ n / . test ( N ) ; x = [ s [ 1 - T ] - L [ 0 ] , h [ 1 - R ] - L [ 1 ] ] , L [ 0 ] = s [ T ] , L [ 1 ] = h [ R ] } e l s e a o . e v e n t . a l t K e y & & ( M = L . slice ( ) ) ; k . style ( \"pointer-events\",\"none\").selectAll(\".resize\").style(\"display\",null),ao.select(\"body\").style(\"cursor\",_.style(\"cursor\")),w({type:\"brushstart\"}),d()}var o,a,l=N(n,\ "brushstart\" ,\ "brush\" ,\ "brushend\" ) , c = n u l l , f = n u l l , s = [ 0 , 0 ] , h = [ 0 , 0 ] , p = ! 0 , g = ! 0 , v = B l [ 0 ] ; r e t u r n n . e v e n t = function ( n ) { n . each ( function( ) { v a r n = l . of ( this,arguments ) , t = { x : s , y : h , i : o , j : a } , e = t h i s . _ _ c h a r t _ _ | | t ; t h i s . _ _ c h a r t _ _ = t , H l ? a o . select ( this ) . transition ( ) . each ( \"start.brush\",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:\"brushstart\"})}).tween(\"brush:brush\",function(){var e=xr(s,t.x ) , r = xr ( h,t.y ) ; r e t u r n o = a = n u l l , function ( i ) { s = t . x = e ( i ) , h = t . y = r ( i ) , n ( {type:\ "brush\" ,mode:\ "resize\" } ) } } ) . each ( \"end.brush\",function(){o=t.i,a=t.j,n({type:\"brush\",mode:\"resize\"}),n({type:\"brushend\"})}):(n({type:\"brushstart\"}),n({type:\"brush\",mode:\"resize\"}),n({type:\"brushend\"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n ) : c } , n . y = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( f = t , v = B l [ ! c < < 1 | ! f ] , n ) : f } , n . c l a m p = function ( t ) { r e t u r n a r g u m e n t s . l e n g t h ? ( c & & f ? ( p = ! ! t [ 0 ] , g = ! ! t [ 1 ] ) : c ? p = ! ! t : f & & ( g = ! ! t ) , n ) : c & & f ? [ p , g ] : c ? p : f ? g : n u l l } , n . e x t e n t = function ( t ) { v a r e , r , i , u , l ; r e t u r n a r g u m e n t s . l e n g t h ? ( c & & ( e = t [ 0 ] , r = t [ 1 ] , f & & ( e = e [ 0 ] , r = r [ 0 ] ) , o = [ e , r ] , c . i n v e r t & & ( e = c ( e ) , r = c ( r ) ) , e > r & & ( l = e , e = r , r = l ) , e = = s [ 0 ] & & r = = s [ 1 ] | | ( s = [ e , r ] ) ) , f & & ( i = t [ 0 ] , u = t [ 1 ] , c & & ( i = i [ 1 ] , u = u [ 1 ] ) , a = [ i , u ] , f . i n v e r t & & ( i = f ( i ) , u = f ( u ) ) , i > u & & ( l = i , i = u , u = l ) , i = = h [ 0 ] & & u = = h [ 1 ] | | ( h = [ i , u ] ) ) , n ) : ( c & & ( o ? ( e = o [ 0 ] , r = o [ 1 ] ) : ( e = s [ 0 ] , r = s [ 1 ] , c . i n v e r t & & ( e = c . invert ( e ) , r = c . invert ( r ) ) , e > r & & ( l = e , e = r , r = l ) ) ) , f & & ( a ? ( i = a [ 0 ] , u = a [ 1 ] ) : ( i = h [ 0 ] , u = h [ 1 ] , f . i n v e r t & & ( i = f . invert ( i ) , u = f . invert ( u ) ) , i > u & & ( l = i , i = u , u = l ) ) ) , c & & f ? [ [ e , i ] , [ r , u ] ] : c ? [ e , r ] : f & & [ i , u ] ) } , n . c l e a r = function ( ) { r e t u r n n . empty ( ) | | ( s = [ 0 , 0 ] , h = [ 0 , 0 ] , o = a = n u l l ) , n } , n . e m p t y = function ( ) { r e t u r n ! ! c & & s [ 0 ] = = s [ 1 ] | | ! ! f & & h [ 0 ] = = h [ 1 ] } , a o . rebind ( n,l,\ "on\" ) } ; v a r $ l = { n : \ " n s - r e s i z e \ " , e : \ " e w - r e s i z e \ " , s : \ " n s - r e s i z e \ " , w : \ " e w - r e s i z e \ " , n w : \ " n w s e - r e s i z e \ " , \
n e : \ " n e s w - r e s i z e \ " , s e : \ " n w s e - r e s i z e \ " , s w : \ " n e s w - r e s i z e \ " } , B l = [ [ \ " n \ " , \ " e \ " , \ " s \ " , \ " w \ " , \ " n w \ " , \ " n e \ " , \ " s e \ " , \ " s w \ " ] , [ \ " e \ " , \ " w \ " ] , [ \ " n \ " , \ " s \ " ] , [ ] ] , W l = g a . f o r m a t = x a . t i m e F o r m a t , J l = W l . u t c , G l = Jl ( \"%Y-%m-%dT%H:%M:%S.%LZ\");Wl.iso=Date.prototype.toISOString&&+new Date(\ "2000-01-01T00:00:00.000Z\" ) ? e o : G l , e o . p a r s e = function ( n ) { v a r t = n e w Date ( n ) ; r e t u r n isNaN ( t ) ? n u l l : t } , e o . t o S t r i n g = G l . t o S t r i n g , g a . s e c o n d = On ( function(n ) { r e t u r n n e w va ( 1e3*Math.floor(n/1e3 ) ) } , function ( n,t ) { n . setTime ( n.getTime( ) + 1 e 3 * M a t h . floor ( t ) ) } , function ( n ) { r e t u r n n . getSeconds ( ) } ) , g a . s e c o n d s = g a . s e c o n d . r a n g e , g a . s e c o n d s . u t c = g a . s e c o n d . u t c . r a n g e , g a . m i n u t e = On ( function(n ) { r e t u r n n e w va ( 6e4*Math.floor(n/6e4 ) ) } , function ( n,t ) { n . setTime ( n.getTime( ) + 6 e 4 * M a t h . floor ( t ) ) } , function ( n ) { r e t u r n n . getMinutes ( ) } ) , g a . m i n u t e s = g a . m i n u t e . r a n g e , g a . m i n u t e s . u t c = g a . m i n u t e . u t c . r a n g e , g a . h o u r = On ( function(n ) { v a r t = n . getTimezoneOffset ( ) / 6 0 ; r e t u r n n e w va ( 36e5*(Math.floor(n/36e5-t ) + t ) ) } , function ( n,t ) { n . setTime ( n.getTime( ) + 3 6 e 5 * M a t h . floor ( t ) ) } , function ( n ) { r e t u r n n . getHours ( ) } ) , g a . h o u r s = g a . h o u r . r a n g e , g a . h o u r s . u t c = g a . h o u r . u t c . r a n g e , g a . m o n t h = On ( function(n ) { r e t u r n n = g a . day ( n ) , n . setDate ( 1 ) , n } , function ( n,t ) { n . setMonth ( n.getMonth( ) + t ) } , function ( n ) { r e t u r n n . getMonth ( ) } ) , g a . m o n t h s = g a . m o n t h . r a n g e , g a . m o n t h s . u t c = g a . m o n t h . u t c . r a n g e ; v a r K l = [ 1 e 3 , 5 e 3 , 1 5 e 3 , 3 e 4 , 6 e 4 , 3 e 5 , 9 e 5 , 1 8 e 5 , 3 6 e 5 , 1 0 8 e 5 , 2 1 6 e 5 , 4 3 2 e 5 , 8 6 4 e 5 , 1 7 2 8 e 5 , 6 0 4 8 e 5 , 2 5 9 2 e 6 , 7 7 7 6 e 6 , 3 1 5 3 6 e 6 ] , Q l = [ [ g a . s e c o n d , 1 ] , [ g a . s e c o n d , 5 ] , [ g a . s e c o n d , 1 5 ] , [ g a . s e c o n d , 3 0 ] , [ g a . m i n u t e , 1 ] , [ g a . m i n u t e , 5 ] , [ g a . m i n u t e , 1 5 ] , [ g a . m i n u t e , 3 0 ] , [ g a . h o u r , 1 ] , [ g a . h o u r , 3 ] , [ g a . h o u r , 6 ] , [ g a . h o u r , 1 2 ] , [ g a . d a y , 1 ] , [ g a . d a y , 2 ] , [ g a . w e e k , 1 ] , [ g a . m o n t h , 1 ] , [ g a . m o n t h , 3 ] , [ g a . y e a r , 1 ] ] , n c = W l . multi ( [[\ ".%L\" ,function(n ) { r e t u r n n . getMilliseconds ( ) } ] , [ \ " : % S \ " , function ( n ) { r e t u r n n . getSeconds ( ) } ] , [ \ " % I : % M \ " , function ( n ) { r e t u r n n . getMinutes ( ) } ] , [ \ " % I % p \ " , function ( n ) { r e t u r n n . getHours ( ) } ] , [ \ " % a % d \ " , function ( n ) { r e t u r n n . getDay ( ) & & 1 ! = n . getDate ( ) } ] , [ \ " % b % d \ " , function ( n ) { r e t u r n 1 ! = n . getDate ( ) } ] , [ \ " % B \ " , function ( n ) { r e t u r n n . getMonth ( ) } ] , [ \ " % Y \ " , z t ] ] ) , t c = { r a n g e : function ( n,t,e ) { r e t u r n a o . range ( Math.ceil(n/e ) * e , + t , e ) . map ( io ) } , f l o o r : m , c e i l : m } ; Q l . y e a r = g a . y e a r , g a . s c a l e = function ( ) { r e t u r n \
ro ( ao.scale.linear( ) , Q l , n c ) } ; v a r e c = Q l . map ( function(n ) { r e t u r n [ n [ 0 ] . u t c , n [ 1 ] ] } ) , r c = J l . multi ( [[\ ".%L\" ,function(n ) { r e t u r n n . getUTCMilliseconds ( ) } ] , [ \ " : % S \ " , function ( n ) { r e t u r n n . getUTCSeconds ( ) } ] , [ \ " % I : % M \ " , function ( n ) { r e t u r n n . getUTCMinutes ( ) } ] , [ \ " % I % p \ " , function ( n ) { r e t u r n n . getUTCHours ( ) } ] , [ \ " % a % d \ " , function ( n ) { r e t u r n n . getUTCDay ( ) & & 1 ! = n . getUTCDate ( ) } ] , [ \ " % b % d \ " , function ( n ) { r e t u r n 1 ! = n . getUTCDate ( ) } ] , [ \ " % B \ " , function ( n ) { r e t u r n n . getUTCMonth ( ) } ] , [ \ " % Y \ " , z t ] ] ) ; e c . y e a r = g a . y e a r . u t c , g a . s c a l e . u t c = function ( ) { r e t u r n ro ( ao.scale.linear( ) , e c , r c ) } , a o . t e x t = An ( function(n ) { r e t u r n n . r e s p o n s e T e x t } ) , a o . j s o n = function ( n,t ) { r e t u r n Cn ( n,\ "application/json\" ,uo,t ) } , a o . h t m l = function ( n,t ) { r e t u r n Cn ( n,\ "text/html\" ,oo,t ) } , a o . x m l = An ( function(n ) { r e t u r n n . r e s p o n s e X M L } ) , \ " f u n c t i o n \ " = = t y p e o f d e f i n e & & d e f i n e . a m d ? ( t h i s . d 3 = a o , define ( ao ) ) : \ " o b j e c t \ " = = t y p e o f m o d u l e & & m o d u l e . e x p o r t s ? m o d u l e . e x p o r t s = a o : t h i s . d 3 = a o } ( ) ;
2022-04-02 18:58:23 +02:00
"
)
2019-05-17 22:41:46 +02:00
################################################################################
# end d3.js
################################################################################